你好
我是用的平台是 基于CycloneVsoc F2C2芯片的SoM,它有一个eMMc取代了原本的SD 卡槽,
我的目的是使用 SD/MMC boot,上电后 启用 BOOTROM > SPL > baremetal bin,就和CycloneVsoc Dev Kit SD 卡启动裸机程序类似.
我编译了Aries的Uboot,使用他们的SPL,并编译了裸机程序,然后根据以下的格式制作了镜像:
P1 : raw, type=a2,存放u-boot-spl.bin < BootROM 将加载特定ID的raw分区,以寻找SPL
P2: fat32,存放Baremetal.bin < SPL检查分区,加载Baremetal 而不是UBoot
Aries 提供了一个SOC恢复程序,让我可以使用UMS读写emmc分区,
因此
1.选择 Boot from FPGA
2.载入 Recovery.sof
3.开启UMS
之后我执行了以下命令:
sudo dd if=/workspace/My_image.img of=/dev/sdX,之后通过fdisk -l 查看后发现考录成功了.
4.关电,选择 Boot from SD/MMC
5.上电
发现Cold reset 指示灯一直闪烁,用JTAG查看HPS的sysmgr寄存器发现initswstate为0x101,load address 是0.
重复代码地址是0x8fc到0x930,而不是HPS的OCRAM地址0xffffxxxx
因此我猜测BootROM没有找到SPL.
这是我用以参考的aries提供的yocto项目镜像
设备 启动 起点 末尾 扇区 大小 Id 类型
core-image-full-cmdline-aries-mcvevk-20220915120718.rootfs.wic1 2048 6143 4096 2M a2 未知 < 因该是Uboot with spl
core-image-full-cmdline-aries-mcvevk-20220915120718.rootfs.wic2 * 8192 40959 32768 16M 83 Linu
core-image-full-cmdline-aries-mcvevk-20220915120718.rootfs.wic3 40960 299123 258164 126.1M 83 Linu
这是我制作的镜像
设备 启动 起点 末尾 扇区 大小 Id 类型
my_image.img1 2048 6143 4096 2M a2 未知 < spl.bin
my_image.img2 8192 102399 94208 46M c W95 FAT32 (LBA)
我的问题如下:
1.emmc是否能够以这种方式启动?
2.如何自己制作emmc可以加载的镜像?
感谢
如需提供额外程序/材料/信息,烦请直接联系我
如有解决方法,并想获得酬劳,请直接联系我 2799796944@qq.com以商议具体报酬细节
Refrence:
sd卡镜像制作:
https://www.rocketboards.org/foswiki/Documentation/BuildingBootloaderCycloneVAndArria10
Cyclone V SoC - Boot from SD Card 分页