放在 SD/MMC 中,由 boot ROM load 進 DRAM 中 run 的 code 是 u-boot。
所以 u-boot 的 bin 檔要包含這段 DCD 在 bin 的開頭。
imx51 的 uboot 是用 flash_header.S 來完成。
flash_header.o 在 lds 會被擺在 bin 的最前頭。
flash_header.S 的開頭:
.org CONFIG_FLASH_HEADER_OFFSET
另外定義 CONFIG_FLASH_HEADER_OFFSET 是 0x400。另外,在 DCD table 最後是:
.word _end - TEXT_BASE
其中,_end 宣告在 u-boot.lds 中,是 bin 的最後。TEXT_BASE 定義在 board 的 config.mk。是 u-boot load 到 ram 的位址。
所以在 iMX , DDR 的參數設定是由 boot-rom 的 code 做的,他會參考 boot device 的 DCD 內容設定register,然後再 load bootloader 到 DDR。
要 load 的長度和target address也是寫在 boot device 的 DCD 中。
沒有留言:
張貼留言