IPC@CHIP® RTOS-PPC – API Documentation

Header image

Main page


Release Notes – SC2x3 @CHIP-RTOS-PPC V1.06 Beta

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


RTOS - Command shell
Ticket: #125
Component: RTOS - Command shell
Type: defect
Summary: TASKS command sometimes displays an invalid duty cycle value
Description: A value like 1301.42% for the "Overall CPU duty cycle" was observed in the TASKS command's console output when operating in a low power mode.
Solution: Check for underflow in Duty Cycle calculation. Reimplement the idle time accumulation used during sleep modes.



Ticket: #204
Component: RTOS - Command shell
Type: defect
Summary: Shell commands W8, W16 and W32 perform also a memory read
Description: The shell commands W8, W16 and W32 should only write a value to a memory address. They should not read from this address. This will ease the trace with a scope.
Solution: Fixed.



Ticket: #218
Component: RTOS - Command shell
Type: defect
Summary: Problems with command line editor
Description: The command line editor "edit" does not show a text line correctly if it contains more than 40 characters. The editor has also problems scrolling a long line (more than 80 characters) from right to left.
Solution: Fix these problems plus a few other minor errors in the EDIT implementation.



Ticket: #128
Component: RTOS - Command shell
Type: enhancement
Summary: Add BIOS_ExecuteExt() API to provide optional feedback to caller
Description: Add BIOS_ExecuteExt() API in manner done for RTOS-x86, which provides feedback for COPY, FORMAT commands and BEX programs.
Solution: Implemented.




RTOS - Debugger
Ticket: #199
Component: RTOS - Debugger
Type: defect
Summary: PROBE socket options not set properly
Description: The intended Rx/Tx TCP buffer sizes are not being set as intended.
Solution: Apply socket options to TCP server socket, not the data socket resulting from the listen().



Ticket: #208
Component: RTOS - Debugger
Type: defect
Summary: Faults in callbacks do not get reported to debugger
Description: The callback fault handler should notify the PROBE to make debugging easier.
Solution: Notify PROBE at callback faults.




RTOS - File system
Ticket: #147
Component: RTOS - File system
Type: defect
Summary: Revert change request #22
Description: After change request #22 long file name directory entries are no longer spent on drive A: and C: for 8.3 names when lower case letters are used.

Revert this change request, because it causes problems with the ONE-Workbench FTP client. The ONE-Workbench FTP client relies on the case of file names.
Solution: Spend again long file name directory entries on A: and C: when 8.3 names in lower case are used.



Ticket: #158
Component: RTOS - File system
Type: defect
Summary: File system's open files are not completely thread safe
Description: When multiple threads perform file operations with the same handle, this could lead to invalid memory accesses. In particular, this could happen if a file is closed while another thread is operating on that file.
Solution: Change file system's use of semaphores.



Ticket: #162
Component: RTOS - File system
Type: defect
Summary: Flash translation layer allocation table handling error
Description: At power up, the Flash translation layer scan over its allocation table is performing unnecessary writes to the flash.
Solution: Correct the power loss recovery logic in Flash translation layer power up routines.



Ticket: #193
Component: RTOS - File system
Type: defect
Summary: FTLRECL command leaves flash memory semaphore locked
Description: Execution of the FTLRECL command will leave all other threads locked out of the flash memory.
Solution: Fixed.



Ticket: #154
Component: RTOS - File system
Type: enhancement
Summary: Show file system status at MEM command console listing
Description: The number of open files and number of tasks signed into the file system are critical to the file system operation. Some means of seeing this information is needed by user. These numbers can be appended to the MEM command listing.
Solution: Implemented.



Ticket: #155
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: Implemented.



Ticket: #159
Component: RTOS - File system
Type: enhancement
Summary: Flash write debug trace is missing
Description: The CHIP.INI option [TRACE] FLASHWRITE that can be used to monitor the flash write and erase cycles for debug purposes is missing in the RTOS-PPC.
Solution: Implemented.



Ticket: #161
Component: RTOS - File system
Type: enhancement
Summary: Boost task priority on tasks in file system when higher priority tasks want access
Description: Termporarily boost the priority of low priority tasks while they are inside the file system when ever there are higher priority tasks which want access to the same disk drive.
Solution: Boost priority on task that already have drive access when ever a higher priority task arrives which also wants access. Restore the task's original priority when drive access is released.

Also a bug in the linked list mechanism used to queue tasks awaiting access to file system has been corrected.




RTOS - Hardware
Ticket: #178
Component: RTOS - Hardware
Type: defect
Summary: Interrupts do not work on all GPIO interrupt pins
Description: The GPIO pins of type "GPIO Interrupt" do not generate an interrupt. Only the "GPIO Interrupt/Wakeup" pins work as expected.
Solution: Fixed.



Ticket: #85
Component: RTOS - Hardware
Type: enhancement
Summary: DMA transfer API
Description: Should implement an API for DMA transfers.
Solution: Implemented first experimental version for dual-pointer DMA transfers gated by a GPIO.



Ticket: #90
Component: RTOS - Hardware
Type: enhancement
Summary: PCI bus API
Description: Should support the PCI bus interface of the processor.
Solution: Implemented basic PCI API.




RTOS - I2C
Ticket: #205
Component: RTOS - I2C
Type: defect
Summary: I2C receive functions execute one bus cycle too much
Description: The I2C receive functions perform one read cycle on the I2C bus too much. E.g. if the user requests to read three bytes, then 3 bytes are read into the user buffer, but a fourth cycle is performed at the bus.
Solution: Fixed.




RTOS - PPP
Ticket: #216
Component: RTOS - PPP
Type: defect
Summary: Failure when displaying PPP remote IP address with the IPCFG command
Description: In case of a successful established PPP connection, when the remote IP address is "0.0.0.0", the remote PPP peer IP address is set to own address + 1. In this case the IPCFG command displays wrongly "0.0.0.0".
Solution: The IPCFG command prints now the correct address.




RTOS - Serial ports
Ticket: #163
Component: RTOS - Serial ports
Type: defect
Summary: fossil_flush_output() should block other sending threads
Description: If fossil_flush_output() is called and a higher priority task still sends data, then the time the flush occurs is not clear.

Should block any other sending threads until flush is done.
Solution: Fixed.



Ticket: #213
Component: RTOS - Serial ports
Type: defect
Summary: Multidrop mode is not working correctly
Description: During multidrop operation the address/data bit is loaded into the parity error bit of the serial port status register. Currently the serial port driver discards characters that have the parity error bit set. Therefore no address characters can be received in multidrop mode.

Must ignore the parity error bit in the serial port driver if the multidrop mode is used.
Solution: Fixed. Also extended the fossil callback function. In multidrop mode received characters with ninth bit set generate now the event FE_DATA_AVAIL9.



Ticket: #214
Component: RTOS - Serial ports
Type: defect
Summary: RS485 and flow control settings lost after baud rate change
Description: After a call to fossil_setbaud() the RS485 mode and flow control settings are lost.
Solution: Fixed.



Ticket: #217
Component: RTOS - Serial ports
Type: defect
Summary: fossil_init() for UART3 disturbs SPI operation
Description: A call to fossil_init() or fossil_initmode() with UART3 will remove a potentially SPI utilization from the PSC3 group. THis happens when the fossil function is called a second time and was not intended, because UART3 and SPI can work in conjunction on PSC3.
Solution: Correct logic and preserve SPI usage on PSC3 group.



Ticket: #174
Component: RTOS - Serial ports
Type: enhancement
Summary: Should use different clock prescalers at different baud rates
Description: The CPU supports two different UART clock prescalers for baud rate clock divider calculation. Should use prescaler 4 for higher baud rates and prescaler 32 for lower baud rates. This will help to increase the precision of the UART baud rate.
Solution: Implemented.




RTOS - System
Ticket: #153
Component: RTOS - System
Type: defect
Summary: RTX_PhysAddr() does not translate external chip select addresses
Description: The RTX_PhysAddr() API should not return NO_PHY_ADDRESS for addresses in the external chips select region at 0xE0000000.
Solution: Fixed.



Ticket: #156
Component: RTOS - System
Type: defect
Summary: Correct ordered queue used in file system
Description: When more than one task is waiting access to a drive or file node, the ordered queue is not ordered correctly.

Also tasks should be protected against STOP, KILL or DELETE task actions while inside the file system.
Solution: Save the queue key required for the proper order. Keep tasks protected from KILL, STOP or DELETE actions while inside the file system.



Ticket: #157
Component: RTOS - System
Type: defect
Summary: BEX program launch gives "Insufficient heap space for program arguments" error message
Description: RTOS should instead inflate the program's heap space automatically instead of issuing this error message when the provided heap space is too small.
Solution: Adjust heap space so that program arguments fit.



Ticket: #160
Component: RTOS - System
Type: defect
Summary: RTX_Task_Priority() does not handle zero task ID for current task correctly
Description: RTX_Task_Priority() should accept a zero in place of the current task ID. This is not working.
Solution: Correct the RTX_Task_Priority() API.



Ticket: #164
Component: RTOS - System
Type: defect
Summary: BIOS_Select_Stdio() should flush the output buffers
Description: The BIOS_Select_Stdio() function should flush the output buffer before re-initialization of the STDOUT UART ports.
Solution: Fixed.



Ticket: #165
Component: RTOS - System
Type: defect
Summary: Message Envelope leak in Message Exchange destructor
Description: Any message envelopes left posted on a Message Exchange are lost when the Message Exchange is destroyed by the system after an application program exit.
Solution: Free the Message Envelopes for any messages left posted on exchange at the destructor.



Ticket: #169
Component: RTOS - System
Type: defect
Summary: Device name is always in uppercase
Description: The device name set in CHIP.INI section [DEVICE] is always converted to uppercase. This was not intended.
Solution: Fixed.



Ticket: #140
Component: RTOS - System
Type: enhancement
Summary: Allow User mode execution of "read-only" RTOS API
Description: RTOS API which does not touch hardware or otherwise modify the RTOS state can be executed in User mode. This will reduce the overhead needed to access RTOS functions.
Solution: Add User mode call table to RTOS and move some of the System Call API which do not modify the RTOS state over to this new vector table.



Ticket: #143
Component: RTOS - System
Type: enhancement
Summary: Add RTX_Publish() API to allow easy global data sharing between programs
Description: The suggested method of establishing sharing data through Message Exchanges is not practical for a single server broadcasting data to many clients programs. For example, a driver program may want to provide status data to who ever cares to read the news.
Solution: Add RTX_Publish() and RTX_GetPublication() API.



Ticket: #171
Component: RTOS - System
Type: enhancement
Summary: Semaphore protect internal printf()
Description: For rare cases where RTOS tasks are simulataneously outputing to console, sequence these with semaphore.

(Previously such text output could end up intermixed on console.)
Solution: Implemented.



Ticket: #173
Component: RTOS - System
Type: enhancement
Summary: Revise RTX_InstallExitCB() API
Description: C-lib resource leaks can occur when user uses the RTX_InstallExitCB() API. It would be safer if the system was not limited to a single task exit callback per task so that each callback could operate independent from any others.
Solution: Allow multiple task exit callbacks to be installed for each task. Add a new API, RTX_RemoveExitCB() for callback removal.



Ticket: #182
Component: RTOS - System
Type: enhancement
Summary: Add Crypt_Random_Bytes() API
Description: Cryptographic applications such as OpenVPN driver would benefit from a random number API.
Solution: Add Crypt_Random_Bytes(). Also mix hardware noise into PRNG so that re-seeding the PRNG is not necessary.



Ticket: #186
Component: RTOS - System
Type: enhancement
Summary: Provide high resolution Time/Date API
Description: Some user's desire a time/date API with resolution below one second.
Solution: API RTX_Set_TimeDate_us() and RTX_Get_TimeDate_us() have been added to the Beck C-Library with implementation in the @CHIP-RTOS-PPC.



Ticket: #190
Component: RTOS - System
Type: enhancement
Summary: Add BLOWFISH cipher API
Description: BLOWFISH is the default encryption used for OpenVPN. It would therefore be desirable for the @CHIP-RTOS-PPC to support this cipher method.
Solution: Blowfish API added. Blowfish suite can now also be used by SSH and IPsec/IKE.



Ticket: #191
Component: RTOS - System
Type: enhancement
Summary: Add DES/3DES cipher API
Description: For OpenVPN driver use, the DES and 3DES cipher methods are desirable as API.
Solution: Implemented new API functions.



Ticket: #211
Component: RTOS - System
Type: enhancement
Summary: API function for reading second MAC address
Description: An API function for reading optional second MAC address is required.
Solution: Added BIOS_Get_MAC2() function.




RTOS - TCP/IP
Ticket: #126
Component: RTOS - TCP/IP
Type: defect
Summary: DNS cache is not initialized correctly
Description: The RTOS internal DNS cache is not initialized correctly at startup.
Solution: Fixed.



Ticket: #141
Component: RTOS - TCP/IP
Type: defect
Summary: Add protection in TCP/IP device driver API
Description: Some additional checks are required on data pointers provided by users to assure System Calls do not damage RTOS data.
Solution: Added more user parameter checks inside the Dev_Open_Interface() API.



Ticket: #151
Component: RTOS - TCP/IP
Type: defect
Summary: Potential TCP/IP memory leak
Description: In unlikely case that incoming ICMP packets are larger than 2048 bytes, a TCP/IP memory leak would result as the memory for the incoming packet is not released.
Solution: Allow the packet to be release for this special case.



Ticket: #152
Component: RTOS - TCP/IP
Type: defect
Summary: PING command leaks contents of internal memory
Description: The data sent out in the ICMP PING messages are garbage values left in internal memory from other usage. This data should instead be set to some information void test patterns, for better security.
Solution: PING data preset to data patterns. Also resolve PING timing to milliseconds instead of the 100 ms resolution used previously.



Ticket: #175
Component: RTOS - TCP/IP
Type: defect
Summary: IPCFG/IPv6CFG command locks up TCP/IP communication
Description: If the IPCFG or the IPv6CFG command is used at a Telnet session, which is tunneled by SSH, the TCP/IP communication hangs.
Solution: Fixed.



Ticket: #206
Component: RTOS - TCP/IP
Type: defect
Summary: Incomplete socket cleanup at program termination
Description: Sockets of a program application created by accept() are not closed at the internal program termination procedure.
Solution: Fixed.



Ticket: #207
Component: RTOS - TCP/IP
Type: defect
Summary: SSL session resumption does not work in all cases
Description: The SSL session resumption does not work if the SSL close notify message is received with the FIN flag set.
Solution: Fixed.



Ticket: #139
Component: RTOS - TCP/IP
Type: enhancement
Summary: Network trace
Description: For debugging purposes, there should be a possibility to trace all network traffic and write it into log files.
Solution: Implemented new command called "sniff".



Ticket: #149
Component: RTOS - TCP/IP
Type: enhancement
Summary: Adapt TCP/IP Device Driver API for OpenVPN tunnel
Description: Some adjustments to the TCP/IP device driver API will be required to support IP tunnel (TUN), as used by OpenVPN.
Solution: Add another device type to Dev_Open_Interface() API.



Ticket: #150
Component: RTOS - TCP/IP
Type: enhancement
Summary: Dev_Get_IfaceEntries_IPv6() API is missing
Description: The Dev_Get_IfaceEntries_IPv6() API which is offered in the RTOS-x86 is not yet implemented in the RTOS-PPC. This API should be added.
Solution: Implemented.



Ticket: #188
Component: RTOS - TCP/IP
Type: enhancement
Summary: Execution of specific device driver functions
Description: TCP/IP Device Driver API: It should be possible to execute specific functionalities at the drivers IOCTL function.
Solution: API function Dev_Notify_Ioctl() will trigger the execution of an existing driver IOCTL function with specific parameters.



Ticket: #202
Component: RTOS - TCP/IP
Type: enhancement
Summary: Add big number support for cryptographic programs
Description: Application program access to the big number computations would help cryptographic programs such as OpenVPN. In particular, the modular exponentiation functions should be made available, since this operation has been optimized for speed.
Solution: Add Crypt_BN_Mod_Exp() and other API.



Ticket: #212
Component: RTOS - TCP/IP
Type: enhancement
Summary: Adjust TCP/IP driver API so that device can be re-installed
Description: The Dev_Open_Interface() API fails if a device by the specified name has already been installed. If that device has been closed, this API should allow a new installation. (In this way a driver program can exit and be started again.)
Solution: Adjust implementation so that closed devices can be re-installed.




RTOS - USB
Ticket: #215
Component: RTOS - USB
Type: defect
Summary: Machine check exception in USB0 task
Description: In case of a USB_EVENT_ERROR_LOST_EVENT or USB_EVENT_ERROR_BANDWIDTH event occuring, the USB0 task will produce a machine chevk exception. The USB0 task will be suspended and USB won't work anymore.
Solution: Fixed




RTOS - Web server
Ticket: #129
Component: RTOS - Web server
Type: defect
Summary: HTTP file UPLOAD unreliable
Description: CGI closes file handle zero without first opening this file. If the owner of that file then calls fseek() on that handle during the UPLOAD operation, the resulting file can be incomplete with parts clipped out of the middle.
Solution: Correct CGI initialization.



Ticket: #138
Component: RTOS - Web server
Type: defect
Summary: CGI_SetRootDir() can fail
Description: The CGI_SetRootDir() API call will fail if the current working drive of the calling task is not equal to the web server drive.

The function checks whether the given directory exits, but did not change to the web server drive. So it erroneously checks if the directory exits on the current drive of the calling task.
Solution: Fixed.



Ticket: #146
Component: RTOS - Web server
Type: defect
Summary: Web server sometimes does not close files
Description: In some cases the files opened by the web server are not correctly closed. In this case also a memory leak occurs.
Solution: Fixed.



Ticket: #130
Component: RTOS - Web server
Type: enhancement
Summary: Reset connection when not enough memory to send CGI data
Description: When there is not enough memory to buffer the user's CGI data for send, the web server closes the TCP connection. To signal the client that the data was not complete the connection should be reseted.
Solution: Implemented.



Ticket: #201
Component: RTOS - Web server
Type: enhancement
Summary: Web file upload throughput can be increased
Description: The web file upload throughput can be increased by using a buffered file system write.
Solution: Implemented.




RTOS - Config server
Ticket: #183
Component: RTOS - Config server
Type: enhancement
Summary: Disable transmission of "Hello answers" via PPP connections
Description: It should be possible to disable the transmission of "Hello answers" via PPP connections.This is useful to reduce the network traffic for PPP devices, which normally have a very limited bandwidth.
Solution: Implemented, the chip.ini entry [UDPCFG] LEVEL= or API function BIOS_Config_Server_Level() supports now this functionality.




RTOS - Ethernet
Ticket: #144
Component: RTOS - Ethernet
Type: enhancement
Summary: Packet driver API should have added protection against user errors
Description: Packet API leaves the system at the mercy of application programs. Further parameter checking would be in order.
Solution: Add some further checks on entry into the various Packet handler API.



Ticket: #203
Component: RTOS - Ethernet
Type: enhancement
Summary: Improvement of the ethernet frame transmission/reception
Description: Should implement optimizations at the internal buffer management of the Ethernet device.
Solution: Implemented. Ethernet throughput has been significantly increased.




RTOS - FTP server
Ticket: #197
Component: RTOS - FTP server
Type: enhancement
Summary: Throughput of FTP file read/write actions can be significantly improved
Description: The throughput of FTP file read/write actions can be significantly improved by increasing the internal file buffer size.
Solution: Increased the internal file buffer size from 1536 to 65536 bytes.








Top of page | Main page

Copyright © 2009 Beck IPC GmbH