[coreboot] Dump GPIO I/O Registers

Tom Sylla tsylla at gmail.com
Tue Feb 19 15:56:40 CET 2008

The dump tool is the way to go now, but just to answer a couple of your 

joe at 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.
> 1. 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.

> 2. Would I put 64 in "asmanyasyouwant" to dump the whole 64 bytes of  
> I/O space?


> 3. 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)

More information about the coreboot mailing list