u-boot-2016.09移植(1)-单板配置

cpu    : s5pv210(armv7) 
uboot  :u-boot-2016.09
ubuntu :ubuntu 16.04
移植平台:tq210

因为smdkc100与我们要移植的s5pv210同为armv7,所以我们以smdkc100为模板来修改。

一、添加单板信息

u-boot-2016.09$ cp -arf board/samsung/smdkc100 board/samsung/tq210

进入tq210目录下将tq210/下的smdkc100.c重命名为tq210.c

u-boot-2016.09/board/samsung/tq210$ mv smdkc100.c tq210.c

修改Kconfig:

if TARGET_TQ210

config SYS_BOARD
    default "tq210"

config SYS_VENDOR
    default "samsung"

config SYS_SOC
    default "s5pV210"

config SYS_CONFIG_NAME
    default "tq210"                                                      
endif

修改Makefile:

obj-y   := tq210.o
obj-$(CONFIG_SAMSUNG_ONENAND)   += onenand.o
obj-y   += lowlevel_init.o

修改MAINTAINERS:

TQ210 BOARD
S:  Maintained
F:  board/samsung/tq210/
F:  include/configs/tq210.h
F:  configs/tq210_defconfig

根据MAINTAINERS中的信息添加tq210的头文件tq210.h与设置tq210_defconfig

u-boot-2016.09$ cp include/configs/smdkc100.h include/configs/tq210.h
u-boot-2016.09$ cp configs/smdkc100_defconfig configs/tq210_defconfig  

修改tq210_defconfig,tq210.h暂时不用修改。

CONFIG_ARM=y                                                                             
CONFIG_ARCH_S5PV210=y
CONFIG_TARGET_TQ210=y
CONFIG_DEFAULT_DEVICE_TREE="s5pv210-tq210"
CONFIG_BOOTDELAY=3
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="TQ210# "
# CONFIG_CMD_IMLS is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_CACHE=y
CONFIG_CMD_FAT=y

修改根目录下Makefile,添加我们自己的交叉编译工具链:

    CROSS_COMPILE ?= /usr/local/arm-cortex_a8-linux-gnueabi/bin/arm-cortex_a8-linux-gnueabi-

此时我们自己的设备信息添加完成,执行make tq210_defconfig, make发现编译不能通过,此时为我们自己的SOC不匹配,下面我们添加S5PV210到u-boot-2016中。

二、添加S5PV210信息
进入arch/arm目录下,找到S5PC1XX的信息,模仿修改为S5PV210:

u-boot-2016.09/arch/arm$ vim Kconfig

config ARCH_S5PV210
    bool "Samsung S5PV210"
    select CPU_V7
    select DM
    select DM_SERIAL
    select DM_GPIO      

source "arch/arm/mach-s5pv210/Kconfig"

修改arch/arm目录下的Makefile,将S5PV210编进uboot:

u-boot-2016.09/arch/arm$ vim Makefile 

machine-$(CONFIG_ARCH_S5PV210)      += s5pv210

复制mach-s5pc1xx为mach-s5pv210:

u-boot-2016.09/arch/arm$ cp -arf mach-s5pc1xx mach-s5pv210

修改mach-s5pv210下的Kconfig:

if ARCH_S5PV210

choice
    prompt "S5PV210 board select"
    optional

#config TARGET_S5P_GONI
#   bool "S5P Goni board"
#   select OF_CONTROL

config TARGET_TQ210
    bool "Support tq210 board"
    select OF_CONTROL

endchoice

config SYS_SOC
    default "s5pv210"

#source "board/samsung/goni/Kconfig"
source "board/samsung/tq210/Kconfig"

endif

再次回到根目录下执行make tq210_defconfig, make发现编译还是不能通过。

三、添加S5PV210的寄存器信息

u-boot-2016.09/arch/arm/mach-s5pv210/include/mach$ vim cpu.h 

#ifndef _S5PV210_CPU_H
#define _S5PV210_CPU_H     

#define S5P_CPU_NAME        "S5P"
#define S5PV210_ADDR_BASE   0xE0000000

根据datasheet Section 01第二节MEMORY MAP修改寄存器信息:

#define S5PV210_PRO_ID          0xE0000000
#define S5PV210_CLOCK_BASE      0xE0100000
#define S5PV210_GPIO_BASE       0xE0200000
#define S5PV210_SROMC_BASE      0xE8000000
#define S5PV210_DMC0_BASE       0xF0000000
#define S5PV210_DMC1_BASE       0xF1400000
#define S5PV210_VIC0_BASE       0xF2000000
#define S5PV210_VIC1_BASE       0xF2100000
#define S5PV210_VIC2_BASE       0xF2200000
#define S5PV210_VIC3_BASE       0xF2300000
#define S5PV210_NAND_BASE       0xB0E00000
#define S5PV210_WATCHDOG_BASE   0xE2700000
#define S5PV210_MMC_BASE        0xEB000000
#define S5PV210_PWMTIMER_BASE   0xE2500000
#define S5PV210_UART_BASE       0xE2900000

这时回到board/samsung/tq210下,修改lowlevel_init.S, 将文件里的S5PC100 全部替换为S5PV210。

回到arch/arm/cpu/armv7/目录下,修改Makefile:

ifneq (,$(filter s5pv210 s5pc1xx exynos,$(SOC)))
    obj-y += s5p-common/
endif

再次回到根目录下执行make tq210_defconfig, make发现编译还是不能通过,产生dts错误。找到dts的位置arch/arm/dts,添加s5pv210:

u-boot-2016.09/arch/arm/dts$ cp s5pc1xx-smdkc100.dts  s5pv210-tq210.dts

修改Makefile,添加支持编译的语句:

u-boot-2016.09$ vim arch/arm/dts/Makefile

dtb-$(CONFIG_S5PV210) += s5pv210-tq210.dtb   /* add by keyue */

因为需要执行我们添加的语句,需要CONFIG_S5PV210这个宏,所以我们将include/configs/tq210.h中的CONFIG_S5PC100修改为CONFIG_S5PV210。

其他暂时不用修改,再次编译,发现产生了u-boot.bin文件,表示我们编译成功。

到这里我们成功添加了S5PV210。。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值