uboot凭什么用我们自己的板子

以rv1106为例

/uboot/board/rockchip/evb_rv1106/Kconfig #Kconfig选项
/uboot/board/rockchip/evb_rv1106/Makefile #配置了编译对象 obj-y	+= evb_rv1106.o
/uboot/board/rockchip/evb_rv1106/evb_rv1106.c #源码

在Kconfig配置了

if TARGET_EVB_RV1106

config SYS_BOARD
	default "evb_rv1106"

config SYS_VENDOR
	default "rockchip"

config SYS_CONFIG_NAME
	default "evb_rv1106"

config BOARD_SPECIFIC_OPTIONS # dummy
	def_bool y

endif

又在uboot配置文件开启了

CONFIG_TARGET_EVB_RV1106=y

所以通过SYS_BOARD ,SYS_VENDOR,SYS_CONFIG_NAME拼接

添加自己的板子

  1. board/rockchip/ 下新建目录(如 board/rockchip/myboard/
  2. 新建 Kconfig,定义 TARGET_MYBOARD,设置 SYS_BOARD/SYS_VENDOR
  3. 新建 include/configs/myboard.h
  4. arch/arm/mach-rockchip/rv1106/Kconfig 中添加 source "board/rockchip/myboard/Kconfig"
  5. 新建 config-uboot/myboard_defconfig,设置 CONFIG_TARGET_MYBOARD=y