首先說,今天是一個值得高興的日子,因為經過四天的努力,終於把U-Boot1.3.4成功移植到了s3c2416上.板子要求是SD卡啟動,以下具體的移植步聚:
一、SD起動首先要修改/include/configs/smdk2416.h頭文件:
在365行左右,按如下修改:
//#define CONFIG_BOOT_NAND
#define CONFIG_BOOT_MOVINAND
說明:
CONFIG_BOOT_NANA是nandFlash啟動方式,在此處要注釋掉,因為我們要從SD卡啟動,相應 的 IG_BOOT_MOVINAND項要打開。
二、
#define CONFIG_SERIAL1 1
三、BootLoader一般分為兩個階段啟動:第一階段使用匯編來實現,它完成一些依賴於CPU體系結構的初始化,並調節器用第二階段代碼;第二階段通常用C語言來實現。
第一階段:
硬件設備初始化;(board/samsung/smdk2416/lowlevel_init.S,包括點亮測試燈,關閉看門狗、關閉 main和sub中的中斷、初始化系統時鐘、初始化串口、初始化NandFlash,初始化MMU)
為加載Bootloader的第二階段代碼准備RAM空間;
復制Bootloader 的第二階段代碼到RAM空間中;(在匯編start.S 調用 void movi_bl2_copy(void))
設置好棧;
跳轉到第二階段代碼的C入口點。(在/cpu/s3c24xx/start.S中,通過ldr pc, _start_armboot調用lib_arm/board.c中的void start_armboot (void)進入第二階段)
第二階段:
初始化本階段要使用到的硬件設備;
檢測系統內存映射(memolry map);
將內核映象和根文件系統映象從Flash上讀到RAM空間中;
為內核設置啟動參數;
四、 編譯U-boot
make distclean 編譯之前先清除一下;
make smdk2416_config
make CROSS_COMPILE=交叉編譯器的路徑