Raspberry Pi 4
Luke Bosman (9178) 2 posts |
Hello, Could anyone please assist? I used RISC OS from the late 1980s until buying a Mac shortly after the release of Mac OS X and I’m intrigued to see what is happening with RISC OS these days. Thanks. |
Chris Hall (132) 3554 posts |
One possibility is to install Rasbian on another SD card and let the Pi 4 update its firmware, i.e. the firmware on the on-baord ROM which operates before start4.elf and fixup4.dat are used. Then try the RISC OS SD card again. |
Bryan Hogan (339) 592 posts |
Could try using the Pi4 RISC OS Direct image instead – https://www.riscosdev.com/direct/ It will be interesting to know if that still works on the latest Pi4, given the other thread on this forum about changes to the Pi400 hardware that have broken the ethernet driver :-( |
Chris Mahoney (1684) 2165 posts |
If that doesn’t work, try copying the .elf, .dat and .bin files from /boot on the Raspberry Pi OS (Raspbian) card to your RISC OS card. I’m not sure how much of this is still required these days, but could be worth a shot.
I think the 4 and 400 have traditionally used the same Ethernet controller, so it’s possible that newer Pi 4s have also switched to the new controller. We’ll probably find out in due course… The “other thread” mentioned is this one. |
Chris Hall (132) 3554 posts |
On the Pi 4 the bootcode.bin file is not used – the on board rom firmware calls up start4.elf and fixup4.dat. Also useful is the revision code – the Pi 4 went to revision 1.2 in March 2020 (RISC OS works fine on that): The newest revisions (June 2020) are (not sure whether RISC OS runs on these): you can get the revision code by typing cat /proc/cpuinfo in Raspian but this is apparently now deprecated. Starting with version 2020-04-16 of the Raspberry Pi 4 bootloader, diagnostic information can be displayed at boot time on an HDMI display. To see this diagnostic information, power down the Raspberry Pi 4, remove the SD card, then power back up. A diagnostic display will show the board revision immediately after the ‘board’ text. RISC OS uses the revision code directly to work out what type of board (Pi 3, Pi 4 etc.) is being used. A new revision code foxes it. |
David Pitt (3386) 1248 posts |
Possibly the RISC OS firmware files don’t match the bootloader version in eeprom. The bootloader version can be found from Raspberry Pi OS with :- vcgencmd bootloader_version The firmware files are here From an RPi4 or RPI400 only start4.elf and fixup4.dat are required. Earlier Pi’s need start.elf, fixup.dat and bootcode.bin. Update The eeprom bootloader on an 8MB RPi4 rev 1.4 was updated to 2021/12/02 11:08:03 and the RISC OS image provided by Imager does run. (By way of a little topical entertainment RISC OS DHCP doesn’t, a manual IP configuration is required. It’s something to do with local WiFi extender weirdness.) pi@Arcanite:~ $ vcgencmd bootloader_version 2021/12/02 11:08:03 pi@Arcanite:~ $ neofetch ... OS: Raspbian GNU/Linux 11 (bullseye) armv Host: Raspberry Pi 4 Model B Rev 1.4 Memory: 228MiB / 7897MiB |
David Pitt (3386) 1248 posts |
Just purchased a new board – Raspberry Pi 4 Model B Rev 1.5 – rev b03115. |
David Pitt (3386) 1248 posts |
I have a rev 1.5 2MB RPi4 here. On start up with RISC OS 5.28, as offered by Imager, the boot error screen complains about start4.elf being incompatible and that a firmware update is needed. The files can be updated under Raspberry Pi OS if that is on a USB device and the RISC OS SD card is in the slot. Having done that RISC OS starts up. |
Chris Hall (132) 3554 posts |
Which firmware? Do you mean that start4.elf was too old or that the on board ROM software that calls start4.elf was too old? Suspect the former (which just means a simple download and replace either under RISC OS on a Pi 3 or under Windows) whereas the on board rom can only be updated using Linux. |
David Pitt (3386) 1248 posts |
On the RPi4 rev1.5 The ROM needs a little tweak to recognise both this new board and the new RPi400 rev1.1 to enable GPIO. |
Luke Bosman (9178) 2 posts |
Thanks. As I understand it, I have a rev1.5 board (c03115). According to rpi-eeprom-update it has the latest boot loader (29 Apr 2021). I am trying to understand, based on the responses above, precisely what I need to do. |
David Pitt (3386) 1248 posts |
That is a 4MB rev1.5.
Out of the box, I have :- pi@Arcanite:~ $ sudo rpi-eeprom-update BOOTLOADER: up to date CURRENT: Tue 25 Jan 14:30:41 UTC 2022 (1643121041) LATEST: Tue 25 Jan 14:30:41 UTC 2022 (1643121041) RELEASE: stable (/lib/firmware/raspberrypi/bootloader/stable) Use raspi-config to change the release. As it is now understood the eeprom firmware may not be the issue, With Raspberry Pi OS running insert the RISC OS SD card and the firmware FAT32 partition is revealed. Replace HTH |
Jon Abbott (1421) 2651 posts |
My Pi4 is still on back order so I can’t confirm, but I expect the RISCOS Pi image will need the firmware files updating for current Pi variants. Existing Pi users updating by moving their SD’s over should be okay, provided they keep the Pi firmware up to date, or update it prior to moving the SD over. The change in NIC on the RPI400 has obviously thrown a spanner in the works which needs some RO changes. I’m hoping that’s not an issue on the Pi4, but it sounds like there may now be different variants, possibly due to chip supply shortages or where the Pi was manufactured. |
David R. Lane (77) 766 posts |
Just tried Apr 29 2021 17:11:25 The version is a 40-character string which appears to be a hexadecimal number. The timestamp = update-time and seems to be a decimal number. Plus, with all those zeroes, it can’t be very capable. :-( |
Chris Hall (132) 3554 posts |
The version is a 40-character string which appears to be a hexadecimal number. The c03111 type revision code is now deprecated. Starting with version 2020-04-16 of the Raspberry Pi 4 bootloader, diagnostic information can be displayed at boot time on an HDMI display. To see this diagnostic information, power down the Raspberry Pi 4, remove the SD card, then power back up. A diagnostic display will show the board revision (type c03111) immediately after the ‘board’ text. |