Quoting Tom Sylla tsylla@gmail.com:
The dump tool is the way to go now, but just to answer a couple of your questions:
joe@smittys.pointclark.net wrote:
OK, so lets clarify?
GPIOBASE?GPIO Base Address (LPC I/F?D31:F0) 31:16 Reserved 15:6 Base Address ? R/W. Provides the 64 bytes of I/O space for GPIO. 5:1 Reserved 0 Resource Indicator ? RO. Hardwired to 1; indicates I/O space.
- My value is 0x00000501. So if only bits 15:6 are the base
address this would make my base address 0x14 correct? This value would become "0xbasehere"?
Bits 15:6 of that register become bits 15:6 of the address range, meaning your base is just 0x500. (that isn't really stated in the datasheet, but that is they way those type of registers usually work, see regular PCI BARs for another example)
Also, 0x14 would just not be an appropriate I/O base, take a look at an I/O port reference (i.e., ports.lst from Ralf Brown), and you will see that 14 is in the legacy DMA controller's I/O space. Anything less than 0x100 is really only for legacy stuff.
- Would I put 64 in "asmanyasyouwant" to dump the whole 64 bytes
of I/O space?
Yes
- What is the pipe xxd for?
When you use dd to read from /dev/port, you get out raw binary data. xxd turns that binary into a human-readable hex listing. (there are other tools to do this too, hexdump, etc)
Thanks again Tom that makes alot of sense.
Thanks - Joe