當設定為 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 的開頭:
所以在 iMX , DDR 的參數設定是由 boot-rom 的 code 做的,他會參考 boot device 的 DCD 內容設定register,然後再 load bootloader 到 DDR。 要 load 的長度和target address也是寫在 boot device 的 DCD 中。
.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 中。
沒有留言:
張貼留言