公司做的板子在调网口,发现EMAC的寄存器(0x4A100000开始)仿真器读不到,我现在的SATA_SERDES时钟还没调出来,是因为这个原因吗?
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.
公司做的板子在调网口,发现EMAC的寄存器(0x4A100000开始)仿真器读不到,我现在的SATA_SERDES时钟还没调出来,是因为这个原因吗?
Chi Xiaoyan,
一般寄存器无法读是因为该模块时钟没有打开,你看看PRCM里面相关时钟是否使能。
你好,我是用gel打开的EMAC的PRCM,但还是访问不了EMAC的寄存器(0x4A100000)
gel程序
emac_clkenable()
{
GEL_TextOut("CONFIGURE PRCM CLOCKS of EMAC in progress \n\r");
*((unsigned int*)(0x48181404)) = 0x2; //CM_ETHERNET_CLKSTCTRL Register
*((unsigned int*)(0x481815d4)) = 0x2; //CM_ALWON_ETHERNET_0_CLKCTRL Register
while(RD_MEM_32(0x48181404)!=0x0302);
while((RD_MEM_32(0x481815d4)&0x2)!=0x2);
GEL_TextOut("PRCM CLOCKS of EMAC is complete \n\r");
}
Chi Xiaoyan,
我在DM814x EVM上连上仿真器运行了初始化gel,可正常访问0x4A100000的地址。
你能否再检查一下你们的20Mhz晶振输入是否正常?
你好,我已经能正常访问0x4A100000了,20M晶振是正常的,我的gel文件没有开启SATA_PLL,我自己开启SATA_PLL之后成功访问了寄存器,必须EMAC和SATA同时打开时钟才能访问寄存器吗,还是我哪里配置错了?看了一下手册,似乎SATA和EMAC的时钟是连着的。