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.

am335x wince 有时启动不了 执行OEMCacheRangeFlush 地址是0xc8000000越界启动不了



am335x wince 有时启动不了 执行OEMCacheRangeFlush 地址是0xc8000000越界启动不了

  • 这个地址是DDR的初始地址空间,有没有做过DDR这部分的读写测试。

  • 你好没有做过内存测试,他和这个初始化在哪里的代码,可以告诉我吗

  • 在Wince的boot中的DDR初始化代码之后,从0x80000000地址开始加入读写测试代码就可以了。

    另外有时启动不了的现象,你用的是DDR3么?有没有做SW leveling?

  • 你好 我用的是ddr2,没有做SW leveling

  • DDR2不需要SW leveling。

    那就试试在boot下把做下DDR的读写测试,如果有问题要检查DDR的寄存器配置。

  • 好的,非常感谢

  • for( i=0x80000000;i<0x88000000;)
    {

    OUTREG32(OALPAtoUA(i), 0x1f2f3f4f);
    p=OALVAtoPA((UCHAR*)i);
    OALLog(L"\r\+++++++++++++OALVAtoPA0x%x 0x%x\r\n",i,INREG32(OALPAtoUA(i)));
    i+=0x1000;
    }

    你好我简单测试了下,打印的是对的我的是128m内存,+++++++++++++OALVAtoPA0x87fff000 0x1f2f3f4f

  • 读写测试做了几个循环?有错误出现么?

  • 你好 做了10次测试,我在eboot里面打印DDR_PHY_BASE_ADDR的很多寄存器的值都是0,写了没有用Cmd_Macro_Config函数的寄存器写了都打印为0

  • EMIF模块的很多PHY控制寄存器都是只能写不能读的,主要是测试DDR地址空间读入读取是不是一致,并不是测试EMIF模块的寄存器读写。

  • for(j=1;j<101;j++)
    {
    OALLog(L"\r\+++++++++++++OALVAtoPA 0x%x 0x%x\r\n",j,i); i=0x80000000;
    for( i=0x80000000;i<0x88000000;)
    {
    OUTREG32(OALPAtoUA(i), j);
    if(j!=INREG32(OALPAtoUA(i)))
    {OALLog(L"\r\error+++++++++++++OALVAtoPA 0x%x 0x%x\r\n",j,i);
    while(1);
    }
    OALLog(L"\r\+++++++++++++OALVAtoPA 0x%x 0x%x 0x%x\r\n",j,i,INREG32(OALPAtoUA(i)));
    i+=0x100;
    //i+=4;
    }
    }

    你好 我做了内存测试一直都没有问题,那可能出错在哪里, 0xc80000000在哪里调用的这个地址

  • 如果内存测试没有问题,和DDR2这部分的关系不大,板子有时不能启动,是一共测试了多少块板子?不能启动,能否根据log信息定位下。

  • 公司只做了 两块

    +OALTimerInit(1, 24000, 200)
    -OEMInterruptEnable1221(rc = 1)
    -OEMInterruptEnable1221222(rc = 1)
    RTCInit: Succed to open I2C0 driver+OALSRAMFnInit()
    +OEMCacheRangeFlush(0xb1002000, 2524, 0x0000007f)
    --- High Performance Frequecy is 24 MHz---
    LOOKS LOOKS TIMER IS NOT RUNNING 3
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
    LOOKS LOOKS TIMER IS NOT 000 3
    LOOKS LOOKS TIMER IS NOT BSP_128MB_DDR3 3
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
    +OEMCacheRangeFlush(0x82ad9000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84fb4000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad8000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad8000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad7000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad7000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad6000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad6000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad5000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad5000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad4000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad4000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad3000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad3000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad2000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad1000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad1000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ad0000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ad0000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82acf000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82acf000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82ace000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82ace000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82acd000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82acd000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x82acc000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82acc000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84fb3000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82acb000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x82aca000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84fb2000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fb1000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fb0000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84faf000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fae000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fad000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fac000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fab000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84faa000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa9000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa8000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa7000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa6000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa5000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa4000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa3000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa2000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa1000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84fa0000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f9f000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f9e000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f9d000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f9c000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f9b000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f9a000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f99000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f98000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f97000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f96000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f95000, 8, 0x00000004)
    +OEMCacheRangeFlush(0xc0021000, 536576, 0x00000018)
    +OEMCacheRangeFlush(0xc00a4000, 4096, 0x00000018)
    +OEMCacheRangeFlush(0xc00a5000, 28672, 0x00000018)
    +OEMCacheRangeFlush(0xc00ac000, 28672, 0x00000018)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f94000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f93000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f92000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0xd0062000, 4096, 0x00000006)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
    +OEMCacheRangeFlush(0xd0060000, 65536, 0x00000018)
    +OEMCacheRangeFlush(0x84f91000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f90000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f8f000, 8, 0x00000004)
    +OALIoCtlHALPostInit
    +++RegisterPrcmCM3InterruptHandler(rc = 1)
    ----RegisterPrcmCM3InterruptHandler(rc = 1)
    ----6 0x10 0x3
    SetOpp to 3
    ----7
    ----5
    +OEMCacheRangeFlush(0x84f8e000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f8d000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f8c000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f8b000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f8a000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f89000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f88000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f87000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f86000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f85000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f84000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f83000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f82000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f81000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f80000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f7f000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f7e000, 8, 0x00000004)
    +OEMCacheRangeFlush(0xc00e1000, 237568, 0x00000018)
    +OEMCacheRangeFlush(0xc011b000, 40960, 0x00000018)
    +OEMCacheRangeFlush(0xc0125000, 12288, 0x00000018)
    +OEMCacheRangeFlush(0xc0128000, 4096, 0x00000018)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f7d000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f7c000, 8, 0x00000004)
    +OEMCacheRangeFlush(0xc00c1000, 57344, 0x00000018)
    +OEMCacheRangeFlush(0xc00cf000, 4096, 0x00000018)
    +OEMCacheRangeFlush(0xc00d0000, 4096, 0x00000018)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f7b000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f7a000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f79000, 8, 0x00000004)
    +OEMCacheRangeFlush(0xc0381000, 118784, 0x00000018)
    +OEMCacheRangeFlush(0xc039e000, 4096, 0x00000018)
    +OEMCacheRangeFlush(0xc039f000, 8192, 0x00000018)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000006)
    +OEMCacheRangeFlush(0x84f78000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f77000, 8, 0x00000004)
    +OEMCacheRangeFlush(0x84f76000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f76000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f75000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f75000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f74000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f74000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f73000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f73000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f72000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f72000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f71000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f71000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f70000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f70000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6f000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6f000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6e000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6e000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6d000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6d000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6c000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6c000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6b000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6b000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x84f6a000, 4096, 0x00000004)
    +OEMCacheRangeFlush(0x84f6a000, 4096, 0x00000041)
    +OEMCacheRangeFlush(0x00000000, 0, 0x00000024)

    异常的时候+OEMCacheRangeFlush(0x00000000, 0, 0x00000024)变成了+OEMCacheRangeFlush(0x00000000, 0, 0x00000004) +OEMCacheRangeFlush(0xc8000000)有时在+OEMCacheRangeFlush(0x84f6a000, 4096, 0x00000041)这里不往下走了

  • 没太看明白这段代码变化的描述,cache怎么会引起不能继续执行呢?