u-boot移植配置步骤

1 添加开发板默认配置文件

先在 configs 目录下创建默认配置文件,复制已有的xx_emmc_defconfig,然后重命名为 yyy_emmc_defconfig
然后将文件 yyy_emmc_defconfig中的内容改成所需的内容。


2 添加开发板对应的头文件

在 目 录 include/configs 下 添 加 开 发 板 对 应 的 头 文 件 , 复 制include/configs/xx_emmc.h,并重命名为 yyy_emmc_emmc.h
改为头文件内容:
#ifndef __YY_EMMC_CONFIG_H
#define __YY_EMMC_CONFIG_H


3 添加开发板对应的板级文件夹

uboot 中每个板子都有一个对应的文件夹来存放板级文件,比如开发板上外设驱动文件等等。系列芯片的所有板级文件夹都存放在 board/ZZ目录下,在这个目录下

建立个名为 yyy_emmc的文件夹,存放板级驱动文件
    1、1、修改 目录下的 Makefile 文件
    2、修改  目录下的 Kconfig 文件,修改后的内容示例如下:
示例代码 33.2.3.2 Kconfig 文件
config SYS_BOARD
config SYS_VENDOR
config SYS_SOC
config SYS_CONFIG_NAME

   3、修改 yyy_emmc目录下的 MAINTAINERS 文件
修改 MAINTAINERS 文件,修改后的内容如下:
1    yyy_EMMC BOARD
2 M: Peng Fan <peng.fan@nxp.com>
3 S: Maintained
4 F: board_emmc/
5 F: include/configs/xx_emmc.h

4 添加新板的选择入口
     Add a new entry to the board select menu in Kconfig.
     The board select menu is located in arch/<arch>/Kconfig or
     arch/<arch>/*/Kconfig.

  1、在u-boot-2021.10/arch/<arch>/Kconfig添加ARCH_XXsoc选择,如

config ARCH_NUC97X
bool "Nuvoton MPU Nuc97x platform"
select CPU_ARM926EJS
select DM

      source “arch/arm/mach-nuc97x/Kconfig”

  2、在arch/<arch>/mach-<soc>/Kconfig.添加板子选择

if ARCH_NUC97X

config SYS_SOC
default "nuc97x"

choice
prompt "Nuvoton Nuc97x board select"

config TARGET_NUC972_ETH2UART
bool "Xin Nuc972 Eth2uart"
endchoice

source "board/nuvoton/eth2uart/Kconfig"
endif

When adding a new board, the following steps are generally needed:
 
5 makefile文件修改
1、在arch/<arch>makefile中添加soc相关文件
machine-$(CONFIG_ARCH_NUC97X)       += nuc97x
 2、soc或cpu寄存器头文件放置到mach-soc文件夹,并建立include文件夹,再建mach文件夹放置与soc相关的头文件
/arch/arm/mach-nuc97x/include/mach

 [1] Add a header file include/configs/<target>.h
 [2] Make sure to define necessary CONFIG_SYS_* in Kconfig:
       Define CONFIG_SYS_CPU="cpu" to compile arch/<arch>/cpu/<cpu>
       Define CONFIG_SYS_SOC="soc" to compile arch/<arch>/cpu/<cpu>/<soc>
       Define CONFIG_SYS_VENDOR="vendor" to compile board/<vendor>/common/*
         and board/<vendor>/<board>/*
       Define CONFIG_SYS_BOARD="board" to compile board/<board>/*
         (or board/<vendor>/<board>/* if CONFIG_SYS_VENDOR is defined)
       Define CONFIG_SYS_CONFIG_NAME="target" to include
         include/configs/<target>.h
 [3] Add a new entry to the board select menu in Kconfig.
     The board select menu is located in arch/<arch>/Kconfig or
     arch/<arch>/*/Kconfig.
 [4] Add a MAINTAINERS file
     It is generally placed at board/<board>/MAINTAINERS or
     board/<vendor>/<board>/MAINTAINERS
 [5] Add configs/<target>_defconfig
 
 
 
 
https://wowothink.com/1e031f74/

https://www.cnblogs.com/zyly/p/15809110.html
https://u-boot.readthedocs.io/en/latest/develop/global_data.html
https://elinux.org/images/2/2a/Schulz-how-to-support-new-board-u-boot-linux.pdf
https://blog.csdn.net/ooonebook/article/details/53047992
https://elinux.org/images/6/69/Marrying_U-Boot%2C_UEFI_and_grub.pdf
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841676/U-Boot+Flattened+Device+Tree
https://blog.csdn.net/a1598025967/article/details/106960642


 一、makefile修改

主要功能修改 缺省ARCH,CROSS_COMPLE, 输出的路径。

参考:

 https://www.cnblogs.com/liujunhuasd/p/16073316.html

 

二  kconfig系列文件的修改

 

posted @ 2022-01-09 15:17  liujunhuasd  阅读(613)  评论(0编辑  收藏  举报