查看: 3167|回复: 2

[已解决] imx6q MFG烧写失败问题

[复制链接]

该用户从未签到

1

主题

3

帖子

2

新手上路

Rank: 1

积分
11
最后登录
2018-5-16
发表于 2018-5-14 11:02:00 | 显示全部楼层 |阅读模式
我们自己做的板子,imx6q+1G DDR3(MT41K256M16HA-125:E )+4G eMMC(MTFC4GLDDQ-4M IT ),我直接下载的MFG包,然后进行烧写,步骤停留在“Jumping to OS image”,串口也没有任何的打印信息。根据ucl2可知,是先把firmware里的镜像下载到内存,然后跳转启动,现在应该是跳转到内存的uboot后无法正常启动。我用之前同事的某个uboot替换firmware里使用的uboot,就可以正常跳转并烧写了。
请问是什么原因可能导致这个问题?谢谢
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

1

主题

3

帖子

2

新手上路

Rank: 1

积分
11
最后登录
2018-5-16
 楼主| 发表于 2018-5-14 14:45:26 | 显示全部楼层
自己顶一下,求大佬
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

3

帖子

2

新手上路

Rank: 1

积分
11
最后登录
2018-5-16
 楼主| 发表于 2018-5-16 08:59:28 | 显示全部楼层
自己来结下帖。根本原因是我们用的ddr和官网默认的不一样,导致ddr初始化失败,重定向跳转至内存后,执行代码失败。需要做ddr适配,也就是DCD配置。参见fsl-yocto-L4.9.11_1.0.0里i.MX_BSP_Porting_Guide.pdf文档的3.2.1节,使用DDR script Aid and DDR stress tools得到参数,并用ddr_stress_tester做参数校准,然后把最终得到的参数填到uboot的board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg中(根据config可知使用的是这个配置文件,也可以手动创建一个cfg文件,并修改config)。然后提示可以正常烧写了,但串口依然没输出,这个基本认为是调试串口不对,在 Mx6sabresd.c (board\freescale\mx6sabresd) 中的setup_iomux_uart函数中进行调试串口的设置,根据你的硬件设计来修改就行了。我的修改如下:
开始参数是:
static iomux_v3_cfg_t const uart1_pads[] = {
        MX6_PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
        MX6_PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
};
修改后是:
static iomux_v3_cfg_t const uart1_pads[] = {
        MX6_PAD_SD3_DAT7__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
        MX6_PAD_SD3_DAT6__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
};

我的UART1_TXD是SD3_DAT7管脚,UART_RXD是SD3_DAT6管脚

评分

参与人数 1 +2 收起 理由
doatello + 2

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 12:26 , Processed in 0.085454 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表