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?
LPC bus question
Re: LPC bus question
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?
Do you really need to break this transparency and know all the gory details about legacy stuff connections?
Re: LPC bus question
you are definitely right. i was more or less just curious how they determine that information.
Re: LPC bus question
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
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.
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.
- Owen
- Member
- Posts: 1700
- Joined: Fri Jun 13, 2008 3:21 pm
- Location: Cambridge, United Kingdom
- Contact:
Re: LPC bus question
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.
It's pretty much certain that on any laptop made in the last decade, "ISA" devices are actually LPC.
Re: LPC bus question
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.
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.
Re: LPC bus question
3rd link in google was this: http://lists.freebsd.org/pipermail/free ... 01874.htmlHallam wrote:Just wondering how the OS knows that the ACPI devices are a child of the PCI LPC controller?
Maybe you can find an answer there.
Re: LPC bus question
ThanksNable wrote:3rd link in google was this: http://lists.freebsd.org/pipermail/free ... 01874.htmlHallam wrote:Just wondering how the OS knows that the ACPI devices are a child of the PCI LPC controller?
Maybe you can find an answer there.