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.

DM8148 access EMAC register



I wrote a code to modify EMAC register

long* pDMAControl

pDMAControl=(long*)0x4a100120;

*pDMAControl=0x11;

wether I run this code on ARM or  DSP , I can watch the register modified correctly by memory view.

On DSP level,I can change the poiner to 0x0a1000120,it does so.

But  when I want to do it to the MDIO Control Register(0x4a100804),Only ARM can modify the register correctly, the code  do it like clear the register on DSP side.

When I write 0x11 to 0x4a100804, the ARM display correctly  0x4a100804 0x000000011

but on dsp side ,it displays   0x4a100804  0x00000000

I write the value 0x0a100804,It did so .0x0a100804 0x00000000.

I tried to modify the other EMAC Registers on dsp side,some registers can be modified correctly like arm do but the others not.

We can see the L4 Fast Peripheral Memory Map

        Cortex-A8                                        C674x DSP                       SIZE      DEVICE NAME
0x4A10_0000  0x4A10_7FFF      0x0A10_0000    0x0A10_7FFF     32KB      EMAC 0x4A10_8000  0x4A10_8FFF      0x0A10_8000    0x0A10_8FFF     4KB        EMAC 

Both dsp and arm can access EMAC Register directly

Can any one tell me what's wrong with My idea, or what I should do first to make dsp access EMAC Register correctly like ARM.

Thanks very much for your reply!