SPI内のすべて(ブートローダー、デバイスツリー、Linuxカーネル、rootfs)のデモです。これを実現するために、生の読み取り(sf read)/生の書き込み(uuuスクリプト内のsf write)を使用します。
sf probe 0;
sf read ${fdt_addr} 0x500000 0x100000;
sf read ${loadaddr} 0x600000 0x1E00000;
sf read ${initrd_addr} 0x2400000 0x600000;
setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate} rdinit=/linuxrc;
booti ${loadaddr} ${initrd_addr} ${fdt_addr}
|-- 0001-all-in-spi-demo-lf-5.10.72-2.2.0.patch --- このデモ用のパッチ
|-- demo_binary
| |-- flash.b0.bin --- b0 ブートローダー
| |-- flash.bin --- c0 ブートローダー
| |-- Image-imx8qxpc0mek.bin --- Linux カーネル
| |-- imx8qxp-mek.dtb --- デバイスツリー
| |-- uramdisk_boot.rootfs.aarch64.img --- RAMディスク
| |-- uuu.qspi.all.b0.uuu --- b0用 uuu スクリプト
| `-- uuu.qspi.all.uuu --- c0用 uuu スクリプト
`-- readme.txt --- このファイル
# 使用される SPI レイアウトは次のとおりです:
# - --------- --------------------------------------------
# | | flash.bin | env | dtb | Image | rootfs |
# - --------------- --------------------------------------
# ^ ^ ^ ^ ^ ^ ^
# | | | | | | |
# 0 4kiB 4MiB 5MiB 6MiB 36MiB 42MiB
0x1000 0x400000 0x500000 0x600000 0x2400000
テスト:
HW: i.MX8QXP MEK
SW: lf-5.10.72-2.2.0 + 0001-all-in-spi-demo-lf-5.10.72-2.2.0.patch
テストログ:
SF: mt35xu512aba をページサイズ 256 バイト、消去サイズ 128 KiB、合計 64 MiB で検出
デバイス 0 オフセット 0x500000、サイズ 0x100000
SF: 1048576 バイト @ 0x500000 読み取り: OK
デバイス 0 オフセット 0x600000、サイズ 0x1e00000
SF: 31457280 バイト @ 0x600000 読み取り: OK
デバイス 0 オフセット 0x2400000、サイズ 0x600000
SF: 6291456 バイト @ 0x2400000 読み取り: OK
[ 4.787552] imx6q-pcie 5f010000.pcie:PCIeポートを追加できません。
[ 4.797467] 未使用のカーネルメモリを解放中:2944K
[ 4.807379] initプロセスとして /linuxrc を実行
syslogdの起動:OK
klogdの起動:OK
sysctlの実行:OK
ネットワークの開始:OK
/bin/sh:ttyにアクセスできません。ジョブ制御がオフになっています
/ #