ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2010年10月7日 星期四

iMX51 the very first boot process -- configure DDR controller and load bootloader to run

當設定為 SD/MMC boot。 boot ROM 會從第3 個 sector (第 0x400byte) 讀取 DCD (Device Configuration Data)。
放在 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 中。

沒有留言:

標籤

網誌存檔