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並運行。

發佈了7 篇原創文章 · 獲贊 2 · 訪問量 4566
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章