u boot 1 1 6移植筆記(初級篇)

2021-08-08 16:20:55 字數 2129 閱讀 7976

u-boot版本:1.1.6

交叉編譯器:3.3.2

開發板:友善之臂mini2440

開發板配置:soc s3c2440 、網絡卡 dm9000 、 nor flash am29lv160db (2m) 、nand flash (256m) 、sdram (64m)

以原始檔已存在的 smdk2410專案為基礎進行移植工作

1.移植準備工作

2.修改頂層makefile

1).開啟 /makefile ,找到smdk2410板配置選項:

smdk2410_config :   unconfig 

@$(mkconfig) $(@:_config=) arm arm920t smdk2410 null s3c24x0 

各項引數意義:

arm:       cpu架構

arm920t:cpu型號

smdk2410:開發板名稱

null:        開發者

s3c24x0:   片上系統

模擬此項新增配置選項:

mini2440_config :   unconfig 

@$(mkconfig) $(@:_config=) arm arm920t mini2440 null s3c24x0 

3.建立主**

1).找到 /board/smdk2410 目錄,將此目錄複製為 /board/mini2440 ,開啟mini2440目錄,將smdk2410.c檔案重新命名為mini2440.c。開啟同目錄下makefile檔案,修改**

變更前: cobjs   := smdk2410.o flash.o 

變更後: cobjs   := mini2440.o flash.o 

2).建立開發板配置標頭檔案。將 /include/configs/smdk2410.h 複製為 /include/configs/mini2440.h ,開啟此檔案,新增

#define config_s3c2440      1   /* in a samsung s3c2440 soc     */ 

4.修改cpu頻率設定

#define fclk_speed 1 

#if fclk_speed==0       /* fout = 203mhz, fin = 12mhz for audio */ 

#define m_mdiv  0xc3 

#define m_pdiv  0x4 

#define m_sdiv  0x1 

#elif fclk_speed==1     /* fout = 202.8mhz */ 

#define m_mdiv  0xa1 

#define m_pdiv  0x3 

#define m_sdiv  0x1 

#endif 

#define usb_clock 1 

#if usb_clock==0 

#define u_m_mdiv    0xa1 

#define u_m_pdiv    0x3 

#define u_m_sdiv    0x1 

#elif usb_clock==1 

#define u_m_mdiv    0x48 

#define u_m_pdiv    0x3 

#define u_m_sdiv    0x2 

#endif 

#endif

然後修改board_init函式

int board_init (void) 

3).串列埠初始化時需要獲取系統時鐘,這裡修改 /cpu/arm920t/s3c24x0/speed.c ,

get_pllclk() 中

return((config_sys_clk_freq * m) / (p << s)); 

改為return((config_sys_clk_freq * m * 2) / (p << s)); 

u boot1 1 6的移植 網絡卡支援

注 藍色為修改部分!driver dm9000x.c中修改 inteth init bd t bd hj end www.embedsky.net printf mac 02x 02x 02x 02x 02x 02x n bd bi enetaddr 0 bd bi enetaddr 1 bd bi...

UBOOT 1 1 6 錯誤集合

1.1.6的u boot老掉牙了,用版本高的編譯器編譯會出現莫名其妙的問題 實際是我不懂 usr local arm 4.4.3 bin lib gcc arm none linux gnueabi 4.4.3 libgcc.a udivsi3.o in function aeabi uidiv o...

U Boot 1 1 6的編譯過程

從頂層makefile說起 92行 mkconfig srctree mkconfig其中的mkconfig是乙個shell指令碼,srctree預設值為u boot的頂層目錄。117行 include objtree include config.mkinclude config.mk由92行的指...