INTL 3:770/1 3:770/3
REPLYADDR theom+news@chiark.greenend.org.uk
REPLYTO 3:770/3.0 UUCP
MSGID: b63b7bb6
REPLY: 746cca33
PID: SoupGate-Win32 v1.05
Lawrence D'Oliveiro wrote:
> On Mon, 27 Jan 2025 14:04:07 +0000, The Natural Philosopher wrote:
>
> > Yup Arm/broadcomm based Pis 'do it their way'
> >
> > It goes back to the chips inception as a set top box embedded processpor
>
> Also remember that GRUB depends on BIOS or UEFI, and the former is x86-
> specific -- not sure about the latter.
UEFI isn't x86 specific - Arm uses it as well.
> Basically, every vendor’s ARM chipset came up with its own way of booting.
> In the absence of a BIOS-style interface for querying what hardware is
> available, the Linux kernel is built with a “device tree” structure that
> hard-codes this information for your specific chipset.
Yes, although to note that there are typically several stages of booting.
The UEFI / u-boot / etc is often the second or third stage of booting. They
come after things like the ROM first-stage bootloader then the second stage
bootloader loadered from flash, or similar. Sometimes boot is handled by a
CPU that isn't the main one, such as a 'management' CPU or in the Pi
1/2/3's case the GPU.
In the classic Pi 1, the process is:
1st stage: ROM bootloader (enough to read SD card)
2nd stage: bootcode.bin on SD card (firmware for GPU)
3rd stage: start.elf on SD card (firmware for GPU)
4th stage: Linux kernel from SD card (for CPU)
In Pi 3 and later the ROM bootloader also knows enough to read USB sticks as
well as SD cards. The early stage(s) also move to EEPROM on Pi 4 to make
them easier to update.
> There is now an equivalent spec standardized for the ARM world (adaptation
> of UEFI??), but I understand this is only in use on servers with AArch64,
> and the Raspberry Pi predates it anyway.
It's possible to run another bootloader like u-boot or UEFI as your fourth
stage, ie:
1st stage: ROM bootloader (GPU)
2nd stage: bootcode.bin on SD card (GPU)
3rd stage: start.elf on SD card (GPU)
4th stage: UEFI / u-boot on SD card (CPU)
5th stage: Linux kernel (CPU)
This is useful if you need more flexible booting than the regular boot
process provides - eg you want to fetch the kernel from an NFS share, which
is something not supported in the standard Pi firmware.
If the board vendor puts the firmware for stages 1-4 into EEPROM/flash, the
board now supports UEFI but the boot process didn't change, it just hid the
first four stages from you.
Theo
--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
SEEN-BY: 19/10 105/81 106/201 128/187 129/305 153/757 7715 154/110
SEEN-BY: 218/700 840 220/70 221/1 6 242 360 226/17 30 100 227/114
SEEN-BY: 229/110 111 114 200 206 275 300 317 400 426 428 470 550 616
SEEN-BY: 229/664 700 705 230/0 266/512 267/800 280/5003 291/111 292/854
SEEN-BY: 292/2226 8125 301/1 310/31 320/219 322/757 335/364 341/66
SEEN-BY: 342/200 396/45 410/9 423/81 460/58 633/280 712/848 770/1
SEEN-BY: 770/3 100 330 340 772/210 220 230 902/26 2320/105 5020/400
SEEN-BY: 5075/35
PATH: 770/3 1 218/840 221/6 1 292/854 229/426
|