想请教您一个问题,我用的是ti8147,现在需要把nandflash从128M的换成512M的,是同一款型号的,但是页大小不一样,(我认为uboot中既然已经检测到了,应该可以支持的,所以就没有改代码)本来读写时会出现ecc错误,后来我改了ecc layout就不报错了,但是uboot启动不成功,还是一直打印CCCCCC,请问这是怎么回事呢。
128M的datesheet:
512M的datesheet:
根据128M的ecc layout写的512M的ecc layout:
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
U-Boot 2010.06 (Mar 19 2014 - 14:57:42) DM8127_IPNC_3.80.00
TI8148-GP rev 2.1
ARM clk: 600MHz
DDR clk: 400MHz
L3 clk: 200MHz
IVA clk: 450MHz
ISS clk: 400MHz
DSP Default OFF
DSS Default OFF
DRAM: 512 MiB
DCACHE: Off
NAND: HW ECC BCH8 Selected
256 MiB
Using default environment
The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x20000, size 0x40000
262144 bytes read: OK
## Starting application at 0x81000000 ...
一直到这边打印信息就停止了.......
感觉是kernel从nand中读出来后,运行出了问题。
你这个是自己做的板子吗,相对于原版软件做了什么改动没有
Connecting Target...
CortexA8: Output: **** CENTAURUS2 DDR3 System_Initialisation IS in progress ..........
CortexA8: Output: **** CENTAURUS2 ALL ADPLL INIT IS In Progress .........
CortexA8: GEL: Error while executing OnTargetConnect(): Target failed to read memory at 0x481C5114 at (*((unsigned int *) (Base_Address+0x4))|0x00800000) [IPNC_A8_DDR3.gel:675] at PLL_Clocks_Config((0x481C5000+0x110), CLKIN, N, M, M2, 0x00000801) [IPNC_A8_DDR3.gel:1084] at cmdL3PLL(CLKIN, 19, 800, 4) [IPNC_A8_DDR3.gel:1043] at PLL_SETUP() [IPNC_A8_DDR3.gel:99] at ALL_ADPLL_CLOCKS_ENABLE_API() [IPNC_A8_DDR3.gel:30] at HDVPSSInit() [IPNC_A8_DDR3.gel:21] at OnTargetConnect() .
你好,这个是我连接开发板时候遇到的问题。gel文件是IPNC_A8_DDR3.gel
错误信息显示L3的时钟配置出现问题。开发板+原配的代码应该不会出现这种情况。
- 你看看在script->这个下拉菜单里面其他的选项是否能用。
- Run->reset一下看看能不能用
- 先不要load Gel文件,先连接A8,再load Gel。从script这里手工运行。
我问下。我们的uboot烧入到新板子上。uboot运行一半就不运行了是什么情况。。串口出来的打印信息如下
U-Boot 2010.06 (Mar 19 2014 - 14:57:42) DM8127_IPNC_3.80.00
TI8148-GP rev 2.1
ARM clk: 600MHz DDR clk: 400MHz L3 clk: 200MHz IVA clk: 450MHz ISS clk: 400MHz DSP Default OFF DSS Default OFF
DRAM: 512 MiB DCACHE: Off NAND: HW ECC BCH8 Selected 256 MiB Using default environment
The 2nd stage U-Boot will now be auto-loaded Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x20000, size 0x40000 262144 bytes read: OK ## Starting application at 0x81000000 ...
sorry,前面我有笔误。把uboot写成kernel。
你现在是第二级的uboot就起不来了,那基本上和DDR的关系很大。
你有没有按照我之前写的做实验?就是用UART去启动uboot第一级,然后再用UART导入第二级? 是否也出现第一级成功,第二级失败?
关于如何使用UART 来启动芯片,以及通过UART来导入uboot 2nd的镜像。
在IPNCRDK包里面,有TI81XX_PSP_UBOOT_User_Guide.pdf
请搜U-Boot UART support 这节。
NAND flash有坏块很正常,你坏块看起来也不多,文件系统自己会管理坏块的,应该还好。
重新烧写镜像的时候建议在最先的时候用一下nand scrub这样可以重建坏块表。
关于NAND Flash 型号更换以及配置8bit NAND,请参考:
http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/30930.aspx
https://e2e.ti.com/support/embedded/linux/f/354/t/151629
https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/231420
也建议你直接询NAND供应商寻找兼容型号。
Hi ,
你直接使用uboot.min.nand也是可以的。
需要编译命令的话,请参考:
http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide#Building_U-Boot