am335x_sd_mmc_raw_mode

AM335X SD/MMC 的RAW模式启动

am335x上电时会启动内置的RomCode段代码,该段程序的功能是检测外部启动方式,根据SYSBOOT引脚的配置情况按照固定的启动顺序去寻找有效的Uboot_spl,本文就RomCoderaw模式下如何识别MMC/SD Card中的Uboot_spl做说明。

RomCode
Uboot_spl
Uboot

在这里插入图片描述

raw模式下,可以将Uboot_spl.bin放置在4个固定位置,分别是0x0/0x2000/0x40000/0x60000,因此Uboot_spl.bin不应该大于0x20000(128KB),但实际使用的Uboot_spl.bin大小不应该大于109KB,其原因是因为am335x的内部SRAM大小为127K(0x402F0400-0x4030FFFF),但实际上0x4030B800-0x4030FFFF这段SRAMRomCode所使用,因此实际可供Uboot_spl.bin所使用的最大的容量为109K(0x4020F0400-0x4030B7FF)。
在这里插入图片描述
在这里插入图片描述
RamCode在查找Uboot_spl.bin时,先在0x0地址上查找TOC信息,0x0地址上第一个字的内容不为0xFFFFFFFF和0x00000000且TOC内容中有CHSETTINGS字段,则去第二个section(512KB)处获取GP Header,根据GP Header内的信息拷贝Uboot_spl.bin至目标地址并启动。

因此在制作启动卡时,在第一个section(512字节)中需要放置一块TOC信息表(最多放置两块TOC表,每一块32字节,彼此首尾相连),第二块TOC必须填充为0xFF。紧跟TOC表后的两个字内容为Magic number,其内容必须为0xC0C0C0C10x00000100,在第一个section中,除了TOCMagic number,其他内容必须为0x0
在这里插入图片描述
第二个section中包含2个字的GP Header以及Uboot_spl.bin,其中Size为Uboot_spl.bin的大小,Destination为需要将Uboot_spl.bin加载的目标地址,一般为0x402F0400
在这里插入图片描述
RomCode识别到TOCGP Header后即将Uboot_spl.bin加载至内部SRAM并运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值