LPC bus question

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
devsau
Member
Member
Posts: 35
Joined: Thu Jun 13, 2013 12:07 pm

LPC bus question

Post by devsau »

During my loading scheme i print out all devices that my kernel can identify and work with, even if it does not use them. Aside from info from the BDA and acpi (8042, uarts, 8259 controllers etc) i use pci-to-isa bridges as well.

On my gf's laptop however, (using windows ugh) i noticed how those devices are labeled as being on the intel LPC bus, and then the device manager says that the LPC bus is in turn ID'd on the PCI bus. Which is weird cause i read the specification but I thought the LPC was generally not connected to PCI.

So my question, is there any straight forward way to identify the devices that use the LPC bus?
Nable
Member
Member
Posts: 453
Joined: Tue Nov 08, 2011 11:35 am

Re: LPC bus question

Post by Nable »

LPC is for legacy devices (such as floppy, PS/2 mouse and keyboard controller, possibly others). IIRC, LPC is almost transparent for programmer: you just access these devices via well-known I/O ports and chipset routes your reads and writes via LPC chip.
Do you really need to break this transparency and know all the gory details about legacy stuff connections?
devsau
Member
Member
Posts: 35
Joined: Thu Jun 13, 2013 12:07 pm

Re: LPC bus question

Post by devsau »

you are definitely right. i was more or less just curious how they determine that information.
Nable
Member
Member
Posts: 453
Joined: Tue Nov 08, 2011 11:35 am

Re: LPC bus question

Post by Nable »

Nowadays device topology is often exposed via ACPI.
First google link for query "acpi lpc": https://chromium.googlesource.com/chrom ... pi/lpc.asl

For example, on my laptop CMOS is connected via LPC and has ID
devmgmt.msc - WinNT famlily device manager wrote:ACPI\PNP0B00\4&32D50C2&0
.
Ok, OS gatheres this information from BIOS via ACPI. Next question may be "Where did BIOS find these facts?". It's quite simple: motherboard vendors know how things are wired on their devices, so they can just hardcode required tables in BIOS.
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: LPC bus question

Post by Owen »

LPC is logically ISA (From both a software and a "modeling" perspective); just, from a hardware designer's perspective, its' ISA squeezed down ~1/10th the pins. LPC normally hangs off of PCI, and you'll find it as a PCI-to-ISA bridge.

It's pretty much certain that on any laptop made in the last decade, "ISA" devices are actually LPC.
Hallam
Member
Member
Posts: 25
Joined: Mon Dec 09, 2013 4:12 pm

Re: LPC bus question

Post by Hallam »

Sorry to bump an old thread,

Just wondering how the OS knows that the ACPI devices are a child of the PCI LPC controller? Does it say in the DSDT or is it when the LPC controller enumerates it's child devices the hardware IDs are matched with those in the DSDT.

Any help would be appreciated,

Thanks.
Nable
Member
Member
Posts: 453
Joined: Tue Nov 08, 2011 11:35 am

Re: LPC bus question

Post by Nable »

Hallam wrote:Just wondering how the OS knows that the ACPI devices are a child of the PCI LPC controller?
3rd link in google was this: http://lists.freebsd.org/pipermail/free ... 01874.html
Maybe you can find an answer there.
Hallam
Member
Member
Posts: 25
Joined: Mon Dec 09, 2013 4:12 pm

Re: LPC bus question

Post by Hallam »

Nable wrote:
Hallam wrote:Just wondering how the OS knows that the ACPI devices are a child of the PCI LPC controller?
3rd link in google was this: http://lists.freebsd.org/pipermail/free ... 01874.html
Maybe you can find an answer there.
Thanks :)
Post Reply