看了正點原子uboot基本移植視頻的視頻,跟著視頻移植沒有頭緒,感覺有點亂,視頻講的流程跟正點原子的PDF又有點不一樣,所以打算自己整理一下移植程序,整理成筆記,方便大家和自己移植uboot,
針對NXP imx6ull-14x14-emmc的uboot基本移植程序
- 1.添加板子默認組態檔
- 2.添加板子對應的頭檔案
- 3.添加板子對應的板級檔案夾
- 4.修改uboot的配置界面
- 5.創建uboot的Make腳本
1.添加板子默認組態檔
借鑒NXP官方6ULL EVK開發板,默認組態檔也用他的,
- 復制官方NXP解壓后的u-boot;
- (可以跳過)用Vscode打開,添加作業空間,settings.json(用于屏蔽一些檔案);
- 在uboot/configs/中,把mx6ull_14x14_evk_emmc_defconfig
拷貝成自己的mx6ull_14x14_xxx_emmc_defconfig;
注意!注意!注意!defconfig有命名規則,其他的檔案不清楚,xxx為自己的開發板名字,這個錯誤搞了我一晚上,,,
該問題的官方描述鏈接
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
2.添加板子對應的頭檔案
不同的板子,有一些需要配置的資訊,一般是在一個頭檔案里面配置,每個板子有一個,對于NXP官方的6ULL EVK板子,這個頭檔案就是mx6ullevk.h.
- 配置開發板頭檔案,在uboot/include/configs/中,把mx6ullevk.h 拷貝成自己的 mx6ull_xxx_emmc.h
修改頭檔案內容:
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
改為:
#ifndef __MX6ULL_XXX_EMMC_CONFIG_H
#define __MX6ULL_XXX_EMMC_CONFIG_H
3.添加板子對應的板級檔案夾
每個板子都有特有的檔案,也叫做板級檔案;這里我們將6ULL EVK的板級檔案直接拷貝過來,
- 添加板級檔案,在 uboot/board/freescale/ 中,將 mx6ullevk/ 檔案夾拷貝成自己的板級檔案夾 mx6ull_xxx_emmc/,不要移植錯了;
- 在新的板級檔案夾中,將mx6ullevk.c拷貝成mx6ull_xxx_emmc.c
- 在新的板級檔案夾中,在Makefile中改動目標輸出檔案:
obj-y := mx6ull_xxx_emmc.o
- 在新的板級檔案夾中,修改 imximage.cfg檔案
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改為:
PLUGIN board/freescale/mx6ull_xxx_emmc/plugin.bin 0x00907000
- 在新的板級檔案夾中,修改kconfig檔案
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
- 在新的板級檔案夾中,修改 MAINTAINERS 檔案為:
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
4.修改uboot的配置界面
- 修改檔案arch/arm/cpu/armv7/mx6/Kconfig,在 207 行加入如下內容:
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"
5.創建uboot的Make腳本
- 在uboot/中創建需要的腳本:mx6ull_xxx_emmc.sh;
腳本內容:
#!/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卡驗證了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/99995.html
標籤:其他
