我们在合众达(Seed)的DVS8168开发板(与TI的evm816x很相似)基础上裁剪了一块8168板子,板子情况如下:
去掉了SATA接口、SERDES CLOSCKS、PCIe接口,
CPU采用的是TMS320DM8168CCYG,
DDR由8片K4B2G0846D(共2GB)换成了4片MT41K128M16JT(共1GB),DDR已用DM816x_C6A816x_AM389x_EMIF4_Register_Settings重新设置了寄存器参数,并且在u-
boot中也做了相应修改。
硬件部分在CCS下用evm816x_BSL做了测试,都能通过。
我们采用了NANDFLASH启动方式,用的是Seed提供的SDK包(DVRRDK_02.00.00.23)中的u-boot和内核程序,这部分程序是在TI的linux-psp-dvr-04.00.01.13上做了一些修改。
现在的问题是u-boot能正常启动,但加载Linux内核时就卡在Starting kernel …动不了了。以下是u-boot的启动信息和加载内核时的参数设置。应该是用的UART0
,波特率也是对的。
我们刚开始接触Linux内核,请问这个问题可能是由什么造成的?应该如何入手调试解决?会不会是由于DDR由2GB换成了1GB引起的?u-boot下为什么显示DRAM: 2
GiB?我们应该修改哪部分的代码?
U-Boot 2010.06 (Jul 25 2016 – 01:00:13)
TI8168-GP rev 2.1
ARM clk: 930MHz
DDR clk: 796MHz
HDVICP clk: 504MHz
L3 Fast clk: 465MHz
HDVPSS clk: 232MHz
Ducati M3 clk: 232MHz
I2C: ready
DRAM: 2 GiB
NAND: HW ECC Hamming Code selected
256 MiB
:,;;:;:;;;;;;;;r;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:,;;:;:;;;;;;;;:;;;;;;;;:,;;:;:;,;:::;;;;r;;;rssiSiS552X5252525259GX2X9hX9X9XX2325S55252i5:,;;:;:;;;;;;;;:,;;:;:;;;;;;;rrssSsS52S22h52299GGAAMHMM#BBH#B#HMM#HMBA&&XX2255S2S5Si:,;;:;:;;;;;;;;;:;;r;;rsrrriiXS5S329&A&MH#BMB#A&9XXA252GXiSXX39AAMMMBB&G22S5i2SSiiiisi:,;;:;:;;;;;;r;rr2iisiih393HB#B#AA99i22irrrX3X52AGsisss2Xii2299HBMA&X2S5S5iSiisSsi:,;;:r:r;rrsrsihXSi2&##MHB&Ahh3AGHGA9G9h&#H##@@@##MAMMXXX9SSS29&&HGGX2i5iisiiisisi:,;;rrrrsSiiiA&ABH&A9GAGhAhBAMHA9HM@@@@@@@@@@@@@@@@@@@HHhAh2S2SX9&Gh22SSiisiiisiir:rrssisiS2XM##&h3AGAX&3GG3Ssr5H@M#HM2; ;2X&&&MHMB###GBB#B&XXSSs529XX55iSsisisir;rsrisSi2XHAhX99A3XXG&&XS;:,rH#HGhAS @@@@3rs2XBM@@A552&&AHA2XiisSS252SSsisSsr;issi5S22&&3iSSX292&hXsr;;:;h@&G339&S9@@@@2@MA&9&HB##Xris29ABMAAX2ir;rsSi5iss5rrsSi2XhG&9GXh399&X99i;;;;;;r#H&293H9X#@@@@@@@B&9GhAH@XrrsrsiXABHB&HG2rr;rrSiSi;:rsisS599&AA9XG&3A35r;:::;,;BMh&&2iX5A@@@@@@@&392X5GB2;;;r;iSX393A##A&Xi:::rsi;:rss552222X553&XHMhir;;::,:,h#HhGSXhG3#@@@@#AXXS2XAHA;::;;;;ss55XShBA3239r:,;;r;ii2S5SSi2i53hirsh2srr::,,,,;MMXX359&Ah3h&Si59SX99A#i:,::::;;sri2,.2r;:SGAr;,:;:;rrrrssiriXGSi::shs;;;,,,:,,rBBA9h5s5h5iS5isi2SAHB5:,,,:::;rrs5&SrisSX5Srrr:,;,r;;;;rsriSSrrrr;;5Xrr;;,:,,.,;9AA2SsisS5323XXXG9&i:.,,::;;r;;;srrrrrr;;:;:::::,;r;r;rrissrrr;:;::;s;;;;,:,,..,r293h222hXXAAGGGX;:,,,:,:,::;:;::,:,,,,…,,,,;,;;;;rrrrrrrrirr;,.,,:::::::,,,,.,;SX&ABAB2hhXir:,,.,,.,,:,,,,..,,,..,..,,,..::.:;:;;;:;;;;r;rrs;:.. ,,:::::,:,:,,.::rrsrr;;,,…….,..,….,,,,,,,…,.,,:,:.:::,::::::;;r;rrr;:…….,.,.,,:::,,……………,,::.,,,,:,::,,:,:,,,:,;:,.::,:,,,,,;;;;;;;;r;;::,…………………………;;;:;::::,:::::::,:,:,,,: ,,:,,,,,,,,,,,,,:;rrr;;:;,,,,,,,::,.,.:.,.,;s,:;;;;:;:;;;;;::::,:::,:::,:,:,:,.,,,,,,,…,,.,,………………………………:,…………:,,,:,:,,,,,
MMC: OMAP SD/MMC: 0
Net: Detected MACID:88:c2:55:8a:d1:8e
Ethernet PHY: GENERIC @ 0x01
DaVinci EMAC
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x580000, size 0x260000
2490368 bytes read: OK
## Booting kernel from Legacy Image at 81000000 …
Image Name: Linux-2.6.37
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2435192 Bytes = 2.3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK
Starting kernel …
SEED-DVS8168_v1.0#print
baudrate=115200
autoload=no
verify=yes
bootfile=uImage
ramdisk_file=ramdisk.gz
loadaddr=0x81000000
script_addr=0x80900000
loadbootscript=fatload mmc 0 ${script_addr} boot.scr
bootscript= echo Running bootscript from MMC/SD to set the ENV…; source ${scr}
ethaddr=88:c2:55:8a:d1:8e
ethact=DaVinci EMAC
bootdelay=10
filesize=2528B8
fileaddr=81000000
gatewayip=192.168.0.1
netmask=255.255.255.0
ipaddr=192.168.0.180
serverip=192.168.0.113
bootcmd=nand read 0x81000000 0x00580000 0x260000;bootm 0x81000000
bootargs=mem=116M console=ttyO0,115200n8 root=/dev/nfs nfsroot=192.168.0.113:/o0
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2010.06 (Jul 25 2016 – 01:00:13)
Environment size: 814/8188 bytes
Chris Meng:
Michael,
请问uboot里面的LISA相关配置是否有修改?
下面的论坛讨论可以参考一下:
https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/392710
Chris Meng:
回复 Chris Meng:
Michael,
关于uboot里面显示的DDR的大小,请尝试修改\u-boot-dvr-rdk\include\configs\里面类似ti8168_evm.h的头文件的下面的信息:
/** * Physical Memory Map */#define CONFIG_NR_DRAM_BANKS 2 /* we have 2 banks of DRAM */#define PHYS_DRAM_1 0x80000000 /* DRAM Bank #1 */#define PHYS_DRAM_1_SIZE 0x20000000 /* 512 MB */#define PHYS_DRAM_2 0xC0000000 /* DRAM Bank #2 */#define PHYS_DRAM_2_SIZE 0x20000000 /* 512 MB */
Michael Xu3:
回复 Chris Meng:
Chris,谢谢你的回复。
我们的确没有修改LISA配置,昨天将u-boot的ti8168_evm.h修改为
#define CONFIG_NR_DRAM_BANKS 2 /* we have 2 banks of DRAM */#define PHYS_DRAM_1 0x80000000 /* DRAM Bank #1 */#define PHYS_DRAM_1_SIZE 0x20000000 /* 512 MB */#define PHYS_DRAM_2 0xA0000000 /* DRAM Bank #2 */#define PHYS_DRAM_2_SIZE 0x20000000 /* 512 MB */
将evm.h中的LISA配置修改为2个Section,每个Section 512MB,128B交织模式:
__raw_writel(0x0, DMM_LISA_MAP__0); __raw_writel(0x0, DMM_LISA_MAP__1); __raw_writel(0x80540300, DMM_LISA_MAP__2); __raw_writel(0xA0540310, DMM_LISA_MAP__3);
不知道参数设置是否正确,现在的现象跟原来还是一样,卡在Starting kernel … 不动。
内核启动参数,我们设的是:
setenv bootargs 'mem=116M console=ttyO0,115200n8 root=/dev/nfs nfsroot=192.168.0.113:/opt/DVRRDK_02.00.00.23/target/rfs ip=192.168.0.180:192.168.0.113:192.168.0.1:255.255.255.0::eth0:off vram=20M notifyk.vpssm3_sva=0xbfd00000'
不知道哪里有问题?
Chris Meng:
回复 Michael Xu3:
Michael,
请问在rules.make里面你是否配置的是DDR_MEM := DDR_MEM_1024M?
Michael Xu3:
回复 Chris Meng:
我查了一下,rules.make在DVRRDK_02.00.00.23/dvr_rdk目录下,我们没有修改过dvr_rdk目录里的任何东西,感觉跟linux内核没有关系,rules.make里面原来就是配置的是DDR_MEM_1024M
Michael Xu3:
还有一个奇怪的问题:我们总共做了两块板,另一块板,每次用nand-flash-writer.out重新烧写u-boot到nand flash后,u-boot可以正常启动,而且今天调试后可以加载linux内核了,但到USB HID core driver时就挂了,附件是加载信息。但这块板子有个奇怪的问题,烧写flash后,只要闲置几分钟,u-boot就启动不起来,只能显示很少的字符,比如
U-Boot 2010.06 (Aug 17 2016 – 21:39:24) TI8168-GP rev 2.1 ARM clk: 930MH?
这是不是flash有问题?
Chris Meng:
回复 Michael Xu3:
Michael,
如你使用串口下载uboot,是否有类似的问题?如果也有,就可以排除flash的问题,而考虑DDR的稳定性。
你是否有尝试降低DDR频率测试过?
Michael Xu3:
回复 Chris Meng:
Chris,如何用串口下载uboot?Ti有没有提供针对8168的串口烧写工具啊?能不能给个链接,谢谢!
Chris Meng:
回复 Michael Xu3:
Michael,
PG2.x的芯片才能使用串口下载uboot,请参考uboot guide:
http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide#U-Boot_UART_support
Michael Xu3:
回复 Chris Meng:
Chris,
今天对上次能加载内核的那块板改变DDR频率进行测试,频率降为400MHz和531MHz,u-boot启动不起来, 频率降为675MHz,现象跟796MHz一样,刚用CCS下载完u-boot,可以正常启动并加载内核,断电几分钟后,启动不了,然后再反复上电多次, 又可以慢慢启动起来,现在我怀疑DDR的稳定性有问题。
我们只是用DM816x_C6A816x_AM389x_EMIF4_Register_Settings 重新设置了寄存器参数,由于在CCS下,用DDR_test程序在400、531、675、796几个频率下都能够测试通过,想着DDR应该没有问题,所 以没有做SW_LEVELING,现在看来是不是还是要做SW_LEVELING啊?
TI中文支持网


