category: Help, RaspberryPi <div id="toc_heading"></div><div id="toc"></div> h2. Raspberry Pi models supported The instructions given below are suitable for models of Raspberry Pi up to and including the Pi 4B and Pi 400. The Raspberry Pi 5 is <b>not supported</b>. h2. Accessing the bootloader partition The Raspberry Pi bootloader files live in the DOS partition of the boot SD. On a standard RISC OS build using a [[Dual-format SD card]], this can be reached by double-clicking on <b>!Boot.Loader</b> (i.e. shift-doubleclick on !Boot and then double-click on the file called "Loader"). h2. Pi bootloader files The Pi Zero, Pi 1, Pi 2 and Pi 3 use the following files: * @bootcode.bin@ - The boot loader for the CPU. * @start.elf@ - The GPU firmware. Forms a matched pair with _fixup.dat_ * @fixup.dat@ - Additional code for the GPU. Forms a matched pair with _start.elf_ * @riscos.img@ - The RISC OS ROM * @config.txt@ - Configuration parameters for the boot loader. See "below":#config for suggested contents. * @cmdline.txt@ - (Optional) Additional parameters to be passed to the kernel (i.e. RISC OS). See "below":#cmdline for possible contents. On the Pi 4 (and Pi 400) the following two files take the place of @bootcode.bin@, @start.elf@ and @fixup.dat@: * @start4.elf@ - The Pi 4 GPU firmware. Forms a matched pair with _fixup4.dat_ * @fixup4.dat@ - Additional code for the Pi 4 GPU. Forms a matched pair with _start4.elf_ Note that the Pi 4 has its boot code in the "onboard EEPROM":https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/raspberry-pi/boot-eeprom-rpi4.adoc so it does not need bootcode.bin. h2(#Obtain). Obtaining Pi firmware If you have the latest beta ROM, there is a good chance that the latest Raspberry Pi firmware will work. Use these direct links to download the latest firmware: * "bootcode.bin":https://github.com/raspberrypi/firmware/raw/master/boot/bootcode.bin * "fixup.dat":https://github.com/raspberrypi/firmware/raw/master/boot/fixup.dat * "fixup4.dat":https://github.com/raspberrypi/firmware/raw/master/boot/fixup4.dat * "start.elf":https://github.com/raspberrypi/firmware/raw/master/boot/start.elf * "start4.elf":https://github.com/raspberrypi/firmware/raw/master/boot/start4.elf If you experience problems with the latest firmware - or if your RISC OS ROM dates from 2023 or earlier - you should try an older firmware release, available from the following index pages[1]: * RISC OS 5.24 and 5.26: Use "January 2019 firmware":https://github.com/raspberrypi/firmware/tree/81cca1a9380c828299e884dba5efd0d4acb39e8d * RISC OS 5.28: Use "April 2023 firmware":https://github.com/raspberrypi/firmware/tree/543692d23dff7075915bc9c7e34abb3fe28e1c46 * RISC OS 5.29: Use firmware with a build date[2] of "29 February 2024":https://github.com/raspberrypi/firmware/tree/dc94391863445ab867782d25ca6ae1e88579df5d * RISC OS 5.30: Use firmware with a build date[2] of "29 February 2024":https://github.com/raspberrypi/firmware/tree/dc94391863445ab867782d25ca6ae1e88579df5d * RISC OS 5.31: Use firmware with a build date[2] of "29 February 2024":https://github.com/raspberrypi/firmware/tree/dc94391863445ab867782d25ca6ae1e88579df5d For the <b>Pi Zero, Pi 1, Pi 2 and Pi 3</b>, the procedure to follow is: * Go to the appropriate firmware page on GitHub (see above). * Click on "boot" * Click on "bootcode.bin" * Click on the *Download* button (at the extreme right of the window) [3] * Click on your browser's *BACK* button * Click on "fixup.dat" * Click on the *Download* button * Click on your browser's *BACK* button * Click on "start.elf" * Click on the *Download* button For the <b>Pi 4B and Pi 400</b>, the procedure to follow is: * Go to the appropriate firmware page on GitHub (see above). * Click on "boot" * Click on "fixup4.dat" * Click on the *Download* button (at the extreme right of the window) [3] * Click on your browser's *BACK* button * Click on "start4.elf" * Click on the *Download* button fn1. <small>These index pages may not work if you are using NetSurf. Please use another browser to retrieve the firmware files.</small> fn2. <small>This is the date as reported by "vcgencmd version". The website will mention the release date, which can be later than the build date.</small> fn3. <small>The download button contains a downward-pointing arrow - when you hover the mouse pointer over the button you should see a tooltip of "Download raw file".</small> h2(#Install). Installing the new firmware From RISC OS: * Click on the SD card icon to open a Filer window. * Shift-doubleclick on !Boot. * Doubleclick on Loader. * For a Pi 4B or Pi 400, delete the files "fixup4/dat" and "start4/elf", replacing them with the new versions you downloaded above. * For a Pi Zero, Pi 1, Pi 2 or Pi 3, delete the files "bootcode/bin", "fixup/dat" and "start/elf", replacing them with the new versions you downloaded above. * Close all Filer windows. * Wait 15 seconds, then reboot. From Windows/macOS/Linux: * Insert the RISC OS SD card into a SD card reader connected to a Windows/macOS/Linux machine. * Open a window on the first (or only) partition on the card. This is usually labelled "Boot" and will contain files with names such as config.txt, fixup.dat, fixup4.dat, riscos.img, start.elf and start4.elf. * For a Pi 4B or Pi 400, delete the files "fixup4.dat" and "start4.elf", replacing them with the new versions you downloaded above. * For a Pi Zero, Pi 1, Pi 2 or Pi 3, delete the files "bootcode.bin", "fixup.dat" and "start.elf", replacing them with the new versions you downloaded above. * Dismount the card (on macOS this option is labelled "Eject") and wait for its icon to disappear. You may instead get a message of the form <i>"It is now safe to disconnect the device"</i>. * Unplug the SD card from the card reader and reinsert the SD card into the Pi. h2. Configuration files h3(#config). config.txt This is a plain text file. The following example should be suitable for all models of Raspberry Pi supported by RISC OS: <pre> <code> [pi4] enable_gic=1 [all] arm_64bit=0 fake_vsync_isr=1 framebuffer_swap=0 gpu_mem=64 init_emmc_clock=100000000 kernel=RISCOS.IMG ramfsfile=CMOS ramfsaddr=0x508000 </code> </pre> If you have a Pi 4B or Pi 400, config.txt *must* have a @[pi4]@ section containing the line @enable_gic=1@ Parameters applicable to all models of Raspberry Pi appear in the @[all]@ section. These parameters - and several others that may be of interest to RISC OS users - are discussed in more detail at [[config.txt (Raspberry Pi)]]. h3(#cmdline). cmdline.txt This file is optional: RISC OS will still boot if it is not present. If you are running a development version of RISC OS (5.27, 5.29 or 5.31) you may need to specify the following parameter to avoid a "blank screen":/forum/forums/11/topics/10346 issue. <pre> disable_gamma </pre> Parameters must be space separated on the first line of the file, so if you wanted to specify two parameters, you would do it like this: <pre> disable_mode_changes disable_gamma </pre> For details of the parameters available, see [[cmdline.txt (Raspberry Pi)]].