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启动内核卡死的问题3



你好:

        我使用的芯片是DM8127,是自己做的的板子,购买开发板是广州创龙公司的DM8148开发板(软件开发包是广州创龙从TI8148开发板的开发包上改的)。

        由于我自己板子的DM8127只使用了DDR0接口,没有使用DDR1,所以我修改了u-boot\arch\arm\include\asm\arch-ti81xx\ddr_def_ti814x.h文件,具体修改内容如下:

  1. 第300行,#define DDR3_EMIF_SDRAM_CONFIG  0x61C11B32 改为:

                             #define DDR3_EMIF_SDRAM_CONFIG  0x61C11A32 //RowAddress A0-A13

       2.  第321行,#define PG2_1_DMM_LISA_MAP_3  0x80740300 改为:

                            #define PG2_1_DMM_LISA_MAP_3  0x80700100 //No interleaving模式

       然后重新编译u-boot,生成新的MLO和u-boot.bin,替换了开发板原配SD卡中的对应文件。

       将这张SD卡插到我的板子后,上电,串口终端在booting the kernel后卡住不动了,如下图所示

    但是把这张SD卡插回开发板后,是可以正常启动的。现在已经排除是DDR3以及不匹配的MechineID的原因了,我做了进一步测试,在内核函数schedule()函数中通过printascii()打印调试信息,可以看到是内核调度执行一段时间后就卡住了。

    我分析是不是因为以下2种原因造成的:

    1、因为开发板与我自己板子的DSP的外设不一样(开发板的外设丰富),导致在我的板子上无法正常启动,是不是需要重新裁剪内核呢,将我板子上没有的硬件外设裁剪掉?

   2、DM8148开发板配套的内核源码编译出来的uImage是不是必须接2个DDR3端口才可以使用。

  请问上述2个原因哪个可能性大些呢?