从三星uboot开始移植

本文详细介绍了从三星uboot移植的全过程,包括移植前的准备工作,如下载源码和配置;接着是移植步骤,涉及启动阶段、时钟、DDR、SD/MMC和网卡芯片的配置;在移植后遇到了tftp下载失败和Kernel panic的问题,并给出了相应的解决办法。文章适合进行三星uboot移植的开发者参考。
摘要由CSDN通过智能技术生成

移植前的准备

下载 android_uboot_smdkv210.tar.bz2 这个文件,找不到可以去公众号回复

下载|三星uboot

开始移植

本人使用的开发板是九鼎的 x210,在三星 uboot 的主 Makefile 中找到了类似的 smdkv210 的相关配置,因为这些配置都差不多,就随便选择了 smdkv210single_config

在 make smdkv210single_config; make 执行之后进行 SD 卡烧录

源码中的 SD 卡烧录脚本 sd_fusing.sh 在本人的电脑上运行有问题,需要将 21 行开始的代码进行修改如下

// line 19
if [ $1 = $reader_type1 ]
then 
    # partition1="$11"
    # partition2="$12"
    # partition3="$13"
    # partition4="$14"
    partition1="$*1"
    partition2="$*2"
    partition3="$*3"
    partition4="$*4"

在烧录后发现,串口没有信息输出,但是开发板供电锁存成功

开发板供电锁存是在 lowlevel_init.S 中进行的

可以判定 lowlevel_init.S 中有问题,需要进行修改

启动第一阶段

在 lowlevel_init.S 中发现了一段代码对开发板上不存在的 PMIC 的初始化,在注释后串口成功打印 ‘OK’

/* init PMIC chip */
	// bl PMIC_InitIp

uboot 开始进入启动第二阶段,通过串口输出信息可以看出,虽然 uboot 启动成功,但是很多配置信息是错误的

时钟配置

系统时钟是通过 lowlevel_init.S 中的 system_clock_init 进行的

由于三星在移植 uboot 时已经设置好系统时钟了,相关的时钟配置也都以宏的方式定义在 smdkv210single.h 文件中了

所以时钟这一块不用自己操心

ddr 配置

在 uboot 启动信息中发现串口输出的信息中,DRAM 大小和开发板的不符合

DRAM:    1 G

在 smdkv210single.h 文件中找到 ddr 的相关的配置

将 ddr 的地址更改为 0x30000000 (改了可以让两个 ddr 的地址连续),更改 ddr 的大小

// #define MEMORY_BASE_ADDRESS	0x20000000
#define MEMORY_BASE_ADDRESS	0x30000000
...
#define CONFIG_NR_DRAM_BANKS    2          /* we have 2 bank of DRAM */
// #define SDRAM_BANK_SIZE         0x20000000    /* 512 MB */
#define SDRAM_BANK_SIZE         0x10000000    /* 256 MB */
#define PHYS_SDRAM_1            MEMORY_BASE_ADDRESS /* SDRAM Bank #1 */
#define PHYS_SDRAM_1_SIZE       SDRAM_BANK_SIZE
#define PHYS_SDRAM_2            (MEMORY_BASE_ADDRESS + SDRAM_BANK_SIZE) /* SDRAM Bank #2 */
#define PHYS_SDRAM_2_SIZE       SDRAM_BANK_SIZE
...

然后是修改 ddr 的初始化参数

// #define DMC0_MEMCONFIG_0	0x20E01323	// MemConfig0	256MB config, 8 banks,Mapping Method[12:15]0:linear, 1:linterleaved, 2:Mixed
#define DMC0_MEMCONFIG_0	0x30F01323	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值