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.

dm8127流程l问题咨询



各位好:

我们自己画的板子,使用的开发包ipnc-rdk-3.5。更改了ddr3,参考版上用的是4片共512M,用到了DDR0和DDR1的INTERFACE,我们自己的板子是2片共512M,只是用到了DDR0的INTERFACE。然后更改了uboot中的
arch/arm/include/asm/arch-ti81xx/ddr_defs_ti814x.h的配置,然后使能了ddr3,能够了sd卡启动(自己板子的nand和网卡还没有调通,wifi模块调通了),但是会打印错误信息:

[host] Loaded file ./firmware/ipnc_rdk_fw_m3vpss.xem3 on slave procId 2.
Unhandled fault: external abort on non-linefetch (0x1008) at 0xcf000280
Internal error: : 1008 [#1]
last sysfs file: /sys/devices/virtual/gpio/gpio106/value
Modules linked in: vpss(+) osa_kermod syslink rtnet5572sta rt5572sta(P) rtutil5572sta
CPU: 0 Tainted: P (2.6.37_DM8127_IPNC_3.50.00 #12)
PC is at GateMP_getFreeResource+0x88/0x124 [syslink]
LR is at SharedRegion_isCacheEnabled+0xb8/0xe0 [syslink]
pc : [<bf1ef740>] lr : [<bf1e6c9c>] psr: 80000013
sp : c542fc08 ip : 00000000 fp : c542fc34
r10: 00000000 r9 : bf2703ac r8 : cf000280
r7 : 00000040 r6 : cf000280 r5 : 00000000 r4 : 00000000
r3 : cf000280 r2 : bf22a70e r1 : 00000000 r0 : 00000000
Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 85468019 DAC: 00000015
Process fw_load.out (pid: 405, stack limit = 0xc542e2e8)
Stack: (0xc542fc08 to 0xc5430000)
fc00: 00000040 c542fc18 ca7a7000 c542fcbc 00000000 cf000580
fc20: c8f43000 ffffffff c542fc9c c542fc38 bf1efb10 bf1ef6c4 c542fcbc bf1dd928
fc40: 00000000 00000000 00000000 00000040 bf2705f0 00000000 c542fc9c c542fc68
fc60: bf1de78c bf1dd8d8 00000040 00000000 00000000 c542fc80 ca7a7000 c542fcbc
fc80: bf2705f0 00000001 00000002 bf2705f0 c542fcb4 c542fca0 bf1efe38 bf1ef7e8
fca0: c542fcbc c542fd24 c542fcf4 c542fcb8 bf1eff08 bf1efdf8 bf1e6bbc 00000000
fcc0: cf000000 cf000580 00000002 00000001 00000000 00000000 bf240288 cf000200


uboot打印:

TI8148_IPNC#
TI8148_IPNC#print
bootdelay=3
baudrate=115200
autoload=yes
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 ${script_addr}
ethaddr=7c:66:9d:64:5a:46
ethact=cpsw
bootcmd=mmc rescan 0; fatload mmc 0 0x81000000 uImage; bootm 0x81000000
serverip=192.168.1.101
ipaddr=192.168.1.168
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=128M rw vram=4M notifyk.vpssm3_sva=0x8db00000 rootwait
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2010.06 (May 27 2015 - 15:52:27) DM8127_IPNC_3.80.00

Environment size: 648/8188 bytes
TI8148_IPNC#

增加了notifyk.vpssm3_sva的设置

根据查阅的资料,估计是内存那一块除了问题,xem3文件除了问题。
请问 :
1:uboot中更改的ddr_defs_ti814x.h值,会影响到后面编译生成的xem3文件吗?
2: 编译生成xem3文件,关于内存的配置文件,是bld文件吗?
3: 我们想通过wifi实现pc端浏览是可行的吧?

TI的专家们和遇到过同样问题的前辈们,可否指引个方向。

附件:  log1.log 完整日志。

  • 你好,

    建议你对比一下下面链接里面修改使用一个EMIF的代码。如果总体DDR的大小不变,修改链接的代码后,其他代码不需要变化。

    http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot#FAQ

    请注意,使用一个EMIF的话,DDR吞吐比两个EMIF要少一半,如果DSP有大量的运算可能会出现DDR吞吐的瓶颈。

  • Chris:
    你好,我们根据文档IPNC_RDK_MemoryMapAnalysis.pdf 更改了ipnc_rdk/ipnc_mcfw/mcfw/src_bios6/cfg/ti814x/config_512M.bld中的配置值

    var DDR3_ADDR_256_REG0_START = 0x80000000;
    var DDR3_ADDR_256_REG0_END = 0x90000000;
    var DDR3_ADDR_256_REG1_START = 0x90000000;
    var DDR3_ADDR_256_REG1_END = 0xa0000000;

    更改了env.sh中的

    export RDK_LINUX_MEM="80M"
    export NOTIFYK_VPSSM3_SVA_ADDR="0x9fd00000"
    export REMOTE_DEBUG_ADDR="0x9ff00000"
    export HDVPSS_SHARED_MEM="0x9fb00000"
    export HDVPSS_SHARED_SIZE="0x200000"

    更改了setenv bootargs 'console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=80M rw vram=4M notifyk.vpssm3_sva=0x9fd00000 rootwait'

    现在问题是:在 insmod insmod /opt/ipnc/kermod/vpss.ko sbufaddr=0x8fb00000 总是报错:

    VPSS_FVID2: create handle is NULL
    VPSS_SYSTEM: failed to create handle
    VPSS_CORE : failed to init system
    vpss: probe of vpss failed with error -22
    VPSS_CORE : failed to register ti81xx-vpss driver
    想知道怎么解决这个问题?出现这个问题都是什么原因引起的?


    而且:ipnc_mcfw/demos/mcfw_api_demos/multich_usecase/ti_mcfw_ipnc_main.c 中
    #ifdef IPNC_DSS_ON
    /* load module fb */
    system("insmod ./kermod/vpss.ko mode=hdmi:1080p-60 sbufaddr=0xbfb00000");

    system("insmod ./kermod/ti81xxhdmi.ko 2> /dev/null");
    /* Enable range compression in HDMI 0..255 to 16..235 . This is needed
    * for consumer HDTVs */
    system("./bin/mem_rdwr.out --wr 0x46c00524 2");
    #else
    IPNC_DSS_ON宏是打开的,却执行不到insmod 命令,需要手动insmod。

    附件为:完整log。

  • 你好,

    下面的修改是错误的。

    var DDR3_ADDR_256_REG0_START = 0x80000000;
    var DDR3_ADDR_256_REG0_END = 0x90000000;
    var DDR3_ADDR_256_REG1_START = 0x90000000;
    var DDR3_ADDR_256_REG1_END = 0xa0000000;

    我之前的帖子里面有提到“如果总体DDR的大小不变,修改链接的代码后,其他代码不需要变化”你只需要修改uboot就可以了,bld文件不需要修改。

    建 议你看看http://processors.wiki.ti.com/index.php /EZSDK_Memory_Map#Changing_Memory_Map_For_512MB_DM814x_Board,理解一下IPNC代码为 什么把512MB的DDR映射到1GB DDR空间。