[i.MX]

修改mx53_loco_mfg.h疑难问题

[复制链接]
3285|26
手机看帖
扫描二维码
随时随地手机跟帖
yueyesighhz|  楼主 | 2014-10-31 11:30 | 显示全部楼层 |阅读模式
本帖最后由 yueyesighhz 于 2014-10-31 11:31 编辑

板子是自己设计的,所以我要去编译一个mfgtool上可以使用的uboot,我的板子是mx53_loco的,与官方的区别就是只有2块DDR,我修改mx53_loco_mfg.h如下:

/*
* MMC Configs
*/
#ifdef CONFIG_CMD_MMC
        #define CONFIG_MMC                                1
        #define CONFIG_GENERIC_MMC
        #define CONFIG_IMX_MMC
        #define CONFIG_SYS_FSL_ESDHC_NUM        1
        #define CONFIG_SYS_FSL_ESDHC_ADDR       0
        #define CONFIG_SYS_MMC_ENV_DEV  0
        #define CONFIG_DOS_PARTITION        1
        #define CONFIG_CMD_FAT                1
        #define CONFIG_CMD_EXT2                1

        /* detect whether ESDHC1 or ESDHC3 is boot device */
        #define CONFIG_DYNAMIC_MMC_DEVNO

        #define CONFIG_EMMC_DDR_PORT_DETECT
        #define CONFIG_EMMC_DDR_MODE
        /* port 1 (ESDHC3) is 8 bit */
        #define CONFIG_MMC_8BIT_PORTS        0x2
#endif

/*
* SATA Configs
*/
#ifdef CONFIG_CMD_SATA
  #define CONFIG_DWC_AHSATA
  #define CONFIG_SYS_SATA_MAX_DEVICE      1
  #define CONFIG_DWC_AHSATA_PORT_ID       0
  #define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_BASE_ADDR
  #define CONFIG_LBA48
  #define CONFIG_LIBATA
#endif

/*-----------------------------------------------------------------------
* Stack sizes
*
* The stack sizes are set up in start.S using the settings below
*/
#define CONFIG_STACKSIZE        (128 * 1024)        /* regular stack */

/*-----------------------------------------------------------------------
* Physical Memory Map
*/
#define CONFIG_NR_DRAM_BANKS        1
#define PHYS_SDRAM_1                CSD0_BASE_ADDR
#define PHYS_SDRAM_1_SIZE        (256 * 1024 * 1024)

#define PHYS_SDRAM_2                CSD1_BASE_ADDR
#define PHYS_SDRAM_2_SIZE        (256 * 1024 * 1024)
#define iomem_valid_addr(addr, size) \
        ((addr >= PHYS_SDRAM_1 && addr <= (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE)))
//        || (addr >= PHYS_SDRAM_2 && addr <= (PHYS_SDRAM_2 + PHYS_SDRAM_2_SIZE)))


这里我是根据我的uboot进行的修改,PHYS_SDRAM_2不能注释,会编译出错。但是我烧录的时候还是出现了错误,错误如下
U-Boot 2009.08 (Oct 30 2014 - 20:10:47)

CPU:   Freescale i.MX53 family 2.1V at 800 MHz
mx53 pll1: 800MHz
mx53 pll2: 400MHz
mx53 pll3: 432MHz
mx53 pll4: 455MHz
ipg clock     : 66666666Hz
ipg per clock : 33333333Hz
uart clock    : 66666666Hz
cspi clock    : 108000000Hz
ahb clock     : 133333333Hz
axi_a clock   : 400000000Hz
axi_b clock   : 200000000Hz
emi_slow clock: 133333333Hz
ddr clock     : 400000000Hz
esdhc1 clock  : 80000000Hz
esdhc2 clock  : 80000000Hz
esdhc3 clock  : 80000000Hz
esdhc4 clock  : 80000000Hz
nfc clock     : 26666666Hz
Board: MX53-LOCO 1.0 Rev. A
Boot Reason: [POR]
Boot Device: SPI NOR
I2C:   ready
DRAM:  256 MB
MMC:   FSL_ESDHC: 0
MMC Device 1 not found
No MMC card found

In:    serial
Out:   serial
Err:   serial
Error: Dont't found mc34708 or da9052 on board.
Net:   FEC0
MX53-LOCO-MFG U-Boot >

然后就停在了jumping那里,请问我还需要修改哪些地方才能让DDR跑起来。由于是菜鸟,也没有可以询问的人,所以只能来论坛寻求帮助了。



相关帖子

FSL_TICS_Rita| | 2014-10-31 13:16 | 显示全部楼层
你好,由于你DDR和开发板的不一样,所以你首先要保证DDR设置是正确的,关于DDR参数配置和测试,你可以参考一下https://bbs.21ic.com/icview-792090-1-1.html

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 14:33 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 13:16
你好,由于你DDR和开发板的不一样,所以你首先要保证DDR设置是正确的,关于DDR参数配置和测试,你可以参考 ...

这个意思是说我要修改uboot里面的DDR配置,然后编译一个mfgtool使用的uboot文件吗?

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 14:35 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 13:16
你好,由于你DDR和开发板的不一样,所以你首先要保证DDR设置是正确的,关于DDR参数配置和测试,你可以参考 ...

另外可以麻烦你给我发一个mx53可以使用的mfgtool工具包吗?

使用特权

评论回复
FSL_TICS_Rita| | 2014-10-31 15:24 | 显示全部楼层
yueyesighhz 发表于 2014-10-31 14:33
这个意思是说我要修改uboot里面的DDR配置,然后编译一个mfgtool使用的uboot文件吗? ...

是的,你要先设定好DDR的配置,再编译你板子上使用烧写工具mfgtool的firmware。

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 15:28 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 15:24
是的,你要先设定好DDR的配置,再编译你板子上使用烧写工具mfgtool的firmware。 ...

I.MX53 DDR3 Script Aid V0.01.xlsx我在你说的网站下载了这个文件,是按照这个文件来修改flash_hearder.S里面的DDR寄存器吗?

使用特权

评论回复
FSL_TICS_Rita| | 2014-10-31 15:51 | 显示全部楼层
yueyesighhz 发表于 2014-10-31 15:28
I.MX53 DDR3 Script Aid V0.01.xlsx我在你说的网站下载了这个文件,是按照这个文件来修改flash_hearder.S ...

在这个脚本里你可以根据你的设计来设定相应DDR的参数,设定好后在该表格中有对应的代码的。

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 16:37 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 15:51
在这个脚本里你可以根据你的设计来设定相应DDR的参数,设定好后在该表格中有对应的代码的。 ...

我已经照着将DDR寄存器改过了,但是mfgtool还是停在jumping那里,日志
1 - Panel A Start processing MX53-Loco <LIST/>.

Panel A Start <CMD/> type="boot" body="BootStrap" file="u-boot.bin" timeout="10" onError="" text="Read from DDR script from U-Boot to init DDR Memory.".

1 - Panel A Finished <CMD/> type="boot" body="BootStrap" file="u-boot.bin" timeout="10" onError="" text="Read from DDR script from U-Boot to init DDR Memory." SUCCESS code=0x0.

Panel A Start <CMD/> type="load" body="" file="uImage" timeout="10" onError="" text="Doing Kernel.".

1 - Panel A Finished <CMD/> type="load" body="" file="uImage" timeout="10" onError="" text="Doing Kernel." SUCCESS code=0x0.

Panel A Start <CMD/> type="load" body="" file="initramfs.cpio.gz.uboot" timeout="10" onError="" text="Doing Initramfs.".

1 - Panel A Finished <CMD/> type="load" body="" file="initramfs.cpio.gz.uboot" timeout="10" onError="" text="Doing Initramfs." SUCCESS code=0x0.

Panel A Start <CMD/> type="jump" body="" file="" timeout="10" onError="" text=" Jumping to OS image. ".

1 - Panel A Finished <CMD/> type="jump" body="" file="" timeout="10" onError="" text=" Jumping to OS image. " SUCCESS code=0x0.

Panel A Start <CMD/> type="find" body="Updater" file="" timeout="180" onError="" text="".

Panel A UtpUpdate Event: DeviceRemoval Msg: (null) DevState: Disconnected OpState: WAITING_FOR_DEVICE

Panel A: Reason is unknown,1 - Panel A Finished <CMD/> type="find" body="Updater" file="" timeout="180" onError="" text="" FAIL code=0xffffffff.

请问为什么一直连接不上设备呢

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 16:42 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 15:51
在这个脚本里你可以根据你的设计来设定相应DDR的参数,设定好后在该表格中有对应的代码的。 ...

而且每次烧录会直接调到uboot命令行界面
esdhc1 clock  : 80000000Hz
esdhc2 clock  : 80000000Hz
esdhc3 clock  : 80000000Hz
esdhc4 clock  : 80000000Hz
nfc clock     : 26666666Hz
Board: MX53-LOCO 1.0 Rev. A
Boot Reason: [POR]
Boot Device: SPI NOR
I2C:   ready
DRAM:  256 MB
MMC:   FSL_ESDHC: 0
MMC Device 1 not found
No MMC card found
In:    serial
Out:   serial
Err:   serial
Error: Dont't found mc34708 or da9052 on board.
Net:   FEC0
MX53-LOCO-MFG U-Boot >

使用特权

评论回复
FSL_TICS_Rita| | 2014-10-31 16:55 | 显示全部楼层
yueyesighhz 发表于 2014-10-31 16:37
我已经照着将DDR寄存器改过了,但是mfgtool还是停在jumping那里,日志
1 - Panel A Start processing MX5 ...

还是DDR的问题,请问你有编译mfgtool使用的initramfs.cpio.gz.uboot,u-boot以及kernel文件了吗?

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 16:59 | 显示全部楼层
我只是替换了uboot,至于initramfs.cpio.gz.uboot我看你们有回复说是可以使用默认的

使用特权

评论回复
yueyesighhz|  楼主 | 2014-10-31 16:59 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 16:55
还是DDR的问题,请问你有编译mfgtool使用的initramfs.cpio.gz.uboot,u-boot以及kernel文件了吗? ...


我只是替换了uboot,至于initramfs.cpio.gz.uboot我看你们有回复说是可以使用默认的

使用特权

评论回复
FSL_TICS_Rita| | 2014-10-31 17:35 | 显示全部楼层
yueyesighhz 发表于 2014-10-31 16:59
我只是替换了uboot,至于initramfs.cpio.gz.uboot我看你们有回复说是可以使用默认的 ...

如果DDR设计不一样的话,是要换掉的。

使用特权

评论回复
pei84| | 2014-10-31 17:48 | 显示全部楼层

使用特权

评论回复
FSL_TICS_Rita| | 2014-11-3 15:34 | 显示全部楼层
pei84 发表于 2014-10-31 17:48

使用特权

评论回复
FSL_TICS_Rita| | 2014-11-3 15:34 | 显示全部楼层
楼主你好,请问你帖中问题解决了吗?如果没有的话,欢迎继续在这里讨论哈~~

使用特权

评论回复
yueyesighhz|  楼主 | 2014-11-3 15:44 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-10-31 17:35
如果DDR设计不一样的话,是要换掉的。

我还是有几个问题:
1、下载会自动进入uboot命令行,但是我通过uboot命令可以调到内核,那不是能说明DDR是正常运行的么?
2、mfgtool烧录需要3个文件,uboot,kernel还有inittramfs,其中jumping to OS image还是在uboot阶段吧,那这个时候跟文件系统inittram有联系吗?为什么这个也要定制呢?
3、mfgtool的jump指令,就是跳转到内存中的kernel去执行吧,为什么我手动运行bootm 70800000 可以跳转,而它自己却不能跳转嗯?这是不是说明它实际上是找不到内核呢?

使用特权

评论回复
FSL_TICS_Rita| | 2014-11-3 16:01 | 显示全部楼层
yueyesighhz 发表于 2014-11-3 15:44
我还是有几个问题:
1、下载会自动进入uboot命令行,但是我通过uboot命令可以调到内核,那不是能说明DDR ...

我还是有几个问题:
1、下载会自动进入uboot命令行,但是我通过uboot命令可以调到内核,那不是能说明DDR是正常运行的么?
答:进入u-boot说明DDR已经正常运行。

2、mfgtool烧录需要3个文件,uboot,kernel还有inittramfs,其中jumping to OS image还是在uboot阶段吧,那这个时候跟文件系统inittram有联系吗?为什么这个也要定制呢?
答:你DDR设计和开发板不一样的,要重新编译mfgtool的firmware,在重新编译mfgtool的firmware时候uboot,kernel还有inittramfs都会被重新生成的。

3、mfgtool的jump指令,就是跳转到内存中的kernel去执行吧,为什么我手动运行bootm 70800000 可以跳转,而它自己却不能跳转嗯?这是不是说明它实际上是找不到内核呢?
你好,你这里手动执行bootm 70800000是在哪里执行的?

使用特权

评论回复
yueyesighhz|  楼主 | 2014-11-3 16:14 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-11-3 16:01
我还是有几个问题:
1、下载会自动进入uboot命令行,但是我通过uboot命令可以调到内核,那不是能说明DDR ...

烧录的时候在串口终端,会在jumping的时候跑到uboot的命令行,后面的烧录就没有跑了,然后我直接在uboot的命令行写命令是可以进入内核的,但是我不清楚为什么会导致烧录不能自动去加载内核

使用特权

评论回复
FSL_TICS_Rita| | 2014-11-3 16:51 | 显示全部楼层
yueyesighhz 发表于 2014-11-3 16:14
烧录的时候在串口终端,会在jumping的时候跑到uboot的命令行,后面的烧录就没有跑了,然后我直接在uboot ...

楼主你好,你能把终端上打印的信息发给我看一下吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

80

帖子

1

粉丝