am5728 SD卡和emmc引导启动方式

9 篇文章 1 订阅

am5728 平台,SD卡支持fat boot,emmc支持boot分区raw boot,  uda分区 fat boot 以及 uda分区 raw boot。

boot_device    boot_mode                                         description
mmc1 (5)        MMCSD_MODE_FS (2)                     从SD卡的第一个fat32分区读取启动文件
mmc2 (6)        MMCSD_MODE_EMMCBOOT (3)    从emmc的boot1硬件分区指定扇区读取raw数据
mmc2_2 (7)    MMCSD_MODE_FS (2)                     从emmc的uda硬件分区的第一个fat32分区读取启动文件
mmc2_2 (7)    MMCSD_MODE_RAW (1)                 从emmc的uda硬件分区的指定扇区读取raw数据

括号中的数字指源码中的宏对应的值。

1. sd卡 fat boot:第一阶段:如果MMC包含在引导设备列表中,则ROM会在第一个MMC控制器上查找SD卡。如果找到卡,则ROM然后在分区表中查找第一个FAT32分区。找
到分区后,将扫描根目录以查找名为“MLO”的特殊签名文件(该文件是x-loader二进制文件,其中包含用于加载文件的内存位置和文件大小的标头)。假设文件一切顺利,它将被转移到内部SRAM中并将控制传递给它。MMC1和MMC2都可用于启动。
第二阶段:在通过SD卡加载u-boot的情况下,SD卡x-loader在第一个MMC控制器上查找FAT32分区,并在顶级目录中扫描名为“u-boot.img”的文件。然后它将文件传输到主存储器并将控制转移到它。

2. emmc boot 分区 raw boot:
第一阶段:bootROM尝试从boot分区第0个扇区加载数据,如果扇区损坏或者空白,ROM将在退出之前尝试第0x100扇区(最多4个扇区:0x0,0x100,0x200,0x300)。一旦找到好的扇区,ROM就将内容传输到SRAM并将控制转移到它。
第二阶段:MLO从 boot分区 0x300处读取u-boot.img。

3. emmc uda分区 fat boot:
和sd卡 fat 启动一样,只不过从uda硬件分区查找fat32分区。

4. emmc uda分区raw boot:
和emmc boot分区启动一样,只不过是uda硬件分区。为了不破坏emmc的分区结构(MBR第1个扇区,GPT前34个LBA),且能正确加载uboot.img,最好把MLO烧写到0x100或0x200处,且控制MLO size 小于 0x100。

启动顺序: 1 > 2 > 3 > 4
1)设置sysboot支持SD卡启动时,如果检测到SD卡,则从sd卡启动(方式1),否则从emmc启动。
2)从emmc启动时,若定义了CONFIG_SUPPORT_EMMC_BOOT宏,然后通过 mmc partconf命令设置了从boot硬件分区启动,则先执行emmc boot分区 raw boot(方式2),找到好的扇区就将内容传输到SRAM,否则从emmc uda分区启动。
3)从emmc uda分区启动时,先进行 fat boot(方式3)从第一个fat32分区查找MLO,失败的话以raw方式启动。
4)进行emmc raw boot(方式4)。 

注意:以上offset和大小单位是扇区或LBA,在am5728上是512bytes(通常也希望是这样)。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们启动设备时,系统通常会从存储设备(如eMMCSD)中加载操作系统。然而,在某些情况下,当我们启动时可能会遇到eMMC启动SD超时的问题。 eMMC启动超时是指当系统尝试从eMMC存储设备加载操作系统时,系统无法及时响应或加载超时的情况。这可能是由于eMMC存储设备损坏、存储设备接口故障或存储设备内部错误等原因导致。 SD启动超时是指当系统尝试从SD存储设备加载操作系统时,系统无法及时响应或加载超时的情况。这可能是由于SD损坏、存储设备接口故障或存储设备内部错误等原因导致。 要解决这些问题,我们可以尝试以下几种方法: 1. 检查存储设备是否损坏。可以尝试将其他可靠的eMMCSD插入设备中并尝试重新启动。如果问题仍然存在,可能是存储设备接口故障或设备本身的问题。 2. 清洁存储设备接口。有时候存储设备接口上可能会有灰尘或污垢,这可能导致连接不良或信号丢失。可以使用棉签轻轻清洁存储设备接口,并确保连接牢固。 3. 更新或重置设备固件。有时候设备固件可能需要更新或重置,在其官方网站上可能会有相关的固件更新文件和操作指南。 4. 如果以上方法无效,建议联系设备厂商或专业技术人员寻求更进一步的帮助和支持。 总之,eMMC启动超时和SD启动超时是设备启动过程中可能遇到的问题。要解决这些问题,我们可以尝试检查存储设备是否损坏、清洁存储设备接口、更新或重置设备固件,或者寻求专业技术人员的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值