Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
ACPI question - can I overcome Windows-only support? *SOLVED
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Sat Dec 20, 2003 11:52 pm    Post subject: ACPI question - can I overcome Windows-only support? *SOLVED Reply with quote

Updates:

12/25/2003
Partial success! Button and thermal zone info in /proc/acpi! See new post:

01/07/2004
Yes I can (at least in 2.4.23)! See here

************************************************************************
Original post follows:
************************************************************************

So, I bought a laptop not long ago. It's a Gateway 200x (back off - I love it ;)). It's working pretty well with gentoo (wireless via linuxant, ATAPI cd burning, touchpad suport, DRI, etc), and I'll put together a little doc about that soon, but there is one disappointing glitch that I'd like to try to work out first. No surprise, the ACPI support is shoddy. Apparently they don't supply an ECDT table in the BIOS (note that I am not exactly sure what I am talking about here), so they overcome this through windows drivers so that they can claim full ACPI support under XP. My question is, is there anything that I can do about this to get ACPI support in linux? I do seem to have support for the processor states and the fan, but that's about it. I'd love button, thermal and battery support, but I'm not exactly sure if there's anything I can do about that shy of sending emails to gateway support. Any ACPI gurus around who can get me headed in the right direction? In the meantime, I'll be toddling off to read up on ACPI a bit more.

[EDIT]I should mention that I have nothing against writing some code, though my C expertise oscillates between "rusty" and "nonexistent".[/EDIT]

[RETURN OF THE EDIT]I do have a bunch of books, though ;)[/ROTE]


Last edited by jetblack on Wed Jan 07, 2004 6:59 pm; edited 4 times in total
Back to top
View user's profile Send private message
Helena
Veteran
Veteran


Joined: 02 Apr 2003
Posts: 1027
Location: De Meern, The Netherlands

PostPosted: Sun Dec 21, 2003 8:58 am    Post subject: Reply with quote

Can't solve your problem but I'm interested.. Just out of curiosity: are you using a 2.4 or 2.6 kernel? My laptop works OK with 2.6 (full ACPI support AFAIK). Does
Code:
dmesg
give any clues?
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Sun Dec 21, 2003 3:06 pm    Post subject: Reply with quote

Thanks, Helena. I've tried the following kernels:

Code:
2.4.20-gentoo
2.4.22-gentoo
2.4.23
2.6.0-beta10
2.6.0-beta10-mm
2.6.0-beta11
2.6.0
2.6.0-gentoo


Under ACPI support, I have enabled these options:
Code:
[*] ACPI Support
[*]   Sleep States
[*]   AC Adapter
[*]   Battery
[*]   Button
[*]   Fan
[*]   Processor
[*]     Thermal Zone


I have tried them both built in and as modules.

I do indeed have some error messages in dmesg. I should have mentioned them. Here is the output of dmesg | grep ACPI:

Code:
 BIOS-e820: 000000001f6e0000 - 000000001f6ec000 (ACPI data)
 BIOS-e820: 000000001f6ec000 - 000000001f700000 (ACPI NVS)
ACPI: RSDP (v000 PTLTD                                     ) @ 0x000f7c90
ACPI: RSDT (v001 PTLTD  Montara  0x06040000  LTP 0x00000000) @ 0x1f6e7d39
ACPI: FADT (v001 INTEL  MONTARA  0x06040000 PTL  0x00000050) @ 0x1f6ebed2
ACPI: BOOT (v001 PTLTD  $SBFTBL$ 0x06040000  LTP 0x00000001) @ 0x1f6ebfd8
ACPI: SSDT (v001 INTEL  CPU0CST  0x00000001 INTL 0x20020725) @ 0x1f6e8182
ACPI: SSDT (v001  INTEL  EISTRef 0x00002000 INTL 0x02012044) @ 0x1f6e7d6d
ACPI: DSDT (v001 INTEL  MONTARAG 0x06040000 MSFT 0x0100000e) @ 0x00000000
ACPI: Subsystem revision 20031002
ACPI: IRQ 9 was Edge Triggered, setting to Level Triggerd
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
    ACPI-1120: *** Error: Method execution failed [\_SB_.ADP1._STA] (Node c156fbe0), AE_AML_NO_RETURN_VALUE
    ACPI-1120: *** Error: Method execution failed [\_SB_.BAT1._STA] (Node c156fae0), AE_AML_NO_RETURN_VALUE
ACPI: PCI Root Bridge [PCI0] (00:00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs *10)
ACPI: PCI Interrupt Link [LNKB] (IRQs *10)
ACPI: PCI Interrupt Link [LNKC] (IRQs *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs *11)
ACPI: PCI Interrupt Link [LNKE] (IRQs *5)
ACPI: PCI Interrupt Link [LNKF] (IRQs 5)
ACPI: PCI Interrupt Link [LNKG] (IRQs 10)
ACPI: PCI Interrupt Link [LNKH] (IRQs *10)
ACPI: Embedded Controller [H_EC] (gpe 28)
    ACPI-0345: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
    ACPI-1120: *** Error: Method execution failed [\_SB_.PCI0.LPCB.H_EC._REG] (Node c156a340), AE_BAD_PARAMETER
ACPI: Power Resource [PFAN] (on)
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 10
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 5
PCI: Using ACPI for IRQ routing
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID0]
ACPI: Sleep Button (CM) [SLPB]
ACPI: Fan [FAN0] (on)
ACPI: Processor [CPU0] (supports C1 C2 C3, 8 throttling states)
    ACPI-0345: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
    ACPI-1120: *** Error: Method execution failed [\_TZ_.THRM._TMP] (Node c156fea0), AE_BAD_PARAMETER
ACPI: (supports S0 S3 S4 S5)


It looks like the Adapter and Battery modules are throwing AE_AML_NO_RETURN_VALUE, and the EmbeddedControl (is that something to do with the buttons?) and Thermal Zone modules are throwing AE_BAD_PARAMETER. That makes sense, since I don't have Battery, Buttton, Adapter or Thermal Zone support.

I have read a bit about ACPI on this laptop, and have been led to believe that it's a hardware issue, but it would be nice to find out more definitively, and possibly get around it :)

Thanks for your interest and time.
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Sun Dec 21, 2003 4:00 pm    Post subject: Reply with quote

Someone has already posted this to bugzilla.kernel.org. It appears that the solution is indeed to supply an ECDT table manually. So, the question becomes how exactly I go about doing that. Guess I'll scour some mailing lists :)
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Sun Dec 21, 2003 4:03 pm    Post subject: Reply with quote

I'm also very interested in that

greets,
hulk
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Sun Dec 21, 2003 7:08 pm    Post subject: Reply with quote

I'll just keep posting back here as I learn things, if that doesn't bother anyone.

So, the ECDT is the Embedded Controller Description Table (hence the EmbeddedController errors above). I found this document which references this patch, which seems to allow you to fake an ECDT table by adding a line like this to lilo.conf:

Code:
append="ecdt fake=0x66:0x62:0x10:-1:\\ SB.PCI0.LPCB.EC0"


I imagine that the corresponding grub.conf line would be:
Code:
"ecdt=fake:0x66,0x62,0x10,-1,\\ SB.PCI0.LPCB.EC0"


but that may be wrong (corrections welcome).

The doc is for a Toshiba Tecra, so I don't know if those values are valid for other machines. I wouldn't be surprised to find that they are unique for each model of laptop. I'll fire off an email to the acpi-devel mailing list sometime tomorrow (have to hurry out the door now) to see if they can get me pointed in the right direction for reproducing this sort of fix on the 200x. This solution isn't particularly elegant, but at least it suggests that one can supply an ECDT table through some sort of kernel patchery. If it can be made to work, perhaps we could compile a list of faked ECDT tables for various broken BIOSes.
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Sun Dec 21, 2003 7:20 pm    Post subject: Reply with quote

wow, this sounds REALLY interesting! would be nice if you could keep this thread up to date!

greets,
hulk
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Sun Dec 21, 2003 7:44 pm    Post subject: Reply with quote

Thanks, hulk. I'll do my best. It would be nice if we could get this working :)

So, I found some more info. There is an ACPI info website here:
http://www.acpi.info/. They have a link to an ACPI toolkit, which includes, promisingly, a listing for
Quote:
* Intel ACPI Component Architecture ASL Optimizing Compiler and ASL Disassembler (C-Language Source, Windows and Linux binaries)


If I understand correctly, ACPI tables are compiled to ACPI Machine Language (AML), and the source is written in (can you guess?) ACPI Source Language. I think that's how it works, anyway.

Now, I'm dual-booting on this machine, so does this mean that I could grab the relevant windows aml and disassemble it to get the asl for the ECDT? Are ECDTs handled this way? Would that even be a useful exercise? It appears that the DSDT (Differentiated System Description Table) is handled this way. I'm not really sure what the differences are between ECDT and DSDT. But now I really have to run, so I'll check up on that later. Sorry for the stream-of-consciousness turn that the thread is taking :)
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Sun Dec 21, 2003 8:30 pm    Post subject: Reply with quote

i'm not really into it but it seems the ecdt is more important than dsdt. you must have ecdt working to get dsdt working. maybe i'm completely wrong. but how to know if the ecdt or the dsdt is broken or maybe both of them?
the links the one guy posted on the debian groups sounds interesting, i'm gonna read them.
http://www.cpqlinux.com/acpi-howto.html and http://acpi.sourceforge.net/wiki/index.php/HowToOverrideTable
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Mon Dec 22, 2003 4:13 am    Post subject: Reply with quote

hei there again, i've found a fixed dsdt for a gateway notebook. of course it is not for your model (that would be to simple, wouldn't it?:wink: ) but maybe this one works for you. it can be found here.
http://acpi.sourceforge.net/dsdt/tables/
to bad, there is no one for any vaio notebook so i can not try it for myself. but im nearly sure that a fixed dsdt for any vaio notebook would work fine on mine too, cause they all have exactly the same problem!
now you have to choices; either to create a ramdisk to load the fixed dsdt instead of the broken one or to implement the working one into your kernel. the howtos on how to to this can also be found somewhere on that sourceforge page.
you also should consider to browse the acpi mailing lists on sourceforge.net, where i also have found several interesting informations.

greets,
hulk
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 4:37 am    Post subject: Reply with quote

Thanks, hulk. I've actually been going through that very mailinglist for about the last hour :)

It looks like they have some good information on providing an ECDT as well, so I think I'd like to try that first, since that appears to be the root of my problem.

[EDIT]Don't use acpidmp - use iasl instead. Corrected the post.

If you want to inspect your DSDT, use the iasl compiler NOTE - Please do not use acpidmp

Code:
cat /proc/acpi/dsdt > dsdt.dat
./iasl -d dsdt.dat


That will give you a nice human-readable DSDT, from which it appears that you can get the proper ECDT to provide to the DSDT.

For example, I believe that this is the relevant section of my DSDT:
Code:
000027f5:       Device H_EC (\_SB_.PCI0.LPCB.H_EC)
000027fd:         Name _HID (\_SB_.PCI0.LPCB.H_EC._HID)
00002802:           PNP0c09 (0x090cd041)
00002807:         Name _UID (\_SB_.PCI0.LPCB.H_EC._UID)
0000280c:           0x01
0000280e:         Method _CRS (\_SB_.PCI0.LPCB.H_EC._CRS)
00002814:           ArgCount 0; NotSerialized
00002815:           Name BFFR (\_SB_.PCI0.LPCB.H_EC._CRS.BFFR)
0000281a:             Buffer
0000281c:               0x12
0000281e:               ByteList <0x47 0x01 0x62 0x00 0x62 0x00 0x00 0x01
0000281e:                        0x47 0x01 0x66 0x00 0x66 0x00 0x00 0x01
0000281e:                        0x79 0x00>
0000281e:               Interpreted as PnP Resource Descriptor:
0000281e:               I/O Ports: 16 bit address decoding,
0000281e:               minbase 0x62, maxbase 0x62, align 0x0, count 0x1
0000281e:               I/O Ports: 16 bit address decoding,
0000281e:               minbase 0x66, maxbase 0x66, align 0x0, count 0x1
0000281e:               Bad checksum 0x9b, should be 0
0000281e:
00002830:           Return
00002831:             BFFR (00002815)
00002835:         OpRegion ECR_ (\_SB_.PCI0.LPCB.H_EC.ECR_)
0000283b:           EmbeddedControl
0000283c:           0x00
0000283e:           0xff
00002840:         Field
00002844:           ECR_ (00002835)
00002848:           AccessType: DWordAcc; LockRule: Lock; UpdateRule: Preserve
00002849:           ReservedField
0000284c:           NamedField B1EX
00002851:           NamedField B2EX
00002856:           NamedField ACEX
0000285b:           ReservedField
0000285d:           NamedField SWBE
00002862:           NamedField DCBE
00002867:           ReservedField
00002869:           ReservedField
0000286b:           NamedField LIDS
00002870:           ReservedField
00002872:           NamedField B1ST
00002877:           NamedField B2ST
0000287c:           ReservedField
0000287f:           NamedField B1RR
00002884:           NamedField B1PV
00002889:           NamedField B2RR
0000288e:           NamedField B2PV
00002893:           NamedField B1AF
00002898:           NamedField B1VL
0000289d:           NamedField B2AF
000028a2:           NamedField B2VL
000028a7:           NamedField CTMP
000028ac:           ReservedField
000028af:           NamedField B1TI
000028b4:           NamedField B1SE
000028b9:           NamedField B1CR
000028be:           NamedField B1TM
000028c3:           NamedField B2TI
000028c8:           NamedField B2SE
000028cd:           NamedField B2CR
000028d2:           NamedField B2TM
000028d7:         Method _REG (\_SB_.PCI0.LPCB.H_EC._REG)
000028dd:           ArgCount 2; NotSerialized
000028de:           If
000028e0:             LAnd
000028e1:               LEqual
000028e2:                 Arg0
000028e3:                 0x03
000028e5:               LEqual
000028e6:                 Arg1
000028e7:                 0x01
000028e9:             Store
000028ea:               0x01
000028ec:               ECON (0000024e)
000028f0:             Store
000028f1:               \_SB_.PCI0.LPCB.H_EC.ACEX (00002856)
00002908:               \PWRS (00000160)
0000290d:         Name _GPE (\_SB_.PCI0.LPCB.H_EC._GPE)
00002912:           0x1c
00002914:         Method _GLK (\_SB_.PCI0.LPCB.H_EC._GLK)
0000291a:           ArgCount 1; NotSerialized
0000291b:           Return
0000291c:             OneOp


That describes the(H_EC) EmbeddedContoller, as I understand it. Apparently, you can find yours by searching the output for PNP0c09. Now, to figure out what the heck to do with all that. I think you're right, though. I could alternately fix the DSDT. I think I'd like to try this first though.

Oh, if you go ahead and use pmtools, I'll warn you that it gave me an error before make completed, but it had compiled acpidmp, acpitbl and acpidisasm, which were all that I cared about. So, you should be able to disregard that if it happens to you.


Last edited by jetblack on Sun Jan 11, 2004 4:58 pm; edited 1 time in total
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 4:47 am    Post subject: Reply with quote

Ah, it's a bit clearer now. This thread actually doubles back onto the patch I posted earlier to allow you to set the ECDT parameters as a boot option. The acpidmp tool allows you to find the correct values to pass along that line, since they are indeed different for different laptop models. So, the only thing left to do now is to figure out which values in the disassembled table correspond to the different options passed along that line. how hard could that be? ;)
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 5:22 am    Post subject: Reply with quote

OK, one last update this evening. It looks like the values that are passed along the boot parameter as the fake ECDT table are as follows:

ecdt_fake=<command port>:<data_port>:<gpe_bit>:<uid>:<full path to EC>.

It seems that, in my case, the values are:

command port: 0x66
data port: 0x62
gpe_bit: 0x1c
uid: 0x01
path to EC: \_SB_.PCIO.LPCB.H_EC

I got those values from this post and the associated follow-ups.

I'm not exactly sure how they determine the command port and the data port. However, I notice that in the DSDT excerpt I posted above, you can see the following lines in the Method _CRS definition:
Code:
0000281e:               I/O Ports: 16 bit address decoding,
0000281e:               minbase 0x62, maxbase 0x62, align 0x0, count 0x1
0000281e:               I/O Ports: 16 bit address decoding,
0000281e:               minbase 0x66, maxbase 0x66, align 0x0, count 0x1



My command and data ports appear to be 0x66 and 0x62, respectively, so perhaps those lines define them.

The GPE bit is defined towards the bottom of that block:
Code:
0000290d:         Name _GPE (\_SB_.PCI0.LPCB.H_EC._GPE)
00002912:           0x1c


The UID is back towards the top:
Code:
00002807:         Name _UID (\_SB_.PCI0.LPCB.H_EC._UID)
0000280c:           0x01


And finally, the path to the Controller is at the beginning of the specification:
Code:
000027f5:       Device H_EC (\_SB_.PCI0.LPCB.H_EC)


Apparently the second slash before the path to the controller is required in lilo, probably an escape character. So, I think for grub I will want to pass along something like this:
Code:
ecdt_fake=0x66:0x62:0x1c:0x01:\\_SB_.PCIO.LPCB.H_EC


The patch is for the 2.4.23 kernel, so I'll try grabbing those sources again and applying it, and see if I can get some of this worked out. Not sure if it will work in 2.6 as-is. Also, I noticed that my DSDT table seems to be significantly different from the ones they were posting on the mailing list. I wonder if that is because I'm running 2.6?
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Mon Dec 22, 2003 12:57 pm    Post subject: Reply with quote

jetblack wrote:
Also, I noticed that my DSDT table seems to be significantly different from the ones they were posting on the mailing list. I wonder if that is because I'm running 2.6?
this could be one possibility. but maybe they also have other bios versions than you?
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 1:37 pm    Post subject: Reply with quote

I think you're right :) I checked it with 2.4.23, and there was no change to the table. I got the patch applied successfully, but no luck actually passing the table. I'll see if the acpi-devel list can shed some light on what I'm doing wrong. I'm hopeful that it's just a subtle difference between the lilo and grub syntaxes.
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 5:17 pm    Post subject: Reply with quote

Sick of me yet? :P

Here's this afternoon's progress:

It looks like grub.conf does not require the double-slash when specifying the path to the embedded controller device. I removed one of them, and now dmesg seems to indicate that it is at least attempting to fake the ECDT table, and it seems to recognize the embedded controller. However, it throws me a couple more of those AE_BAD_PARAMETER errors and then gives up on the fake table. So, it's a little better, but not there yet.

I have posted a few files (grub.conf, dmesg, DSDT, /proc/acpi/embeddedcontroller/H_EC/info and the kernel patch) to this page. I also have a couple emails in to the mailing list, so perhaps someone there (or here?) can help me figure out what I'm doing wrong.
Back to top
View user's profile Send private message
hulk2nd
Guru
Guru


Joined: 25 Mar 2003
Posts: 512
Location: Freiburg, Germany

PostPosted: Mon Dec 22, 2003 5:20 pm    Post subject: Reply with quote

so have you figured out, what is the difference between dsdt and ecdt and how to determine which one is broken or even if both of theme are?

greets,
hulk
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Mon Dec 22, 2003 5:35 pm    Post subject: Reply with quote

Well, roughly, it seems like the ECDT is a table that is used solely for configuing the EmbeddedController. Apparently, the ACPI code needs some information about the Embedded Controller before it parses the bits of the DSDT that relate to it, otherwise you run into trouble. If the BIOS doesn't provide one, then the drivers don't know what to do when they get to that point. So, you can provide a fake one to fix the problem. So, if you see EmbeddedController errors on dmesg, I think that you can assume that there is a problem with the ECDT.

The ECDT is optional (though I don't know exactly what that means, since almost nothing seems to work without it), and it sounds like you can solve ECDT problems either by providing a fake one or by modifying the DSDT not to look for it. According to the acpi-devel mailing list, it's easier and a bit safer to provide a fake ECDT (no ASL required), so if that approach works, then that's the way to go.

However, it could be that both are broken. At this point, it seems like the best way to determine that is to fix the ECDT, then see if you get more errors, but I'm not sure about that. If you aren't getting any errors from the Embedded Controller, though, my guess would be that it's a DSDT problem.

If I hear back from anyone I'll ask for a more definitive answer, and I just downloaded the spec to see if I can make any sense of it. If I can give a clearer answer later, I will.
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Tue Dec 23, 2003 5:25 pm    Post subject: Reply with quote

Ok, I have a better (though by no means complete) understanding of this now after a little time with the ACPI Specification. Here's my Cliff's Notes version of the relationship between the DSDT and the ECDT:

ACPI uses tables to describe system configuration. These tables describe the available devices and the power management features that they support. The main table is called the Root System Description Table (RSDT). The RSDT references the other system description tables that ACPI uses. In particular, the RSDT points to the Fixed ACPI Description Table (FADT). The FADT describes static system information that is relevant to power management.

The FADT, in turn, always refers to the Differentiated System Description Table (DSDT). The role of the DSDT is to provide power management information to the OS that goes beyond the static information provided by the FADT. It contains a Definition Block that provides a hierarchical description of the system's hardware and the power management capabilities of that hardware. The hierarchical structure is necessary so that the OS can power down devices in the proper order. Apparently, APM did not provide this level of detail. The OS loads the Definition Block from the DSDT at boot time to determine this information.

One of the devices described by the DSDT is the Embedded Controller. For reasons that are still unknown to me, it is necessary for the OS to know some details about the Embedded Controller before this information is actually evaluated from the DSDT. So, as of ACPI 2.0, ACPI supports an optional Embedded Controller Boot Resources Table (ECDT). Interesting acronym creation methodology there :). The purpose of the ECDT is to provide this basic Embedded Controller namespace information to the OS on boot.

The Embedded Controller is used for Smart Battery management (which handles both battery and AC adapter events). It also appears to be used for Thermal Zone management, though I haven't yet found that in the spec. I'm just going from my dmesg errors on that one. If your system does not provide an ECDT, then you will receive errors on initialization of the Embedded Controller, specifically (at least in my case) from the _REG method. So, if you see an error like this in dmesg:

Code:
ACPI: Embedded Controller [H_EC] (gpe 28)
evregion-0348: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
 dswexec-0435 [30] ds_exec_end_op        : [Store]: Could not resolve operands, AE_BAD_PARAMETER
 psparse-1120: *** Error: Method execution failed [\_SB_.PCI0.LPCB.H_EC._REG] (Node df5e7ae8), AE_BAD_PARAMETER


Then the culprit is likely the ECDT (or, more precisely, the lack of an ECDT). \_SB_.PCI0.LPCB.H_EC._REG is the name of the initialization function for my ECDT, I believe.

In this case, you will also probably get errors later on from those devices which are managed by the Embedded Controller. In my case, those are the battery, AC Adapter and thermal zones. You can tell whether the Embedded Controller is the culprit by the presence of [EmbeddedControl] errors at the root of the errors thrown by these initialization functions. For instance (again from my dmesg output).

Code:
evregion-0348: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
 dswexec-0435 [45] ds_exec_end_op        : [Store]: Could not resolve operands, AE_BAD_PARAMETER
 psparse-1120: *** Error: Method execution failed [\_SB_.ADP1._PSR] (Node df5f40c8), AE_BAD_PARAMETER
 acpi_ac-0083 [36] acpi_ac_get_state     : Error reading AC Adapter state
evregion-0348: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
 dswexec-0435 [46] ds_exec_end_op        : [LEqual]: Could not resolve operands, AE_BAD_PARAMETER
dswstate-0273 [48] ds_result_pop_from_bot: No result objects! State=df5fbc28
 dsutils-0525 [48] ds_create_operand     : Missing or null operand, AE_AML_NO_RETURN_VALUE
 psparse-1120: *** Error: Method execution failed [\_SB_.BAT1._STA] (Node df5f4848), AE_AML_NO_RETURN_VALUE
evregion-0348: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
 dswexec-0435 [46] ds_exec_end_op        : [Store]: Could not resolve operands, AE_BAD_PARAMETER
 psparse-1120: *** Error: Method execution failed [\_TZ_.THRM._TMP] (Node df5f6f68), AE_BAD_PARAMETER


ADP1 [\_SB_.ADP1._PSR] is the adapter, BAT1 [\_SB_.BAT1._STA] is the battery, and THRM [\_TZ_.THRM._TMP] is the thermal zone manager. Note the AE_BAD_PARAMETER errors thrown by [EmbeddedControl] before each of these errors. That's the hint that the ECDT is at fault. If your Embedded Controller initializes ok, and isn't giving you errors, then your issue is most likely in the DSDT.

The one thing that I am not yet sure of is whether it is possible to have a proper ECDT, but still have a DSDT that is buggy enough to cause [EmbeddedControl] errors. I'm beginning to think that that may be possible, because I have now found two methods of providing an ECDT, neither of which works for me. The first is the patch I referenced earlier. The second is a different patch, provided here:

http://bugzilla.kernel.org/show_bug.cgi?id=1690

This patch seems to defer (or recall) The Embedded Controller initialization until after the necessary information has been provided by the DSDT. However, neither patch has worked for me, so either my problem is slightly different (which is possible, because my error is thrown by _REG, not _INI), or my DSDT is screwy enough that a proper ECDT doesn't help. I've got another email in that asks that question. They seem to be addressed overnight from where I am, so I imagine that if I hear anything, it won't be until at least tomorrow. I'll let you know what I find out.

So, as of now, I've got a couple ECDT workarounds, but they don't seem to help. Not sure whether the problem is with me or with the DSDT at this point.

Hope that helped clarify it a bit more.

[edited because I apparently forgot how to spell "hierarchical"]
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Thu Dec 25, 2003 4:39 pm    Post subject: Reply with quote

Woohoo! Partial Christmas sucess!

After a little more inspection, it turns out that my issue is actually a bug in the acpi code, and not an ECDT problem. Luming Yu, who has been unbelievably responsive and helpful, has submitted a bug at bugzilla. You can see it here:

http://bugzilla.kernel.org/show_bug.cgi?id=1744

I'll be following this up here, but the quick update is that the EC code was throwing an AE_BAD_PARAMETER error where it could have been throwing a warning. The patch changes the behavior, and just going to a warning for my machine has given me button and thermal zone support. I am still getting errors from the ac adapter and battery, but 2 out of 4 isn't bad! Not a bad Christmas gift :)

Further details are available at the bugzilla link. I'm not sure if this will help anyone else, or if this is just specific to my machine. I hope it is useful to someone. Perhaps it is at least a general Gateway issue.
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Fri Dec 26, 2003 5:11 am    Post subject: Reply with quote

Back with a little more info that I hope will be helpful if you want to see if you are having the same ACPI problem that I am having. Here is the email that I received from Luming in reference to the latest patch.

Luming Yu wrote:
After a few investigation on your problem, that patch doesn't apply.
From your DSDT, ECDT seems to be unnecessary to your box.

>Unfortunately, I'm still getting the same sorts of messages on boot.
>The _REG method of the Embedded Control fails as follows:

Obviously, this issue is relative to acpi_ec_space_handler.

>ACPI: Embedded Controller [H_EC] (gpe 28)
>evregion-0348: *** Error: Handler for [EmbeddedControl] returned AE_BAD_PARAMETER
> dswexec-0435 [30] ds_exec_end_op : [Store]: Could not resolve operands, AE_BAD_PARAMETER
> psparse-1120: *** Error: Method execution failed [\_SB_.PCI0.LPCB.H_EC._REG] (Node df5e7ae8), AE_BAD_PARAMETER

I just filed a patch for you testing, just try it.
http://bugzilla.kernel.org/show_bug.cgi?id=1744

Maybe we need to support other access bit width. I found AccessType:
DWordAcc in your EC region definition.


It looks like the current ACPI code only supports 8-bit width access. If you look at my DSDT, you will see the following in the EC region definition:

Code:
00002844:           ECR_ (00002835)
00002848:           AccessType: DWordAcc; LockRule: Lock; UpdateRule: Preserve


Apparently the DWordAcc access type is not currently supported. If you have this in your DSDT and are having problems, then I think the patch from the previous post could help. It at least got me past some EC errors. It has worked for me on 2.4.23 and 2.6.0 kernels, at least for the buttons and thermal zones (I am getting temperature reports now - woohoo!).
Back to top
View user's profile Send private message
jo_vermeulen
n00b
n00b


Joined: 21 Aug 2003
Posts: 64

PostPosted: Fri Dec 26, 2003 1:51 pm    Post subject: Reply with quote

jetblack wrote:
Woohoo! Partial Christmas sucess!

After a little more inspection, it turns out that my issue is actually a bug in the acpi code, and not an ECDT problem. Luming Yu, who has been unbelievably responsive and helpful, has submitted a bug at bugzilla. You can see it here:

http://bugzilla.kernel.org/show_bug.cgi?id=1744

I'll be following this up here, but the quick update is that the EC code was throwing an AE_BAD_PARAMETER error where it could have been throwing a warning. The patch changes the behavior, and just going to a warning for my machine has given me button and thermal zone support. I am still getting errors from the ac adapter and battery, but 2 out of 4 isn't bad! Not a bad Christmas gift :)


Hi my laptop is an Acer Aspire 1400 LC. I can see my battery status, but no thermal zone information...

This is what dmesg gives me:

Code:

BIOS-e820: 000000000fef0000 - 000000000feff000 (ACPI data)
BIOS-e820: 000000000feff000 - 000000000ff00000 (ACPI NVS)
ACPI: have wakeup address 0xc0001000
ACPI: RSDP (v000 TOSCPL                                    ) @ 0x000f6d20
ACPI: RSDT (v001 TOSCPL   RSDT   0x06040000  LTP 0x00000000) @ 0x0fefad1c
ACPI: FADT (v001 TOSCPL BR10     0x06040000 PTL  0x00000001) @ 0x0fefef64
ACPI: BOOT (v001 TOSCPL $SBFTBL$ 0x06040000  LTP 0x00000001) @ 0x0fefefd8
ACPI: DSDT (v001 COMPAL BR10     0x06040000 MSFT 0x0100000d) @ 0x00000000
ACPI: Subsystem revision 20031002
 tbxface-0117 [03] acpi_load_tables      : ACPI Tables successfully acquired
ACPI Namespace successfully loaded at root c044209c
ACPI: IRQ9 SCI: Edge set to Level Trigger.
evxfevnt-0093 [04] acpi_enable           : Transition to ACPI mode successful
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: System [ACPI] (supports S0 S3 S4 S5)
ACPI: PCI Root Bridge [PCI0] (00:00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.SLOT._PRT]
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKA] (IRQs *5)
ACPI: PCI Interrupt Link [LNKB] (IRQs *11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 11)
ACPI: PCI Interrupt Link [LNKD] (IRQs *5)
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKE] (IRQs *11)
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKH] (IRQs 5)
ACPI: Embedded Controller [EC0] (gpe 28)
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
[ACPI Debug] Buffer: Length 06
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11
[ACPI Debug] Buffer: Length 06
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 5
[ACPI Debug] Buffer: Length 06
[ACPI Debug] Buffer: Length 06
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 11
PCI: Using ACPI for IRQ routing
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Battery Slot [BAT1] (battery present)
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID]
ACPI: Processor [CPU0] (supports C1 C2)
[ACPI Debug] String: =====QUERY_38=====
[ACPI Debug] String: =====QUERY_37=====


The "fan", "thermal_zone", "power_resource" directories in /proc/acpi/ are empty.

Any idea what I could do about it?

I'm using vanilla-2.4.23.

What is the actual function of the button? I have a "button" directory in /proc/acpi/ but it only contains an info file in a couple of subdirectories (/proc/acpi/button/BUT0/.../info).

Thanks in advance!
_________________
Jo Vermeulen
Student Computer Science at the tUL
email: jo@lumumba.luc.ac.be
www: http://lumumba.luc.ac.be/jo
Back to top
View user's profile Send private message
jo_vermeulen
n00b
n00b


Joined: 21 Aug 2003
Posts: 64

PostPosted: Fri Dec 26, 2003 1:55 pm    Post subject: Reply with quote

jo_vermeulen wrote:

What is the actual function of the button? I have a "button" directory in /proc/acpi/ but it only contains an info file in a couple of subdirectories (/proc/acpi/button/BUT0/.../info).


Sorry I was wrong here.. In the /proc/acpi/button/ directory there are two directories:

* lid
* power

In lid and power, there are LID and PWRF subdirectories respectively. In the PWRF directory, there's an "info" file which states:

type: Power Button (FF)

In the LID directory there are two files:

* info
* state

info contains:

type: Lid Switch

state contains:

state: open

What does this mean?

Kind regards,
_________________
Jo Vermeulen
Student Computer Science at the tUL
email: jo@lumumba.luc.ac.be
www: http://lumumba.luc.ac.be/jo
Back to top
View user's profile Send private message
jetblack
Guru
Guru


Joined: 15 Jan 2003
Posts: 340
Location: Evanston, IL, USA

PostPosted: Fri Dec 26, 2003 2:26 pm    Post subject: Reply with quote

jo_vermeulen wrote:
Hi my laptop is an Acer Aspire 1400 LC. I can see my battery status, but no thermal zone information...

The "fan", "thermal_zone", "power_resource" directories in /proc/acpi/ are empty.

Any idea what I could do about it?
fan, thermal zone
I'm using vanilla-2.4.23.


Hm. It doesn't look like you are getting any messages at all about thermal zones and fans (power_resource should contain info about the power fan). Perhaps they aren't specified in your DSDT? Could you attach that? I briefly explain how to do that in this post.

Just to warn you, I'm not an ACPI developer or anything, but I'll be happy to try to help. :)

jo_vermeulen wrote:
What is the actual function of the button? I have a "button" directory in /proc/acpi/ but it only contains an info file in a couple of subdirectories (/proc/acpi/button/BUT0/.../info).


The "button" directory contains information on the state of various buttons on the system. You could intercept events from these buttons (with acpid, for instance), and have your system perform actions in response. So, for example, if you closed the lid on your laptop (the lid is treated as a button), then the state should change to "closed". You could have acpid send your machine into a sleep state in response to that event, and then have it wake up again when the state changes back to "open". (Though, unfortunately, mine seems to stay stuck on "closed". I'm not running acpid yet, though, so perhaps I need to do that.)

There is a thread here where folks have been providing scripts to handle ACPI events.

Also, I noticed last night that having the button functionality has given me access to the function keys on my machine, which I didn't have before. So, I can control the screen brightnes from the keyboard, for instance. I still have to play a bit more to see how I can intercept some of the other button events, but that was a nice develpoment :)
Back to top
View user's profile Send private message
jo_vermeulen
n00b
n00b


Joined: 21 Aug 2003
Posts: 64

PostPosted: Fri Dec 26, 2003 6:05 pm    Post subject: Reply with quote

[quote="jetblack"]
jo_vermeulen wrote:
Hi my laptop is an Acer Aspire 1400 LC. I can see my battery status, but no thermal zone information...

The "fan", "thermal_zone", "power_resource" directories in /proc/acpi/ are empty.

Any idea what I could do about it?
fan, thermal zone
I'm using vanilla-2.4.23.


Hm. It doesn't look like you are getting any messages at all about thermal zones and fans (power_resource should contain info about the power fan).

Perhaps they aren't specified in your DSDT? Could you attach that?
[\quote]

Here it is:

[code:1:f499608568]
00000000: Name HKYF (\HKYF)
00000005: 0x00
00000007: Scope _PR_ (\_PR_)
0000000e: Processor CPU0 (\_PR_.CPU0)
00000015: 0x00
00000016: 0x00001010
0000001a: 0x06
0000001b: Name _S0_ (\_S0_)
00000020: Package
00000022: 0x02
00000023: 0x00
00000025: 0x00
00000027: Name _S3_ (\_S3_)
0000002c: Package
0000002e: 0x02
0000002f: 0x05
00000031: 0x05
00000033: Name _S4_ (\_S4_)
00000038: Package
0000003a: 0x02
0000003b: 0x06
0000003d: 0x06
0000003f: Name _S5_ (\_S5_)
00000044: Package
00000046: 0x02
00000047: 0x07
00000049: 0x07
0000004b: Name ECDY (\ECDY)
00000050: 0x05
00000052: Name Z000 (\Z000)
00000057: 0x01
00000059: Name Z001 (\Z001)
0000005e: 0x00
00000060: Method _PTS (\_PTS)
00000066: ArgCount 1; NotSerialized
00000067: If
00000069: LEqual
0000006a: Arg0
0000006b: 0x03
0000006d: Store
0000006e: \_SB_.PCI0.LPC0.LPOL (00001432)
00000081: Z000 (00000052)
00000085: If
00000087: LEqual
00000088: Arg0
00000089: 0x04
0000008b: <NULL>
0000009e: 0x0e
000000a0: Method _WAK (\_WAK)
000000a7: ArgCount 1; NotSerialized
000000a8: If
000000ab: LEqual
000000ac: Arg0
000000ad: 0x04
000000af: Notify
000000b0: \_SB_.PWBN (000002a0)
000000ba: 0x02
000000bc: <NULL>
000000cf: 0x0f
000000d1: Store
000000d2: 0x02
000000d4: Z001 (00000059)
000000d8: If
000000da: LEqual
000000db: \_SB_.PCI0.OSTP (00000384)
000000ea: 0x01
000000ec: Store
000000ed: 0x00
000000ef: \_SB_.PCI0.LPC0.LV28 (0000141e)
00000102: Store
00000103: 0x00
00000105: Z001 (00000059)
00000109: If
0000010c: LEqual
0000010d: Arg0
0000010e: 0x03
00000110: Store
00000111: <NULL>
00000128: 0x35
0000012a: Local0
0000012b: <NULL>
00000142: 0x35
00000144: 0x00
00000146: And
00000147: Local0
00000148: 0x04
0000014a: Local0
0000014b: If
0000014d: LNotEqual
0000014f: Local0
00000150: 0x04
00000152: Notify
00000153: \_SB_.PWBN (000002a0)
0000015d: 0x02
0000015f: <NULL>
00000172: 0x92
00000174: Scope _GPE (\_GPE)
0000017b: Method _L03 (\_GPE._L03)
00000181: ArgCount 0; NotSerialized
00000182: Notify
00000183: \_SB_.PCI0.USB1 (00004075)
00000192: 0x02
00000194: Method _L04 (\_GPE._L04)
0000019a: ArgCount 0; NotSerialized
0000019b: Notify
0000019c: \_SB_.PCI0.USB2 (000040e3)
000001ab: 0x02
000001ad: Method _L05 (\_GPE._L05)
000001b3: ArgCount 0; NotSerialized
000001b4: Notify
000001b5: \_SB_.PCI0.AC97 (000041a7)
000001c4: 0x02
000001c6: Method _L08 (\_GPE._L08)
000001cc: ArgCount 0; NotSerialized
000001cd: Notify
000001ce: \_SB_.PWBN (000002a0)
000001d8: 0x02
000001da: Method _L0B (\_GPE._L0B)
000001e0: ArgCount 0; NotSerialized
000001e1: Notify
000001e2: \_SB_.PCI0.SLOT (00000b8e)
000001f1: 0x02
000001f3: Method _L1C (\_GPE._L1C)
000001f9: ArgCount 0; NotSerialized
000001fa: Method _L1D (\_GPE._L1D)
00000201: ArgCount 0; NotSerialized
00000202: If
00000204: LEqual
00000205: \_SB_.PCI0.LPC0.LPOL (00001432)
00000218: 0x01
0000021a: If
0000021c: LEqual
0000021d: Z000 (00000052)
00000221: 0x01
00000223: <NULL>
00000236: 0x72
00000238: Not
00000239: \_SB_.PCI0.LPC0.LPOL (00001432)
0000024c: \_SB_.PCI0.LPC0.LPOL (00001432)
0000025f: Notify
00000260: \_SB_.LID_ (00000274)
0000026a: 0x80
0000026c: Scope _SB_ (\_SB_)
00000274: Device LID_ (\_SB_.LID_)
0000027b: Name _HID (\_SB_.LID_._HID)
00000280: PNP0c0d (0x0d0cd041)
00000285: Method _LID (\_SB_.LID_._LID)
0000028b: ArgCount 0; NotSerialized
0000028c: Return
0000028d: \_SB_.PCI0.LPC0.LPOL (00001432)
000002a0: Device PWBN (\_SB_.PWBN)
000002a7: Name _HID (\_SB_.PWBN._HID)
000002ac: PNP0c0c (0x0c0cd041)
000002b1: Name _PRW (\_SB_.PWBN._PRW)
000002b6: Package
000002b8: 0x02
000002b9: 0x08
000002bb: 0x04
000002bd: Device PCI0 (\_SB_.PCI0)
000002c6: Name _HID (\_SB_.PCI0._HID)
000002cb: PNP0a03 (0x030ad041)
000002d0: Name _BBN (\_SB_.PCI0._BBN)
000002d5: 0x00
000002d7: Name _ADR (\_SB_.PCI0._ADR)
000002dc: 0x00
000002de: Method MIN_ (\_SB_.PCI0.MIN_)
000002e4: ArgCount 2; NotSerialized
000002e5: If
000002e7: LLess
000002e8: Arg0
000002e9: Arg1
000002ea: Return
000002eb: Arg0
000002ec: Else
000002ee: Return
000002ef: Arg1
000002f0: Method SLEN (\_SB_.PCI0.SLEN)
000002f6: ArgCount 1; NotSerialized
000002f7: Return
000002f8: SizeOf
000002f9: Arg0
000002fa: Method S2BF (\_SB_.PCI0.S2BF)
00000300: ArgCount 1; Serialized
00000301: Add
00000302: <NULL>
00000306: Arg0
00000307: OneOp
00000308: Local0
00000309: Name BUFF (\_SB_.PCI0.S2BF.BUFF)
0000030e: Buffer
00000310: Local0
00000311: Store
00000312: Arg0
00000313: BUFF (00000309)
00000317: Return
00000318: BUFF (00000309)
0000031c: Method SCMP (\_SB_.PCI0.SCMP)
00000323: ArgCount 2; NotSerialized
00000324: Store
00000325: <NULL>
00000329: Arg0
0000032a: Local0
0000032b: Store
0000032c: <NULL>
00000330: Arg1
00000331: Local1
00000332: Store
00000333: ZeroOp
00000334: Local4
00000335: Store
00000336: <NULL>
0000033a: Arg0
0000033b: Local5
0000033c: Store
0000033d: <NULL>
00000341: Arg1
00000342: Local6
00000343: Store
00000344: <NULL>
00000348: Local5
00000349: Local6
0000034a: Local7
0000034b: While
0000034d: LLess
0000034e: Local4
0000034f: Local7
00000350: Store
00000351: DerefOf
00000352: Index
00000353: Local0
00000354: Local4
00000355: <NULL>
00000356: Local2
00000357: Store
00000358: DerefOf
00000359: Index
0000035a: Local1
0000035b: Local4
0000035c: <NULL>
0000035d: Local3
0000035e: If
00000360: LGreater
00000361: Local2
00000362: Local3
00000363: Return
00000364: OneOp
00000365: Else
00000367: If
00000369: LLess
0000036a: Local2
0000036b: Local3
0000036c: Return
0000036d: OnesOp
0000036e: Increment
0000036f: Local4
00000370: If
00000372: LLess
00000373: Local4
00000374: Local5
00000375: Return
00000376: OneOp
00000377: Else
00000379: If
0000037b: LLess
0000037c: Local4
0000037d: Local6
0000037e: Return
0000037f: OnesOp
00000380: Else
00000382: Return
00000383: ZeroOp
00000384: Name OSTP (\_SB_.PCI0.OSTP)
00000389: 0x00
0000038b: Method _INI (\_SB_.PCI0._INI)
00000392: ArgCount 0; NotSerialized
00000393: If
00000395: CondRefOf
00000397: _OSI
0000039b: Local0
0000039c: If
0000039e: \_OSI
000003a3: "Windows 2001"
000003b1: Store
000003b2: 0x03
000003b4: OSTP (00000384)
000003b8: Else
000003bb: If
000003bd: LEqual
000003be: <NULL>
000003c2: \_OS_
000003c7: "Microsoft Windows NT"
000003dd: ZeroOp
000003de: Store
000003df: 0x01
000003e1: OSTP (00000384)
000003e5: If
000003e7: LEqual
000003e8: <NULL>
000003ec: \_OS_
000003f1: "Microsoft Windows"
00000404: ZeroOp
00000405: Store
00000406: 0x00
00000408: OSTP (00000384)
0000040c: Store
0000040d: 0x00
0000040f: ECDY (0000004b)
00000413: If
00000415: LEqual
00000416: <NULL>
0000041a: \_OS_
0000041f: "Microsoft WindowsME: Millennium Edition"
00000448: ZeroOp
00000449: Store
0000044a: 0x02
0000044c: OSTP (00000384)
00000450: OpRegion HBUS (\_SB_.PCI0.HBUS)
00000456: PCI_Config
00000457: 0x40
00000459: 0xc0
0000045b: Field
0000045f: HBUS (00000450)
00000463: AccessType: DWordAcc; LockRule: NoLock; UpdateRule: Preserve
00000464: ReservedField
00000467: NamedField DRB0
0000046c: NamedField DRB1
00000471: NamedField DRB2
00000476: NamedField DRB3
0000047b: NamedField DRB4
00000480: NamedField DRB5
00000485: NamedField DRB6
0000048a: NamedField DRB7
0000048f: ReservedField
00000492: ReservedField
00000494: NamedField PM0H
00000499: ReservedField
0000049b: NamedField PM1L
000004a0: ReservedField
000004a2: NamedField PM1H
000004a7: ReservedField
000004a9: NamedField PM2L
000004ae: ReservedField
000004b0: NamedField PM2H
000004b5: ReservedField
000004b7: NamedField PM3L
000004bc: ReservedField
000004be: NamedField PM3H
000004c3: ReservedField
000004c5: NamedField PM4L
000004ca: ReservedField
000004cc: NamedField PM4H
000004d1: ReservedField
000004d3: NamedField PM5L
000004d8: ReservedField
000004da: NamedField PM5H
000004df: ReservedField
000004e1: NamedField PM6L
000004e6: ReservedField
000004e8: NamedField PM6H
000004ed: ReservedField
000004ef: NamedField FDHC
000004f4: Name BUF0 (\_SB_.PCI0.BUF0)
000004f9: Buffer
000004fc: 0x0201
000004ff: ByteList <0x88 0x0e 0x00 0x02 0x0c 0x00 0x00 0x00
000004ff: 0x00 0x00 0xff 0x00 0x00 0x00 0x00 0x01
000004ff: 0x00 0x87 0x18 0x00 0x01 0x0c 0x03 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xf7
000004ff: 0x0c 0x00 0x00 0x00 0x00 0x00 0x00 0xf8
000004ff: 0x0c 0x00 0x00 0x00 0x47 0x01 0xf8 0x0c
000004ff: 0xf8 0x0c 0x01 0x08 0x87 0x18 0x00 0x01
000004ff: 0x0c 0x03 0x00 0x00 0x00 0x00 0x00 0x0d
000004ff: 0x00 0x00 0xff 0xff 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0xf3 0x00 0x00 0x00 0x87
000004ff: 0x18 0x00 0x00 0x0c 0x03 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0x0a 0x00 0xff 0xff 0x0b
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02
000004ff: 0x00 0x00 0x87 0x18 0x00 0x00 0x0c 0x03
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x0c 0x00
000004ff: 0xff 0x3f 0x0c 0x00 0x00 0x00 0x00 0x00
000004ff: 0x00 0x40 0x00 0x00 0x00 0x87 0x18 0x00
000004ff: 0x00 0x0c 0x03 0x00 0x00 0x00 0x00 0x00
000004ff: 0x40 0x0c 0x00 0xff 0x7f 0x0c 0x00 0x00
000004ff: 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00
000004ff: 0x87 0x18 0x00 0x00 0x0c 0x03 0x00 0x00
000004ff: 0x00 0x00 0x00 0x80 0x0c 0x00 0xff 0xbf
000004ff: 0x0c 0x00 0x00 0x00 0x00 0x00 0x00 0x40
000004ff: 0x00 0x00 0x00 0x87 0x18 0x00 0x00 0x0c
000004ff: 0x03 0x00 0x00 0x00 0x00 0x00 0xc0 0x0c
000004ff: 0x00 0xff 0xff 0x0c 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x40 0x00 0x00 0x00 0x87 0x18
000004ff: 0x00 0x00 0x0c 0x03 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x0d 0x00 0xff 0x3f 0x0d 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x40 0x00 0x00
000004ff: 0x00 0x87 0x18 0x00 0x00 0x0c 0x03 0x00
000004ff: 0x00 0x00 0x00 0x00 0x40 0x0d 0x00 0xff
000004ff: 0x7f 0x0d 0x00 0x00 0x00 0x00 0x00 0x00
000004ff: 0x40 0x00 0x00 0x00 0x87 0x18 0x00 0x00
000004ff: 0x0c 0x03 0x00 0x00 0x00 0x00 0x00 0x80
000004ff: 0x0d 0x00 0xff 0xbf 0x0d 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x87
000004ff: 0x18 0x00 0x00 0x0c 0x03 0x00 0x00 0x00
000004ff: 0x00 0x00 0xc0 0x0d 0x00 0xff 0xff 0x0d
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x40 0x00
000004ff: 0x00 0x00 0x87 0x18 0x00 0x00 0x0c 0x03
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x0e 0x00
000004ff: 0xff 0x3f 0x0e 0x00 0x00 0x00 0x00 0x00
000004ff: 0x00 0x40 0x00 0x00 0x00 0x87 0x18 0x00
000004ff: 0x00 0x0c 0x03 0x00 0x00 0x00 0x00 0x00
000004ff: 0x40 0x0e 0x00 0xff 0x7f 0x0e 0x00 0x00
000004ff: 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x00
000004ff: 0x87 0x18 0x00 0x00 0x0c 0x03 0x00 0x00
000004ff: 0x00 0x00 0x00 0x80 0x0e 0x00 0xff 0xbf
000004ff: 0x0e 0x00 0x00 0x00 0x00 0x00 0x00 0x40
000004ff: 0x00 0x00 0x00 0x87 0x18 0x00 0x00 0x0c
000004ff: 0x03 0x00 0x00 0x00 0x00 0x00 0xc0 0x0e
000004ff: 0x00 0xff 0xff 0x0e 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x40 0x00 0x00 0x00 0x87 0x18
000004ff: 0x00 0x00 0x0c 0x03 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x0f 0x00 0xff 0xff 0x0f 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00
000004ff: 0x00 0x87 0x18 0x00 0x00 0x0c 0x03 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff
000004ff: 0xff 0xbf 0xfe 0x00 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0x00 0x87 0x18 0x00 0x00
000004ff: 0x0c 0x03 0x00 0x00 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
000004ff: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x79
000004ff: 0x00>
00000700: Method _CRS (\_SB_.PCI0._CRS)
00000707: ArgCount 0; Serialized
00000708: If
0000070a: PM1L (0000049b)
0000070e: CreateDWordField
0000070f: BUF0 (000004f4)
00000713: 0x80
00000715: C0LN
00000719: Store
0000071a: ZeroOp
0000071b: C0LN
0000071f: If
00000721: LEqual
00000722: PM1L (0000049b)
00000726: 0x01
00000728: CreateBitField
00000729: BUF0 (000004f4)
0000072d: 0x0378
00000730: C0RW
00000734: Store
00000735: ZeroOp
00000736: C0RW
0000073a: If
0000073c: PM1H (000004a2)
00000740: CreateDWordField
00000741: BUF0 (000004f4)
00000745: 0x9b
00000747: C4LN
0000074b: Store
0000074c: ZeroOp
0000074d: C4LN
00000751: If
00000753: LEqual
00000754: PM1H (000004a2)
00000758: 0x01
0000075a: CreateBitField
0000075b: BUF0 (000004f4)
0000075f: 0x0450
00000762: C4RW
00000766: Store
00000767: ZeroOp
00000768: C4RW
0000076c: If
0000076e: PM2L (000004a9)
00000772: CreateDWordField
00000773: BUF0 (000004f4)
00000777: 0xb6
00000779: C8LN
0000077d: Store
0000077e: ZeroOp
0000077f: C8LN
00000783: If
00000785: LEqual
00000786: PM2L (000004a9)
0000078a: 0x01
0000078c: CreateBitField
0000078d: BUF0 (000004f4)
00000791: 0x0528
00000794: C8RW
00000798: Store
00000799: ZeroOp
0000079a: C8RW
0000079e: If
000007a0: PM2H (000004b0)
000007a4: CreateDWordField
000007a5: BUF0 (000004f4)
000007a9: 0xd1
000007ab: CCLN
000007af: Store
000007b0: ZeroOp
000007b1: CCLN
000007b5: If
000007b7: LEqual
000007b8: PM2H (000004b0)
000007bc: 0x01
000007be: CreateBitField
000007bf: BUF0 (000004f4)
000007c3: 0x0600
000007c6: CCRW
000007ca: Store
000007cb: ZeroOp
000007cc: CCRW
000007d0: If
000007d2: PM3L (000004b7)
000007d6: CreateDWordField
000007d7: BUF0 (000004f4)
000007db: 0xec
000007dd: D0LN
000007e1: Store
000007e2: ZeroOp
000007e3: D0LN
000007e7: If
000007e9: LEqual
000007ea: PM3L (000004b7)
000007ee: 0x01
000007f0: CreateBitField
000007f1: BUF0 (000004f4)
000007f5: 0x06d8
000007f8: D0RW
000007fc: Store
000007fd: ZeroOp
000007fe: D0RW
00000802: If
00000804: PM3H (000004be)
00000808: CreateDWordField
00000809: BUF0 (000004f4)
0000080d: 0x0107
00000810: D4LN
00000814: Store
00000815: ZeroOp
00000816: D4LN
0000081a: If
0000081c: LEqual
0000081d: PM3H (000004be)
00000821: 0x01
00000823: CreateBitField
00000824: BUF0 (000004f4)
00000828: 0x07b0
0000082b: D4RW
0000082f: Store
00000830: ZeroOp
00000831: D4RW
00000835: If
00000837: PM4L (000004c5)
0000083b: CreateDWordField
0000083c: BUF0 (000004f4)
00000840: 0x0122
00000843: D8LN
00000847: Store
00000848: ZeroOp
00000849: D8LN
0000084d: If
0000084f: LEqual
00000850: PM4L (000004c5)
00000854: 0x01
00000856: CreateBitField
00000857: BUF0 (000004f4)
0000085b: 0x0888
0000085e: D8RW
00000862: Store
00000863: ZeroOp
00000864: D8RW
00000868: If
0000086a: PM4H (000004cc)
0000086e: CreateDWordField
0000086f: BUF0 (000004f4)
00000873: 0x013d
00000876: DCLN
0000087a: Store
0000087b: ZeroOp
0000087c: DCLN
00000880: If
00000882: LEqual
00000883: PM4H (000004cc)
00000887: 0x01
00000889: CreateBitField
0000088a: BUF0 (000004f4)
0000088e: 0x0960
00000891: DCRW
00000895: Store
00000896: ZeroOp
00000897: DCRW
0000089b: If
0000089d: PM5L (000004d3)
000008a1: CreateDWordField
000008a2: BUF0 (000004f4)
000008a6: 0x0158
000008a9: E0LN
000008ad: Store
000008ae: ZeroOp
000008af: E0LN
000008b3: If
000008b5: LEqual
000008b6: PM5L (000004d3)
000008ba: 0x01
000008bc: CreateBitField
000008bd: BUF0 (000004f4)
000008c1: 0x0a38
000008c4: E0RW
000008c8: Store
000008c9: ZeroOp
000008ca: E0RW
000008ce: If
000008d0: PM5H (000004da)
000008d4: CreateDWordField
000008d5: BUF0 (000004f4)
000008d9: 0x0173
000008dc: E4LN
000008e0: Store
000008e1: ZeroOp
000008e2: E4LN
000008e6: If
000008e8: LEqual
000008e9: PM5H (000004da)
000008ed: 0x01
000008ef: CreateBitField
000008f0: BUF0 (000004f4)
000008f4: 0x0b10
000008f7: E4RW
000008fb: Store
000008fc: ZeroOp
000008fd: E4RW
00000901: If
00000903: PM6L (000004e1)
00000907: CreateDWordField
00000908: BUF0 (000004f4)
0000090c: 0x018e
0000090f: E8LN
00000913: Store
00000914: ZeroOp
00000915: E8LN
00000919: If
0000091b: LEqual
0000091c: PM6L (000004e1)
00000920: 0x01
00000922: CreateBitField
00000923: BUF0 (000004f4)
00000927: 0x0be8
0000092a: E8RW
0000092e: Store
0000092f: ZeroOp
00000930: E8RW
00000934: If
00000936: PM6H (000004e8)
0000093a: CreateDWordField
0000093b: BUF0 (000004f4)
0000093f: 0x01a9
00000942: ECLN
00000946: Store
00000947: ZeroOp
00000948: ECLN
0000094c: If
0000094e: LEqual
0000094f: PM6H (000004e8)
00000953: 0x01
00000955: CreateBitField
00000956: BUF0 (000004f4)
0000095a: 0x0cc0
0000095d: ECRW
00000961: Store
00000962: ZeroOp
00000963: ECRW
00000967: If
00000969: PM0H (00000494)
0000096d: CreateDWordField
0000096e: BUF0 (000004f4)
00000972: 0x01c4
00000975: F0LN
00000979: Store
0000097a: ZeroOp
0000097b: F0LN
0000097f: If
00000981: LEqual
00000982: PM0H (00000494)
00000986: 0x01
00000988: CreateBitField
00000989: BUF0 (000004f4)
0000098d: 0x0d98
00000990: F0RW
00000994: Store
00000995: ZeroOp
00000996: F0RW
0000099a: CreateDWordField
0000099b: BUF0 (000004f4)
0000099f: 0x01d3
000009a2: M1MN
000009a6: CreateDWordField
000009a7: BUF0 (000004f4)
000009ab: 0x01d7
000009ae: M1MX
000009b2: CreateDWordField
000009b3: BUF0 (000004f4)
000009b7: 0x01df
000009ba: M1LN
000009be: Multiply
000009bf: 0x02000000
000009c4: DRB7 (0000048a)
000009c8: M1MN
000009cc: Add
000009cd: Subtract
000009ce: M1MX
000009d2: M1MN
000009d6: <NULL>
000009d7: 0x01
000009d9: M1LN
000009dd: ShiftRight
000009de: And
000009df: \_SB_.PCI0.LPC0.MTSE (00000cce)
000009f2: 0x00038000
000009f7: <NULL>
000009f8: 0x0f
000009fa: Local0
000009fb: If
000009fe: And
000009ff: Local0
00000a00: 0x04
00000a02: <NULL>
00000a03: CreateDWordField
00000a04: BUF0 (000004f4)
00000a08: 0x01ee
00000a0b: M2MN
00000a0f: CreateDWordField
00000a10: BUF0 (000004f4)
00000a14: 0x01f2
00000a17: M2MX
00000a1b: CreateDWordField
00000a1c: BUF0 (000004f4)
00000a20: 0x01fa
00000a23: M2LN
00000a27: Store
00000a28: 0xfed00000
00000a2d: M2MN
00000a31: Store
00000a32: 0xfed003ff
00000a37: M2MX
00000a3b: Store
00000a3c: 0x0400
00000a3f: M2LN
00000a43: If
00000a45: LEqual
00000a46: Local0
00000a47: 0x05
00000a49: Store
00000a4a: 0xfed01000
00000a4f: M2MN
00000a53: Store
00000a54: 0xfed013ff
00000a59: M2MX
00000a5d: If
00000a5f: LEqual
00000a60: Local0
00000a61: 0x06
00000a63: Store
00000a64: 0xfed02000
00000a69: M2MN
00000a6d: Store
00000a6e: 0xfed023ff
00000a73: M2MX
00000a77: If
00000a79: LEqual
00000a7a: Local0
00000a7b: 0x07
00000a7d: Store
00000a7e: 0xfed03000
00000a83: M2MN
00000a87: Store
00000a88: 0xfed033ff
00000a8d: M2MX
00000a91: Return
00000a92: BUF0 (000004f4)
00000a96: Method _S1D (\_SB_.PCI0._S1D)
00000a9c: ArgCount 0; NotSerialized
00000a9d: Return
00000a9e: 0x02
00000aa0: Method _S3D (\_SB_.PCI0._S3D)
00000aa6: ArgCount 0; NotSerialized
00000aa7: Return
00000aa8: 0x02
00000aaa: Method _S4D (\_SB_.PCI0._S4D)
00000ab0: ArgCount 0; NotSerialized
00000ab1: Return
00000ab2: 0x02
00000ab4: Name _PRT (\_SB_.PCI0._PRT)
00000ab9: Package
00000abc: 0x05
00000abd: Package
00000abf: 0x04
00000ac0: 0x0001ffff
00000ac5: 0x00
00000ac7: \_SB_.PCI0.LPC0.LNKA (00000f72)
00000ada: 0x00
00000adc: Package
00000ade: 0x04
00000adf: 0x001fffff
00000ae4: 0x00
00000ae6: \_SB_.PCI0.LPC0.LNKA (00000f72)
00000af9: 0x00
00000afb: Package
00000afd: 0x04
00000afe: 0x001fffff
00000b03: 0x01
00000b05: \_SB_.PCI0.LPC0.LNKB (00001029)
00000b18: 0x00
00000b1a: Package
00000b1c: 0x04
00000b1d: 0x001fffff
00000b22: 0x02
00000b24: \_SB_.PCI0.LPC0.LNKH (000012e4)
00000b37: 0x00
00000b39: Package
00000b3b: 0x04
00000b3c: 0x001fffff
00000b41: 0x03
00000b43: \_SB_.PCI0.LPC0.LNKD (00001181)
00000b56: 0x00
00000b58: Device AGP_ (\_SB_.PCI0.AGP_)
00000b5f: Name _ADR (\_SB_.PCI0.AGP_._ADR)
00000b64: 0x00010000
00000b69: Name _PRT (\_SB_.PCI0.AGP_._PRT)
00000b6e: Package
00000b70: 0x01
00000b71: Package
00000b73: 0x04
00000b74: 0xffff
00000b77: 0x00
00000b79: \_SB_.PCI0.LPC0.LNKA (00000f72)
00000b8c: 0x00
00000b8e: Device SLOT (\_SB_.PCI0.SLOT)
00000b96: Name _ADR (\_SB_.PCI0.SLOT._ADR)
00000b9b: 0x001e0000
00000ba0: Name _PRT (\_SB_.PCI0.SLOT._PRT)
00000ba5: Package
00000ba8: 0x05
00000ba9: Package
00000bab: 0x04
00000bac: 0xffff
00000baf: 0x00
00000bb1: \_SB_.PCI0.LPC0.LNKA (00000f72)
00000bc4: 0x00
00000bc6: Package
00000bc8: 0x04
00000bc9: 0xffff
00000bcc: 0x01
00000bce: \_SB_.PCI0.LPC0.LNKB (00001029)
00000be1: 0x00
00000be3: Package
00000be5: 0x04
00000be6: 0x0008ffff
00000beb: 0x00
00000bed: \_SB_.PCI0.LPC0.LNKE (0000122d)
00000c00: 0x00
00000c02: Package
00000c04: 0x04
00000c05: 0x000bffff
00000c0a: 0x00
00000c0c: \_SB_.PCI0.LPC0.LNKD (00001181)
00000c1f: 0x00
00000c21: Package
00000c23: 0x04
00000c24: 0x000bffff
00000c29: 0x01
00000c2b: \_SB_.PCI0.LPC0.LNKA (00000f72)
00000c3e: 0x00
00000c40: Device CB1_ (\_SB_.PCI0.SLOT.CB1_)
00000c47: Name _ADR (\_SB_.PCI0.SLOT.CB1_._ADR)
00000c4c: 0x00
00000c4e: Method _STA (\_SB_.PCI0.SLOT.CB1_._STA)
00000c54: ArgCount 0; NotSerialized
00000c55: Return
00000c56: 0x0f
00000c58: Device CB2_ (\_SB_.PCI0.SLOT.CB2_)
00000c5f: Name _ADR (\_SB_.PCI0.SLOT.CB2_._ADR)
00000c64: 0x01
00000c66: Method _STA (\_SB_.PCI0.SLOT.CB2_._STA)
00000c6c: ArgCount 0; NotSerialized
00000c6d: Return
00000c6e: 0x0f
00000c70: Device RTLN (\_SB_.PCI0.SLOT.RTLN)
00000c77: Name _ADR (\_SB_.PCI0.SLOT.RTLN._ADR)
00000c7c: 0x00080000
00000c81: Name _PRW (\_SB_.PCI0.SLOT.RTLN._PRW)
00000c86: Package
00000c88: 0x02
00000c89: 0x0b
00000c8b: 0x03
00000c8d: Device LPC0 (\_SB_.PCI0.LPC0)
00000c96: Method DECD (\_SB_.PCI0.LPC0.DECD)
00000c9c: ArgCount 4; Serialized
00000c9d: Store
00000c9e: Arg0
00000c9f: Debug
00000ca1: Name _ADR (\_SB_.PCI0.LPC0._ADR)
00000ca6: 0x001f0000
00000cab: OpRegion REGS (\_SB_.PCI0.LPC0.REGS)
00000cb1: PCI_Config
00000cb2: 0x40
00000cb4: 0xc0
00000cb6: Field
00000cb9: REGS (00000cab)
00000cbd: AccessType: DWordAcc; LockRule: Lock; UpdateRule: Preserve
00000cbe: NamedField PMBA
00000cc3: ReservedField
00000cc6: NamedField GPBA
00000ccb: ReservedField
00000cce: NamedField MTSE
00000cd3: ReservedField
00000cd6: ReservedField
00000cd8: NamedField FUND
00000cdd: Device MBRD (\_SB_.PCI0.LPC0.MBRD)
00000ce5: Name _HID (\_SB_.PCI0.LPC0.MBRD._HID)
00000cea: PNP0c02 (0x020cd041)
00000cef: Name _UID (\_SB_.PCI0.LPC0.MBRD._UID)
00000cf4: 0x1f
00000cf6: Name RSRC (\_SB_.PCI0.LPC0.MBRD.RSRC)
00000cfb: Buffer
00000cfe: 0xba
00000d00: ByteList <0x47 0x01 0x00 0xfe 0x00 0xfe 0x01 0x02
00000d00: 0x47 0x01 0x10 0x00 0x10 0x00 0x01 0x10
00000d00: 0x47 0x01 0x24 0x00 0x24 0x00 0x01 0x02
00000d00: 0x47 0x01 0x28 0x00 0x28 0x00 0x01 0x02
00000d00: 0x47 0x01 0x2c 0x00 0x2c 0x00 0x01 0x02
00000d00: 0x47 0x01 0x30 0x00 0x30 0x00 0x01 0x02
00000d00: 0x47 0x01 0x34 0x00 0x34 0x00 0x01 0x02
00000d00: 0x47 0x01 0x38 0x00 0x38 0x00 0x01 0x02
00000d00: 0x47 0x01 0x3c 0x00 0x3c 0x00 0x01 0x02
00000d00: 0x47 0x01 0x50 0x00 0x50 0x00 0x01 0x04
00000d00: 0x47 0x01 0x72 0x00 0x72 0x00 0x01 0x06
00000d00: 0x47 0x01 0x80 0x00 0x80 0x00 0x01 0x01
00000d00: 0x47 0x01 0x90 0x00 0x90 0x00 0x01 0x10
00000d00: 0x47 0x01 0xa4 0x00 0xa4 0x00 0x01 0x02
00000d00: 0x47 0x01 0xa8 0x00 0xa8 0x00 0x01 0x02
00000d00: 0x47 0x01 0xac 0x00 0xac 0x00 0x01 0x02
00000d00: 0x47 0x01 0xb0 0x00 0xb0 0x00 0x01 0x06
00000d00: 0x47 0x01 0xb8 0x00 0xb8 0x00 0x01 0x02
00000d00: 0x47 0x01 0xbc 0x00 0xbc 0x00 0x01 0x02
00000d00: 0x47 0x01 0x00 0x10 0x00 0x10 0x01 0x80
00000d00: 0x47 0x01 0x80 0x11 0x80 0x11 0x01 0x40
00000d00: 0x47 0x01 0x2e 0x00 0x2e 0x00 0x01 0x02
00000d00: 0x47 0x01 0xd0 0x04 0xd0 0x04 0x01 0x02
00000d00: 0x79 0x00>
00000d00: Interpreted as PnP Resource Descriptor:
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xfe00, maxbase 0xfe00, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x10, maxbase 0x10, align 0x1, count 0x10
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x24, maxbase 0x24, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x28, maxbase 0x28, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x2c, maxbase 0x2c, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x30, maxbase 0x30, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x34, maxbase 0x34, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x38, maxbase 0x38, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x3c, maxbase 0x3c, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x50, maxbase 0x50, align 0x1, count 0x4
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x72, maxbase 0x72, align 0x1, count 0x6
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x80, maxbase 0x80, align 0x1, count 0x1
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x90, maxbase 0x90, align 0x1, count 0x10
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xa4, maxbase 0xa4, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xa8, maxbase 0xa8, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xac, maxbase 0xac, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xb0, maxbase 0xb0, align 0x1, count 0x6
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xb8, maxbase 0xb8, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0xbc, maxbase 0xbc, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x1000, maxbase 0x1000, align 0x1, count 0x80
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x1180, maxbase 0x1180, align 0x1, count 0x40
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x2e, maxbase 0x2e, align 0x1, count 0x2
00000d00: I/O Ports: 16 bit address decoding,
00000d00: minbase 0x4d0, maxbase 0x4d0, align 0x1, count 0x2
00000d00: Bad checksum 0xf5, should be 0
00000d00:
00000dba: Method _CRS (\_SB_.PCI0.LPC0.MBRD._CRS)
00000dc1: ArgCount 0; NotSerialized
00000dc2: CreateWordField
00000dc3: RSRC (00000cf6)
00000dc7: 0x9a
00000dc9: PMMN
00000dcd: CreateWordField
00000dce: RSRC (00000cf6)
00000dd2: 0x9c
00000dd4: PMMX
00000dd8: And
00000dd9: ^^PMBA (00000cbe)
00000ddf: 0xff80
00000de2: PMMN
00000de6: Store
00000de7: PMMN
00000deb: PMMX
00000def: CreateWordField
00000df0: RSRC (00000cf6)
00000df4: 0xa2
00000df6: GPMN
00000dfa: CreateWordField
00000dfb: RSRC (00000cf6)
00000dff: 0xa4
00000e01: GPMX
00000e05: And
00000e06: ^^GPBA (00000cc6)
00000e0c: 0xff80
00000e0f: GPMN
00000e13: Store
00000e14: GPMN
00000e18: GPMX
00000e1c: Return
00000e1d: RSRC (00000cf6)
00000e21: Device DMAC (\_SB_.PCI0.LPC0.DMAC)
00000e28: Name _HID (\_SB_.PCI0.LPC0.DMAC._HID)
00000e2d: PNP0200 (0x0002d041)
00000e32: Name _CRS (\_SB_.PCI0.LPC0.DMAC._CRS)
00000e37: Buffer
00000e39: 0x1d
00000e3b: ByteList <0x47 0x01 0x00 0x00 0x00 0x00 0x01 0x10
00000e3b: 0x47 0x01 0x81 0x00 0x81 0x00 0x01 0x0f
00000e3b: 0x47 0x01 0xc0 0x00 0xc0 0x00 0x01 0x20
00000e3b: 0x2a 0x10 0x02 0x79 0x00>
00000e3b: Interpreted as PnP Resource Descriptor:
00000e3b: I/O Ports: 16 bit address decoding,
00000e3b: minbase 0x0, maxbase 0x0, align 0x1, count 0x10
00000e3b: I/O Ports: 16 bit address decoding,
00000e3b: minbase 0x81, maxbase 0x81, align 0x1, count 0xf
00000e3b: I/O Ports: 16 bit address decoding,
00000e3b: minbase 0xc0, maxbase 0xc0, align 0x1, count 0x20
00000e3b: DMA mask: 00100000
00000e3b: DMA channel speed: compatibility mode; transfer type: 16-bit
00000e3b: Bad checksum 0x51, should be 0
00000e3b:
00000e58: Device MATH (\_SB_.PCI0.LPC0.MATH)
00000e5f: Name _HID (\_SB_.PCI0.LPC0.MATH._HID)
00000e64: PNP0c04 (0x040cd041)
00000e69: Name _CRS (\_SB_.PCI0.LPC0.MATH._CRS)
00000e6e: Buffer
00000e70: 0x0e
00000e72: ByteList <0x47 0x01 0xf0 0x00 0xf0 0x00 0x01 0x0f
00000e72: 0x23 0x00 0x20 0x01 0x79 0x00>
00000e72: Interpreted as PnP Resource Descriptor:
00000e72: I/O Ports: 16 bit address decoding,
00000e72: minbase 0xf0, maxbase 0xf0, align 0x1, count 0xf
00000e72: IRQ mask: 0100000000000000
00000e72: Info: high true edge sensitive
00000e72: Bad checksum 0xf5, should be 0
00000e72:
00000e80: Device PIC_ (\_SB_.PCI0.LPC0.PIC_)
00000e87: Name _HID (\_SB_.PCI0.LPC0.PIC_._HID)
00000e8c: PNP0000 (0x0000d041)
00000e8f: Name _CRS (\_SB_.PCI0.LPC0.PIC_._CRS)
00000e94: Buffer
00000e96: 0x16
00000e98: ByteList <0x47 0x01 0x20 0x00 0x20 0x00 0x01 0x02
00000e98: 0x47 0x01 0xa0 0x00 0xa0 0x00 0x01 0x02
00000e98: 0x23 0x04 0x00 0x01 0x79 0x00>
00000e98: Interpreted as PnP Resource Descriptor:
00000e98: I/O Ports: 16 bit address decoding,
00000e98: minbase 0x20, maxbase 0x20, align 0x1, count 0x2
00000e98: I/O Ports: 16 bit address decoding,
00000e98: minbase 0xa0, maxbase 0xa0, align 0x1, count 0x2
00000e98: IRQ mask: 0000000000001000
00000e98: Info: high true edge sensitive
00000e98: Bad checksum 0xb7, should be 0
00000e98:
00000eae: Device RTC_ (\_SB_.PCI0.LPC0.RTC_)
00000eb5: Name _HID (\_SB_.PCI0.LPC0.RTC_._HID)
00000eba: PNP0b00 (0x000bd041)
00000ebf: Name _CRS (\_SB_.PCI0.LPC0.RTC_._CRS)
00000ec4: Buffer
00000ec6: 0x0e
00000ec8: ByteList <0x47 0x01 0x70 0x00 0x70 0x00 0x01 0x02
00000ec8: 0x23 0x00 0x01 0x01 0x79 0x00>
00000ec8: Interpreted as PnP Resource Descriptor:
00000ec8: I/O Ports: 16 bit address decoding,
00000ec8: minbase 0x70, maxbase 0x70, align 0x1, count 0x2
00000ec8: IRQ mask: 0000001000000000
00000ec8: Info: high true edge sensitive
00000ec8: Bad checksum 0xc9, should be 0
00000ec8:
00000ed6: Device SPKR (\_SB_.PCI0.LPC0.SPKR)
00000edd: Name _HID (\_SB_.PCI0.LPC0.SPKR._HID)
00000ee2: PNP0800 (0x0008d041)
00000ee7: Name _CRS (\_SB_.PCI0.LPC0.SPKR._CRS)
00000eec: Buffer
00000eee: 0x0a
00000ef0: ByteList <0x47 0x01 0x61 0x00 0x61 0x00 0x01 0x01
00000ef0: 0x79 0x00>
00000ef0: Interpreted as PnP Resource Descriptor:
00000ef0: I/O Ports: 16 bit address decoding,
00000ef0: minbase 0x61, maxbase 0x61, align 0x1, count 0x1
00000ef0: Bad checksum 0x85, should be 0
00000ef0:
00000efa: Device TIME (\_SB_.PCI0.LPC0.TIME)
00000f01: Name _HID (\_SB_.PCI0.LPC0.TIME._HID)
00000f06: PNP0100 (0x0001d041)
00000f0b: Name _CRS (\_SB_.PCI0.LPC0.TIME._CRS)
00000f10: Buffer
00000f12: 0x0e
00000f14: ByteList <0x47 0x01 0x40 0x00 0x40 0x00 0x01 0x04
00000f14: 0x23 0x01 0x00 0x01 0x79 0x00>
00000f14: Interpreted as PnP Resource Descriptor:
00000f14: I/O Ports: 16 bit address decoding,
00000f14: minbase 0x40, maxbase 0x40, align 0x1, count 0x4
00000f14: IRQ mask: 0000000000000010
00000f14: Info: high true edge sensitive
00000f14: Bad checksum 0x6b, should be 0
00000f14:
00000f22: Device KBC0 (\_SB_.PCI0.LPC0.KBC0)
00000f29: Name _HID (\_SB_.PCI0.LPC0.KBC0._HID)
00000f2e: PNP0303 (0x0303d041)
00000f33: Name _CRS (\_SB_.PCI0.LPC0.KBC0._CRS)
00000f38: Buffer
00000f3a: 0x16
00000f3c: ByteList <0x47 0x01 0x60 0x00 0x60 0x00 0x01 0x01
00000f3c: 0x47 0x01 0x64 0x00 0x64 0x00 0x01 0x01
00000f3c: 0x23 0x02 0x00 0x01 0x79 0x00>
00000f3c: Interpreted as PnP Resource Descriptor:
00000f3c: I/O Ports: 16 bit address decoding,
00000f3c: minbase 0x60, maxbase 0x60, align 0x1, count 0x1
00000f3c: I/O Ports: 16 bit address decoding,
00000f3c: minbase 0x64, maxbase 0x64, align 0x1, count 0x1
00000f3c: IRQ mask: 0000000000000100
00000f3c: Info: high true edge sensitive
00000f3c: Bad checksum 0xbb, should be 0
00000f3c:
00000f52: Device MSE0 (\_SB_.PCI0.LPC0.MSE0)
00000f59: Name _HID (\_SB_.PCI0.LPC0.MSE0._HID)
00000f5e: PNP0f13 (0x130fd041)
00000f63: Name _CRS (\_SB_.PCI0.LPC0.MSE0._CRS)
00000f68: Buffer
00000f6a: 0x06
00000f6c: ByteList <0x23 0x00 0x10 0x01 0x79 0x00>
00000f6c: Interpreted as PnP Resource Descriptor:
00000f6c: IRQ mask: 0010000000000000
00000f6c: Info: high true edge sensitive
00000f6c: Bad checksum 0xad, should be 0
00000f6c:
00000f72: Device LNKA (\_SB_.PCI0.LPC0.LNKA)
00000f7a: Name _HID (\_SB_.PCI0.LPC0.LNKA._HID)
00000f7f: PNP0c0f (0x0f0cd041)
00000f84: Name _UID (\_SB_.PCI0.LPC0.LNKA._UID)
00000f89: 0x01
00000f8b: Name _PRS (\_SB_.PCI0.LPC0.LNKA._PRS)
00000f90: Buffer
00000f92: 0x06
00000f94: ByteList <0x23 0x20 0x00 0x18 0x79 0x00>
00000f94: Interpreted as PnP Resource Descriptor:
00000f94: IRQ mask: 0000000001000000
00000f94: Info: shareable, low true level sensitive
00000f94: Bad checksum 0xd4, should be 0
00000f94:
00000f9a: Name RSRC (\_SB_.PCI0.LPC0.LNKA.RSRC)
00000f9f: Buffer
00000fa1: 0x06
00000fa3: ByteList <0x23 0x00 0x00 0x18 0x79 0x00>
00000fa3: Interpreted as PnP Resource Descriptor:
00000fa3: IRQ mask: 0000000000000000
00000fa3: Info: shareable, low true level sensitive
00000fa3: Bad checksum 0xb4, should be 0
00000fa3:
00000fa9: Method _DIS (\_SB_.PCI0.LPC0.LNKA._DIS)
00000faf: ArgCount 0; NotSerialized
00000fb0: Or
00000fb1: PIRA (000013b1)
00000fb5: 0x80
00000fb7: PIRA (000013b1)
00000fbb: Method _CRS (\_SB_.PCI0.LPC0.LNKA._CRS)
00000fc1: ArgCount 0; NotSerialized
00000fc2: CreateWordField
00000fc3: RSRC (00000f9a)
00000fc7: 0x01
00000fc9: IRQ0
00000fcd: And
00000fce: PIRA (000013b1)
00000fd2: 0x0f
00000fd4: Local0
00000fd5: ShiftLeft
00000fd6: 0x01
00000fd8: Local0
00000fd9: IRQ0
00000fdd: Store
00000fde: RSRC (00000f9a)
00000fe2: Debug
00000fe4: Return
00000fe5: RSRC (00000f9a)
00000fe9: Method _SRS (\_SB_.PCI0.LPC0.LNKA._SRS)
00000fef: ArgCount 1; NotSerialized
00000ff0: Store
00000ff1: Arg0
00000ff2: Debug
00000ff4: CreateWordField
00000ff5: Arg0
00000ff6: 0x01
00000ff8: IRQ0
00000ffc: FindSetRightBit
00000ffd: IRQ0
00001001: Local0
00001002: Decrement
00001003: Local0
00001004: Or
00001005: Local0
00001006: And
00001007: PIRA (000013b1)
0000100b: 0x70
0000100d: <NULL>
0000100e: PIRA (000013b1)
00001012: Method _STA (\_SB_.PCI0.LPC0.LNKA._STA)
00001018: ArgCount 0; NotSerialized
00001019: If
0000101b: And
0000101c: PIRA (000013b1)
00001020: 0x80
00001022: <NULL>
00001023: Return
00001024: 0x09
00001026: Return
00001027: 0x0b
00001029: Device LNKB (\_SB_.PCI0.LPC0.LNKB)
00001031: Name _HID (\_SB_.PCI0.LPC0.LNKB._HID)
00001036: PNP0c0f (0x0f0cd041)
0000103b: Name _UID (\_SB_.PCI0.LPC0.LNKB._UID)
00001040: 0x02
00001042: Name _PRS (\_SB_.PCI0.LPC0.LNKB._PRS)
00001047: Buffer
00001049: 0x06
0000104b: ByteList <0x23 0x00 0x08 0x18 0x79 0x00>
0000104b: Interpreted as PnP Resource Descriptor:
0000104b: IRQ mask: 0001000000000000
0000104b: Info: shareable, low true level sensitive
0000104b: Bad checksum 0xbc, should be 0
0000104b:
00001051: Name RSRC (\_SB_.PCI0.LPC0.LNKB.RSRC)
00001056: Buffer
00001058: 0x06
0000105a: ByteList <0x23 0x00 0x00 0x18 0x79 0x00>
0000105a: Interpreted as PnP Resource Descriptor:
0000105a: IRQ mask: 0000000000000000
0000105a: Info: shareable, low true level sensitive
0000105a: Bad checksum 0xb4, should be 0
0000105a:
00001060: Method _DIS (\_SB_.PCI0.LPC0.LNKB._DIS)
00001066: ArgCount 0; NotSerialized
00001067: Or
00001068: PIRB (000013b6)
0000106c: 0x80
0000106e: PIRB (000013b6)
00001072: Method _CRS (\_SB_.PCI0.LPC0.LNKB._CRS)
00001078: ArgCount 0; NotSerialized
00001079: CreateWordField
0000107a: RSRC (00001051)
0000107e: 0x01
00001080: IRQ0
00001084: And
00001085: PIRB (000013b6)
00001089: 0x0f
0000108b: Local0
0000108c: ShiftLeft
0000108d: 0x01
0000108f: Local0
00001090: IRQ0
00001094: Return
00001095: RSRC (00001051)
00001099: Method _SRS (\_SB_.PCI0.LPC0.LNKB._SRS)
0000109f: ArgCount 1; NotSerialized
000010a0: CreateWordField
000010a1: Arg0
000010a2: 0x01
000010a4: IRQ0
000010a8: FindSetRightBit
000010a9: IRQ0
000010ad: Local0
000010ae: Decrement
000010af: Local0
000010b0: Or
000010b1: Local0
000010b2: And
000010b3: PIRB (000013b6)
000010b7: 0x70
000010b9: <NULL>
000010ba: PIRB (000013b6)
000010be: Method _STA (\_SB_.PCI0.LPC0.LNKB._STA)
000010c4: ArgCount 0; NotSerialized
000010c5: If
000010c7: And
000010c8: PIRB (000013b6)
000010cc: 0x80
000010ce: <NULL>
000010cf: Return
000010d0: 0x09
000010d2: Return
000010d3: 0x0b
000010d5: Device LNKC (\_SB_.PCI0.LPC0.LNKC)
000010dd: Name _HID (\_SB_.PCI0.LPC0.LNKC._HID)
000010e2: PNP0c0f (0x0f0cd041)
000010e7: Name _UID (\_SB_.PCI0.LPC0.LNKC._UID)
000010ec: 0x03
000010ee: Name _PRS (\_SB_.PCI0.LPC0.LNKC._PRS)
000010f3: Buffer
000010f5: 0x06
000010f7: ByteList <0x23 0x00 0x08 0x18 0x79 0x00>
000010f7: Interpreted as PnP Resource Descriptor:
000010f7: IRQ mask: 0001000000000000
000010f7: Info: shareable, low true level sensitive
000010f7: Bad checksum 0xbc, should be 0
000010f7:
000010fd: Name RSRC (\_SB_.PCI0.LPC0.LNKC.RSRC)
00001102: Buffer
00001104: 0x06
00001106: ByteList <0x23 0x00 0x00 0x18 0x79 0x00>
00001106: Interpreted as PnP Resource Descriptor:
00001106: IRQ mask: 0000000000000000
00001106: Info: shareable, low true level sensitive
00001106: Bad checksum 0xb4, should be 0
00001106:
0000110c: Method _DIS (\_SB_.PCI0.LPC0.LNKC._DIS)
00001112: ArgCount 0; NotSerialized
00001113: Or
00001114: PIRC (000013bb)
00001118: 0x80
0000111a: PIRC (000013bb)
0000111e: Method _CRS (\_SB_.PCI0.LPC0.LNKC._CRS)
00001124: ArgCount 0; NotSerialized
00001125: CreateWordField
00001126: RSRC (000010fd)
0000112a: 0x01
0000112c: IRQ0
00001130: And
00001131: PIRC (000013bb)
00001135: 0x0f
00001137: Local0
00001138: ShiftLeft
00001139: 0x01
0000113b: Local0
0000113c: IRQ0
00001140: Return
00001141: RSRC (000010fd)
00001145: Method _SRS (\_SB_.PCI0.LPC0.LNKC._SRS)
0000114b: ArgCount 1; NotSerialized
0000114c: CreateWordField
0000114d: Arg0
0000114e: 0x01
00001150: IRQ0
00001154: FindSetRightBit
00001155: IRQ0
00001159: Local0
0000115a: Decrement
0000115b: Local0
0000115c: Or
0000115d: Local0
0000115e: And
0000115f: PIRC (000013bb)
00001163: 0x70
00001165: <NULL>
00001166: PIRC (000013bb)
0000116a: Method _STA (\_SB_.PCI0.LPC0.LNKC._STA)
00001170: ArgCount 0; NotSerialized
00001171: If
00001173: And
00001174: PIRC (000013bb)
00001178: 0x80
0000117a: <NULL>
0000117b: Return
0000117c: 0x09
0000117e: Return
0000117f: 0x0b
00001181: Device LNKD (\_SB_.PCI0.LPC0.LNKD)
00001189: Name _HID (\_SB_.PCI0.LPC0.LNKD._HID)
0000118e: PNP0c0f (0x0f0cd041)
00001193: Name _UID (\_SB_.PCI0.LPC0.LNKD._UID)
00001198: 0x04
0000119a: Name _PRS (\_SB_.PCI0.LPC0.LNKD._PRS)
0000119f: Buffer
000011a1: 0x06
000011a3: ByteList <0x23 0x20 0x00 0x18 0x79 0x00>
000011a3: Interpreted as PnP Resource Descriptor:
000011a3: IRQ mask: 0000000001000000
000011a3: Info: shareable, low true level sensitive
000011a3: Bad checksum 0xd4, should be 0
000011a3:
000011a9: Name RSRC (\_SB_.PCI0.LPC0.LNKD.RSRC)
000011ae: Buffer
000011b0: 0x06
000011b2: ByteList <0x23 0x00 0x00 0x18 0x79 0x00>
000011b2: Interpreted as PnP Resource Descriptor:
000011b2: IRQ mask: 0000000000000000
000011b2: Info: shareable, low true level sensitive
000011b2: Bad checksum 0xb4, should be 0
000011b2:
000011b8: Method _DIS (\_SB_.PCI0.LPC0.LNKD._DIS)
000011be: ArgCount 0; NotSerialized
000011bf: Or
000011c0: PIRD (000013c0)
000011c4: 0x80
000011c6: PIRD (000013c0)
000011ca: Method _CRS (\_SB_.PCI0.LPC0.LNKD._CRS)
000011d0: ArgCount 0; NotSerialized
000011d1: CreateWordField
000011d2: RSRC (000011a9)
000011d6: 0x01
000011d8: IRQ0
000011dc: And
000011dd: PIRD (000013c0)
000011e1: 0x0f
000011e3: Local0
000011e4: ShiftLeft
000011e5: 0x01
000011e7: Local0
000011e8: IRQ0
000011ec: Return
000011ed: RSRC (000011a9)
000011f1: Method _SRS (\_SB_.PCI0.LPC0.LNKD._SRS)
000011f7: ArgCount 1; NotSerialized
000011f8: CreateWordField
000011f9: Arg0
000011fa: 0x01
000011fc: IRQ0
00001200: FindSetRightBit
00001201: IRQ0
00001205: Local0
00001206: Decrement
00001207: Local0
00001208: Or
00001209: Local0
0000120a: And
0000120b: PIRD (000013c0)
0000120f: 0x70
00001211: <NULL>
00001212: PIRD (000013c0)
00001216: Method _STA (\_SB_.PCI0.LPC0.LNKD._STA)
0000121c: ArgCount 0; NotSerialized
0000121d: If
0000121f: And
00001220: PIRD (000013c0)
00001224: 0x80
00001226: <NULL>
00001227: Return
00001228: 0x09
0000122a: Return
0000122b: 0x0b
0000122d: Device LNKE (\_SB_.PCI0.LPC0.LNKE)
00001235: Name _HID (\_SB_.PCI0.LPC0.LNKE._HID)
0000123a: PNP0c0f (0x0f0cd041)
0000123f: Name _UID (\_SB_.PCI0.LPC0.LNKE._UID)
00001244: 0x05
00001246: Name _PRS (\_SB_.PCI0.LPC0.LNKE._PRS)
0000124b: Buffer
0000124d: 0x06
0000124f: ByteList <0x23 0x00 0x08 0x18 0x79 0x00>
0000124f: Interpreted as PnP Resource Descriptor:
0000124f: IRQ mask: 0001000000000000
0000124f: Info: shareable, low true level sensitive
0000124f: Bad checksum 0xbc, should be 0
0000124f:
00001255: Name RSRC (\_SB_.PCI0.LPC0.LNKE.RSRC)
0000125a: Buffer
0000125c: 0x06
0000125e: ByteList <0x23 0x00 0x00 0x18 0x79 0x00>
0000125e: Interpreted as PnP Resource Descriptor:
0000125e: IRQ mask: 0000000000000000
0000125e: Info: shareable, low true level sensitive
0000125e: Bad checksum 0xb4, should be 0
0000125e:
00001264: Method _DIS (\_SB_.PCI0.LPC0.LNKE._DIS)
0000126a: ArgCount 0; NotSerialized
0000126b: Or
0000126c: PIRE (000013db)
00001270: 0x80
00001272: PIRE (000013db)
00001276: Method _CRS (\_SB_.PCI0.LPC0.LNKE._CRS)
0000127c: ArgCount 0; NotSe
_________________
Jo Vermeulen
Student Computer Science at the tUL
email: jo@lumumba.luc.ac.be
www: http://lumumba.luc.ac.be/jo
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum