看了正點原子uboot基本移植視訊的視訊,跟著視訊移植沒有頭緒,感覺有點亂,視訊講的流程跟正點原子的PDF又有點不一樣,所以打算自己整理一下移植過程,整理成筆記,方便大家和自己移植uboot。
借鑑NXP官方6ULL EVK開發板,預設組態檔也用他的。
mx6ull_14x14_xxx_emmc_defconfig
修改config內容:
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_xxx_emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
CONFIG_TARGET_MX6ULL_xxx_EMMC=y
不同的板子,有一些需要設定的資訊,一般是在一個標頭檔案裡面設定,每個板子有一個。對於NXP官方的6ULL EVK板子,這個標頭檔案就是mx6ullevk.h.
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
改為:
#ifndef __MX6ULL_XXX_EMMC_CONFIG_H
#define __MX6ULL_XXX_EMMC_CONFIG_H
每個板子都有特有的檔案,也叫做板級檔案;這裡我們將6ULL EVK的板級檔案直接拷貝過來。
obj-y := mx6ull_xxx_emmc.o
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改為:
PLUGIN board/freescale/mx6ull_xxx_emmc/plugin.bin 0x00907000
if TARGET_MX6ULL_xxx_EMMC
config SYS_BOARD
default "mx6ull_xxx_emmc"
config SYS_VENDOR
default "freescale"
config SYS_SOC
default "mx6"
config SYS_CONFIG_NAME
default "mx6ull_xxx_emmc"
endif
MX6ULL_XXX_EMMC BOARD
M: Peng Fan <peng.fan@nxp.com>
S: Maintained
F: board/freescale/mx6ull_xxx_emmc/
F: include/configs/mx6ull_xxx_emmc.h
F: configs/mx6ull_14x14_xxx_emmc_defconfig
config TARGET_MX6ULL_xxx_EMMC
bool "Support mx6ull_xxx_emmc"
select MX6ULL
select DM
select DM_THERMAL
在最後一行的 endif 的前一行新增如下內容:
source "board/freescale/mx6ull_xxx_emmc/Kconfig"
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_xxx_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
(注意自己的cpu編譯數量x 對應 jx,我的是四個)
13. 給予指令碼執行許可權: chmod 777 mx6ull_xxx_emmc.sh
14. 執行編譯指令碼:./mx6ull_xxx_emmc.sh
15. (可以跳過)檢視標頭檔案是否被參照:grep -nR "mx6ull_xxx_emmc.h"
沒有修改驅動(改名字)的移植就算基本完成了…
可以下載到SD卡驗證了。