Stable Release Status
Summary
The table below gives a summary of the stable release (5.30) readiness of each RISC OS port, based upon a review by RISC OS Open conducted on 28 May 2022 (14 Jul 2022 for the PineA64) of the code in GitLab. This page will be updated weekly as the planned release date approaches; watch this space…
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Status | Status | - | Status | Status | Status | - | Status | Status |
0 remain | 0 remain | 28 remain | 0 remain | 0 remain | 0 remain | 25 remain | 3 remain | 2 remain |
Details
Please note: many of these ports are maintained by other people and companies so this should not be interpreted as indicating the work remaining for ROOL to complete the stable release preparation.
The remainder of this page gives a more detailed breakdown of the status of each port, based upon the criteria specified in our stable release policy. Hover over any amber or red coloured table entries and a box will pop up showing which aspects need addressing to achieve a green pass.
You can also compare this with the previous readiness tests for RISC OS 5.24 or RISC OS 5.28.
Update 10-Mar-2023
Raspberry Pi transitioned from amber to red.
Update 15-Apr-2023
Hang on boot for Raspberry Pis using the SDHOST controller now fixed (Ben Avison).
Folded issues previously listed under “Forums/mailing lists” into the main table.
Number of issues left to address now shown in summary.
Update 19-Aug-2023
Confirmed OMAP5 video driver issue is still present; 5 of 9 monitors tested showed no image.
Added bug 611 to Pi port.
Update 05-Sep-2023
The Pi 400 rev 1.1’s Ethernet chip is now supported (Sprow).
Update 25-Nov-2023
PineVideo no longer uses untrappable error base of 0 (Cameron).
PineVideo HDMIOn/Off commands contained hardwired English, now removed (Cameron).
Update 21-Feb-2024
PineVideo no longer attempts *WimpMode command during Service_PostInit (Cameron).
Update 20-Mar-2024
Workaround for Pi’s SDHOST controller on using CMD23 corrupting SD cards due to silicon bug (Ben Avison).
Compute Module 4 eMMC now detected via mailbox message, restoring SD card compatibility (Sprow).
Raspberry Pi transitioned from red to amber.
Update 20-Apr-2024
Fix to OMAPHDMI to allow it to work with a wide selection of brands of monitors (ROOL).
OMAP5 transitioned from amber to green.
Update 25-Apr-2024
Having reviewed the residual desirable items, and confirmed that they have not regressed since the position at RISC OS 5.28, or await changes from a 3rd party beyond our control, Raspberry Pi and Titanium have transitioned from amber to green.
Administrative
The port status page should reflect the current status of any known unresolvable problems
Port has “Status of the NNN port” page on the wiki, and is up to date (see policy) so users can compare ports side by side.
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail No page. |
Pass | Pass | Pass | Fail No page. |
Pass | Pass |
A products file must be provided listing the tags of all the components included, and corresponding components file
ROOL will generate the tags prior to building release candidates
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
If a previous stable release exists, the (autogenerated) change logs must be made available based on the previous products file. Newly stable platforms can’t provide this, so isn’t needed.
ROOL will generate change logs from the previous products files
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | N/A | Pass | N/A | Pass | N/A | Pass | Pass |
Peripherals
Accessible plugs and sockets for which there are support in contemporary platforms should be similarly supported
Inaccessible or internal plugs and sockets need not be supported, or can be powered down
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Pass | Pass | Pass | Pass | Fail External HDMI socket not active. |
Pass | Pass |
Modules
Module names, SWI bases, error bases etc… must be registered using the normal allocation service to avoid clashes.
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Desirable Change AHCIDriver module title to SCSISoftAHCI to fit into existing SCSIDriver client scheme (cf. SCSISoftUSB, SCSISoftWD33C93). |
Pass | Pass | Pass | Pass | Pass | Pass |
ROM based modules must be internationalised via MessageTrans, with default en-gb translations in ResourceFS.
Disc based modules can use fixed en-gb strings, since international users can replace those easily by copying a localised version on top.
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail Hardwired English found in AHCIDriver, EtherTH. PartMan (the task title, plus a spelling mistake in CmdHelp) though this isn’t in the ROM components file so can be English only. |
Pass | Pass | Pass | Fail PartMan (the task title, plus a spelling mistake in CmdHelp). |
Pass | Pass |
Programmer’s interfaces
Any newly introduced APIs should be finalised and run past ROOL to check they make provision for future hardware.
From inspection of GitLab and Code review forum from 20-Feb-2020 to 28-May-2022
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail Some docs for PartMan SWIs required to check API design. Recommended improvements to SPIDriver API have not been made yet. |
Pass | Pass | Pass | Fail Some docs for PartMan SWIs required to check API design. |
Pass | Pass |
Any extensions to existing APIs should be finalised, and extended in as backwards compatible manner as practical.
Part of the guarantee of a stable release is that programmer’s can rely on (and test for) APIs and that they will be continue to be supported in the future
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Desirable HAL CPUClkDevice should move to API 0.2. HAL GPIODevice should move to API 1.0 |
Pass | Pass | Pass | Fail HAL AudC, Mixer, DMAC, DMAL and VDU devices are all reusing device ID’s that were allocated to other controllers. Battery management SWIs are not implemented, see ticket 571. |
Pass | Pass |
Updates to other disc based applications that your platform relies upon should also have been made
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
Hardware abstraction
Generally the main difference between platforms are involved in the HAL; video; USB; and ethernet, though some platforms might share some of these. Each must implement the entry points that their contemporaries do.
HAL
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail SoftCMOS not required – just clear the area (so the checksum fails) and the kernel will substitute the correct CMOS defaults, rather than Iyonix ones. Freescale copyrighted code (eg. sdk_types.h) has been prefixed with Apache licence, also ROOL BSD code in hdr/SDMAAsm & s/SDMAScripts & s/SDMA. HAL_ATACableID & HAL_ATASetModes can be deleted now. Useful to return a string for HAL_PlatformName, rather than NULL. AudioTemplate shows SGTL5000 reports as connected via IIC, should probably be IIS (the mixer would be IIC). OSStartFlag for power on reset is hardwired as always set, even for hard resets. HAL_PlatformInfo compares a1 and ip, when both are undefined on entry. HAL_PhysInfo is incorrect for iMX6 – this looks like a copy & paste of Pandaboard’s physical memory arrangement. HAL GPIO device template claims API 0.1, but copy loop stops after only copying the API 0.0 fields. |
Pass | Pass | Pass | Fail Video device incorrectly reports IMX6 device ID. Video device exposes internal values beyond the end of the documented structure, which PineVideo relies on at +16 and +20. 3 UARTs are reported all with modem control lines, missing baud rate setter, FIFO size returns undefined results (though feature flags reports they are present), modem control function has no EXIT (stack imbalance). Top level HALEntry table entries aren’t linked to the code, despite non-zero UART count. AudioTemplate declares a SGTL5000 mixer which isn’t present on the design. OS start flags determined from undefined register (actually, return pointer from OS_AddRAM). HAL_ControllerAddress, HAL_HardwareInfo, HAL_SuperIOInfo not implemented. Useful to return a string for HAL_PlatformName, rather than NULL. HAL_PhysInfo table not implemented. Neither machine ID nor extended machine ID are implemented for unique ID generation. DMA device incorrectly reports IMX6 device ID. RTC device incorrectly reports TPS65950 device ID. List of modules for boot keyboard scan is missing InternationalKeyboard, and includes BBC BASIC. Minor: CLibAsm contains RISC_OSLib functions relicensed as CDDL without attributing the original author(s). Unused NIC & NVMemory sources could be deleted. |
Pass | Pass |
Video driver
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Desirable Uses unallocated error base of 0. |
Pass | Pass | Pass | FailDriver carries a built in MDF. On start, scans HAL for API 10.0. |
Desirable Screen blanks when gamma correction is enabled, see ticket raspberrypi/firmware/issues/971. [494] Pi Zero video detects the TV, PI 3 doesn’t. Pi 4 gamma is very bright as it uses a polynomial but the mailbox API takes a table, see ticket raspberrypi/firmware/issues/1404. |
Pass |
All GraphicsV entry points are implemented
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Desirable No Vet Mode 2 entry. |
Pass | Pass | Pass | FailMissing IICOp entry to read EDID EEPROM, IIC is connected on the panel CON1, see ticket 588. No Vet Mode 2 entry. No ReadInfo entry. |
Pass | Pass |
USB
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | N/A | Pass | Pass | Pass | Pass | Pass | Desirable XHCIDriver abort when unplugging/switching KVM forum/forums/4/topics/15609. |
Desirable XHCIDriver abort when unplugging/switching KVM forum/forums/4/topics/15609. |
USB sockets act upon overcurrent situations.
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
USB bulk, control, and interrupt end points are supported.
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass | Pass |
Ethernet
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail HAL EtherDevice exposes HAL workspace pointer. Service_DCIProtocolStatus doesn’t deregister filters when the protocol module goes away, see DCI4 4.2.4. Command ETHConfig would be better as a configure keyword (see EtherK for suitable set), and store value in NIC podule CMOS. DIB reports that extended stats are available, but none are defined or provided. Do not call HAL_IRQDisable on clearing up, just release the device vector, see https://www.riscosopen.org/wiki/documentation/show/Interrupts. Hangs as ‘mod init complete’ approx 1:10, InitPause recommended in !Boot to workaround Ethernet startup issues. |
Pass | Pass | Pass | Pass | Pass | Desirable Synology NAS at 1Gbps can cause packets to be dropped and reduced throughput |
An autosense file is provided for any new ethernet driver(s), which abandons gracefully on systems that don’t include that driver
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail None provided. |
Pass | Pass | Pass | Pass | Pass | Pass |
The info/self test commands are implemented and follow the general form of the other ethernet drivers (eg. EtherK)
Beagleboard | IOMD | iMX6 | Iyonix | OMAP5 | Pandaboard | PineA64 | Raspberry Pi | Titanium |
---|---|---|---|---|---|---|---|---|
Pass | Pass | Fail No ETHTest self test (see DCI4 section 9.1). EthConfig should use configure syntax similar to EtherK, and store result in CMOS for the NIC. |
Pass | Pass | Pass | Pass | Pass | Pass |