I am using DS-5 v5.27.1 and using ARM SGI-575 as development platform. platform have a range for RAM, serial and ethernet devices. At kernel/code level I have mapped all memories and able to read/write in these memory ranges but in command window/memory browser of DS-5 I am able to view serial and RAM's memory view but memory range of ethernet is not accessible for both R/W. So how can I review this specific memory ? Any ideas ? Or anything that can help me out?
Hi,
So I wonder if there is no valid memory access to (at least) address 0x18000010 ? If there is no registers/mapped there then an error would be returned and the read deemed to have failed.
I think this is why your read is failing : the number of bytes being read in the memory view that you showed was 1024, but only the first 16 bytes are used, so any accesses after this will fail, because the read operation cannot be serviced.
The Ethernet device in use is the SMSC 91C111 and looking at http://ww1.microchip.com/downloads/en/DeviceDoc/00002276A.pdf, section 8.3, p40, states "...To limit the I/O space requirements to 16 locations, the registers are assigned to different banks..." so this confirms the theory : only the first 16 bytes are used. So you can't read any more than 16 bytes.
Also, it probably worth noting that the 91C111 uses 16 bit registers so to read the locations correctly you could do :
x /h 0x18000000
to read the TCR (Transmit Control Register).
Note that +0xC is reserved in bank0, so you might get unpredictable/failing accesses if you are trying to read 0x1800000C and Bank0 is selected (I am guessing bank 0 is the default bank visible).
I hope this clarifies things for you.
Regards
Stuart