-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect arch code sent during network boot using IPv4 #1928
Comments
Duplicate of raspberrypi/rpi-eeprom#182 Option 93 is not particularly useful here since the actual boot-architecture would be 'Broadcom VPU'. The recommended approach are to use the MAC-ADDRESS OUI or use Option 97 which describes Raspberry Pi board revision so it's possible to distinguish between different RPi boards. https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#DHCP_OPTION97 |
NB That raspberrypi/rpi-eeprom#182 only applies to Pi4 and Pi5. For Pi1-3 the network boot code is in the bootrom and can not be changed. (You've chosen to ignore the template's section describing the system you're using). |
Good point. Keeping the default behavior consistent with older boards is the reason for the Pi4 / Pi5 behavior. On Pi5 (and probably Pi4) I think it would be ok for the Option93 to be configurable from the EEPROM config with the default remaining unchanged. |
I don't follow.
sorry about that, using Pi4-400 here. Firmware:
I am sorry but that makes no sense. MAC-ADDRESS OUI is, by design, something that can change in future batches of the same model, so match by that is no better solution.
Again, same issues, plus matching by the so called FourCC code risk matching systems that fully comply with spec and are definitelly not RPi's. Don't get me wrong option 97 does make sense in addition to a correct arch report, but it is not a replacement for it.
Honestly I am not entirely sure what is the "default behavior consistency" being preserved. This is clearly a bug, the bootloader does not inform the correct architecture and does not meet the specification. All Pi1-3 were flashed with a bug, fine, but that is not a reason to do the same in newer, fixable systems that are currently breaking spec.
Why be configurable? Why enable more fragmentation? |
Describe the bug
IPv4 based network boot sends arch code 0000 (corresponding to x86 BIOS) making it impossible for the dhcp server to identify the client architecture and send the correct dhcp options and binaries for the rpiboot.
Therefore, there is no way to network boot rpi and x86 hosts on the same network environment.
To reproduce
Enable rpi network boot, capture dhcp discover packet sent from the pi while booting.
Expected behavior
Option 93 =
41
(0x00 0x29
)Option 60 =
PXEClient:Arch:00041:UNDI:002001
Actual behavior
Option 93 =
0
(0x00 0x00
)Option 60 =
PXEClient:Arch:00000:UNDI:002001
Additional context
Iana Processor Architecture Types and raspberry docs for network boot using DHCPv6.
I understand strictly speaking there is no option in the IPv4 DHCP PXE specification to match rpiboot or arm64 in RFC 4578, but it is common practice to use the newer ones from v6 in v4, and that would make more sense than the broken "I am x86" behavior.
The text was updated successfully, but these errors were encountered: