[coreboot] Dump GPIO I/O Registers

Tom Sylla tsylla at gmail.com
Mon Feb 18 15:59:52 CET 2008


If you want to look at the GPIOs, from the 82801DB datasheet, it looks
like you should look at:

9.1.14 GPIOBASE—GPIO Base Address (LPC I/F—D31:F0)
and
9.1.15 GPIO_CNTL—GPIO Control (LPC I/F—D31:F0)
(offsets 58 and 5c in D31:f0, lspci -xxx as root is one way to dump)

What value is in those registers? Check to see if an address is
assigned, and if the decode is enabled. If so, you have something to
dump.

That register is not a real PCI BAR, so it may not show up in /proc/ioports

Once you have the base address, you can read the GPIO control
registers from /dev/port, with the seek equal to the base address. It
looks like the register set is described in:

9.10 General Purpose I/O Registers (D31:F0)

and Table 9-12 in the 82801DB datasheet.

On Feb 18, 2008 8:15 AM,  <joe at smittys.pointclark.net> wrote:
> Quoting Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>:
>
> > On 18.02.2008 02:45, joe at smittys.pointclark.net wrote:
> >> Quoting Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>:
> >>
> >>> On 16.02.2008 17:57, joe at smittys.pointclark.net wrote:
> >>>
> >>>> Hello,
> >>>> How do I dump the GPIO I/O Registers in linux. I need to dump the
> >>>>     GPIO's from the southbridge. Anyone?
> >>>>
> >>>>
> >>> Depends on the southbridge. It could be directly/indirectly
> >>> memory-mapped or port-based. Simply tell us what the data sheet says
> >>> about reading the GPIO state and we can help.
> >>>
> >>>
> >> The southbridge is the Intel 82801DB ICH4. I don't see anything in
> >> the datasheet about reading the GPIO state....just says:
> >>
> >> The control for the general purpose I/O signals is handled through
> >> a  separate 64-byte I/O space.
> >>
> >> I can find out the base offset address from the LPC pci
> >> configuration  registers, but how do I dump it into human readable
> >> form??
> >>
> >
> > Is this a memory address or I/O port number? Once you know that, you
> > can modify existing utilities for your purpose. If you have no idea,
> > tell us the values and we can guess. Having /proc/ioports and
> > /proc/iomem contents would help guessing.
> >
> Here is /proc/ioports:
> 0000-001f : dma1
> 0020-0021 : pic1
> 0040-0043 : timer0
> 0050-0053 : timer1
> 0060-006f : keyboard
> 0070-0077 : rtc
> 0080-008f : dma page reg
> 00a0-00a1 : pic2
> 00c0-00df : dma2
> 00f0-00ff : fpu
> 0170-0177 : ide1
> 0376-0376 : ide1
> 03c0-03df : vga+
> 03f8-03ff : serial
> 0400-047f : 0000:00:1f.0
>    0400-0403 : ACPI PM1a_EVT_BLK
>    0404-0405 : ACPI PM1a_CNT_BLK
>    0408-040b : ACPI PM_TMR
>    0410-0415 : ACPI CPU throttle
>    0420-0420 : ACPI PM2_CNT_BLK
>    0428-042f : ACPI GPE0_BLK
>    0460-047f : iTCO_wdt
> 0500-053f : 0000:00:1f.0
> 0a00-0a3f : pnp 00:0b
> 0cf8-0cff : PCI conf1
> c000-cfff : PCI Bus #01
>    cc00-cc3f : 0000:01:08.0
>      cc00-cc3f : e100
> d800-d81f : 0000:00:1d.0
>    d800-d81f : uhci_hcd
> d880-d89f : 0000:00:1d.1
>    d880-d89f : uhci_hcd
> dc00-dc1f : 0000:00:1d.2
>    dc00-dc1f : uhci_hcd
> e000-e01f : 0000:00:1f.3
>    e000-e01f : i801_smbus
> e080-e0bf : 0000:00:1f.5
>    e080-e0bf : Intel 82801DB-ICH4
> e400-e4ff : 0000:00:1f.5
>    e400-e4ff : Intel 82801DB-ICH4
> e800-e8ff : 0000:00:1f.6
> ec00-ec7f : 0000:00:1f.6
> ffa0-ffaf : 0000:00:1f.1
>    ffa0-ffa7 : ide0
>    ffa8-ffaf : ide1
>
> Here is /proc/iomem:
> 00000000-0009fbff : System RAM
>    00000000-00000000 : Crash kernel
> 0009fc00-0009ffff : reserved
> 000a0000-000bffff : Video RAM area
> 000c0000-000c7fff : Video ROM
> 000f0000-000fffff : System ROM
> 00100000-077cffff : System RAM
>    00400000-006200ec : Kernel code
>    006200ed-00736543 : Kernel data
> 077d0000-077defff : ACPI Tables
> 077df000-077fffff : ACPI Non-volatile Storage
> 10000000-100003ff : 0000:00:1f.1
> e8000000-efffffff : 0000:00:02.1
> f0000000-f7ffffff : 0000:00:02.0
> ff700000-ff7fffff : PCI Bus #01
>    ff7ff000-ff7fffff : 0000:01:08.0
>      ff7ff000-ff7fffff : e100
> ff980000-ff9fffff : 0000:00:02.1
> ffa7f400-ffa7f7ff : 0000:00:1d.7
>    ffa7f400-ffa7f7ff : ehci_hcd
> ffa7f800-ffa7f8ff : 0000:00:1f.5
>    ffa7f800-ffa7f8ff : Intel 82801DB-ICH4
> ffa7fc00-ffa7fdff : 0000:00:1f.5
>    ffa7fc00-ffa7fdff : Intel 82801DB-ICH4
> ffa80000-ffafffff : 0000:00:02.0
> ffc00000-fff7ffff : pnp 00:08
>
> According to the original bios I think the 64 bytes of I/O space for
> GPIO is 0x14. Does that make sense???
>
> Thanks - Joe
>
>
> --
> coreboot mailing list
> coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot
>




More information about the coreboot mailing list