MPC5125 uboot移植記錄 二

2021-06-05 22:05:17 字數 2282 閱讀 9306

6.console_init_f

在環境變數裡對串列埠進行註冊。

7.display_options

至此將顯示uboot的版本號,也是在console中顯示的第一行,根據makefile自動獲取的新版本號,所以無需修改

8.checkboard   修改硬體板卡版本號,做一些io初始化。因為乙太網efc1管腳復位即為第一功能,所以注釋掉iopin_initialize()的初始化。

typedef struct gpio512x gpio512x_t;

注意gpio_initialize()關於對板子gpio的初始化的修改。此處先不做修改。

9.uboot並沒有用到i2c以及spi所以不對其做修改。

10.init_func_ram

主要完成對sdram的初始化,由於此次改為ddr2的mt47h64m16lfck-3,256m,工作時鐘為200mhz,主要修改cpu/mpc512x/fixed_sdram.c初始化時序

對於mpc5125 ddr模組沒有做出調整,因此不用對其進行重對映;對於ddr控制器優先順序採用預設設定;

修改sdram容量的定義atdboard_v2.h

#define config_sys_ddr_size  256

根據晶元手冊的初始化順序在fixed_sdram.c中新增對sdram初始化結構體

u32 mt47h64m16_init_seq =

以及對ddr控制器配置暫存器的以下定義

#ifdef config_atdboard_v2

#define config_sys_mddrc_sys_cfg 0xea804a00

#define config_sys_mddrc_time_cfg0      0x00003c2d

#define config_sys_mddrc_time_cfg1 0x68ec1189

#define config_sys_mddrc_time_cfg2 0x35310864

/* mddrc sys cfg and timing cfg0 registers */

#define mddrc_sys_cfg_en 0xf0000000

#define mddrc_sys_cfg_cmd_mask 0x10000000

#define mddrc_refresh_zero_mask 0x0000ffff

#endif

定義初始化自定義的命令

#ifdef config_atdboard_v2

#define config_sys_ddrcmd_emr_en_dll     0x01010000  

#define config_sys_ddrcmd_mr_rst_dll     0x01000100     

#define config_sys_ddrcmd_mr_init_dev_op 0x01000432

#define config_sys_ddrcmd_emr_ocd_def    0x01010400

#define config_sys_ddrcmd_emr_ocd_exit   0x01010000

#define config_sys_ddrcmd_emr2  0x01020000

#define config_sys_ddrcmd_emr3  0x01030000

#endif

至此初始化對sdram初始化完畢,接下來對環境變數進行分配空間,儲存系統引數,無需更改,跳轉到relocate_code處進行copymyself.

在start.s中可以看出這部分沒有變化,所以跳轉到記憶體中去執行

board_init_r:

1.flash_init:

使用lpc匯流排無需對相應暫存器進行設定,只需對位址直接進行讀寫。採用了cfi標準介面協議對flash初始化,獲得容量大小,其讀寫操作分析不再贅述。

2.env_relocate ()重定位環境變數指標

3.getenv_ipaddr 在環境變數中獲得ip位址,interrupt_init()初始化decrementer定時器中斷

5.eth_initialize()乙太網初始化,mpc5125有兩個乙太網控制器,fec1與mpc5121e的相同,暫存器不變,phy晶元不變

6.main_loop

移植總結:

本次移植主要對處理器的memory map、psc串列埠、ddr2 sdram以及gpio進行了移植,最麻煩的地方就是memory map,需要細心的與晶元手冊暫存器對照,寫錯乙個就會影響到之後所有的模組,移植的正確性,需要在除錯中驗證。

uboot移植 uboot啟動回顧

一 uboot啟動的第一階段start.s 路徑uboot cpu s5pc11x start.s 1 include 標頭檔案包含,config.件原始碼中不存 在,配置後自動生成 路徑 include linux config.h 2 include 標頭檔案包含,version.件原始碼中不存...

u boot移植詳解 初識u boot

u boot是一種普遍用於嵌入式系統中的bootloader。bootloader是基於特定硬體平台來實現的,因此幾乎不可能為所有的嵌入式系統建立乙個通用的bootloader,不同的處理器架構都有不同的bootloader,bootloader不但依賴於cpu的體系結構,還依賴於嵌入式系統板級裝置...

uboot移植記錄

首先是uboot移植記錄系列。這系列文章適合於uboot移植的初學者,這裡基於常見的開發平台s3c2410。若需要移植uboot到乙個全新開發板,則需要參考更多的資料並對uboot有更深入的了解。本人對此也有所鑽研,也有個較牛的同事專門做這這個的,呵呵 若感興趣的朋友大家可以一起 因此關於新平台ub...