我想问下,为什么我的ddr在MLO运行的时候表现出内存数据被清除的现象;(从SD卡启动)
具体表现为:
int omap_mmc_init(int dev_index)
{
struct mmc *mmc; mmc = &hsmmc_dev[dev_index];
//Sam
printf("#Sam %s %d %d %X %X %X\n",__func__,__LINE__,dev_index,mmc_init_setup,hsmmc_dev,mmc);
sprintf(mmc->name, "OMAP SD/MMC");
printf("#Sam %s %d mmc_send_cmd =%x\n",__func__,__LINE__,mmc_send_cmd);
mmc->send_cmd = mmc_send_cmd; mmc->set_ios = mmc_set_ios; mmc->init = mmc_init_setup;
printf("#Sam %s %d %X %X %X %X\n",__func__,__LINE__,dev_index,mmc->send_cmd,mmc->set_ios,mmc->init);//第一行
printf("#Sam %s %d %X %X %X %X\n",__func__,__LINE__,dev_index,mmc->send_cmd,mmc->set_ios,mmc->init);//第二行
printf("#Sam %s %d %X %X %X %X\n",__func__,__LINE__,dev_index,mmc->send_cmd,mmc->set_ios,mmc->init);
printf("#Sam %s %d %X %X %X %X\n",__func__,__LINE__,dev_index,mmc->send_cmd,mmc->set_ios,mmc->init);
..........
}
这是在uboot里面注册mmc的代码,每次运行到第一行打印的时候,地址打印正确,但是运行到第二行的时候,地址打印出来就全为0了;
或者在第一行的前面加个打印消息,然后现在的第一行也就全是0了,所以我认为这个地方是时序造成的问题;
我们的电路设计现在是没有PMU是直接从主电源引的电源,测量过电压正常;
软件寄存器配置:
SDRAM_CONFIG:0x61C04B32;
SDRAM_REF_CTRL:0x10000C30;
请帮忙看下或者给点意见,谢谢各位