備忘録

趣味に生きるオタクの備忘録

Raspi4B+でBootの初期段階からUARTを出したい

色々Try中ですが、Raspi3までの手順でうまくいかないのでメモ。(まだうまく出来てない)

通常Boot可能なSDを使う場合、Raspi(4含まず)は基本的にSoCにあるROMコードが
SDカード内のbootcode.bin(虹色の奴)を探し、bootcode.binがstart.elfなりを読み込みソレがLinux Kernelをキックして起動していきます。

その辺のBootシーケンスは公式にも記載があります。
Boot sequence - Raspberry Pi Documentation

これまでは、

sed -i -e "s/BOOT_UART=0/BOOT_UART=1/" bootcode.bin

これでbootcode.bin内部のConfigを書き換えてしまえば、UARTでBootの初期段階から覗けたのですが今回はそうもいかない様です。

その辺の記載も、公式にありました。
Raspberry Pi boot modes - Raspberry Pi Documentation

Note: The Raspberry Pi 4B does not use the bootcode.bin file - instead the bootloader is located in an on-board EEPROM chip. The Pi 4B bootloader currently only supports booting from an SD card. Support for USB host mode boot and Ethernet boot will be added by a future software update. See Pi4 Bootflow and SPI Boot EEPROM.

えぇ~って感じがするのですが、microSDを刺さないとBootできない(これまでのRaspi)より、(ちゃんとEEPROMにConfigを格納できれば)素のNetbootができるようにも受け取れますので、結果としてはいい話かもしれないです。

さて、EEPROMをいじるにはvcgencmdコマンドが必要っぽい訳でして、SPIを適当に叩いてEEPROMを壊すわけにもいかず、どうしようという状態・・・