Question

I'm trying to read and maybe write some ACPI Source Language.

I see in the code I'm looking at, statements that store values to particular... ah, registers I guess, in the ACPI object namespace. It looks like this:

    Store(Arg0, \_SB_.PCI0.LPC0.BCMD)

What I'd like is a catalog of the naming scopes and objects in the SB namespace, and their meanings.

Just what does it mean when I store a value into _SB_.PCI0.LPC0.BCMD ?

There are other examples , too:

    Store(0x80, \_SB_.PCI0.LPC0.SMIC)

So, I don't want the answer for BCMD, I want the reference that describes all the available objects, their names, and their behaviors or meanings.

I suppose this catalog would be specific to each particular type of hardware. A computer with a variable-speed fan would expose the basic control and management of it, I guess, via ACPI objects; similarly with a biometric fingerprint reader and a 1394 port. Each set of hardware features particular to a make+model of computer would have its own unique name tree, I guess.

Thanks for any pointers.

Was it helpful?

Solution

The best place to look for specific variables is the ACPI specification (www.acpi.info/spec.htm). Reserved names start with an underscore '_', and all of those will be described in the spec.

All of the other variables are specific to a particular BIOS, although there tends to be some naming consistency within a given vendor's BIOSs, and the name itself can give a hint, although the 4 character naming limit is an unfortunate problem!

If you grab the DSDT from a given BIOS and decompile it, you can get a good idea for the structure and flow of ASL. If you have more specific questions though, I'd be more than glad to answer them!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top