本帖最后由 amwha 于 2017-5-13 15:57 编辑
我的问题如下:
原来我是用LTIB编译的,使用的是2009.08版本的Uboot和3.0.35版本的内核(LTIB编译出来就是这两个版本)现在我想移植高版本的uboot-2013.04( 内核版本不动,原来是跑得好好的)
硬件:IMX6D,nor flash,nand flash ,DDR3(512)
移植步骤:
一:源码准备
1、git clone git://git.freescale.com/imx/uboot-imx.git
2、git checkout -b hedyimx6q remotes/origin/imx_v2013.04_3.10.17_1.0.0_ga
二:定制自己的板子
这里主要参考了freescale 的官方文档 <i.MX_6_BSP_Porting_Guide.pdf>
1、参考了mx6qsabreauto开发板
cp -R board/freescale/mx6qsabreauto board/freescale/mx6qhedy
2、增加板子头文件
cp include/configs/mx6qsabreauto.h include/configs/mx6qhedy.h
3、增加板子源文件
mv board/freescale/mx6qhedy/mx6qsabreauto.c board/freescale/mx6qhedy/mx6qhedy.c
4、修改MAKEFILE (自定义板子目录下)
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).o
COBJS := mx6qhedy.o
5、修概boards.cfg 加入下面一行
mx6qhedy arm armv7 mx6qhedy freescale mx6 mx6qhedy:IMX_CONFIG=board/freescale/mx6qhedy/mx6q.cfg,MX6Q,DEFAULT_FDT_FILE="imx6q-hedy.dtb",DDR_MB=512,SYS_BOOT_EIMNOR
我们使用的是并行的nor 所以这里用了这个参数:SYS_BOOT_EIMNOR
6、修改了eimnor的pads配置
原来在u-boot2009.08时可以跑起来,所以把原来的拷贝过来
iomux_v3_cfg_t eimnor_pads[] = {
MX6_PAD_CSI0_DATA_EN__WEIM_WEIM_D_0 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_VSYNC__WEIM_WEIM_D_1 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT4__WEIM_WEIM_D_2| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT5__WEIM_WEIM_D_3| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT6__WEIM_WEIM_D_4| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT7__WEIM_WEIM_D_5| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT8__WEIM_WEIM_D_6| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT9__WEIM_WEIM_D_7| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT12__WEIM_WEIM_D_8| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT13__WEIM_WEIM_D_9| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT14__WEIM_WEIM_D_10| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT15__WEIM_WEIM_D_11| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT16__WEIM_WEIM_D_12| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT17__WEIM_WEIM_D_13| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT18__WEIM_WEIM_D_14| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_CSI0_DAT19__WEIM_WEIM_D_15| MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA0__WEIM_WEIM_DA_A_0 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA1__WEIM_WEIM_DA_A_1 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA2__WEIM_WEIM_DA_A_2 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA3__WEIM_WEIM_DA_A_3 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA4__WEIM_WEIM_DA_A_4 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA5__WEIM_WEIM_DA_A_5 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA6__WEIM_WEIM_DA_A_6 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA7__WEIM_WEIM_DA_A_7 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA8__WEIM_WEIM_DA_A_8 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA9__WEIM_WEIM_DA_A_9 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA10__WEIM_WEIM_DA_A_10 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA11__WEIM_WEIM_DA_A_11 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA12__WEIM_WEIM_DA_A_12 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA13__WEIM_WEIM_DA_A_13 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA14__WEIM_WEIM_DA_A_14 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_DA15__WEIM_WEIM_DA_A_15 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A16__WEIM_WEIM_A_16 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A17__WEIM_WEIM_A_17 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A18__WEIM_WEIM_A_18 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A19__WEIM_WEIM_A_19 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A20__WEIM_WEIM_A_20 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A21__WEIM_WEIM_A_21 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A22__WEIM_WEIM_A_22 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A23__WEIM_WEIM_A_23 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A25__WEIM_WEIM_A_25 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_A24__WEIM_WEIM_A_24 | MUX_PAD_CTRL(WEIM_NOR_PAD_CTRL),
MX6_PAD_EIM_OE__WEIM_WEIM_OE | MUX_PAD_CTRL(NO_PAD_CTRL),
MX6_PAD_EIM_RW__WEIM_WEIM_RW | MUX_PAD_CTRL(NO_PAD_CTRL),
MX6_PAD_EIM_CS0__WEIM_WEIM_CS_0 | MUX_PAD_CTRL(NO_PAD_CTRL),
/* Steer logic */
MX6_PAD_EIM_A24__GPIO_5_4 | MUX_PAD_CTRL(NO_PAD_CTRL),
};
7、修改 DDR配置
原来在u-boot2009.08时可以跑起来,在flash_header.S下的DDR配置,把参数也改到
board/freescale/mx6qhedy/mx6q.cfg 文件里
8、编译
:~/joey/uboot-imx$ echo $ARCH
arm
:~/joey/uboot-imx$ echo $CROSS_COMPILE
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
make distclean;
make mx6qhedy
make
生成了u-boot.bin \u-boot.imx两个文件
9、烧写
将u-boot.imx 拷贝到U盘,插入已经跑起来的系统
再执行:
dd if=/mnt/udisk/sda1/u-boot.imx of=/dev/mtdblock0 bs=512
(原来我在2009.08版本上编译出来的u-boot.bin文件也是这样做的,没毛病)
提示成功
10、验证
重启后,什么也没有打印,也没有起来。死掉了。
请问我这些步骤那里有问题? |