セカンドステージブートローダ
本物のブートローダが、システムが目覚める場所に収まらないほど大きいために、最初のブートコードが先に読み込む小さな仲介役である。
これは鶏と卵の問題である。SoCの電源が入った直後にあるのはブートROMと数百KBの内蔵SRAMだけだ。DRAMはタイミングを設定するまで使えず、その設定を行うコードがファイルシステムの読み込みやネットワーク通信まで担うとSRAMには収まらない。そこで中間段階を挟む。U-BootではこれをSPL(Secondary Program Loader)と呼び、RAMの初期化とフルサイズのU-Bootの読み込みだけを行う簡略版ビルドである。
PCではMBRが446バイトのコードで同じことをしており、GRUBに長らくステージ1、1.5、2があったのはそのためだ。RP2040は驚くほど整った縮小版を備える。ブートROMがフラッシュから256バイトの「boot2」を読み、CRC32を検査し、boot2がフラッシュチップをXIP(インプレース実行)用に設定する。