通过 mcusdk 中的 examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage1/ 生成 stage1 bootloader,
通过 mcusdk 中的 examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage2/ 生成 stage2 bootloader,
stage1 bootloader 引导 stage2 bootloader,然后由 stage2 bootloader 引导 linux appimage, linux 能够启动,但是在初始化 spinand 的时候会卡住
[7.359592 1.455924] [ 3.178149] 0x000000100000-0x000000400000 : "recovery"
[12.159137 4.799546] [ 7.980627] 0x000000400000-0x000000500000 : "sbl.backup"
[13.759165 1.600027] [ 9.582476] 0x000000500000-0x000006e00000 : "image"
[181.795847 168.036683] [ 177.608527] 0x000006e00000-0x000007f00000 : "config"
[208.994048 27.198201] [ 204.814173] 0x000007f00000-0x000008000000 : "reserved"
在此处会卡住大概170s
进入linux之后:
root@am62xx-evm:~# cd /tmp
root@am62xx-evm:/tmp# dd if=/dev/mtd0 of=1.bin
dd: /dev/mtd0: Connection timed out
root@am62xx-evm:/tmp# dd if=/dev/mtdblock0 of=1.bin
[ 477.605741] mtdblock: MTD device 'sbl' is NAND, please consider using UBI block devices instead.
[ 478.006417] I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 2
[ 478.406551] I/O error, dev mtdblock0, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 2
[ 478.806660] I/O error, dev mtdblock0, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 479.206774] I/O error, dev mtdblock0, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 479.606973] I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 479.606995] Buffer I/O error on dev mtdblock0, logical block 0, async page read
dd: /dev/mtdblock0: Input/output error
无法访问 mtd
如果通过 sysfs 的接口重新加载驱动,会返回 -110 错误