IPC@CHIP® RTOS – API Documentation

Header image

Main page


Release Notes – SC2x @CHIP-RTOS V1.40

The tickets are grouped by component and then sorted by type and ticket number.


RTOS - Command shell
Ticket: #2126
Component: RTOS - Command shell
Type: defect
Summary: Failure at IPCFG command
Description: The IPCFG command doesn't displays the remote IP address of PPP devices.
Solution: Fixed



Ticket: #2156
Component: RTOS - Command shell
Type: defect
Summary: REN command error message misleading
Description: When the new name is invalid, the error message states that the file was not found. This is not the case.
Solution: Adjust error message text to indicate that the new name may be the source of the problem.



Ticket: #2164
Component: RTOS - Command shell
Type: enhancement
Summary: Copy command can be made faster
Description: The copy command can copy a file faster if the allocated copy buffer is increased.
Solution: Increase copy buffer from 1024 to 8192 bytes.




RTOS - System
Ticket: #2127
Component: RTOS - System
Type: defect
Summary: BIOS_Set_Ini_String() doesn't work with large CHIP.INI files
Description: If the function BIOS_Set_Ini_String() is used on CHIP.INI files larger than about 32 kiB, the function will overwrite the whole file.
Solution: Fixed



Ticket: #2141
Component: RTOS - System
Type: defect
Summary: System memory allocation should avoid application program area
Description: In some cases the system allocates memory blocks from low heap memory reserved for application space. This can cause heap allocations made from inside applications to fail.
Solution: Correct memory allocation methods used in SSH Server, RTX_Publish() API, and the CHKDSK command.



Ticket: #2162
Component: RTOS - System
Type: defect
Summary: RTX_Set_TimeDate() and RTX_Get_TimeDate() API not working for year 2050
Description: Dates beyond year 2038 are not working.
Solution: Extend date implementation so that date works until year 2106.



Ticket: #2024
Component: RTOS - System
Type: enhancement
Summary: Allow usage of character '[' in CHIP.INI values
Description: It should be possible to use the character '[' in CHIP.INI values.
The '[' character should only start a section if it appears at the start of the line.
Solution: Implemented.



Ticket: #2153
Component: RTOS - System
Type: enhancement
Summary: EXE header checksum field should be checked
Description: Normally, the checksum field inside the EXE header is not set and therefore is ignored when an EXE is loaded by the RTOS.
Anyway, it's possible to set the checksum field by an external tool. This can be helpful to protect against corrupted EXE files.

The RTOS should calculate and check the checksum if it is set inside the EXE header.
Solution: Implemented.




RTOS - Web server
Ticket: #2146
Component: RTOS - Web server
Type: defect
Summary: Memory leak on malformed Content-Length header
Description: A memory leak can occur, if the browser sends a malformed content-length header field in his request. The web server should also tolerate that the whitespace after a header field is missing, e.g. "Content-Length:73" should be accepted, same as "Content-Length: 73".
Solution: Fixed.



Ticket: #2013
Component: RTOS - Web server
Type: enhancement
Summary: Number of SEC_URLx entries
Description: We should increase the number of possible secure URL locations, users and passwords from 2 to 10.
Solution: Implemented. Also fixed the issue that path names need to end with a slash, in order to work correctly in some cases.




RTOS - TCP/IP
Ticket: #2125
Component: RTOS - TCP/IP
Type: defect
Summary: SNIFF command does not record a trace at the TUN/TAP device
Description: The network trace command SNIFF does not record data from the OpenVPN TUN/TAP device.
Solution: Fixed.



Ticket: #2135
Component: RTOS - TCP/IP
Type: defect
Summary: Deleting network trace files
Description: Network trace files generated by the internal network trace (see sniff command) cannot be deleted, because they are still open after stopping the network trace with "sniff 0".
Solution: Fixed.



Ticket: #2147
Component: RTOS - TCP/IP
Type: defect
Summary: SSL fails with overflow interrupt
Description: During SSL certificate exchange with client authentication, a divide operation can cause an overflow interrupt.
Solution: Protect against DIV overflow and correct coding error in the big number multiply by digit function.



Ticket: #2165
Component: RTOS - TCP/IP
Type: defect
Summary: SSL client does not accept server hello messages without a session ID
Description: The server may send a SSL session ID in his server hello message, but this must not be the case. Should also accept server hello messages that do not contain a session ID.
Solution: Fixed.



Ticket: #2008
Component: RTOS - TCP/IP
Type: enhancement
Summary: Multiple IP addresses for Ethernet interface in CHIP.INI
Description: It should be possible to configure more than one IP address for the standard Ethernet interface (multi homes) in the CHIP.INI. Currently this can only be done over API functions.

The addresses should be defined as described below (where the keywords "ADDRESS0" and "NETMASK0" are not used for downward compatibility).

[IP]
ADDRESS=192.168.100.5
NETMASK=255.255.255.0
ADDRESS1=192.168.200.10
NETMASK1=255.255.255.0
ADDRESS2=172.10.0.100
NETMASK2=255.255.0.0
Solution: Implemented.



Ticket: #2084
Component: RTOS - TCP/IP
Type: enhancement
Summary: Configuration of IP forwarding per network device
Description: It should be possible to enable/disable IP forwarding and broadcast packet forwarding for each network device.
Solution: Implemented. TCPIP CLIB function Dev_SetSpecificFlags_IPv4() provides this feature.



Ticket: #2129
Component: RTOS - TCP/IP
Type: enhancement
Summary: Provide BSD compatible socket API
Description: The BSD compatible socket API would be helpful. This will provide better source compatibility with SC2x3 applications and standard socket applications programs.
Solution: Added BSD functions to C-Library supported with dynamic links into the RTOS implementations.



Ticket: #2132
Component: RTOS - TCP/IP
Type: enhancement
Summary: Add Dev_Set_IfaceMTU() API
Description: Some way to set a TCP/IP device interface MTU would be helpful.
Solution: Add API as a dynamic linked type.




RTOS - IPsec/IKE
Ticket: #2149
Component: RTOS - IPsec/IKE
Type: defect
Summary: IKE command console listing format change
Description: When Blow Fish cipher is used, the IKE command's console listing is messy.
Solution: Format of console output cleaned up for IKE command SA listings.



Ticket: #2152
Component: RTOS - IPsec/IKE
Type: defect
Summary: IPsec IKE not working with Windows Vista
Description: When the Beck target is the IKE initiator and the peer is Windows Vista, the Beck target does not accept the selected IKE proposal from the peer.
Solution: Ignore missing "life kBytes" field in IKE SA reply from peer.



Ticket: #2167
Component: RTOS - IPsec/IKE
Type: defect
Summary: Miscellaneous IPSEC / IKE problems
Description: 1) The IPsec_Restore_Policy() fails to release a temporary heap buffer allocated from system memory. This buffer is used to hold the policy file contents during parsing.
2) IKE task can consume 100% of the CPU in the event that some socket problem occurs.
Solution: Fixed these various problems in the IKE and IPsec implementation.



Ticket: #2137
Component: RTOS - IPsec/IKE
Type: enhancement
Summary: Optimize BLOWFISH cipher method
Description: The BLOWFISH encryption method can be made significantly faster using optimized code.
Solution: Code Blowfish algorithm in assembly. Allocate key data from fast RAM for IPsec/SSH. For IPsec and IKE, the maximum key size of 448 bits is used as the default. Constants added to C-Library header files for Blowfish selection for either IKE and IPsec.



Ticket: #2169
Component: RTOS - IPsec/IKE
Type: enhancement
Summary: IKE use of FQDN for ID
Description: In some cases it is necessary to use the FQDN form of ID in the IKE ID payloads.
Solution: Add IKE_FQDN item to IPSEC section of CHIP.INI.




RTOS - File system
Ticket: #2157
Component: RTOS - File system
Type: defect
Summary: REN command can corrupt file system
Description: When the REN command is used to change short file name to a longer file name, the disk can end up corrupt when power is lost.
Solution: Flush the FAT cache immediately upon completion of the REN operation.



Ticket: #2158
Component: RTOS - File system
Type: defect
Summary: CHKDSK weakness
Description: If files are open for write at time CHKDSK executes, the disk's actual FAT contents may not be accessed by the CHKDSK, resulting in wrong conclusions.
Solution: Flush the internal FAT cache to disk, prior to initiating the CHKDSK action.



Ticket: #2168
Component: RTOS - File system
Type: defect
Summary: FTLRECL command infinite loop
Description: The FTLRECL may never terminate in cases where A: write activity is occurring. One example case is when a program redirects console output to a log file on the A: drive.
Solution: Maintain map of blocks which have been erased and skip over these blocks if they become dirty again before the FTLRECL command cycle completes. Clean each block at most once per execution of FTLRECL.



Ticket: #2144
Component: RTOS - File system
Type: enhancement
Summary: Add BIOS_Disk_Close API
Description: For use at power fail warning events, provide an API with which users can close open files and close down a specified drive.
Solution: Added the BIOS_Disk_Close() API.



Ticket: #2151
Component: RTOS - File system
Type: enhancement
Summary: Read-only drive inside internal flash memory
Description: Should add the possibility to have an additional drive inside the internal flash memory, which is read-only after system start.

This drive can be used to store and start firmware programs. Helpful if third-party customers have the possibility to program the device, but firmware driver programs should be protected against accidentally deletion.
Solution: Added "zdisk" console command to create/manage an additional drive inside the internal flash memory with drive letter Z:.



Ticket: #2154
Component: RTOS - File system
Type: enhancement
Summary: Flash erase function should use RTX_Sleep_Time()
Description: The flash erase operation can require multiple seconds to finish. Lower priority tasks should have a chance to execute during the flash erase procedure.
Solution: Use RTX_Sleep_Time() API inside internal flash erase loop.



Ticket: #2159
Component: RTOS - File system
Type: enhancement
Summary: Avoid the slow flash erase cycles when they are not necessary.
Description: The FORMAT A: flash drive action is slower than it needs to be for cases where some of the flash memory is already in its required erase state. This can be improved.
Solution: Inspect flash memory blocks before erasing them, to determine if an erase action is necessary.



Ticket: #2161
Component: RTOS - File system
Type: enhancement
Summary: Task priority boost inside file system
Description: To avoid task priority inversions, boost a task's priority temporarily while within the file system any time that a higher priority task is awaiting drive access.
Solution: File system revised.




RTOS - PPP
Ticket: #2133
Component: RTOS - PPP
Type: defect
Summary: Problem when configuring modem control messages
Description: When using the internal PPP client or PPP server, the user is able to specify modem messages at chip.ini or at the PPP client API to initialize and control the connected modem device. He can define string pairs for modem commands and expected answers. At the current implementation it not possible to specify modem answers, which contain one of the following strings:
"NO CARRIER"
"ERROR"
"NO DIALTONE"
"BUSY"
"NO ANSWER"

This is caused by the internal parsing method of the modem messages. It should be possible to specify these strings as valid expected modem answers.
Solution: Changed internal parsing method, so that these strings can be specified.



Ticket: #2176
Component: RTOS - PPP
Type: defect
Summary: PPP server netmask setting
Description: The PPP server IPv4 netmask setting is wrongly always set to 255.255.255.255. The Chip.ini entry [PPPSERVER] NETMASK has no effect.
Solution: Fixed.



Ticket: #2134
Component: RTOS - PPP
Type: enhancement
Summary: PPP server start after RTOS boot
Description: At the current RTOS implementation the PPP server must be started inside the RTOS boot process. It should be possible to start this service later, even if it was disabled at chip.ini.
Solution: Implemented. It is now possible to start the service with API PPP_Server_Activate(), if it is disabled by chip.ini.



Ticket: #2175
Component: RTOS - PPP
Type: enhancement
Summary: Clearing internal PPP Pause state at PPP close/startup
Description: In case, that the user forgot to resume the PPP client (or server) task after stopping it with PPP_Client_Pause() it is not possible to open a new PPP session.
To avoid such a situation, the PPP drivers shall clear the internal PPP pause state, when closing/opening a PPP session.
Solution: Done.




RTOS - Ethernet
Ticket: #2139
Component: RTOS - Ethernet
Type: enhancement
Summary: Ethernet shutdown procedure
Description: In case of a power-fail handling it can be required to close the Ethernet device immediately to reduce the power consumption of the system.
Solution: Added, a power-down of the PHY will be executed, if API function Dev_Notify_Ioctl is called with flag DEV_IOCTL_EXTENDED and sub-option DEV_SUBIOCTL_KILL.



Ticket: #2170
Component: RTOS - Ethernet
Type: enhancement
Summary: Increase Ethernet RX descriptors
Description: Should increase the Ethernet RX descriptors to improve the packet receive acceptance under heavy traffic.
Solution: Increase the Ethernet RX descriptors from 8 to 16.




RTOS - Config server
Ticket: #2171
Component: RTOS - Config server
Type: enhancement
Summary: Hello replies should be sent with a random delay
Description: Added a random 5-20ms sleep delay before sending hello replies to avoid simultaneous network traffic and possible collisions.
Solution: Added random delay.




RTOS - Serial ports
Ticket: #2128
Component: RTOS - Serial ports
Type: enhancement
Summary: Should increase number of possible external fossil ports
Description: Currently only up to 5 external/virtual UART ports can be installed with fossil_register_external_port(). Should support up to 20 ports.
Solution: Implemented.








Top of page | Main page

Copyright © Beck IPC GmbH