From owner-freebsd-acpi@FreeBSD.ORG Sun Oct 22 20:20:19 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 88CEF16A407; Sun, 22 Oct 2006 20:20:13 +0000 (UTC) (envelope-from anders@FreeBSD.org) Received: from fupp.net (totem.fix.no [80.91.36.20]) by mx1.FreeBSD.org (Postfix) with ESMTP id 54C6543D49; Sun, 22 Oct 2006 20:20:11 +0000 (GMT) (envelope-from anders@FreeBSD.org) Received: from localhost (totem.fix.no [80.91.36.20]) by fupp.net (Postfix) with ESMTP id 99EB68D98BE; Sun, 22 Oct 2006 22:20:09 +0200 (CEST) Received: from fupp.net ([80.91.36.20]) by localhost (totem.fix.no [80.91.36.20]) (amavisd-new, port 10024) with LMTP id 46189-02-5; Sun, 22 Oct 2006 22:20:08 +0200 (CEST) Received: by fupp.net (Postfix, from userid 1000) id 910278D98B9; Sun, 22 Oct 2006 22:20:08 +0200 (CEST) Date: Sun, 22 Oct 2006 22:20:08 +0200 From: Anders Nordby To: Peter Blok Message-ID: <20061022202008.GA32530@fupp.net> References: <20061004104415.GB23653@fupp.net> <000901c6e7a9$0b32b680$8a01a8c0@beast> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <000901c6e7a9$0b32b680$8a01a8c0@beast> X-PGP-Key: http://anders.fix.no/pgp/ X-PGP-Key-FingerPrint: 1E0F C53C D8DF 6A8F EAAD 19C5 D12A BC9F 0083 5956 User-Agent: Mutt/1.5.11 Cc: freebsd-acpi@freebsd.org, freebsd-smp@freebsd.org Subject: Re: Compaq DL 360 SMP problem (was: i386/89545: Compaq DL 360 ACPIboot problem) X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Oct 2006 20:20:19 -0000 Hi, Nope. This system takes only two processors. It's a 1U system, with not much space. I could however get SMP working by switching to another OS profile (Linux) in the system configuration. The server is old enough to require a (SmartStart) CD for this to happen, I can not access that configuration without it. After I did the change, I can see that the CPU has the feature APIC: CPU: Intel Pentium III (797.48-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x683 Stepping = 3 Features=0x383fbff Before that, it did not: CPU: Intel Pentium III (797.48-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x683 Stepping = 3 Features=0x383f9ff PS: Sorry it took some time to check up on this. The server is in a co-location facility, and I don't go there often. On Wed, Oct 04, 2006 at 01:34:24PM +0200, Peter Blok wrote: > According to the acpidump you have CPU=0 and CPU=3. CPU 1 and CPU 2 are > marked disabled. Are you able to move the CPU hardware wise? > > Peter > > -----Original Message----- > From: owner-freebsd-smp@freebsd.org [mailto:owner-freebsd-smp@freebsd.org] > On Behalf Of Anders Nordby > Sent: Wednesday, October 04, 2006 12:44 PM > To: John Baldwin > Cc: freebsd-acpi@freebsd.org; freebsd-smp@freebsd.org > Subject: Re: Compaq DL 360 SMP problem (was: i386/89545: Compaq DL 360 > ACPIboot problem) > > Hi, > > And old mail here, but I still have this problem getting SMP to work on > the machine. > > On Fri, Jan 06, 2006 at 07:53:17AM -0500, John Baldwin wrote: > >> How can I get SMP running? This worked in 5.x and 4.x, I believe. > > 2) Re: SMP, just to make sure, do you have 'device apic' and 'options SMP' > in > > your kernel? Also, can you provide the output of 'acpidump -t' so I can > see > > what your APIC table (MADT) looks like. Also, does the kernel find SMP if > > > you disable ACPI? > > Yes, apic is enabled in the kernel that I run. ACPI is loaded as a > kernel module. If I disable ACPI, FreeBSD also finds only one processor. > > I still use the custom dsdt as modified after getting instructions by > you in this PR http://www.freebsd.org/cgi/query-pr.cgi?pr=89545. The > modifications are: > > --- vm.asl Sat Jan 7 12:06:14 2006 > +++ vm-fixed.asl Sat Jan 7 12:08:04 2006 > @@ -5,13 +5,13 @@ > /* > RSDT: Length=52, Revision=1, Checksum=69, > OEMID=COMPAQ, OEM Table ID=MICRO, OEM Revision=0x2, > - Creator ID=Ò, Creator Revision=0x162e > + Creator ID=ASL Creator Revision=0x162e > Entries={ 0x67ffc040, 0x67ffc100, 0x67fff800, 0x67ffc180 } > */ > /* > FACP: Length=116, Revision=1, Checksum=110, > OEMID=COMPAQ, OEM Table ID=MICRO, OEM Revision=0x2, > - Creator ID=Ò, Creator Revision=0x162e > + Creator ID=ASL Creator Revision=0x162e > FACS=0x67ffc0c0, DSDT=0x67ffc200 > INT_MODEL=APIC > Preferred_PM_Profile=Unspecified (0) > @@ -84,7 +84,7 @@ > /* > SPCR: Length=80, Revision=1, Checksum=14, > OEMID=COMPAQ, OEM Table ID=SPCR_ROM, OEM Revision=0x1, > - Creator ID=Ò, Creator Revision=0x162e > + Creator ID=ASL Creator Revision=0x162e > */ > /* > * Intel ACPI Component Architecture > @@ -1573,7 +1573,7 @@ > Else > { > Store ("PCI0._PRT in PIC mode", Debug) > - Return (Package (0x08) > + Return (Package (0x07) > { > Package (0x04) > { > @@ -1588,14 +1588,6 @@ > 0x0001FFFF, > 0x01, > ITR2, > - 0x00 > - }, > - > - Package (0x04) > - { > - 0x0004FFFF, > - 0x00, > - FAKE, > 0x00 > }, > > I'm running 6.1 on the system now, but still FreeBSD sees only one CPU. > When booting the system it lists two: > > Processor 1 initialized at 800/133 MHz with 256 Kbyte Cache > > Processor 2 initialized at 800/133 MHz with 256 Kbyte Cache > > > If I try to run with acpi but without the modified dsdt, I get these > pci/cpu/apic/acpi messages on boot: > > CPU: Intel Pentium III (797.48-MHz 686-class CPU) > acpi0: on motherboard > acpi0: Power Button (fixed) > Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000 > acpi_timer0: <24-bit timer at 3.579545MHz> port 0x240-0x243 on acpi0 > cpu0: on acpi0 > pcib0: on acpi0 > pci_link0: apparently invalid index 0 > pci0: on pcib0 > ida0: port 0x2000-0x20ff mem > 0xc5000000-0xc5ffffff,0xc4000000-0xc4ffffff irq 5 at device 1.0 on pci0 > pci0: at device 3.0 (no driver attached) > pci0: at device 4.0 (no driver attached) > pcib1: at device 5.0 on pci0 > pci1: on pcib1 > pci1: at device 0.0 (no driver attached) > pci0: at device 5.1 (no driver attached) > isab0: at device 15.0 on pci0 > atapci0: port > 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2800-0x280f at device 15.1 on pci0 > ata0: on atapci0 > ata1: on atapci0 > pcib2: on acpi0 > pci_link4: BIOS IRQ 7 for 3.4.INTA is invalid > pci_link2: BIOS IRQ 3 for 3.6.INTA is invalid > pci3: on pcib2 > fxp0: port 0x4000-0x403f mem > 0xc6fff000-0xc6ffffff,0xc6e00000-0xc6efffff irq 10 at device 4.0 on pci3 > fxp1: port 0x4040-0x407f mem > 0xc6dff000-0xc6dfffff,0xc6c00000-0xc6cfffff irq 10 at device 5.0 on pci3 > ida1: port 0x4400-0x44ff mem > 0xc6bff000-0xc6bfffff irq 9 at device 6.0 on pci3 > acpi_tz0: on acpi0 > atkbdc0: port 0x60,0x64 irq 1 on acpi0 > fdc0: port 0x3f2-0x3f5 irq 6 drq 2 on acpi0 > sio0: port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 > > With the custom dsdt, I get: > > CPU: Intel Pentium III (797.48-MHz 686-class CPU) > ACPI-0377: *** Info: Table [SSDT] replaced by host OS > ACPI: overriding DSDT/SSDT with custom table > ACPI-0377: *** Info: Table [DSDT] replaced by host OS > acpi0: on motherboard > acpi0: Power Button (fixed) > Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000 > acpi_timer0: <24-bit timer at 3.579545MHz> port 0x240-0x243 on acpi0 > cpu0: on acpi0 > pcib0: on acpi0 > pci0: on pcib0 > ida0: port 0x2000-0x20ff mem > 0xc5000000-0xc > 5ffffff,0xc4000000-0xc4ffffff irq 5 at device 1.0 on pci0 > pci0: at device 3.0 (no driver attached) > pci0: at device 4.0 (no driver attached) > pcib1: at device 5.0 on pci0 > pci1: on pcib1 > pci1: at device 0.0 (no driver attached) > pci0: at device 5.1 (no driver attached) > isab0: at device 15.0 on pci0 > atapci0: port > 0x1f0-0x1f7,0x3f6,0x170-0x17 > 7,0x376,0x2800-0x280f at device 15.1 on pci0 > ata0: on atapci0 > ata1: on atapci0 > pcib2: on acpi0 > pci_link4: BIOS IRQ 7 for 3.4.INTA is invalid > pci_link2: BIOS IRQ 3 for 3.6.INTA is invalid > pci3: on pcib2 > fxp0: port 0x4000-0x403f mem > 0xc6fff000-0xc6fffff > f,0xc6e00000-0xc6efffff irq 10 at device 4.0 on pci3 > fxp1: port 0x4040-0x407f mem > 0xc6dff000-0xc6dffff > f,0xc6c00000-0xc6cfffff irq 10 at device 5.0 on pci3 > ida1: port 0x4400-0x44ff mem > 0xc6bff000-0xc > 6bfffff irq 9 at device 6.0 on pci3 > acpi_tz0: on acpi0 > atkbdc0: port 0x60,0x64 irq 1 on acpi0 > fdc0: port 0x3f2-0x3f5 irq 6 drq 2 on acpi0 > sio0: port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 > > If I run without ACPI, I get: > > CPU: Intel Pentium III (797.48-MHz 686-class CPU) > cpu0 on motherboard > pcib0: pcibus 0 on > motherboard > pci0: on pcib0 > ida0: port 0x2000-0x20ff mem > 0xc5000000-0xc > 5ffffff,0xc4000000-0xc4ffffff irq 5 at device 1.0 on pci0 > pci0: at device 3.0 (no driver attached) > pci0: at device 4.0 (no driver attached) > pcib1: at device 5.0 on pci0 > pci1: on pcib1 > pci1: at device 0.0 (no driver attached) > pci0: at device 5.1 (no driver attached) > isab0: at device 15.0 on pci0 > atapci0: port > 0x1f0-0x1f7,0x3f6,0x170-0x17 > 7,0x376,0x2800-0x280f at device 15.1 on pci0 > ata0: on atapci0 > ata1: on atapci0 > pcib3: pcibus 3 on > motherboard > pci3: on pcib3 > fxp0: port 0x4000-0x403f mem > 0xc6fff000-0xc6fffff > f,0xc6e00000-0xc6efffff irq 7 at device 4.0 on pci3 > fxp1: port 0x4040-0x407f mem > 0xc6dff000-0xc6dffff > f,0xc6c00000-0xc6cfffff irq 10 at device 5.0 on pci3 > ida1: port 0x4400-0x44ff mem > 0xc6bff000-0xc > 6bfffff irq 3 at device 6.0 on pci3 > > In any case, I only get one CPU. How to fix? > > Acpidump attached. > > Bye, > > -- > Anders. > > _______________________________________________ > freebsd-smp@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-smp > To unsubscribe, send any mail to "freebsd-smp-unsubscribe@freebsd.org" -- Anders. From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 11:08:07 2006 Return-Path: X-Original-To: freebsd-acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CB67F16A47C for ; Mon, 23 Oct 2006 11:08:07 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0734A43D60 for ; Mon, 23 Oct 2006 11:08:07 +0000 (GMT) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k9NB8605027556 for ; Mon, 23 Oct 2006 11:08:06 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k9NB85IG027552 for freebsd-acpi@FreeBSD.org; Mon, 23 Oct 2006 11:08:05 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 23 Oct 2006 11:08:05 GMT Message-Id: <200610231108.k9NB85IG027552@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: linimon set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 11:08:07 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o i386/54756 acpi ACPI suspend/resume problem on CF-W2 laptop o i386/55661 acpi ACPI suspend/resume problem on ARMADA M700 o kern/55822 acpi No ACPI power off with SMP kernel o kern/56024 acpi ACPI suspend drains battery while in S3 o i386/64002 acpi acpi problem o i386/67273 acpi [hang] system hangs with acpi and Xfree o i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Armada 1750 o i386/79080 acpi acpi thermal changes freezes HP nx6110 o i386/79081 acpi ACPI suspend/resume not working on HP nx6110 o kern/104625 acpi ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show ther 10 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/67309 acpi zzz reboot computer (ACPI S3) o i386/69750 acpi Boot without ACPI failed on ASUS L5 o kern/73823 acpi [feature request] acpi / power-on by timer support f kern/74030 acpi Unplugging AC causes battery % to stay locked at 98% f kern/90871 acpi ACPI problems with ASUS A8N-VM-CSM o kern/97383 acpi Volume buttons on IBM Thinkpad crash system with ACPI o kern/98171 acpi [acpi] ACPI 1304 / 0501 errors on Acer 5024WLMi Laptop o kern/103365 acpi [acpi] acpi poweroff doesn't work with geli device att 8 problems total. From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 15:50:27 2006 Return-Path: X-Original-To: freebsd-acpi@hub.freebsd.org Delivered-To: freebsd-acpi@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F1E7916A529 for ; Mon, 23 Oct 2006 15:50:27 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 66FC143D58 for ; Mon, 23 Oct 2006 15:50:27 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k9NFoRaA056668 for ; Mon, 23 Oct 2006 15:50:27 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k9NFoRSq056665; Mon, 23 Oct 2006 15:50:27 GMT (envelope-from gnats) Date: Mon, 23 Oct 2006 15:50:27 GMT Message-Id: <200610231550.k9NFoRSq056665@freefall.freebsd.org> To: freebsd-acpi@FreeBSD.org From: John Baldwin Cc: Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: John Baldwin List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 15:50:28 -0000 The following reply was made to PR kern/104625; it has been noted by GNATS. From: John Baldwin To: bug-followup@freebsd.org, ohartman@zedat.fu-berlin.de Cc: Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed Date: Mon, 23 Oct 2006 11:25:09 -0400 You need to provide an acpidump. ACPI thermal zones work fine on computers that list them in their BIOS. Many older machines only provide access to the thermals via non-ACPI methods such as over SMBus, etc. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 16:57:00 2006 Return-Path: X-Original-To: freebsd-acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6FB4B16A4DE for ; Mon, 23 Oct 2006 16:57:00 +0000 (UTC) (envelope-from ohartman@mail.zedat.fu-berlin.de) Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de [130.133.4.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 679AB43E5E for ; Mon, 23 Oct 2006 16:53:13 +0000 (GMT) (envelope-from ohartman@mail.zedat.fu-berlin.de) Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.62) with esmtp (envelope-from ) id <1Gc331-0001JM-F8>; Mon, 23 Oct 2006 18:53:11 +0200 Received: from e178006083.adsl.alicedsl.de ([85.178.6.83] helo=[192.168.1.128]) by inpost2.zedat.fu-berlin.de (Exim 4.62) with esmtpsa (envelope-from ) id <1Gc32x-0000Fu-K8>; Mon, 23 Oct 2006 18:53:11 +0200 Message-ID: <453CF36E.6000201@mail.zedat.fu-berlin.de> Date: Mon, 23 Oct 2006 18:53:02 +0200 From: "O. Hartmann" User-Agent: Thunderbird 1.5.0.7 (X11/20061015) MIME-Version: 1.0 To: John Baldwin References: <200610231550.k9NFoRSq056665@freefall.freebsd.org> In-Reply-To: <200610231550.k9NFoRSq056665@freefall.freebsd.org> X-Enigmail-Version: 0.94.1.0 Content-Type: multipart/mixed; boundary="------------020604070307000805050105" X-Originating-IP: 85.178.6.83 X-Mailman-Approved-At: Mon, 23 Oct 2006 10:06:18 -0700 Cc: freebsd-acpi@FreeBSD.org Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 16:57:00 -0000 This is a multi-part message in MIME format. --------------020604070307000805050105 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit John Baldwin wrote: > The following reply was made to PR kern/104625; it has been noted by GNATS. > > From: John Baldwin > To: bug-followup@freebsd.org, ohartman@zedat.fu-berlin.de > Cc: > Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed > Date: Mon, 23 Oct 2006 11:25:09 -0400 > > You need to provide an acpidump. ACPI thermal zones work fine on computers > that list them in their BIOS. Many older machines only provide access to the > thermals via non-ACPI methods such as over SMBus, etc. > > -- > John Baldwin > _______________________________________________ > freebsd-acpi@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-acpi > To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.org" > Attached to this mail you'll find the acpidump of both boxes. Please note: ASUS A8N32-SLI IS DEFINITELLY NOT OLD as it has been introduces last year and since then the problem persists. And, even worse, OpenBSD seems to show up thermal zones. As I wrote the 'older' ASUS A8N-SLI Deluxe already showed up thermal zones, but had a AWARD BIOS while the boxes in question use AMI BIOS. On all boxes I have access to with AMI BIOS, I can not access thermal zones in FreeBSD 6.X ... Regards, Oliver --------------020604070307000805050105 Content-Type: application/octet-stream; name="acpi_a8n32sli.bin" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="acpi_a8n32sli.bin" RFNEVAlqAAABK0EwMzcxAEEwMzcxMDAxAQAAAElOVEwmIAACCERQODALgBAIRFA5MAqQCFNQ SU8KLghJT1BCCwAMCElPUEwKEAhJT0VCCwANCElPRUwKEAhJT0dCCyAKCElPR0wKEAhJT0RC CzAKCElPREwKEAhJTzFCCyAKCElPMUwKCAhJTzNCCwANCElPM0wKgAhQTUJTCwAFCFBNTE4L AAEIU0NCUwsACAhTQ0xOCwABCEFDQlMLAAkIQUNMTgsAAQhTQ0lPCwAICFNDVEwLkAUIRVhU UwoACEFQSUMKAQhBQldWCqsIUENJQgwAAADgCFBDSUwMAAAAEAhTTUJTCwAHW4BCSU9TAAxk 4Pt/Cv9bgUUGQklPUwFTUzFfAVNTMl8BU1MzXwFTUzRfAQAESU9TVBBUT1BNIFJPTVMgTUcx QiBNRzFMIE1HMkIgTUcyTCAACENQQjAgQ1BCMSBDUEIyIENQQjMgQVNTQghBT1RCCEFBWEIg FA9SUklPBHANUlJJTwBbMRQPUkRNQQNwDXJETUEAWzEIUElDTQoAFB9fUElDAaAJaHAKqkRC RzihCHAKrERCRzhwaFBJQ00IT1NWUv8USQ1PU0ZMAKANkpNPU1ZS/6RPU1ZSoA+TUElDTQoA cAqsREJHOHAKAU9TVlKgJVsSXF9PU0lhoBtcX09TSQ1XaW5kb3dzIDIwMDEAcAoAT1NWUqFB CKAnTUNUSFxfT1NfDU1pY3Jvc29mdCBXaW5kb3dzIE5UAHAKBE9TVlKhRgWgOk1DVEhcX09T Xw1NaWNyb3NvZnQgV2luZG93c01FOiBNaWxsZW5uaXVtIEVkaXRpb24AcAoCT1NWUqAYTUNU SFxfT1NfDUxpbnV4AHAKA09TVlKkT1NWUhRPBE1DVEgCoAiVh2iHaaQAcodoCgFgCEJVRjAR AmAIQlVGMRECYHBoQlVGMHBpQlVGMaIaYHZgoBWSk4OIQlVGMGAAg4hCVUYxYACkAKQBCFBS V1ASBAIAABRDCEdQUlcCcGiIUFJXUAoAAHB5U1MxXwoBAGB9YHlTUzJfCgIAYH1geVNTM18K AwBgfWB5U1M0XwoEAGCgE3t5CgFpAGAAcGmIUFJXUAoBAKEtemAKAWCgGpGTT1NGTAoBk09T RkwKAoFgiFBSV1AKAQChC4JgiFBSV1AKAQCkUFJXUAhXQUtQEgQCAABbgERFQjABRFA4MAoB W4ELREVCMAFEQkc4CFuAREVCMQFEUDkwCgJbgQtERUIxAkRCRzkQEInmBFxfU0JfCFBSMDAS QyAgEg8EDP//CgAKAExTTUIKABIPBAz//wsACgBMVUIwCgASDwQM//8LAAoBTFVCMgoAEg8E DP//EwAKAExNQUMKABIPBAz//xAACgBMU0EwCgASDwQM//8RAAoATFNBMQoAEg8EDP//DQAK AExBQ0kKABIPBAz//w0ACgFMTUM5CgASDwQM//8CAAoATE5LQgoAEg8EDP//AgAKAUxOS0MK ABIPBAz//wIACgJMTktECgASDwQM//8CAAoDTE5LQQoAEg8EDP//AwAKAExOS0EKABIPBAz/ /wMACgFMTktCCgASDwQM//8DAAoCTE5LQwoAEg8EDP//AwAKA0xOS0QKABIPBAz//wQACgBM TktBCgASDwQM//8EAAoBTE5LQgoAEg8EDP//BAAKAkxOS0MKABIPBAz//wQACgNMTktECgAS DwQM//8XAAoATE5LQgoAEg8EDP//FwAKAUxOS0MKABIPBAz//xcACgJMTktECgASDwQM//8X AAoDTE5LQQoAEg8EDP//FgAKAExOS0MKABIPBAz//xYACgFMTktECgASDwQM//8WAAoCTE5L QQoAEg8EDP//FgAKA0xOS0IKABIPBAz//xUACgBMTktECgASDwQM//8VAAoBTE5LQQoAEg8E DP//FQAKAkxOS0IKABIPBAz//xUACgNMTktDCgAIQVIwMBJDICASDwQM//8KAAoATFNNQgoA Eg8EDP//CwAKAExVQjAKABIPBAz//wsACgFMVUIyCgASDwQM//8TAAoATE1BQwoAEg8EDP// EAAKAExTQTAKABIPBAz//xEACgBMU0ExCgASDwQM//8NAAoATEFDSQoAEg8EDP//DQAKAUxN QzkKABIPBAz//wIACgBMTktCCgASDwQM//8CAAoBTE5LQwoAEg8EDP//AgAKAkxOS0QKABIP BAz//wIACgNMTktBCgASDwQM//8DAAoATE5LQQoAEg8EDP//AwAKAUxOS0IKABIPBAz//wMA CgJMTktDCgASDwQM//8DAAoDTE5LRAoAEg8EDP//BAAKAExOS0EKABIPBAz//wQACgFMTktC CgASDwQM//8EAAoCTE5LQwoAEg8EDP//BAAKA0xOS0QKABIPBAz//xcACgBMTktCCgASDwQM //8XAAoBTE5LQwoAEg8EDP//FwAKAkxOS0QKABIPBAz//xcACgNMTktBCgASDwQM//8WAAoA TE5LQwoAEg8EDP//FgAKAUxOS0QKABIPBAz//xYACgJMTktBCgASDwQM//8WAAoDTE5LQgoA Eg8EDP//FQAKAExOS0QKABIPBAz//xUACgFMTktBCgASDwQM//8VAAoCTE5LQgoAEg8EDP// FQAKA0xOS0MKAAhQUjAxEkMNDRIPBAz//wsACgBMTktBCgASDwQM//8GAAoATE5LQQoAEg8E DP//BgAKAUxOS0IKABIPBAz//wYACgJMTktDCgASDwQM//8GAAoDTE5LRAoAEg8EDP//BwAK AExOS0IKABIPBAz//wcACgFMTktDCgASDwQM//8HAAoCTE5LRAoAEg8EDP//BwAKA0xOS0EK ABIPBAz//wgACgBMTktDCgASDwQM//8IAAoBTE5LRAoAEg8EDP//CAAKAkxOS0EKABIPBAz/ /wgACgNMTktCCgAIQVIwMRJDDQ0SDwQM//8LAAoATE5LQQoAEg8EDP//BgAKAExOS0EKABIP BAz//wYACgFMTktCCgASDwQM//8GAAoCTE5LQwoAEg8EDP//BgAKA0xOS0QKABIPBAz//wcA CgBMTktCCgASDwQM//8HAAoBTE5LQwoAEg8EDP//BwAKAkxOS0QKABIPBAz//wcACgNMTktB CgASDwQM//8IAAoATE5LQwoAEg8EDP//CAAKAUxOS0QKABIPBAz//wgACgJMTktBCgASDwQM //8IAAoDTE5LQgoACFBSMDISOgQSDQQL//8KAExOS0IKABINBAv//woBTE5LQwoAEg0EC/// CgJMTktECgASDQQL//8KA0xOS0EKAAhBUjAyEjoEEg0EC///CgBMTktCCgASDQQL//8KAUxO S0MKABINBAv//woCTE5LRAoAEg0EC///CgNMTktBCgAIUFIwMxI6BBINBAv//woATE5LQQoA Eg0EC///CgFMTktCCgASDQQL//8KAkxOS0MKABINBAv//woDTE5LRAoACEFSMDMSOgQSDQQL //8KAExOS0EKABINBAv//woBTE5LQgoAEg0EC///CgJMTktDCgASDQQL//8KA0xOS0QKAAhQ UjA0EjoEEg0EC///CgBMTktBCgASDQQL//8KAUxOS0IKABINBAv//woCTE5LQwoAEg0EC/// CgNMTktECgAIQVIwNBI6BBINBAv//woATE5LQQoAEg0EC///CgFMTktCCgASDQQL//8KAkxO S0MKABINBAv//woDTE5LRAoACFBSMDUSOgQSDQQL//8KAExOS0IKABINBAv//woBTE5LQwoA Eg0EC///CgJMTktECgASDQQL//8KA0xOS0EKAAhBUjA1EjoEEg0EC///CgBMTktCCgASDQQL //8KAUxOS0MKABINBAv//woCTE5LRAoAEg0EC///CgNMTktBCgAIUFIwNhI6BBINBAv//woA TE5LQwoAEg0EC///CgFMTktECgASDQQL//8KAkxOS0EKABINBAv//woDTE5LQgoACEFSMDYS OgQSDQQL//8KAExOS0MKABINBAv//woBTE5LRAoAEg0EC///CgJMTktBCgASDQQL//8KA0xO S0IKAAhQUjA3EjoEEg0EC///CgBMTktECgASDQQL//8KAUxOS0EKABINBAv//woCTE5LQgoA Eg0EC///CgNMTktDCgAIQVIwNxI6BBINBAv//woATE5LRAoAEg0EC///CgFMTktBCgASDQQL //8KAkxOS0IKABINBAv//woDTE5LQwoACFBSU0ERCQoGI6DEGHkABlBSU0FQUlNCBlBSU0FQ UlNDBlBSU0FQUlNEBlBSU0FSU01CBlBSU0FSU0IyCFJTQTERCQoGIwAIGHkABlJTQTFSU0Ew BlBSU0FSU0IwBlBSU0FSU0FDBlBSU0FSU0NJBlBSU0FSU0M5BlBSU0FSU1RBCFJTSVIRGgoX iRIADQQQAAAAEQAAABIAAAATAAAAeQAIUlNJSREaCheJEgANBBQAAAAVAAAAFgAAABcAAAB5 AFuChjEEUENJMAhfSElEDEHQCgMIX0FEUgwAABgAFApeQk4wMACkCgAUC19CQk4ApEJOMDAI X1VJRAoAFBZfUFJUAKAKUElDTaRBUjAwpFBSMDBbghpOQjJOCF9BRFIKABQGTlBUUwEUBk5X QUsBW4IMUENMSwhfQURSCgJbgogtA1NCUkcIX0FEUgwAAAoAFE4RU1BUUwFwaFwvBF9TQl9Q Q0kwSURFMFBUUzBwXC8EX1NCX1BDSTBJREUwSUQyMFwvBF9TQl9QQ0kwSURFMFNJRDBwXC8E X1NCX1BDSTBJREUwSURUU1wvBF9TQl9QQ0kwSURFMFNJRDFwXC8EX1NCX1BDSTBJREUwSURU UFwvBF9TQl9QQ0kwSURFMFNJRDJwXC8EX1NCX1BDSTBJREUwSUQyMlwvBF9TQl9QQ0kwSURF MFNJRDNwXC8EX1NCX1BDSTBJREUwVU1TU1wvBF9TQl9QQ0kwSURFMFNJRDRwXC8EX1NCX1BD STBJREUwVU1TUFwvBF9TQl9QQ0kwSURFMFNJRDVwAVBTMVNwAVBTMUVwAVwuX1NCX1NMUFMU NFNXQUsBcABcLl9TQl9TTFBTcABQUzFFcAoCUzFDVHAKAlMzQ1RwCgJTNENUcAoCUzVDVFuA U01JRQFTQ0lPCghbgRZTTUlFAQAPUFMxUwEAH1BTMUUBABBbgFNYQ1QBU0NUTAoQW4EiU1hD VAFTMUNUAgAeUzNDVAIAHlM0Q1QCAB5TNUNUAgAeEEIPXF9TQl8IU0xQUwoAW4JLBlNMUEII X0hJRAxB0AwOFBJfU1RBAKAIRVhUU6QKD6QKABQcU0JFVgCgDFNMUFOGU0xQQgoCoQiGU0xQ QgqAFBtcLl9HUEVfTDAxAFwvA19TQl9TTFBCU0JFVhQOX1BSVwCkEgYCCgEKBBBGB1BDSTAU F19TM0QAoAuTT1NGTAoCpAoCoQSkCgMIX1MxRAoBCE5BVEESBwEMAAAQAFuCQgROVlJCCF9I SUQNTlZSQUlEQlVTABQYX1NUQQCgDHtDUEIwCgEApAoPoQSkCgAIX0NSUxENCgpHAdIE0gQB AXkAW4IrUElDXwhfSElEC0HQCF9DUlMRGAoVRwEgACAAAAJHAaAAoAAAAiIEAHkAW4JOBERN QUQIX0hJRAxB0AIACF9DUlMROAo1KhAERwEAAAAAABBHAYEAgQAAA0cBhwCHAAABRwGJAIkA AANHAY8AjwAAAUcBwADAAAAgeQBbgiVUTVJfCF9ISUQMQdABAAhfQ1JTERAKDUcBQABAAAAE IgEAeQBbgiVSVEMwCF9ISUQMQdALAAhfQ1JTERAKDUcBcABwAAACIgABeQBbgiJTUEtSCF9I SUQMQdAIAAhfQ1JTEQ0KCkcBYQBhAAABeQBbgiVDT1BSCF9ISUQMQdAMBAhfQ1JTERAKDUcB 8ADwAAAQIgAgeQBbgkEXRkRDXwhfSElEDEHQBwAULl9GREUACEZERVASDAUKAAoACgIKAgoC oBBfU1RBcAoBiEZERVAKAACkRkRFUBQNX1NUQQCkRFNUQQoDFA5fRElTAERDTlQKAwoAFEoF X0NSUwBEQ1JTCgMKAXBJUlFNSVJRRXBETUFNRE1BRXBJTzExSU8yMXBJTzEySU8yMnAKBkxF TjJySU8yMQoHSU8zMXBJTzMxSU8zMnAKAUxFTjOkQ1JTMhRGBl9TUlMBRFNSU2gKA4toChFJ UlFFjGgKFERNQUVFTkZHQ0dMRAoDoBNJUlFFgklSUUVgdGAKAUlOVFKhCHAKAElOVFKgE0RN QUWCRE1BRWB0YAoBRE1DSKEIcAoERE1DSEVYRkcIX1BSUxFNBApJMQBHAfAD8AMBBkcB9wP3 AwEBIkAAKgQAMEcB8APwAwEGRwH3A/cDAQEi+BwqDwAwRwFwA3ADAQZHAXcDdwMBASL4HCoP ADh5AFuCTBdMUFRFFBxfSElEAKANTFBUTQoCpAxB0AQBoQekDEHQBAAUDV9TVEEApERTVEEK AhQOX0RJUwBEQ05UCgIKABRPBl9DUlMARENSUwoCCgGgSAVMUFRNCgJwSVJRTUlSUUVwRE1B TURNQUVwSU8xMUlPMjFwSU8xMklPMjJwTEVOMUxFTjJySU8yMQsABElPMzFwSU8zMUlPMzJw TEVOMkxFTjOkQ1JTMqEGpENSUzEUDV9TUlMBRFNSU2gKAhQaX1BSUwCgDExQVE0KAqRFUFBS oQakTFBQUghMUFBSETMKMDBHAXgDeAMBCCL4HCoAADBHAXgCeAIBCCL4HCoAADBHAbwDvAMB BCL4HCoAADh5AAhFUFBSEUQGCmAxAEcBeAN4AwEIRwF4B3gHAQgigAAqCAAwRwF4A3gDAQhH AXgHeAcBCCL4HCoPADBHAXgCeAIBCEcBeAZ4BgEIIvgcKg8AMEcBvAO8AwEERwG8B7wHAQQi +BwqDwA4eQBbgkUPR0FNRQhfSElEDEHQsC8UDV9TVEEApERTVEEKCBQOX0RJUwBEQ05UCggK AAhHTUNSEQ0KCkcBAAAAAAgIeQAUQwZfQ1JTAItHTUNSCgJJT0dMi0dNQ1IKBElPR0hFTkZH Q0dMRAoIeUlPQUgKCElPR0x9SU9BTElPR0xJT0dMcElPR0xJT0dIjEdNQ1IKBklPQUxwCgFJ T0FMRVhGR6RHTUNSFDpfU1JTAYtoCgJJTzExRU5GR0NHTEQKCHtJTzExCv9JT0FMeklPMTEK CElPQUhEQ05UCggKAUVYRkcIX1BSUxEQCg0xAEcBAQIBAgEIOHkAW4JME01JREkIX0hJRAxB 0LAGFA1fU1RBAKREU1RBCgUUDl9ESVMARENOVAoFCgAITURDUhEQCg1HAQAAAAABAiIgAHkA FEYHX0NSUwCLTURDUgoCSU9NTItNRENSCgRJT01Ii01EQ1IKCUlSUU1FTkZHQ0dMRAoFeUlP QUgKCElPTUx9SU9BTElPTUxJT01McElPTUxJT01IoBBJTlRSeQoBSU5UUklSUU2hCHAKAElS UU1FWEZHpE1EQ1IUQAZfU1JTAYtoCgJJTzExi2gKCUlSUU1FTkZHQ0dMRAoFe0lPMTEK/0lP QUx6SU8xMQoISU9BSKATSVJRTYJJUlFNYHRgCgFJTlRSoQhwCgBJTlRSRENOVAoFCgFFWEZH CF9QUlMRGwoYMEcBAAMAAwECMEcBMAMwAwECOCKgDnkAW4JKLlJNU0MIX0hJRAxB0AwCCF9V SUQKEAhDUlNfEU4NCtpHARAAEAAAEEcBIgAiAAAeRwFEAEQAABxHAWIAYgAAAkcBZQBlAAAL RwFyAHIAAA5HAYAAgAAAAUcBhACEAAADRwGIAIgAAAFHAYwAjAAAA0cBkACQAAAQRwGiAKIA AB5HAeAA4AAAEEcB0ATQBAACRwEACAAIABBHAQAAAAAAAEcBAAAAAAAARwEAAAAAAABHAQAA AAAAAEcBAAAAAAAARwEAAAAAAACGCQAAABDg/gDwDwCGCQAAAPD//gAQAACGCQABAACw/wAA TwCGCQAAAADw/wAAEAB5ABROHl9DUlMAi0NSU18KekdQMDCLQ1JTXwp8R1AwMYxDUlNfCn9H UDBMi0NSU18KgkdQMTCLQ1JTXwqER1AxMYxDUlNfCodHUDFMcFBNQlNHUDAwcFBNQlNHUDAx oDySlVBNTE4LAAF6UE1MTgoBR1AwTHJHUDAwR1AwTEdQMTByR1AwMUdQMExHUDExdFBNTE5H UDBMR1AxTKEKcFBNTE5HUDBMoEIKU0NCU4tDUlNfCopTQzAwi0NSU18KjFNDMDGMQ1JTXwqP U0MwTItDUlNfCpJTQzEwi0NSU18KlFNDMTGMQ1JTXwqXU0MxTHBTQ0JTU0MwMHBTQ0JTU0Mw MaA8kpVTQ0xOCwABelNDTE4KAVNDMExyU0MwMFNDMExTQzEwclNDMDFTQzBMU0MxMXRTQ0xO U0MwTFNDMUyhCnBTQ0xOU0MwTKBCCkFDQlOLQ1JTXwqaQUMwMItDUlNfCpxBQzAxjENSU18K n0FDMEyLQ1JTXwqiQUMxMItDUlNfCqRBQzExjENSU18Kp0FDMUxwQUNCU0FDMDBwQUNCU0FD MDGgPJKVQUNMTgsAAXpBQ0xOCgFBQzBMckFDMDBBQzBMQUMxMHJBQzAxQUMwTEFDMTF0QUNM TkFDMExBQzFMoQpwQUNMTkFDMEykQ1JTXxA5XC8DX1NCX1BDSTBTQlJHW4InQVNPQwhfSElE DUFUSzAxMTAACF9VSUQMEAEBARQJX1NUQQCkCg9bgFwvBF9TQl9QQ0kwU0JSR0xQREMCCqAK BluBQAZcLwRfU0JfUENJMFNCUkdMUERDAVMzRjgBUzJGOAEAA1MyRTgBAAFTM0U4AQAETTMw MAEAAk0zMzABAARGREMwAQADUDM3OAFQMjc4AVAzQkMBAAVHMjAwCEcyMDgIFEkMUlJJTwSg PpGTaAoAk2gKAaAMk2oL+ANwaVMzRjigDJNqC/gCcGlTMkY4oAyTagvoA3BpUzNFOKAMk2oL 6AJwaVMyRTigLJNoCgKgDJNqC3gDcGlQMzc4oAyTagt4AnBpUDI3OKAMk2oLvANwaVAzQkOg C5NoCgNwaUZEQzCgH5NoCgWgDJNqCzADcGlNMzMwoAyTagsAA3BpTTMwMKApk2gKCHAAYKAG aXAK/2CgDJNqCwACcGBHMjAwoAyTagsIAnBgRzIwOBQGUkRNQQMQSwhcAFuAXFJBTVcAdFRP UE0MAAABAAAMAAABAFuBEVxSQU1XAVBBUjAgUEFSMSBbgElPQjIBCy4ICgJbgRBJT0IyAVNN SUMIU01JUwgUDElTTUkJcGhTTUlDFBdHTlZTCXBoUEFSMElTTUkKcKRQQVIxFBhTTlZTCnBo UEFSMHBpUEFSMUlTTUkKcRBKB1wAW4FEB1xSQU1XAQBABEFEU1AgRlNCRhBGVkNNCEFJVFUI RklEVghWSURWCE9DUEkITk9TVAhOT1MxCEREUlYIQ1BVUwFDUUZTA0NRRlQEQUlESQhPVklE CENDQVEITUFYRghNQVhWCENVUkYIQ1VSVghQQ0VGCFuAXC8EX1NCX1BDSTBQQ0xLTU5DSwIK RAoEW4EjXC8EX1NCX1BDSTBQQ0xLTU5DSwFNTU5OEAAOTU5FTgEAAVuAXC8EX1NCX1BDSTBQ Q0xLU1BSRAIKVAoEW4EcXC8EX1NCX1BDSTBQQ0xLU1BSRAFTUFJFAQAfW4BRRFJWAUlPR0IK A1uBEVFEUlYBABAAAVFERFIEAANbgERFQjABC4AQCgJbgQtERUIwAURCMTYQCEREUlQSFgoK DQoPCg4KDQoLCgcKCQoICgMKAhCJJAFcLwRfU0JfUENJMFNCUkdBU09DCE1CSUYSGwgKAQ1B OE4zMi1TTEkACgEKAQoCCgAKAAoAFAtBU0lGAKRNQklGCE9DMDESHQYMAAABAQ1DUFUgRlNC AAsgTgtAnArJDAMAAQAIT0MwMhIiBgwBAAYBDUNQVSBNdWx0aXBsaWVyAAoEChkKFgwAAAEA CE9DMDMSIAYMAgAGAQ1GSUQgVklEIE1vZGUACgAKAQoBDAAAAQAIT0MwNBIeBgwDAAEHDVBD SSBFeHByZXNzAAsQJwssMwplCgAIT0MwNRIeBgwEAAUFDU9DIFByb2ZpbGUACgAKBAoFDAEA AQAIT0MwNhIdBgwFAAUIDVR1cmJvIE5PUwAKAAoECgUMAAABAAhPQzA3EhkGDAYABggNTk9T IE1PREUACgAKAwoECgAIT0MwOBIlBgwDAAYEDUNQVSBRLUZhbiBDb250cm9sAAoACgEKAQwD AAEACE9DMDkSHQYMCAACAQ1DUFUgVklEAAtAHwsJPQo9DAAAAQAIT0MwQRIiBgwJAAICDURS QU0gVm9sdGFnZQALKAoLuAsKCQwDAAEACE9DMEISJgYMDAAGCQ1BSSBPdmVyY2xvY2sgVHVu ZXIACgAKBAoFDAMAAQAIT0MwQxImBgwLAAYBDUNvb2wmUXVpZXQgU3VwcG9ydAAKAAoBCgIM AwABAAhPQlVGEjIMT0MwMU9DMDJPQzAzT0MwNE9DMDVPQzA2T0MwN09DMDhPQzA5T0MwQU9D MEJPQzBDCE9DVk8KABQyT0NJRgBweU1BWFYKAQBhdAsJPXdhCn0AiE9DMDkKAwB0Cj1hiE9D MDkKBACkT0JVRghURU0xEiQRCgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKABRJ DlRFTVABcEZTQkaIVEVNMQoAAHBGVkNNiFRFTTEKAQBwQUlUVYhURU0xCgIAcEZJRFaIVEVN MQoDAHBWSURWiFRFTTEKBABwT0NQSYhURU0xCgUAcE5PU1SIVEVNMQoGAHBOT1MxiFRFTTEK BwBwRERSVohURU0xCggAcENQVVOIVEVNMQoJAHBDUUZTiFRFTTEKCgBwQ1FGVIhURU0xCgsA cEFJREmIVEVNMQoMAHBPVklEiFRFTTEKDQBwQ0NBUYhURU0xCg4AcE1BWEaIVEVNMQoPAHBN QVhWiFRFTTEKEACkVEVNMRRBMU9DT1ABcIOIT0MwMQoAAGGgLZNoYXBGU0JGYHdgCmRhcGGI Q1BVTwoBAHRgCshicGKIQ1BVTwoCAKRDUFVPcIOIT0MwMgoAAGGgSQqTaGFwcnpDVVJGCgEA CgQAiENQVU0KAQBwcnpDVVJGCgEACgQAiENQVU0KAgCgIZNGVkNNCgFwDAAAAQCIT0MwMgoF AHAKAIhDUFVNCgMAoRpwDAAAAQCIT0MwMgoFAHAKAIhDUFVNCgMAcHJ6TUFYRgoBAAoEAIhP QzAyCgMAcgoBg4hPQzAyCgMAYHCDiE9DMDIKAgBhdGBhiE9DMDIKBACkQ1BVTXCDiE9DMDMK AABhoEQFk2hhcEZWQ02IQ1BGVgoCAKAhk0NDQVEKAHAMAAABAIhPQzAzCgUAcAoAiENQRlYK AwChGnAMAwABAIhPQzAzCgUAcAoBiENQRlYKAwCkQ1BGVnCDiE9DMDQKAABhoAmTaGGkUENJ VnCDiE9DMDUKAABhoEUFk2hhcE9DUEmIT0NQUgoCAKAikpRBSVRVCgNwDAMAAQCIT0MwNQoF AHAKAYhPQ1BSCgMAoRpwDAMAAQCIT0MwNQoFAHAKAYhPQ1BSCgMApE9DUFJwg4hPQzA2CgAA YaAsk2hhoBWTQUlUVQoEcE5PUzGITk9TUAoCAKEMcAoAiE5PU1AKAgCkTk9TUHCDiE9DMDcK AABhoBaTaGFwTk9TVIhOT1NNCgIApE5PU01wg4hPQzA4CgAAYaAWk2hhcENQVVOIRkFOQgoC AKRGQU5CcIOIT0MwOQoAAGGgSAWTaGFwdENVUlZNQVhWAGJ5YgoBYntPVklECgFjfWJjYnBi iENQVVYKAgBweU1BWFYKAQBidAsJPXdiCn0AiE9DMDkKAwB0Cj1iiE9DMDkKBACkQ1BVVnCD iE9DMEEKAABhoBaTaGFwRERSVohERFZPCgIApEREVk9wg4hPQzBCCgAAYaAWk2hhcEFJVFWI QUlPVAoCAKRBSU9UcIOIT0MwQwoAAGGgFpNoYXBDQ0FRiEFDQVEKAgCkQUNBUQhDUFVPEg4E DAAAAQELIE4KAAoBCENQVU0SDQQMAQAGAQoACgAKAAhDUEZWEhsGDAIABgEKAAoACgANQXV0 bwANTWFudWFsAAhQQ0lWEg4EDAMAAQcLECcKZAoACE9DUFISRQUJDAQABQUKAAoACgANT3Zl cmNsb2NrIDElAA1PdmVyY2xvY2sgMyUADU92ZXJjbG9jayA1JQANT3ZlcmNsb2NrIDglAA1P dmVyY2xvY2sgMTAlAAhOT1NQEkUFCQwFAAUICgAKAAoBDU92ZXJjbG9jayAxJQANT3ZlcmNs b2NrIDMlAA1PdmVyY2xvY2sgNSUADU92ZXJjbG9jayA4JQANT3ZlcmNsb2NrIDEwJQAITk9T TRI1CAwGAAYICgAKAAoADUF1dG8ADVN0YW5kYXJkJQANU2Vuc2l0aXZlAA1IZWF2eSBMb2Fk AAhGQU5CEiAGDAcABAQKAAoACgENRGlzYWJsZWQADUVuYWJsZWQACENQVVYSDQQMCAACAQoA CgAKAQhERFZPEkMFDgwJAAICCgAKAAoBDUF1dG8ADTIuNjBWAA0yLjY1VgANMi43MFYADTIu NzVWAA0yLjgwVgANMi44NVYADTIuOTBWAA0yLjk1VgANMy4wMFYACEFJT1QSQQQJDAwABgkK AAoACgENTWFudWFsAA1BdXRvAA1TdGFuZGFyZAANT3ZlckNsb2NrIFByb2ZpbGUADUFJIE5P UwAIQUNBURIgBgwLAAYBCgAKAAoADUVuYWJsZWQADURpc2FibGVkAAhPQ1NUEksHDBIJAgwA AAEBCgESCQIMAQAGAQoBEgkCDAIABgEKARIJAgwDAAEHCgESCQIMBAAFBQoBEgkCDAUABQgK ARIJAgwGAAYICgESCQIMAwAGBAoBEgkCDAgAAgEKARIJAgwJAAICCgESCQIMDAAGCQoBEgkC DAsABgEKARRLhVBST0MDcIOIT0MwMQoAAGGgRhOTaGFwaWJyYgrIYqBLBpNqCgCgTwSSlEFJ VFUKA6APkpVGU0JGYnRGU0JGYmChCHRiRlNCRmCgGJRgCgpwCgOIg4hPQ1NUCgAACgEApAoD cAoBiIOIT0NTVAoAAAoBAKQKAaEUcAoDiIOIT0NTVAoAAAoBAKQKA6APkpVGU0JGYnRGU0JG YmChCHRiRlNCRmBwYkZTQkagRwaSlEFJVFUKA3AKAFNNSVNwCqtTTUlDcAoAQUlUVXAKAlNN SVNwCqtTTUlDoBiUYAoKcAoDiIOIT0NTVAoAAAoBAKQKA3AKqlNNSVNwCqtTTUlDcAoBiIOI T0NTVAoAAAoBAKQKAXAKAFNNSVNwCqtTTUlDcAoAQUlUVXAKAlNNSVNwCqtTTUlDcAoDiIOI T0NTVAoAAAoBAKQKA3CDiE9DMDIKAABhoE4Pk2hhoBiTagoAcAoDiIOIT0NTVAoBAAoBAKQK A6BCBpNDQ1FBCgBwCgFDQ0FRcAoMU01JU3AKq1NNSUNwCgFGVkNNcAoBU01JU3AKq1NNSUNw eXRpCgQACgEARklEVnAKA1NNSVNwCqtTTUlDcAoDiIOIT0NTVAoBAAoBAKQKA6BNBJNGVkNN CgBwCgFGVkNNcAoBU01JU3AKq1NNSUNweXRpCgQACgEARklEVnAKA1NNSVNwCqtTTUlDcAoD iIOIT0NTVAoBAAoBAKQKA3B5dGkKBAAKAQBGSURWcAoDU01JU3AKq1NNSUNwCgOIg4hPQ1NU CgEACgEApAoDcIOIT0MwMwoAAGGgSwiTaGGgGJNqCgBwCgOIg4hPQ1NUCgIACgEApAoDoEUE k0NDQVEKAHAKAUNDQVFwCgxTTUlTcAqrU01JQ3BpRlZDTXAKAVNNSVNwCqtTTUlDcAoDiIOI T0NTVAoCAAoBAKQKA3BpRlZDTXAKAVNNSVNwCqtTTUlDcAoDiIOIT0NTVAoCAAoBAKQKA3CD iE9DMDQKAABhoBeTaGFwCgOIg4hPQ1NUCgMACgEApAoDcIOIT0MwNQoAAGGgQxWTaGGgNZNq CgCgHJKUQUlUVQoDcAoBiIOIT0NTVAoEAAoBAKQKAXAKA4iDiE9DU1QKBAAKAQCkCgOgSw2S lEFJVFUKA3AKA0FJVFVwCgJTTUlTcAqrU01JQ3BpT0NQSXAKBVNNSVNwCqtTTUlDoBqTaQoA cArKRlNCRnAKAFNNSVNwCqtTTUlDoBqTaQoBcArORlNCRnAKAFNNSVNwCqtTTUlDoBqTaQoC cArSRlNCRnAKAFNNSVNwCqtTTUlDoBqTaQoDcArYRlNCRnAKAFNNSVNwCqtTTUlDoBqTaQoE cArcRlNCRnAKAFNNSVNwCqtTTUlDcAqqU01JU3AKq1NNSUNwCgGIg4hPQ1NUCgQACgEApAoB cAoDQUlUVXAKAlNNSVNwCqtTTUlDcGlPQ1BJcAoFU01JU3AKq1NNSUNwCgOIg4hPQ1NUCgQA CgEApAoDcIOIT0MwNgoAAGGgRhCTaGGgTwSTagoAoBySlEFJVFUKA3AKA4iDiE9DU1QKBQAK AQCkCgOgGJNpCgBwCgOIg4hPQ1NUCgUACgEApAoDcAoBiIOIT0NTVAoFAAoBAKQKAaBGBJKU QUlUVQoDcAoEQUlUVXAKAlNNSVNwCqtTTUlDcGlOT1MxcAoHU01JU3AKq1NNSUNwCgOIg4hP Q1NUCgUACgEApAoDoEIEk2kKAHAKAUFJVFVwCgJTTUlTcAqrU01JQ3BpTk9TMXAKB1NNSVNw CqtTTUlDcAoDiIOIT0NTVAoFAAoBAKQKA3BpTk9TMXAKB1NNSVNwCqtTTUlDcAoBiIOIT0NT VAoFAAoBAKQKAXCDiE9DMDcKAABhoBeTaGFwCgGIg4hPQ1NUCgYACgEApAoBcIOIT0MwOAoA AGGgQwWTaGGgGJNqCgBwCgGIg4hPQ1NUCgcACgEApAoBcGlDUFVTcAoJU01JU3AKq1NNSUNw CrtTTUlTcAqrU01JQ3AKAYiDiE9DU1QKBwAKAQCkCgFwg4hPQzA5CgAAYaBCC5NoYaAYk2oK AHAKA4iDiE9DU1QKCAAKAQCkCgNwQ1VSRkZJRFZwCgNTTUlTcAqrU01JQ3AKAUNDQVFwCgxT TUlTcAqrU01JQ3AKAUZWQ01wCgFTTUlTcAqrU01JQ3ByaXlNQVhWCgEAAE9WSURwCgtTTUlT cAqrU01JQ3B6cml5TUFYVgoBAAAKAQBWSURWcAoEU01JU3AKq1NNSUNwCgOIg4hPQ1NUCggA CgEApAoDcIOIT0MwQQoAAGGgTQaTaGGgGJNqCgBwCgGIg4hPQ1NUCgkACgEApAoBoBqTaURE UlZwCgGIg4hPQ1NUCgkACgEApAoBcGlERFJWcAoIU01JU3AKq1NNSUNwg4hERFJUaQBRRERS cAoBiIOIT0NTVAoJAAoBAKQKAXCDiE9DMEIKAABhoEEJk2hhoDSTagoAoBuSk2lBSVRVcAoD iIOIT0NTVAoKAAoBAKQKA3AKAYiDiE9DU1QKCgAKAQCkCgGgL5KTaUFJVFVwaUFJVFVwCgJT TUlTcAqrU01JQ3AKA4iDiE9DU1QKCgAKAQCkCgNwaUFJVFVwCgJTTUlTcAqrU01JQ3AKAYiD iE9DU1QKCgAKAQCkCgFwg4hPQzBDCgAAYaBLB5NoYaAzk2oKAKAak2lDQ0FRcAoBiIOIT0NT VAoLAAoBAKQKAXAKA4iDiE9DU1QKCwAKAQCkCgOgGpNpQ0NBUXAKAYiDiE9DU1QKCwAKAQCk CgFwaUNDQVFwCglTTUlTcAqrU01JQ3AKA4iDiE9DU1QKCwAKAQCkCgMUSwdHRVRNAXdyaAoB AAvoA2BwC///ZnAKEGGiTwSSlGEKgHAKEGKiQQSSlGIKgHB4d2IMrOkFAAB3YQoEAAAAY3dj CgJjoAqUY2BwdGNgAGOhB3B0YGMAY6ANlWNmcGFkcGJlcGNmdWJ1YXllCghhfWFkZntmC/// ZqRmW4JPBlwvA19TQl9QQ0kwUENJRQhfSElEDEHQDAIIX1VJRAoRCENSU18REQoOhgkAAAAA AOAAAAAQeQAUNV9DUlMAikNSU18KBEJBUzGKQ1JTXwoITEVOMXBcUENJQkJBUzFwXFBDSUxM RU4xpENSU18QQTRcX1BSX1uDSxlDUFUxARBQAAAGCEFQQ1QSLAIRFAoRggwAfwAAAAAAAAAA AAAAeQARFAoRggwAfwAAAAAAAAAAAAAAeQAIQVBTUxJNFAoSIAYMmZmZCQyZmQkADJmZmQAM mZmZAAyZmZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkSIAYMmZmZ CQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZ DJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZ mQAMmZmZAAyZmZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkSIAYM mZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZ mZmZDJmZmZkSIAYMmZmZCQyZmQkADJmZmQAMmZmZAAyZmZmZDJmZmZkUCUFQUEMApAoAW4NL GUNQVTICAAAAAAAIQVBDVBIsAhEUChGCDAB/AAAAAAAAAAAAAAB5ABEUChGCDAB/AAAAAAAA AAAAAAB5AAhBUFNTEk0UChIgBgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZ mZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZ mZkMmZmZmRIgBgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZmZkJDJmZCQAM mZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIg BgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZmZkJDJmZCQAMmZmZAAyZmZkA DJmZmZkMmZmZmRIgBgyZmZkJDJmZCQAMmZmZAAyZmZkADJmZmZkMmZmZmRIgBgyZmZkJDJmZ CQAMmZmZAAyZmZkADJmZmZkMmZmZmRQJQVBQQwCkCgBbgk4JT01TQwhfSElEDEHQDAIIX1VJ RAoACENSU18RHQoahgkAAAAAAAAAAAAAhgkAAAAAAAAAAAAAeQAUQwZfQ1JTAKBGBUFQSUOK Q1JTXwoITUwwMYpDUlNfCgRNQjAxikNSU18KFE1MMDKKQ1JTXwoQTUIwMnAMAADA/k1CMDFw CwAQTUwwMXAMAADg/k1CMDJwCwAQTUwwMqRDUlNfW4JNFFwuX1NCX1JNRU0IX0hJRAxB0AwB CF9VSUQKAQhDUlNfEUIECj6GCQABAAAAAAAACgCGCQAAAAAAAAAAAACGCQAAAAAOAAAAAgCG CQABAAAQAAAAAACGCQAAAAAAAAAAAAB5ABRHDl9DUlMAikNSU18KEEJBUzGKQ1JTXwoUTEVO MYpDUlNfChxCQVMyikNSU18KIExFTjKKQ1JTXwosTEVOM4pDUlNfCjRCQVM0ikNSU18KOExF TjSgBU9TRkyhQQagKE1HMUKgIpRNRzFCDAAADABwDAAADABCQVMxdE1HMUJCQVMxTEVOMaEV cAwAAAwAQkFTMXAMAAACAExFTjGgH3JNRzFCTUcxTGBwYEJBUzJ0DAAAEABCQVMyTEVOMnRN RzJCDAAAEABMRU4zck1HMkJNRzJMQkFTNHQKAEJBUzRMRU40pENSU19bgkQFUFMySwhfSElE DEHQAwMIX0NJRAxB0AMLFBtfU1RBAHkKAQoKYKALe0lPU1RgAKQKD6QKAAhfQ1JTERgKFUcB YABgAAABRwFkAGQAAAEiAgB5ABQULlBTMktfUFJXAKRHUFJXChAKBFuCRAhQUzJNCF9ISUQM QdAPAwhfQ0lEDEHQDxMUG19TVEEAeQoBCgxgoAt7SU9TVGAApAoPpAoACENSUzERCAoFIgAQ eQAIQ1JTMhEYChVHAWAAYAAAAUcBZABkAAABIgAQeQAUIV9DUlMAeQoBCgpgoA17SU9TVGAA pENSUzGhBqRDUlMyFBQuUFMyTV9QUlcApEdQUlcKEAoEW4JHD1VBUjEIX1VJRAoBFA1fSElE AKRVSElECgAUDV9TVEEApERTVEEKABQOX0RJUwBEQ05UCgAKABQPX0NSUwCkRENSUwoACgEU DV9TUlMBRFNSU2gKABQLX1BSUwCkQ01QUghDTVBSEU8ICosxAEcB+AP4AwEIIhAAKgAAMEcB +AP4AwEIIvgcKgAAMEcB+AL4AgEIIvgcKgAAMEcB6APoAwEIIvgcKgAAMEcB6ALoAgEIIvgc KgAAMEcB+AP4AwEIIvgcKg8AMEcB+AL4AgEIIvgcKg8AMEcB6APoAwEIIvgcKg8AMEcB6ALo AgEIIvgcKg8AOHkAFBQuVUFSMV9QUlcApEdQUlcKAwoEW4JGG1NJT1IIX0hJRAxB0AwCFAtf VUlEAKRTUElPCENSU18RLQoqRwEAAAAAAABHAQAAAAAAAEcBAAAAAAAARwEAAAAAAABHAQAA AAAAAHkAFEYWX0NSUwCgTQSQkpNTUElPC/ADlFNQSU8K8ItDUlNfCgJHUDEwi0NSU18KBEdQ MTGMQ1JTXwoHR1BMMXBTUElPR1AxMHBTUElPR1AxMXAKAkdQTDGgQgRJT1BCi0NSU18KCkdQ MjCLQ1JTXwoMR1AyMYxDUlNfCg9HUEwycElPUEJHUDIwcElPUEJHUDIxcElPUExHUEwyoEIE SU9FQotDUlNfChJHUDMwi0NSU18KFEdQMzGMQ1JTXwoXR1BMM3BJT0VCR1AzMHBJT0VCR1Az MXBJT0VMR1BMM6BCBElPR0KLQ1JTXwoaR1A0MItDUlNfChxHUDQxjENSU18KH0dQTDRwSU9H QkdQNDBwSU9HQkdQNDFwSU9HTEdQTDSgQgRJT0RCi0NSU18KIkdQNTCLQ1JTXwokR1A1MYxD UlNfCidHUEw1cElPREJHUDUwcElPREJHUDUxcElPRExHUEw1pENSU18IRENBVBIuFgoBCgIK AwoACv8KCAr/Cv8KCQr/CgUKBAr/Cv8K/wr/CgoK/wr/Cv8K/wr/CElLRVkSGAISCgQKhwoB ClUKVRIKBAqHCgEKVQqqCEtCRkcKAQhNU0ZHCgEIVVIxRgoBFEkERU5GRwFwCgBhoAyTU1BJ TwoucAoAYaAMk1NQSU8KTnAKAWFwCgBgohmSk2AKBHCDiIOISUtFWWEAYABJTkRYdWBwaExE Tl8UNEVOVFIAcAqHSU5EWHAKAUlORFhwClVJTkRYoA+TU1BJTwoucApVSU5EWKEIcAqqSU5E WBQURVhGRwBwCgJJTkRYcAoCREFUQRQdTFBUTQFFTkZHQ0dMRGh7T1BUMAoCYEVYRkekYBQq VUhJRAFFTkZHQ0dMRGh7T1BUMApwYEVYRkegCGCkDEHQBRCkDEHQBQEUGE9SRjABRU5UUn1P UFQwaE9QVDBFWEZHFBhPUkYxAUVOVFJ9T1BUMWhPUFQxRVhGRxQYT1JGMgFFTlRSfU9QVDJo T1BUMkVYRkcUGEFORjABRU5UUntPUFQwaE9QVDBFWEZHFBhBTkYyAUVOVFJ7T1BUMmhPUFQy RVhGRxQYQU5GNAFFTlRSe09QVDRoT1BUNEVYRkcUFFNURjABRU5UUnBoT1BUMEVYRkcUFFNU RjEBRU5UUnBoT1BUMUVYRkcURRBTSU9TAXANU0lPUwBbMXAKAEdQMTCgTgmVaAoFRU5GRwoE cAoBQUNUUkVYRkdBTkY0CvxPUkYxChigC0tCRkdPUkYwCgihB0FORjAK96ALTVNGR09SRjAK EKEYQU5GMArvRU5GRwoGcAoAQUNUUkVYRkdFTkZHCgRBTkYyCvBFTkZHCgd7T1BGOQr+T1BG OXtPUEMwCv5PUEMwe09QQzMK/k9QQzN7T1AyOQrvT1AyOUVYRkehTgRFTkZHCgd7T1BDMAoA T1BDMH1PUEMwCgFPUEMwe09QQzMKAE9QQzN9T1BDMwoBT1BDM31PUEY5CgFPUEY5e09QMjkK 709QMjlFWEZHFEEKU0lPVwFwCgFHUDEwcAoBR1A0MHANU0lPVwBbMUVORkcKBHAKAEFDVFJF WEZHU1RGMAoAU1RGMQr/RU5GRwoHfU9QMjkKEE9QMjl9T1BDMAoBT1BDMH1PUEMzCgFPUEMz RVhGR0VORkcKBX1BQ1RSCgFBQ1RSRVhGR0VORkcKBn1BQ1RSCgFBQ1RSRVhGR0VORkcKBHAK AUFDVFJFWEZHFA9TSU9IAHANU0lPSABbMVuASU9JRAFTUElPCgJbgRBJT0lEAUlORFgIREFU QQhbhkAJSU5EWERBVEEBADhMRE5fCABIEE9QMjkIADBBQ1RSCABIF0lPQUgISU9BTAhJT0gy CElPTDIIAEAGSU5UUggAGERNQ0gIAEglT1BDMAhPUEMxCE9QQzIIT1BDMwgAQBZPUFQwCE9Q VDEIT1BUMghPUFQzCE9QVDQIABhPUEY4CE9QRjkIT1BGQQhPUEZCCBQeLlBTMktfUFNXAaAJ aHAKAUtCRkehCHAKAEtCRkcUHi5QUzJNX1BTVwGgCWhwCgFNU0ZHoQhwCgBNU0ZHFA9DR0xE AaSDiERDQVRoABRCBURTVEEBRU5GR0NHTERocEFDVFJgRVhGR6AIk2AK/6QKAHtgCgFgfUlP U1R5YGgASU9TVKAFYKQKD6EWoA97eQoBaABJT1NUAKQKDaEEpAoAFEAFRENOVAJFTkZHQ0dM RGh5SU9BSAoIYX1JT0FMYWFSUklPaGlhCgigHZCVRE1DSAoEkpN7RE1DSAoDYQoAUkRNQWhp dWFwaUFDVFJFWEZHCENSUzEREwoQRwEAAAAAAQAiAAAqAAB5AItDUlMxCglJUlFNjENSUzEK DERNQU2LQ1JTMQoCSU8xMYtDUlMxCgRJTzEyjENSUzEKB0xFTjEIQ1JTMhEbChhHAQAAAAAB AEcBAAAAAAEAIkAAKgQAeQCLQ1JTMgoRSVJRRYxDUlMyChRETUFFi0NSUzIKAklPMjGLQ1JT MgoESU8yMoxDUlMyCgdMRU4yi0NSUzIKCklPMzGLQ1JTMgoMSU8zMoxDUlMyCg9MRU4zFE0I RENSUwJFTkZHQ0dMRGh5SU9BSAoISU8xMX1JT0FMSU8xMUlPMTFwSU8xMUlPMTJ0gklPMTEA CgFgeQoBYExFTjGgEElOVFJ5CgFJTlRSSVJRTaEIcAoASVJRTaAUkZRETUNICgOTaQoAcAoA RE1BTaERe0RNQ0gKA2F5CgFhRE1BTUVYRkekQ1JTMRRDCERTUlMCi2gKCUlSUU2MaAoMRE1B TYtoCgJJTzExRU5GR0NHTERpe0lPMTEK/0lPQUx6SU8xMQoISU9BSKATSVJRTYJJUlFNYHRg CgFJTlRSoQhwCgBJTlRSoBNETUFNgkRNQU1gdGAKAURNQ0ihCHAKBERNQ0hFWEZHRENOVGkK AVuAR1BJTwFJTzFCCgRbgUcKR1BJTwFHUDEwAUdQMTEBR1AxMgFHUDEzAUdPMTQBR08xNQFH TzE2AUdPMTcBR1AyMAFHUDIxAUdQMjIBR1AyMwFHTzI0AUdPMjUBR08yNgFHTzI3AUdQMzAB R1AzMQFHUDMyAUdQMzMBR08zNAFHTzM1AUdPMzYBR08zNwFHUDQwAUdQNDEBR1A0MgFHUDQz AUdPNDQBR080NQFHTzQ2AUdPNDcBW4IfTlNNQghfQURSDAEACgAUD19QUlcApEdQUlcKCQoE W4JHBFVTQjAIX0FEUgwAAAsACF9TMUQKARQfX1MzRACgE5GTT1NGTAoBk09TRkwKAqQKAqEE pAoDFA9fUFJXAKRHUFJXCg0KBFuCRwRVU0IyCF9BRFIMAQALAAhfUzFECgEUH19TM0QAoBOR k09TRkwKAZNPU0ZMCgKkCgKhBKQKAxQPX1BSVwCkR1BSVwoFCgRbgkkETk1BQwhfQURSDAAA EwAIX1BSVxIGAgoLCgUQLFxfR1BFFCVfTDBCAIZcLwNfU0JfUENJME5NQUMKAoZcLl9TQl9Q V1JCCgJbgk+vSURFMAhfQURSDAAADwAIUFRTMAoACFNJRDAKAAhTSUQxCgAIU0lEMgoACFNJ RDMKAAhTSUQ0CgAIU0lENQoAW4BJUlFNAQohCgFbgQtJUlFNAUlSME0BCFJFR0YKARQSX1JF RwKgC5NoCgJwaVJFR0ZbgEEwOTACClAKGFuBJkEwOTADSUQyMBAAMElEVFMQSURUUBBJRDIy IFVNU1MQVU1TUBAIVElNMBJLBgcSDQUKPAp4CrQK8AuEAxIMBQoRCiAKIgpHCqgSEAcKeApa CjwKLQoeChQKDxIMBQoFCgQKAwoCCgASCgQKAgoBCgAKABISCAoCCgEKAAoACgMKBAoFCgYS EAcKAgoBCgAKBAoFCgYKBwhUTUQwEQMKFIpUTUQwCgBQSU8wilRNRDAKBERNQTCKVE1EMAoI UElPMYpUTUQwCgxETUExilRNRDAKEENITkZbgENGRzICClgKDFuBRQdDRkcyA1NTUFQIU01Q VAhQU1BUCFBNUFQIU1NBUwJTTUFTAlBTQVMCUE1BUwIACFNERFIEU0REQQRQRERSBFBEREEE U1NVVAMAA1NTVUUCU01VVAMAA1NNVUUCUFNVVAMAA1BTVUUCUE1VVAMAA1BNVUUCCEdNUFQK AAhHTVVFCgAIR01VVAoACEdTUFQKAAhHU1VFCgAIR1NVVAoAW4JHFENITjAIX0FEUgoAFDBf R1RNAHANR1RNX0NITjAAWzGkR1RNX1BNUFRQTVVFUE1VVFBTUFRQU1VFUFNVVBRGCl9TVE0D cA1TVE1fQ0hOMABbMXBoWzFwaFRNRDBwUE1QVEdNUFRwUE1VRUdNVUVwUE1VVEdNVVRwUFNQ VEdTUFRwUFNVRUdTVUVwUFNVVEdTVVRTVE1fcEdNUFRQTVBUcEdNVUVQTVVFcEdNVVRQTVVU cEdTUFRQU1BUcEdTVUVQU1VFcEdTVVRQU1VUcEdURl8KAGlBVEEwcEdURl8KAWpBVEExW4Iv RFJWMAhfQURSCgAUIl9HVEYAcA1fR1RGX0NITjBfRFJWMABbMaRSQVRBQVRBMFuCL0RSVjEI X0FEUgoBFCJfR1RGAHANX0dURl9DSE4wX0RSVjEAWzGkUkFUQUFUQTFbgkoTQ0hOMQhfQURS CgEUMF9HVE0AcA1HVE1fQ0hOMQBbMaRHVE1fU01QVFNNVUVTTVVUU1NQVFNTVUVTU1VUFEkJ X1NUTQNwaFsxcGhUTUQwcFNNUFRHTVBUcFNNVUVHTVVFcFNNVVRHTVVUcFNTUFRHU1BUcFNT VUVHU1VFcFNTVVRHU1VUU1RNX3BHTVBUU01QVHBHTVVFU01VRXBHTVVUU01VVHBHU1BUU1NQ VHBHU1VFU1NVRXBHU1VUU1NVVHBHVEZfCgBpQVRBMnBHVEZfCgFqQVRBM1uCL0RSVjAIX0FE UgoAFCJfR1RGAHANX0dURl9DSE4xX0RSVjAAWzGkUkFUQUFUQTJbgi9EUlYxCF9BRFIKARQi X0dURgBwDV9HVEZfQ0hOMV9EUlYxAFsxpFJBVEFBVEEzFBVEUk1QAHpDUEIwCgRhe2EKD2Ck YBRPEEdUTV8OcP9QSU8wcP9QSU8xcP9ETUEwcP9ETUExcAoQQ0hORqAFUkVHRqEGpFRNRDCg FZNQVFMwCgGgDE9TRkxwCgFJUjBNcImDiFRJTTAKAQABaAAKAAoAZnCDiIOIVElNMAoAAGYA Z3BnRE1BMHBnUElPMHCJg4hUSU0wCgEAAWsACgAKAGZwg4iDiFRJTTAKAABmAGdwZ0RNQTFw Z1BJTzGgLmlwg4iDiFRJTTAKBQBqAGVwg4iDiFRJTTAKAgBlAERNQTB9Q0hORgoBQ0hORqAu bHCDiIOIVElNMAoFAG0AZXCDiIOIVElNMAoCAGUARE1BMX1DSE5GCgRDSE5GcFRNRDBbMaRU TUQwFEAfU1RNXwigBVJFR0ahBKQKAKA7UFRTMHBTSUQwSUQyMHBTSUQxSURUU3BTSUQySURU UHBTSUQzSUQyMnBTSUQ0VU1TU3BTSUQ1VU1TUKE3cElEMjBTSUQwcElEVFNTSUQxcElEVFBT SUQycElEMjJTSUQzcFVNU1NTSUQ0cFVNU1BTSUQ1cAoAUFRTMHAKAEdNVUVwCgBHTVVUcAoA R1NVRXAKAEdTVVSgRwR7Q0hORgoBAHCJg4hUSU0wCgIAAkRNQTAACgAKAGCgCZRgCgZwCgZg cIOIg4hUSU0wCgYAYABHTVVUfUdNVUUKA0dNVUWhLKAqfZNQSU8w/5NQSU8wCgAAoBl7lURN QTD/lERNQTAKAABwRE1BMFBJTzCgRwR7Q0hORgoEAHCJg4hUSU0wCgIAAkRNQTEACgAKAGCg CZRgCgZwCgZgcIOIg4hUSU0wCgYAYABHU1VUfUdTVUUKA0dTVUWhLKAqfZNQSU8x/5NQSU8x CgAAoBl7lURNQTH/lERNQTEKAABwRE1BMVBJTzF7iYOIVElNMAoAAARQSU8wAAoACgAKB2Bw g4iDiFRJTTAKAQBgAGFwYUdNUFR7iYOIVElNMAoAAARQSU8xAAoACgAKB2Bwg4iDiFRJTTAK AQBgAGFwYUdTUFSkCgAIQVQwMREKCgcDAAAAAADvCEFUMDIRCgoHAAAAAAAAkAhBVDAzEQoK BwAAAAAAAMYIQVQwNBEKCgcAAAAAAACRCEFUQTARAwodCEFUQTERAwodCEFUQTIRAwodCEFU QTMRAwodCEFUQUIRAwodjEFUQUIKAENNREMUTAVHVEZCC3dDTURDCjhgcmAKCGFbE0FUQUJh CjhDTURYd0NNREMKB2CMQVRBQnJgCgIAQTAwMYxBVEFCcmAKBgBBMDA1cGhDTURYcGlBMDAx cGpBMDA1dUNNREMUTSVHVEZfCnANR1RGX0VudHJ5AFsxcGlbMXAKAENNREMISUQ0OQsADAhJ RDU5CgAISUQ1MwoECElENjMLAA8ISUQ4OAsADwhJUkRZCgEIUElPVAoACERNQVQKAKBNBZOH aQsAAotpCmJJVzQ5cElXNDlJRDQ5i2kKaklXNTNwSVc1M0lENTOLaQp+SVc2M3BJVzYzSUQ2 M4tpCnZJVzU5cElXNTlJRDU5i2kKsElXODhwSVc4OElEODhwCqBnoEgFaHAKsGd7Q0hORgoI SVJEWaASe0NITkYKEABwUElPMVBJT1ShCnBQSU8wUElPVKAne0NITkYKBACgEntDSE5GChAA cERNQTFETUFUoQpwRE1BMERNQVShKHtDSE5GCgJJUkRZcFBJTzBQSU9UoBJ7Q0hORgoBAHBE TUEwRE1BVKBHBJCQe0lENTMKBAB7SUQ4OAsA/wBETUFUcImDiFRJTTAKAgACRE1BVAAKAAoA YaAJlGEKBnAKBmFHVEZCQVQwMX0KQGEAZ6FGBKBDBJB7SUQ2MwsA/wBQSU9Ue4mDiFRJTTAK AAAEUElPVAAKAAoACgNgfQogg4iDiFRJTTAKBABgAGFHVEZCQVQwMWFnoDhJUkRZe4mDiFRJ TTAKAAAEUElPVAAKAAoACgdgfQoIg4iDiFRJTTAKAwBgAGFHVEZCQVQwMWFnoRegFXtJRDQ5 CwAEAEdURkJBVDAxCgFnoCSQe0lENTkLAAEAe0lENTkK/wBHVEZCQVQwM3tJRDU5Cv8AZ3AN QVRBQl9HVEYAWzFwQVRBQlsxpEFUQUIULFJBVEEBjGgKAENNRE53Q01ETgo4YFsTaAoIYFJF VEJwUkVUQlsxpFJFVEJbgksQQVRBMAhfQURSDAAAEABbgkcGUFJJMAhfQURSCgAIU1BUTREX ChR4AAAADwAAAP//////////EwAAABQLX0dUTQCkU1BUTRQMX1NUTQNwaFNQVE1bgiJNQVNU CF9BRFIKABQVX0dURgBwEQoKBwNGAAAAoO9gpGBbgkcGU0VDMAhfQURSCgEIU1NUTREXChR4 AAAADwAAAP//////////EwAAABQLX0dUTQCkU1NUTRQMX1NUTQNwaFNTVE1bgiJNQVNUCF9B RFIKABQVX0dURgBwEQoKBwNGAAAAoO9gpGAUKERSTVAAcAoMYKAPk19BRFIMAAAQAHAKCGB6 Q1BCMGBhe2EKD2CkYFuCSxBBVEExCF9BRFIMAAARAFuCRwZQUkkwCF9BRFIKAAhTUFRNERcK FHgAAAAPAAAA//////////8TAAAAFAtfR1RNAKRTUFRNFAxfU1RNA3BoU1BUTVuCIk1BU1QI X0FEUgoAFBVfR1RGAHARCgoHA0YAAACg72CkYFuCRwZTRUMwCF9BRFIKAQhTU1RNERcKFHgA AAAPAAAA//////////8TAAAAFAtfR1RNAKRTU1RNFAxfU1RNA3BoU1NUTVuCIk1BU1QIX0FE UgoAFBVfR1RGAHARCgoHA0YAAACg72CkYBQoRFJNUABwCgxgoA+TX0FEUgwAABAAcAoIYHpD UEIwYGF7YQoPYKRgW4I2UEIyUAhfQURSDAAAEgAUD19QUlcApEdQUlcKAAoEFBZfUFJUAKAK UElDTaRBUjAxpFBSMDFbgh9NQzk3CF9BRFIMAQANABQPX1BSVwCkR1BSVwoHCgRbgjZQQ0Uw CF9BRFIMAAACABQPX1BSVwCkR1BSVwoRCgQUFl9QUlQAoApQSUNNpEFSMDKkUFIwMluCNlBD RTEIX0FEUgwAAAMAFA9fUFJXAKRHUFJXChEKBBQWX1BSVACgClBJQ02kQVIwM6RQUjAzW4I2 UENFMghfQURSDAAABAAUD19QUlcApEdQUlcKEQoEFBZfUFJUAKAKUElDTaRBUjA0pFBSMDRb gjZQQ0UzCF9BRFIMAAAXABQPX1BSVwCkR1BSVwoRCgQUFl9QUlQAoApQSUNNpEFSMDWkUFIw NVuCNlBDRTQIX0FEUgwAABYAFA9fUFJXAKRHUFJXChEKBBQWX1BSVACgClBJQ02kQVIwNqRQ UjA2W4I2UENFNQhfQURSDAAAFQAUD19QUlcApEdQUlcKEQoEFBZfUFJUAKAKUElDTaRBUjA3 pFBSMDcQRBlcX0dQRRQmX0wxMABcLwRfU0JfUENJMFNCUkdTSU9IhlwuX1NCX1BXUkIKAhQm X0wwMwBcLwRfU0JfUENJMFNCUkdTSU9IhlwuX1NCX1BXUkIKAhQlX0wwOQCGXC8DX1NCX1BD STBOU01CCgKGXC5fU0JfUFdSQgoCFCVfTDBEAIZcLwNfU0JfUENJMFVTQjAKAoZcLl9TQl9Q V1JCCgIUJV9MMDUAhlwvA19TQl9QQ0kwVVNCMgoChlwuX1NCX1BXUkIKAhQlX0wwMACGXC8D X1NCX1BDSTBQQjJQCgKGXC5fU0JfUFdSQgoCFCVfTDA3AIZcLwNfU0JfUENJME1DOTcKAoZc Ll9TQl9QV1JCCgIUQAhfTDExAIZcLwNfU0JfUENJMFBDRTAKAoZcLwNfU0JfUENJMFBDRTEK AoZcLwNfU0JfUENJMFBDRTIKAoZcLwNfU0JfUENJMFBDRTMKAoZcLwNfU0JfUENJMFBDRTQK AoZcLwNfU0JfUENJMFBDRTUKAoZcLl9TQl9QV1JCCgJbgi1QV1JCCF9ISUQMQdAMDAhfVUlE CqoIX1NUQQoLFA9fUFJXAKRHUFJXCgMKBFuAXC8EX1NCX1BDSTBTQlJHUElNQwIKfAoMW4FA B1wvBF9TQl9QQ0kwU0JSR1BJTUMBUElSQQRQSVJCBFBJUkMEUElSRAQABFBJUkYEUElSRwQA DFBJUk0EUElVMgQACFNJSUQEUElJRARQSVUwBAAEUElMTgQABFBBVUkEUElNTwRQUjBFBFBS MEYEEEh6XF9TQl8IQlVGQREJCgYjAIAYeQCLQlVGQQoBSUNSUxQRTFNUQQGgBWikCguhBKQK CRQSTFBSUwKgB1BJQ02kaaEDpGgUSwdMQ1JTAaBEBlBJQ00IQlVGQhEOCguJBgANAREAAAB5 AIxCVUZCCgVBSVJRcGhBSVJRoAyTaAoBcAoRQUlSUaAMk2gKAnAKEkFJUlGgDJNoCghwChBB SVJRoAyTaAoNcAoTQUlSUaRCVUZCoQ55CgFoSUNSU6RCVUZBFEsHTENSTwGgRAZQSUNNCEJV RkIRDgoLiQYADQEUAAAAeQCMQlVGQgoFQUlSUXBoQUlSUaAMk2gKAXAKF0FJUlGgDJNoCgJw ChZBSVJRoAyTaAoIcAoUQUlSUaAMk2gKDXAKFUFJUlGkQlVGQqEOeQoBaElDUlOkQlVGQRRI BUxTUlMBoD1QSUNNjGgKBVNBSVJwU0FJUmCgCZNgChBwCghgoAmTYAoRcAoBYKAJk2AKEnAK AmCgCZNgChNwCg1gpGChEotoCgFJU1JTgklTUlNgpHZgFEgFTFNSTwGgPVBJQ02MaAoFU0FJ UnBTQUlSYKAJk2AKFHAKCGCgCZNgChVwCg1goAmTYAoWcAoCYKAJk2AKF3AKAWCkYKESi2gK AUlTUlOCSVNSU2CkdmBbgkoGTE5LQQhfSElEDEHQDA8IX1VJRAoBFA9fU1RBAKRMU1RBUElS QRQTX1BSUwCkTFBSU1BSU0FSU0lSFA1fRElTAHAKAFBJUkEUD19DUlMApExDUlNQSVJBFBBf U1JTAXBMU1JTaFBJUkFbgkoGTE5LQghfSElEDEHQDA8IX1VJRAoCFA9fU1RBAKRMU1RBUElS QhQTX1BSUwCkTFBSU1BSU0JSU0lSFA1fRElTAHAKAFBJUkIUD19DUlMApExDUlNQSVJCFBBf U1JTAXBMU1JTaFBJUkJbgkoGTE5LQwhfSElEDEHQDA8IX1VJRAoDFA9fU1RBAKRMU1RBUElS QxQTX1BSUwCkTFBSU1BSU0NSU0lSFA1fRElTAHAKAFBJUkMUD19DUlMApExDUlNQSVJDFBBf U1JTAXBMU1JTaFBJUkNbgkoGTE5LRAhfSElEDEHQDA8IX1VJRAoEFA9fU1RBAKRMU1RBUElS RBQTX1BSUwCkTFBSU1BSU0RSU0lSFA1fRElTAHAKAFBJUkQUD19DUlMApExDUlNQSVJEFBBf U1JTAXBMU1JTaFBJUkRbgkoGTFVCMAhfSElEDEHQDA8IX1VJRAoFFA9fU1RBAKRMU1RBUElV MBQTX1BSUwCkTFBSU1JTQjBSU0lJFA1fRElTAHAKAFBJVTAUD19DUlMApExDUk9QSVUwFBBf U1JTAXBMU1JPaFBJVTBbgkoGTFVCMghfSElEDEHQDA8IX1VJRAoHFA9fU1RBAKRMU1RBUElV MhQTX1BSUwCkTFBSU1JTQjJSU0lJFA1fRElTAHAKAFBJVTIUD19DUlMApExDUk9QSVUyFBBf U1JTAXBMU1JPaFBJVTJbgkoGTE1BQwhfSElEDEHQDA8IX1VJRAoIFA9fU1RBAKRMU1RBUElM ThQTX1BSUwCkTFBSU1JTQUNSU0lJFA1fRElTAHAKAFBJTE4UD19DUlMApExDUk9QSUxOFBBf U1JTAXBMU1JPaFBJTE5bgkoGTEFDSQhfSElEDEHQDA8IX1VJRAoJFA9fU1RBAKRMU1RBUEFV SRQTX1BSUwCkTFBSU1JTQ0lSU0lJFA1fRElTAHAKAFBBVUkUD19DUlMApExDUk9QQVVJFBBf U1JTAXBMU1JPaFBBVUlbgkoGTE1DOQhfSElEDEHQDA8IX1VJRAoKFA9fU1RBAKRMU1RBUElN TxQTX1BSUwCkTFBSU1JTQzlSU0lJFA1fRElTAHAKAFBJTU8UD19DUlMApExDUk9QSU1PFBBf U1JTAXBMU1JPaFBJTU9bgkoGTFNNQghfSElEDEHQDA8IX1VJRAoLFA9fU1RBAKRMU1RBUElS TRQTX1BSUwCkTFBSU1JTTUJSU0lJFA1fRElTAHAKAFBJUk0UD19DUlMApExDUk9QSVJNFBBf U1JTAXBMU1JPaFBJUk1bgkoHTFNBMAhfSElEDEHQDA8IX1VJRAoMFA9fU1RBAKRMU1RBUElJ RBQTX1BSUwCkTFBSU1JTQTBSU0lJFBRfRElTAHAKAFBJSURwCgBQSVJHFA9fQ1JTAKRMQ1JP UElJRBQZX1NSUwFwTFNST2hgcGBQSUlEcGBQSVJHW4JKB0xTQTEIX0hJRAxB0AwPCF9VSUQK DRQPX1NUQQCkTFNUQVNJSUQUE19QUlMApExQUlNSU0ExUlNJSRQUX0RJUwBwCgBTSUlEcAoA UElSRhQPX0NSUwCkTENST1NJSUQUGV9TUlMBcExTUk9oYHBgU0lJRHBgUElSRluCRghMQVRB CF9ISUQMQdAMDwhfVUlECg4UD19TVEEApExTVEFQUjBFFBNfUFJTAKRMUFJTUlNUQVJTSUkU FF9ESVMAcAoAUFIwRXAKAFBSMEYUGl9DUlMAoAhPU0ZMpAoAoQqkTENST1BSMEUUGl9TUlMB cExTUk9oUFIwRXBMU1JPaFBSMEYQSydcX1NCXwhYQ1BECgAIWE5QVAoBCFhDQVAKAghYRENQ CgQIWERDVAoICFhEU1QKCghYTENQCgwIWExDVAoQCFhMU1QKEghYU0NQChQIWFNDVAoYCFhT U1QKGghYUkNUChxbAU1VVEUAFDhSQlBFAVsjTVVURegDcmhcUENJQmBbgFBDRkcAYAoBW4EL UENGRwFYQ0ZHCFsnTVVURaRYQ0ZHFEEEUldQRQFbI01VVEXoA3toDP7///9ocmhcUENJQmBb gFBDRkcAYAoCW4ELUENGRwJYQ0ZHEFsnTVVURaRYQ0ZHFEEEUkRQRQFbI01VVEXoA3toDPz/ //9ocmhcUENJQmBbgFBDRkcAYAoEW4ELUENGRwNYQ0ZHIFsnTVVURaRYQ0ZHFDlXQlBFAlsj TVVURf8PcmhcUENJQmBbgFBDRkcAYAoBW4ELUENGRwFYQ0ZHCHBpWENGR1snTVVURRRCBFdX UEUCWyNNVVRF6AN7aAz+////aHJoXFBDSUJgW4BQQ0ZHAGAKAluBC1BDRkcCWENGRxBwaVhD RkdbJ01VVEUUQgRXRFBFAlsjTVVURegDe2gM/P///2hyaFxQQ0lCYFuAUENGRwBgCgRbgQtQ Q0ZHA1hDRkcgcGlYQ0ZHWydNVVRFFEoEUldEUANbI01VVEXoA3toDPz///9ocmhcUENJQmBb gFBDRkcAYAoEW4ELUENGRwNYQ0ZHIHtYQ0ZHamF9YWlYQ0ZHWydNVVRFFEkEUlBNRQFyaAqE YHBcLl9TQl9SRFBFYGGgC5NhDP////+kCgChI6AekGEMAAABAFwuX1NCX1dEUEVge2EMAAAB AACkCgGkCgAQRUlcLwRfU0JfUENJMFNCUkdTSU9SW4JOR0lUODcIX0hJRAxB0AwCCF9VSUQK ABQPSFdWMACkd1ZJVjAKEAAUD0hXVjEApHdWSVYxChAAFA9IV1YyAKR3VklWMgoQABQPSFdW MwCkd1ZJVjMKEAAUD0hXVjQApHdWSVY0ChAAFA9IV1Y1AKR3VklWNQoQABQPSFdWNgCkd1ZJ VjYKEAAUD0hXVjcApHdWSVY3ChAAFB5IV1QxAHBUUEkxYKALlGAKgHQLAAFgYKR3YAoKABQe SFdUMgBwVFBJMmCgC5RgCoB0CwABYGCkd2AKCgAUHkhXVDMAcFRQSTNgoAuUYAqAdAsAAWBg pHdgCgoAFEMPSFdGMQB7RVRERQoBYKJDDgoBeQoBRlREMWGgFJNgCgFyd0VGTjELAAEARlRD MWKhB3BGVEMxYqBPBZNgCgGgIpKVYgsA8KAVkpNhCoByRlREMQoBRlREMVsiCmShBKQKAKE1 oCOSlGILABCgFZKTYQoBdEZURDEKAUZURDFbIgpkoQWkC///oQ94DHCZFAB3YWIAAGGkYaFJ BaAhkpViCvCgFZKTYQqAckZURDEKAUZURDFbIgpkoQSkCgChNKAikpRiCjKgFZKTYQoBdEZU RDEKAUZURDFbIgpkoQWkC///oQ94DHCZFAB3YWIAAGGkYRRDD0hXRjIAe0VUREUKAmCiQw4K AXkKAUZURDJhoBSTYAoCcndFRk4yCwABAEZUQzJioQdwRlRDMmKgTwWTYAoCoCKSlWILAPCg FZKTYQqAckZURDIKAUZURDJbIgpkoQSkCgChNaAjkpRiCwAQoBWSk2EKAXRGVEQyCgFGVEQy WyIKZKEFpAv//6EPeAxwmRQAd2FiAABhpGGhSQWgIZKVYgrwoBWSk2EKgHJGVEQyCgFGVEQy WyIKZKEEpAoAoTSgIpKUYgoyoBWSk2EKAXRGVEQyCgFGVEQyWyIKZKEFpAv//6EPeAxwmRQA d2FiAABhpGEUTg9IV0YzAHtFVERFCgRgok4OCgGgDJNGVEQzCgFwCghhoQVwCgJhoBSTYAoE cndFRk4zCwABAEZUQzNioQdwRlRDM2KgTwWTYAoEoCKSlWILAPCgFZKTYQoIckZURDMKAUZU RDNbIgpkoQSkCgChNaAjkpRiCwAQoBWSk2EKAHRGVEQzCgFGVEQzWyIKZKEFpAv//6EPeAxw mRQAd2FiAABhpGGhSQWgIZKVYgrwoBWSk2EKCHJGVEQzCgFGVEQzWyIKZKEEpAoAoTSgIpKU YgoQoBWSk2EKAHRGVEQzCgFGVEQzWyIKZKEFpAv//6EPeAxwmRQAd2FiAABhpGFbgEVDUkUB SU9FQgogW4ESRUNSRQEAKEhJRFgISERBVAhbhkAISElEWEhEQVQBAEgFRlREMQNGVEQyA0ZU RDMBAAFFVERFCEZUQzEIRlRDMghGVEMzCABABEVGTjEIRUZOMghFRk4zCAAoVklWMAhWSVYx CFZJVjIIVklWMwhWSVY0CFZJVjUIVklWNghWSVY3CAAIVFBJMQhUUEkyCFRQSTMIECNcAFuB HlxSQU1XAQBAEENQVVEIQ1BWTBBDUFZIEENQVkMBEE1WXC8EX1NCX1BDSTBTQlJHQVNPQwhD T1JWEh4FDAAAAgYNVmNvcmUgVm9sdGFnZQALIAMLCAcKAQhWM1ZWEh4FDAEAAgYNICszLjMg Vm9sdGFnZQALmgsLLg4KAQhWNVZWEhwFDAIAAgYNICs1IFZvbHRhZ2UAC5QRC3wVCgEIVlYx MhIdBQwDAAIGDSArMTIgVm9sdGFnZQAL2CcL6DUKAQhWUEFSEiYEEggDCgAKAQoAEggDCgAK AQoAEggDCiIKMgoAEggDCg8KBQoACFZCVUYSFAUKBENPUlZWM1ZWVjVWVlZWMTIUQwZWR0VU AaAWk2gKAKReXi8DU0lPUklUODdIV1YwoBaTaAoBpF5eLwNTSU9SSVQ4N0hXVjKgFpNoCgKk Xl4vA1NJT1JJVDg3SFdWM6AWk2gKA6ReXi8DU0lPUklUODdIV1Y0CENQVVQSIwUMAAADBg1D UFUgVGVtcGVyYXR1cmUAC1gCC7YDDAEAAQAITUJUUBIiBQwBAAMGDU1CIFRlbXBlcmF0dXJl AAvCAQu2AwwBAAEACFRCVUYSDAMKAkNQVVRNQlRQFDRUR0VUAaAWk2gKAKReXi8DU0lPUklU ODdIV1QxoBaTaAoBpF5eLwNTSU9SSVQ4N0hXVDIIQ1BVRhIhBQwAAAQGDUNQVSBGQU4gU3Bl ZWQACyADCyAcDAEAAQAIQ0hBMRIlBQwBAAQGDUNIQVNTSVMgRkFOIFNwZWVkAAsgAwsgHAwB AAEACFBXUkYSIwUMAgAEBg1QT1dFUiBGQU4gU3BlZWQACyADCyAcDAEAAQAIRkJVRhIQBAoD Q1BVRkNIQTFQV1JGFEwERkdFVAGgFpNoCgCkXl4vA1NJT1JJVDg3SFdGMaAWk2gKAaReXi8D U0lPUklUODdIV0YyoBaTaAoCpF5eLwNTSU9SSVQ4N0hXRjMIUUJVRhIEAQoAFAtWU0lGAKRW QlVGFEMFUlZMVAF7aAv//2BwVkdFVGBhcIOIg4hWUEFSYAAKAABicIOIg4hWUEFSYAAKAQBj cIOIg4hWUEFSYAAKAgBkd2FyYmMAZXhlYwBlcmVkZaRlFEcHU1ZMVAF7g4hoCgAAC///YHCD iFZCVUYKAABhoAiSlWBhpAoAdWBwg4hoCgEAiIOIVkJVRmAACgEAcIOIaAoCAIiDiFZCVUZg AAoCAHCDiGgKAwCIg4hWQlVGYAAKAwBwg4hoCgQAiIOIVkJVRmAACgQApAoBFAtUU0lGAKRU QlVGFBVSVE1QAXtoC///YHBUR0VUYGGkYRRJB1NUTVABcHuDiGgKAAAL//8AYHCDiFRCVUYK AABhoAiSlWBhpAoAdWBwg4hoCgEAiIOIVEJVRmAACgEAcIOIaAoCAIiDiFRCVUZgAAoCAHCD iGgKAwCIg4hUQlVGYAAKAwBwg4hoCgQAiIOIVEJVRmAACgQApAoBFAtGU0lGAKRGQlVGFBVS RkFOAXtoC///YHBGR0VUYGGkYRRHB1NGQU4Be4OIaAoAAAv//2Bwg4hGQlVGCgAAYaAIkpVg YaQKAHVgcIOIaAoBAIiDiEZCVUZgAAoBAHCDiGgKAgCIg4hGQlVGYAAKAgBwg4hoCgMAiIOI RkJVRmAACgMAcIOIaAoEAIiDiEZCVUZgAAoEAKQKARRLBFFGSUYAoCKTQ1BVUQoAe4OIUUNG TgoFAAz///3/YHBgiFFDRk4KBQChG32DiFFDRk4KBQAMAAACAGBwYIhRQ0ZOCgUApFFCVUYU KkdDUVYBoAqTaAoApENQVkygCpNoCgGkQ1BWSKAKk2gKAqRDUFZDpAoAFBtRRlNUAaARk2iD iFFDRk4KAACkQ1FTVKQKABBIE1xfU0JfEEATUENJMAhDUlNfEUwICoiIDQACDAAAAAAA/wAA AAABRwH4DPgMAQiIDQABDAMAAAAA9wwAAPgMiA0AAQwDAAAADf//AAAA84cXAAAMAwAAAAAA AAoA//8LAAAAAAAAAAIAhxcAAAwDAAAAAAAADAD//w0AAAAAAAAAAgCHFwAADAMAAAAAAAAA AAAAAAAAAAAAAAAAAHkAikNSU18KXE1JTjWKQ1JTXwpgTUFYNYpDUlNfCmhMRU41ikNSU18K dk1JTjaKQ1JTXwp6TUFYNopDUlNfCoJMRU42FEUFX0NSUwBwTUcxTGCgH2BwTUcxQk1JTjVw TUcxTExFTjVyTUlONXZgTUFYNXBNRzJCTUlONnBNRzJMTEVONnBNRzJMYHJNSU42dmBNQVg2 pENSU18IV09UQgoACFdTU0IKAAhXQVhCCgAUSwZfUFRTAXBoREJHOFBUU19ocAoAiFdBS1AK AABwCgCIV0FLUAoBAKASkJNoCgSTT1NGTAoCWyILuAtwQVNTQldTU0JwQU9UQldPVEJwQUFY QldBWEJwaEFTU0JwT1NGTEFPVEJwAEFBWEIUTAVfV0FLAXloCgREQkc4V0FLX2igIEFTU0Jw V1NTQkFTU0JwV09UQkFPVEJwV0FYQkFBWEKgFYOIV0FLUAoAAHAKAIhXQUtQCgEAoQtwaIhX QUtQCgEApFdBS1AIXF9TMF8SCgQKAAoACgAKAKAWU1MxXwhcX1MxXxIKBAoBCgAKAAoAoBZT UzNfCFxfUzNfEgoECgUKAAoACgCgFlNTNF8IXF9TNF8SCgQKBgoACgAKAAhcX1M1XxIKBAoH CgAKAAoAFEYEUFRTXwGgPmhcLwRfU0JfUENJMFNCUkdTSU9TaFwvBF9TQl9QQ0kwTkIyTk5Q VFNoXC8EX1NCX1BDSTBTQlJHU1BUU2gUQwRXQUtfAVwvBF9TQl9QQ0kwU0JSR1NJT1doXC8E X1NCX1BDSTBOQjJOTldBS2hcLwRfU0JfUENJMFNCUkdTV0FLaA== --------------020604070307000805050105 Content-Type: text/plain; name="acpi_a8n32sli.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="acpi_a8n32sli.txt" /* * Intel ACPI Component Architecture * AML Disassembler version 20041119 * * Disassembly of /tmp/acpidump.tpdPdM, Mon Oct 23 18:49:52 2006 */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "A0371", "A0371001", 1) { Name (DP80, 0x1080) Name (DP90, 0x90) Name (SPIO, 0x2E) Name (IOPB, 0x0C00) Name (IOPL, 0x10) Name (IOEB, 0x0D00) Name (IOEL, 0x10) Name (IOGB, 0x0A20) Name (IOGL, 0x10) Name (IODB, 0x0A30) Name (IODL, 0x10) Name (IO1B, 0x0A20) Name (IO1L, 0x08) Name (IO3B, 0x0D00) Name (IO3L, 0x80) Name (PMBS, 0x0500) Name (PMLN, 0x0100) Name (SCBS, 0x0800) Name (SCLN, 0x0100) Name (ACBS, 0x0900) Name (ACLN, 0x0100) Name (SCIO, 0x0800) Name (SCTL, 0x0590) Name (EXTS, 0x00) Name (APIC, 0x01) Name (ABWV, 0xAB) Name (PCIB, 0xE0000000) Name (PCIL, 0x10000000) Name (SMBS, 0x0700) OperationRegion (BIOS, SystemMemory, 0x7FFBE064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TOPM, 32, ROMS, 32, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32, Offset (0x1C), CPB0, 32, CPB1, 32, CPB2, 32, CPB3, 32, ASSB, 8, AOTB, 8, AAXB, 32 } Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, 0x00) Method (_PIC, 1, NotSerialized) { If (Arg0) { Store (0xAA, DBG8) } Else { Store (0xAC, DBG8) } Store (Arg0, PICM) } Name (OSVR, Ones) Method (OSFL, 0, NotSerialized) { If (LNot (LEqual (OSVR, Ones))) { Return (OSVR) } If (LEqual (PICM, 0x00)) { Store (0xAC, DBG8) } Store (0x01, OSVR) If (CondRefOf (\_OSI, Local1)) { If (\_OSI ("Windows 2001")) { Store (0x00, OSVR) } } Else { If (MCTH (\_OS, "Microsoft Windows NT")) { Store (0x04, OSVR) } Else { If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x02, OSVR) } If (MCTH (\_OS, "Linux")) { Store (0x03, OSVR) } } } Return (OSVR) } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), 0x01, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) { Return (Zero) } } Return (One) } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { Store (Arg0, Index (PRWP, 0x00)) Store (ShiftLeft (SS1, 0x01), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (0x01, Arg1), Local0)) { Store (Arg1, Index (PRWP, 0x01)) } Else { ShiftRight (Local0, 0x01, Local0) If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { FindSetLeftBit (Local0, Index (PRWP, 0x01)) } Else { FindSetRightBit (Local0, Index (PRWP, 0x01)) } } Return (PRWP) } Name (WAKP, Package (0x02) { Zero, Zero }) OperationRegion (DEB0, SystemIO, DP80, 0x01) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, DP90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Scope (\_SB) { Name (PR00, Package (0x20) { Package (0x04) { 0x000AFFFF, 0x00, LSMB, 0x00 }, Package (0x04) { 0x000BFFFF, 0x00, LUB0, 0x00 }, Package (0x04) { 0x000BFFFF, 0x01, LUB2, 0x00 }, Package (0x04) { 0x0013FFFF, 0x00, LMAC, 0x00 }, Package (0x04) { 0x0010FFFF, 0x00, LSA0, 0x00 }, Package (0x04) { 0x0011FFFF, 0x00, LSA1, 0x00 }, Package (0x04) { 0x000DFFFF, 0x00, LACI, 0x00 }, Package (0x04) { 0x000DFFFF, 0x01, LMC9, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0002FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0002FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0002FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0003FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0003FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0004FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0004FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0017FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0017FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0017FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0017FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0016FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0016FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0016FFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0x0016FFFF, 0x03, LNKB, 0x00 }, Package (0x04) { 0x0015FFFF, 0x00, LNKD, 0x00 }, Package (0x04) { 0x0015FFFF, 0x01, LNKA, 0x00 }, Package (0x04) { 0x0015FFFF, 0x02, LNKB, 0x00 }, Package (0x04) { 0x0015FFFF, 0x03, LNKC, 0x00 } }) Name (AR00, Package (0x20) { Package (0x04) { 0x000AFFFF, 0x00, LSMB, 0x00 }, Package (0x04) { 0x000BFFFF, 0x00, LUB0, 0x00 }, Package (0x04) { 0x000BFFFF, 0x01, LUB2, 0x00 }, Package (0x04) { 0x0013FFFF, 0x00, LMAC, 0x00 }, Package (0x04) { 0x0010FFFF, 0x00, LSA0, 0x00 }, Package (0x04) { 0x0011FFFF, 0x00, LSA1, 0x00 }, Package (0x04) { 0x000DFFFF, 0x00, LACI, 0x00 }, Package (0x04) { 0x000DFFFF, 0x01, LMC9, 0x00 }, Package (0x04) { 0x0002FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0002FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0002FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0002FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0003FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0003FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0004FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0004FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0004FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0017FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0017FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0017FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0017FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0016FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0016FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0016FFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0x0016FFFF, 0x03, LNKB, 0x00 }, Package (0x04) { 0x0015FFFF, 0x00, LNKD, 0x00 }, Package (0x04) { 0x0015FFFF, 0x01, LNKA, 0x00 }, Package (0x04) { 0x0015FFFF, 0x02, LNKB, 0x00 }, Package (0x04) { 0x0015FFFF, 0x03, LNKC, 0x00 } }) Name (PR01, Package (0x0D) { Package (0x04) { 0x000BFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0006FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0006FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0006FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0007FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0007FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0007FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0007FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0008FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0008FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0008FFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0x0008FFFF, 0x03, LNKB, 0x00 } }) Name (AR01, Package (0x0D) { Package (0x04) { 0x000BFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0006FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0006FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0006FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0006FFFF, 0x03, LNKD, 0x00 }, Package (0x04) { 0x0007FFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0x0007FFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0x0007FFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0x0007FFFF, 0x03, LNKA, 0x00 }, Package (0x04) { 0x0008FFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x0008FFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x0008FFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0x0008FFFF, 0x03, LNKB, 0x00 } }) Name (PR02, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (AR02, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (PR03, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (AR03, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (PR04, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (AR04, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKD, 0x00 } }) Name (PR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (AR05, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKA, 0x00 } }) Name (PR06, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKB, 0x00 } }) Name (AR06, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKB, 0x00 } }) Name (PR07, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKC, 0x00 } }) Name (AR07, Package (0x04) { Package (0x04) { 0xFFFF, 0x00, LNKD, 0x00 }, Package (0x04) { 0xFFFF, 0x01, LNKA, 0x00 }, Package (0x04) { 0xFFFF, 0x02, LNKB, 0x00 }, Package (0x04) { 0xFFFF, 0x03, LNKC, 0x00 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {5,7,10,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, RSMB) Alias (PRSA, RSB2) Name (RSA1, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {11} }) Alias (RSA1, RSA0) Alias (PRSA, RSB0) Alias (PRSA, RSAC) Alias (PRSA, RSCI) Alias (PRSA, RSC9) Alias (PRSA, RSTA) Name (RSIR, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared) { 0x00000010, 0x00000011, 0x00000012, 0x00000013, } }) Name (RSII, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared) { 0x00000014, 0x00000015, 0x00000016, 0x00000017, } }) Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00180000) Method (^BN00, 0, NotSerialized) { Return (0x00) } Method (_BBN, 0, NotSerialized) { Return (BN00 ()) } Name (_UID, 0x00) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR00) } Return (PR00) } Device (NB2N) { Name (_ADR, 0x00) Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } } Device (PCLK) { Name (_ADR, 0x02) } Device (SBRG) { Name (_ADR, 0x000A0000) Method (SPTS, 1, NotSerialized) { Store (Arg0, \_SB.PCI0.IDE0.PTS0) Store (\_SB.PCI0.IDE0.ID20, \_SB.PCI0.IDE0.SID0) Store (\_SB.PCI0.IDE0.IDTS, \_SB.PCI0.IDE0.SID1) Store (\_SB.PCI0.IDE0.IDTP, \_SB.PCI0.IDE0.SID2) Store (\_SB.PCI0.IDE0.ID22, \_SB.PCI0.IDE0.SID3) Store (\_SB.PCI0.IDE0.UMSS, \_SB.PCI0.IDE0.SID4) Store (\_SB.PCI0.IDE0.UMSP, \_SB.PCI0.IDE0.SID5) Store (One, PS1S) Store (One, PS1E) Store (One, \_SB.SLPS) } Method (SWAK, 1, NotSerialized) { Store (Zero, \_SB.SLPS) Store (Zero, PS1E) Store (0x02, S1CT) Store (0x02, S3CT) Store (0x02, S4CT) Store (0x02, S5CT) } OperationRegion (SMIE, SystemIO, SCIO, 0x08) Field (SMIE, ByteAcc, NoLock, Preserve) { , 15, PS1S, 1, , 31, PS1E, 1, Offset (0x08) } OperationRegion (SXCT, SystemIO, SCTL, 0x10) Field (SXCT, ByteAcc, NoLock, Preserve) { S1CT, 2, Offset (0x04), S3CT, 2, Offset (0x08), S4CT, 2, Offset (0x0C), S5CT, 2, Offset (0x10) } Scope (\_SB) { Name (SLPS, 0x00) Device (SLPB) { Name (_HID, EisaId ("PNP0C0E")) Method (_STA, 0, NotSerialized) { If (EXTS) { Return (0x0F) } Return (0x00) } Method (SBEV, 0, NotSerialized) { If (SLPS) { Notify (SLPB, 0x02) } Else { Notify (SLPB, 0x80) } } Method (\_GPE._L01, 0, NotSerialized) { \_SB.SLPB.SBEV () } Method (_PRW, 0, NotSerialized) { Return (Package (0x02) { 0x01, 0x04 }) } } Scope (PCI0) { Method (_S3D, 0, NotSerialized) { If (LEqual (OSFL (), 0x02)) { Return (0x02) } Else { Return (0x03) } } Name (_S1D, 0x01) Name (NATA, Package (0x01) { 0x00100000 }) Device (NVRB) { Name (_HID, "NVRAIDBUS") Method (_STA, 0, NotSerialized) { If (And (CPB0, 0x01)) { Return (0x0F) } Else { Return (0x00) } } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x04D2, 0x04D2, 0x01, 0x01) }) } } } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, 0x0020, 0x00, 0x02) IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8) {4} IO (Decode16, 0x0000, 0x0000, 0x00, 0x10) IO (Decode16, 0x0081, 0x0081, 0x00, 0x03) IO (Decode16, 0x0087, 0x0087, 0x00, 0x01) IO (Decode16, 0x0089, 0x0089, 0x00, 0x03) IO (Decode16, 0x008F, 0x008F, 0x00, 0x01) IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, 0x0040, 0x00, 0x04) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, 0x0070, 0x00, 0x02) IRQNoFlags () {8} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, 0x0061, 0x00, 0x01) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10) IRQNoFlags () {13} }) } Device (FDC) { Name (_HID, EisaId ("PNP0700")) Method (_FDE, 0, NotSerialized) { Name (FDEP, Package (0x05) { 0x00, 0x00, 0x02, 0x02, 0x02 }) If (_STA ()) { Store (0x01, Index (FDEP, 0x00)) } Return (FDEP) } Method (_STA, 0, NotSerialized) { Return (DSTA (0x03)) } Method (_DIS, 0, NotSerialized) { DCNT (0x03, 0x00) } Method (_CRS, 0, NotSerialized) { DCRS (0x03, 0x01) Store (IRQM, IRQE) Store (DMAM, DMAE) Store (IO11, IO21) Store (IO12, IO22) Store (0x06, LEN2) Add (IO21, 0x07, IO31) Store (IO31, IO32) Store (0x01, LEN3) Return (CRS2) } Method (_SRS, 1, NotSerialized) { DSRS (Arg0, 0x03) CreateWordField (Arg0, 0x11, IRQE) CreateByteField (Arg0, 0x14, DMAE) ENFG (CGLD (0x03)) If (IRQE) { FindSetRightBit (IRQE, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } If (DMAE) { FindSetRightBit (DMAE, Local0) Subtract (Local0, 0x01, DMCH) } Else { Store (0x04, DMCH) } EXFG () } Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} } StartDependentFnNoPri () { IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x0370, 0x0370, 0x01, 0x06) IO (Decode16, 0x0377, 0x0377, 0x01, 0x01) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } EndDependentFn () }) } Device (LPTE) { Method (_HID, 0, NotSerialized) { If (LPTM (0x02)) { Return (0x0104D041) } Else { Return (0x0004D041) } } Method (_STA, 0, NotSerialized) { Return (DSTA (0x02)) } Method (_DIS, 0, NotSerialized) { DCNT (0x02, 0x00) } Method (_CRS, 0, NotSerialized) { DCRS (0x02, 0x01) If (LPTM (0x02)) { Store (IRQM, IRQE) Store (DMAM, DMAE) Store (IO11, IO21) Store (IO12, IO22) Store (LEN1, LEN2) Add (IO21, 0x0400, IO31) Store (IO31, IO32) Store (LEN2, LEN3) Return (CRS2) } Else { Return (CRS1) } } Method (_SRS, 1, NotSerialized) { DSRS (Arg0, 0x02) } Method (_PRS, 0, NotSerialized) { If (LPTM (0x02)) { Return (EPPR) } Else { Return (LPPR) } } Name (LPPR, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } EndDependentFn () }) Name (EPPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x08) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {3} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } EndDependentFn () }) } Device (GAME) { Name (_HID, EisaId ("PNPB02F")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x08)) } Method (_DIS, 0, NotSerialized) { DCNT (0x08, 0x00) } Name (GMCR, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x08, 0x08) }) Method (_CRS, 0, NotSerialized) { CreateWordField (GMCR, 0x02, IOGL) CreateWordField (GMCR, 0x04, IOGH) ENFG (CGLD (0x08)) ShiftLeft (IOAH, 0x08, IOGL) Or (IOAL, IOGL, IOGL) Store (IOGL, IOGH) CreateByteField (GMCR, 0x06, IOAL) Store (0x01, IOAL) EXFG () Return (GMCR) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x02, IO11) ENFG (CGLD (0x08)) And (IO11, 0xFF, IOAL) ShiftRight (IO11, 0x08, IOAH) DCNT (0x08, 0x01) EXFG () } Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0201, 0x0201, 0x01, 0x08) } EndDependentFn () }) } Device (MIDI) { Name (_HID, EisaId ("PNPB006")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x05)) } Method (_DIS, 0, NotSerialized) { DCNT (0x05, 0x00) } Name (MDCR, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x02) IRQNoFlags () {5} }) Method (_CRS, 0, NotSerialized) { CreateWordField (MDCR, 0x02, IOML) CreateWordField (MDCR, 0x04, IOMH) CreateWordField (MDCR, 0x09, IRQM) ENFG (CGLD (0x05)) ShiftLeft (IOAH, 0x08, IOML) Or (IOAL, IOML, IOML) Store (IOML, IOMH) If (INTR) { ShiftLeft (0x01, INTR, IRQM) } Else { Store (0x00, IRQM) } EXFG () Return (MDCR) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x02, IO11) CreateWordField (Arg0, 0x09, IRQM) ENFG (CGLD (0x05)) And (IO11, 0xFF, IOAL) ShiftRight (IO11, 0x08, IOAH) If (IRQM) { FindSetRightBit (IRQM, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } DCNT (0x05, 0x01) EXFG () } Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x0300, 0x0300, 0x01, 0x02) } StartDependentFnNoPri () { IO (Decode16, 0x0330, 0x0330, 0x01, 0x02) } EndDependentFn () IRQNoFlags () {5,7,9,10,11} }) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, 0x0010, 0x00, 0x10) IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E) IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C) IO (Decode16, 0x0062, 0x0062, 0x00, 0x02) IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B) IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E) IO (Decode16, 0x0080, 0x0080, 0x00, 0x01) IO (Decode16, 0x0084, 0x0084, 0x00, 0x03) IO (Decode16, 0x0088, 0x0088, 0x00, 0x01) IO (Decode16, 0x008C, 0x008C, 0x00, 0x03) IO (Decode16, 0x0090, 0x0090, 0x00, 0x10) IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E) IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10) IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02) IO (Decode16, 0x0800, 0x0800, 0x00, 0x10) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) Memory32Fixed (ReadOnly, 0xFEE01000, 0x000FF000) Memory32Fixed (ReadOnly, 0xFEFFF000, 0x00001000) Memory32Fixed (ReadWrite, 0xFFB00000, 0x004F0000) Memory32Fixed (ReadOnly, 0xFFF00000, 0x00100000) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, 0x7A, GP00) CreateWordField (CRS, 0x7C, GP01) CreateByteField (CRS, 0x7F, GP0L) CreateWordField (CRS, 0x82, GP10) CreateWordField (CRS, 0x84, GP11) CreateByteField (CRS, 0x87, GP1L) Store (PMBS, GP00) Store (PMBS, GP01) If (LNot (LLess (PMLN, 0x0100))) { ShiftRight (PMLN, 0x01, GP0L) Add (GP00, GP0L, GP10) Add (GP01, GP0L, GP11) Subtract (PMLN, GP0L, GP1L) } Else { Store (PMLN, GP0L) } If (SCBS) { CreateWordField (CRS, 0x8A, SC00) CreateWordField (CRS, 0x8C, SC01) CreateByteField (CRS, 0x8F, SC0L) CreateWordField (CRS, 0x92, SC10) CreateWordField (CRS, 0x94, SC11) CreateByteField (CRS, 0x97, SC1L) Store (SCBS, SC00) Store (SCBS, SC01) If (LNot (LLess (SCLN, 0x0100))) { ShiftRight (SCLN, 0x01, SC0L) Add (SC00, SC0L, SC10) Add (SC01, SC0L, SC11) Subtract (SCLN, SC0L, SC1L) } Else { Store (SCLN, SC0L) } } If (ACBS) { CreateWordField (CRS, 0x9A, AC00) CreateWordField (CRS, 0x9C, AC01) CreateByteField (CRS, 0x9F, AC0L) CreateWordField (CRS, 0xA2, AC10) CreateWordField (CRS, 0xA4, AC11) CreateByteField (CRS, 0xA7, AC1L) Store (ACBS, AC00) Store (ACBS, AC01) If (LNot (LLess (ACLN, 0x0100))) { ShiftRight (ACLN, 0x01, AC0L) Add (AC00, AC0L, AC10) Add (AC01, AC0L, AC11) Subtract (ACLN, AC0L, AC1L) } Else { Store (ACLN, AC0L) } } Return (CRS) } } Scope (\_SB.PCI0.SBRG) { Device (ASOC) { Name (_HID, "ATK0110") Name (_UID, 0x01010110) Method (_STA, 0, NotSerialized) { Return (0x0F) } } } OperationRegion (\_SB.PCI0.SBRG.LPDC, PCI_Config, 0xA0, 0x06) Field (\_SB.PCI0.SBRG.LPDC, ByteAcc, NoLock, Preserve) { S3F8, 1, S2F8, 1, , 3, S2E8, 1, , 1, S3E8, 1, , 4, M300, 1, , 2, M330, 1, , 4, FDC0, 1, Offset (0x03), P378, 1, P278, 1, P3BC, 1, Offset (0x04), G200, 8, G208, 8 } Method (RRIO, 4, NotSerialized) { If (LOr (LEqual (Arg0, 0x00), LEqual (Arg0, 0x01))) { If (LEqual (Arg2, 0x03F8)) { Store (Arg1, S3F8) } If (LEqual (Arg2, 0x02F8)) { Store (Arg1, S2F8) } If (LEqual (Arg2, 0x03E8)) { Store (Arg1, S3E8) } If (LEqual (Arg2, 0x02E8)) { Store (Arg1, S2E8) } } If (LEqual (Arg0, 0x02)) { If (LEqual (Arg2, 0x0378)) { Store (Arg1, P378) } If (LEqual (Arg2, 0x0278)) { Store (Arg1, P278) } If (LEqual (Arg2, 0x03BC)) { Store (Arg1, P3BC) } } If (LEqual (Arg0, 0x03)) { Store (Arg1, FDC0) } If (LEqual (Arg0, 0x05)) { If (LEqual (Arg2, 0x0330)) { Store (Arg1, M330) } If (LEqual (Arg2, 0x0300)) { Store (Arg1, M300) } } If (LEqual (Arg0, 0x08)) { Store (Zero, Local0) If (Arg1) { Store (0xFF, Local0) } If (LEqual (Arg2, 0x0200)) { Store (Local0, G200) } If (LEqual (Arg2, 0x0208)) { Store (Local0, G208) } } } Method (RDMA, 3, NotSerialized) { } Scope (\) { OperationRegion (\RAMW, SystemMemory, Subtract (TOPM, 0x00010000), 0x00010000) Field (\RAMW, ByteAcc, NoLock, Preserve) { PAR0, 32, PAR1, 32 } OperationRegion (IOB2, SystemIO, 0x082E, 0x02) Field (IOB2, ByteAcc, NoLock, Preserve) { SMIC, 8, SMIS, 8 } Method (ISMI, 1, Serialized) { Store (Arg0, SMIC) } Method (GNVS, 1, Serialized) { Store (Arg0, PAR0) ISMI (0x70) Return (PAR1) } Method (SNVS, 2, Serialized) { Store (Arg0, PAR0) Store (Arg1, PAR1) ISMI (0x71) } } Scope (\) { Field (\RAMW, ByteAcc, NoLock, Preserve) { Offset (0x08), ADSP, 32, FSBF, 16, FVCM, 8, AITU, 8, FIDV, 8, VIDV, 8, OCPI, 8, NOST, 8, NOS1, 8, DDRV, 8, CPUS, 1, CQFS, 3, CQFT, 4, AIDI, 8, OVID, 8, CCAQ, 8, MAXF, 8, MAXV, 8, CURF, 8, CURV, 8, PCEF, 8 } } OperationRegion (\_SB.PCI0.PCLK.MNCK, PCI_Config, 0x44, 0x04) Field (\_SB.PCI0.PCLK.MNCK, ByteAcc, NoLock, Preserve) { MMNN, 16, , 14, MNEN, 1, Offset (0x04) } OperationRegion (\_SB.PCI0.PCLK.SPRD, PCI_Config, 0x54, 0x04) Field (\_SB.PCI0.PCLK.SPRD, ByteAcc, NoLock, Preserve) { SPRE, 1, Offset (0x04) } OperationRegion (QDRV, SystemIO, IOGB, 0x03) Field (QDRV, ByteAcc, NoLock, Preserve) { Offset (0x02), , 1, QDDR, 4, Offset (0x03) } OperationRegion (DEB0, SystemIO, 0x1080, 0x02) Field (DEB0, ByteAcc, NoLock, Preserve) { DB16, 16 } Name (DDRT, Package (0x0A) { 0x0D, 0x0F, 0x0E, 0x0D, 0x0B, 0x07, 0x09, 0x08, 0x03, 0x02 }) Scope (\_SB.PCI0.SBRG.ASOC) { Name (MBIF, Package (0x08) { 0x01, "A8N32-SLI", 0x01, 0x01, 0x02, 0x00, 0x00, 0x00 }) Method (ASIF, 0, NotSerialized) { Return (MBIF) } Name (OC01, Package (0x06) { 0x01010000, "CPU FSB", 0x4E20, 0x9C40, 0xC9, 0x00010003 }) Name (OC02, Package (0x06) { 0x01060001, "CPU Multiplier", 0x04, 0x19, 0x16, 0x00010000 }) Name (OC03, Package (0x06) { 0x01060002, "FID VID Mode", 0x00, 0x01, 0x01, 0x00010000 }) Name (OC04, Package (0x06) { 0x07010003, "PCI Express", 0x2710, 0x332C, 0x65, 0x00 }) Name (OC05, Package (0x06) { 0x05050004, "OC Profile", 0x00, 0x04, 0x05, 0x00010001 }) Name (OC06, Package (0x06) { 0x08050005, "Turbo NOS", 0x00, 0x04, 0x05, 0x00010000 }) Name (OC07, Package (0x06) { 0x08060006, "NOS MODE", 0x00, 0x03, 0x04, 0x00 }) Name (OC08, Package (0x06) { 0x04060003, "CPU Q-Fan Control", 0x00, 0x01, 0x01, 0x00010003 }) Name (OC09, Package (0x06) { 0x01020008, "CPU VID", 0x1F40, 0x3D09, 0x3D, 0x00010000 }) Name (OC0A, Package (0x06) { 0x02020009, "DRAM Voltage", 0x0A28, 0x0BB8, 0x09, 0x00010003 }) Name (OC0B, Package (0x06) { 0x0906000C, "AI Overclock Tuner", 0x00, 0x04, 0x05, 0x00010003 }) Name (OC0C, Package (0x06) { 0x0106000B, "Cool&Quiet Support", 0x00, 0x01, 0x02, 0x00010003 }) Name (OBUF, Package (0x0C) { OC01, OC02, OC03, OC04, OC05, OC06, OC07, OC08, OC09, OC0A, OC0B, OC0C }) Name (OCVO, 0x00) Method (OCIF, 0, NotSerialized) { Store (ShiftLeft (MAXV, 0x01), Local1) Subtract (0x3D09, Multiply (Local1, 0x7D), Index (OC09, 0x03)) Subtract (0x3D, Local1, Index (OC09, 0x04)) Return (OBUF) } Name (TEM1, Package (0x11) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }) Method (TEMP, 1, NotSerialized) { Store (FSBF, Index (TEM1, 0x00)) Store (FVCM, Index (TEM1, 0x01)) Store (AITU, Index (TEM1, 0x02)) Store (FIDV, Index (TEM1, 0x03)) Store (VIDV, Index (TEM1, 0x04)) Store (OCPI, Index (TEM1, 0x05)) Store (NOST, Index (TEM1, 0x06)) Store (NOS1, Index (TEM1, 0x07)) Store (DDRV, Index (TEM1, 0x08)) Store (CPUS, Index (TEM1, 0x09)) Store (CQFS, Index (TEM1, 0x0A)) Store (CQFT, Index (TEM1, 0x0B)) Store (AIDI, Index (TEM1, 0x0C)) Store (OVID, Index (TEM1, 0x0D)) Store (CCAQ, Index (TEM1, 0x0E)) Store (MAXF, Index (TEM1, 0x0F)) Store (MAXV, Index (TEM1, 0x10)) Return (TEM1) } Method (OCOP, 1, NotSerialized) { Store (DerefOf (Index (OC01, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (FSBF, Local0) Multiply (Local0, 0x64, Local1) Store (Local1, Index (CPUO, 0x01)) Subtract (Local0, 0xC8, Local2) Store (Local2, Index (CPUO, 0x02)) Return (CPUO) } Store (DerefOf (Index (OC02, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x01)) Store (Add (ShiftRight (CURF, 0x01), 0x04), Index (CPUM, 0x02)) If (LEqual (FVCM, 0x01)) { Store (0x00010000, Index (OC02, 0x05)) Store (0x00, Index (CPUM, 0x03)) } Else { Store (0x00010000, Index (OC02, 0x05)) Store (0x00, Index (CPUM, 0x03)) } Store (Add (ShiftRight (MAXF, 0x01), 0x04), Index (OC02, 0x03)) Add (0x01, DerefOf (Index (OC02, 0x03)), Local0) Store (DerefOf (Index (OC02, 0x02)), Local1) Subtract (Local0, Local1, Index (OC02, 0x04)) Return (CPUM) } Store (DerefOf (Index (OC03, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (FVCM, Index (CPFV, 0x02)) If (LEqual (CCAQ, 0x00)) { Store (0x00010000, Index (OC03, 0x05)) Store (0x00, Index (CPFV, 0x03)) } Else { Store (0x00010003, Index (OC03, 0x05)) Store (0x01, Index (CPFV, 0x03)) } Return (CPFV) } Store (DerefOf (Index (OC04, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Return (PCIV) } Store (DerefOf (Index (OC05, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (OCPI, Index (OCPR, 0x02)) If (LNot (LGreater (AITU, 0x03))) { Store (0x00010003, Index (OC05, 0x05)) Store (0x01, Index (OCPR, 0x03)) } Else { Store (0x00010003, Index (OC05, 0x05)) Store (0x01, Index (OCPR, 0x03)) } Return (OCPR) } Store (DerefOf (Index (OC06, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (AITU, 0x04)) { Store (NOS1, Index (NOSP, 0x02)) } Else { Store (0x00, Index (NOSP, 0x02)) } Return (NOSP) } Store (DerefOf (Index (OC07, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (NOST, Index (NOSM, 0x02)) Return (NOSM) } Store (DerefOf (Index (OC08, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (CPUS, Index (FANB, 0x02)) Return (FANB) } Store (DerefOf (Index (OC09, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (Subtract (CURV, MAXV), Local2) ShiftLeft (Local2, 0x01, Local2) And (OVID, 0x01, Local3) Or (Local2, Local3, Local2) Store (Local2, Index (CPUV, 0x02)) Store (ShiftLeft (MAXV, 0x01), Local2) Subtract (0x3D09, Multiply (Local2, 0x7D), Index (OC09, 0x03)) Subtract (0x3D, Local2, Index (OC09, 0x04)) Return (CPUV) } Store (DerefOf (Index (OC0A, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (DDRV, Index (DDVO, 0x02)) Return (DDVO) } Store (DerefOf (Index (OC0B, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (AITU, Index (AIOT, 0x02)) Return (AIOT) } Store (DerefOf (Index (OC0C, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (CCAQ, Index (ACAQ, 0x02)) Return (ACAQ) } } Name (CPUO, Package (0x04) { 0x01010000, 0x4E20, 0x00, 0x01 }) Name (CPUM, Package (0x04) { 0x01060001, 0x00, 0x00, 0x00 }) Name (CPFV, Package (0x06) { 0x01060002, 0x00, 0x00, 0x00, "Auto", "Manual" }) Name (PCIV, Package (0x04) { 0x07010003, 0x2710, 0x64, 0x00 }) Name (OCPR, Package (0x09) { 0x05050004, 0x00, 0x00, 0x00, "Overclock 1%", "Overclock 3%", "Overclock 5%", "Overclock 8%", "Overclock 10%" }) Name (NOSP, Package (0x09) { 0x08050005, 0x00, 0x00, 0x01, "Overclock 1%", "Overclock 3%", "Overclock 5%", "Overclock 8%", "Overclock 10%" }) Name (NOSM, Package (0x08) { 0x08060006, 0x00, 0x00, 0x00, "Auto", "Standard%", "Sensitive", "Heavy Load" }) Name (FANB, Package (0x06) { 0x04040007, 0x00, 0x00, 0x01, "Disabled", "Enabled" }) Name (CPUV, Package (0x04) { 0x01020008, 0x00, 0x00, 0x01 }) Name (DDVO, Package (0x0E) { 0x02020009, 0x00, 0x00, 0x01, "Auto", "2.60V", "2.65V", "2.70V", "2.75V", "2.80V", "2.85V", "2.90V", "2.95V", "3.00V" }) Name (AIOT, Package (0x09) { 0x0906000C, 0x00, 0x00, 0x01, "Manual", "Auto", "Standard", "OverClock Profile", "AI NOS" }) Name (ACAQ, Package (0x06) { 0x0106000B, 0x00, 0x00, 0x00, "Enabled", "Disabled" }) Name (OCST, Package (0x0C) { Package (0x02) { 0x01010000, 0x01 }, Package (0x02) { 0x01060001, 0x01 }, Package (0x02) { 0x01060002, 0x01 }, Package (0x02) { 0x07010003, 0x01 }, Package (0x02) { 0x05050004, 0x01 }, Package (0x02) { 0x08050005, 0x01 }, Package (0x02) { 0x08060006, 0x01 }, Package (0x02) { 0x04060003, 0x01 }, Package (0x02) { 0x01020008, 0x01 }, Package (0x02) { 0x02020009, 0x01 }, Package (0x02) { 0x0906000C, 0x01 }, Package (0x02) { 0x0106000B, 0x01 } }) Method (PROC, 3, NotSerialized) { Store (DerefOf (Index (OC01, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (Arg1, Local2) Add (Local2, 0xC8, Local2) If (LEqual (Arg2, 0x00)) { If (LNot (LGreater (AITU, 0x03))) { If (LNot (LLess (FSBF, Local2))) { Subtract (FSBF, Local2, Local0) } Else { Subtract (Local2, FSBF, Local0) } If (LGreater (Local0, 0x0A)) { Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x03) } Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x01) } Else { Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x03) } } If (LNot (LLess (FSBF, Local2))) { Subtract (FSBF, Local2, Local0) } Else { Subtract (Local2, FSBF, Local0) } Store (Local2, FSBF) If (LNot (LGreater (AITU, 0x03))) { Store (0x00, SMIS) Store (0xAB, SMIC) Store (0x00, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) If (LGreater (Local0, 0x0A)) { Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x03) } Store (0xAA, SMIS) Store (0xAB, SMIC) Store (0x01, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x01) } Store (0x00, SMIS) Store (0xAB, SMIC) Store (0x00, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x00)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC02, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01)) Return (0x03) } If (LEqual (CCQA, 0x00)) { Store (0x01, CCAQ) Store (0x0C, SMIS) Store (0xAB, SMIC) Store (0x01, FVCM) Store (0x01, SMIS) Store (0xAB, SMIC) Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV) Store (0x03, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01)) Return (0x03) } If (LEqual (FVCM, 0x00)) { Store (0x01, FVCM) Store (0x01, SMIS) Store (0xAB, SMIC) Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV) Store (0x03, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01)) Return (0x03) } Store (ShiftLeft (Subtract (Arg1, 0x04), 0x01), FIDV) Store (0x03, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x01)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC03, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01)) Return (0x03) } If (LEqual (CCAQ, 0x00)) { Store (0x01, CCAQ) Store (0x0C, SMIS) Store (0xAB, SMIC) Store (Arg1, FVCM) Store (0x01, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01)) Return (0x03) } Store (Arg1, FVCM) Store (0x01, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x02)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC04, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (0x03, Index (DerefOf (Index (OCST, 0x03)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC05, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { If (LNot (LGreater (AITU, 0x03))) { Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01)) Return (0x01) } Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01)) Return (0x03) } If (LNot (LGreater (AITU, 0x03))) { Store (0x03, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (Arg1, OCPI) Store (0x05, SMIS) Store (0xAB, SMIC) If (LEqual (Arg1, 0x00)) { Store (0xCA, FSBF) Store (0x00, SMIS) Store (0xAB, SMIC) } If (LEqual (Arg1, 0x01)) { Store (0xCE, FSBF) Store (0x00, SMIS) Store (0xAB, SMIC) } If (LEqual (Arg1, 0x02)) { Store (0xD2, FSBF) Store (0x00, SMIS) Store (0xAB, SMIC) } If (LEqual (Arg1, 0x03)) { Store (0xD8, FSBF) Store (0x00, SMIS) Store (0xAB, SMIC) } If (LEqual (Arg1, 0x04)) { Store (0xDC, FSBF) Store (0x00, SMIS) Store (0xAB, SMIC) } Store (0xAA, SMIS) Store (0xAB, SMIC) Store (0x01, Index (DerefOf (Index (OCST, 0x04)), 0x01)) Return (0x01) } Store (0x03, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (Arg1, OCPI) Store (0x05, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x04)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC06, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { If (LNot (LGreater (AITU, 0x03))) { Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x03) } If (LEqual (Arg1, 0x00)) { Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x03) } Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x01) } If (LNot (LGreater (AITU, 0x03))) { Store (0x04, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (Arg1, NOS1) Store (0x07, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x03) } If (LEqual (Arg1, 0x00)) { Store (0x01, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (Arg1, NOS1) Store (0x07, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x03) } Store (Arg1, NOS1) Store (0x07, SMIS) Store (0xAB, SMIC) Store (0x01, Index (DerefOf (Index (OCST, 0x05)), 0x01)) Return (0x01) } Store (DerefOf (Index (OC07, 0x00)), Local1) If (LEqual (Arg0, Local1)) { Store (0x01, Index (DerefOf (Index (OCST, 0x06)), 0x01)) Return (0x01) } Store (DerefOf (Index (OC08, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01)) Return (0x01) } Store (Arg1, CPUS) Store (0x09, SMIS) Store (0xAB, SMIC) Store (0xBB, SMIS) Store (0xAB, SMIC) Store (0x01, Index (DerefOf (Index (OCST, 0x07)), 0x01)) Return (0x01) } Store (DerefOf (Index (OC09, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01)) Return (0x03) } Store (CURF, FIDV) Store (0x03, SMIS) Store (0xAB, SMIC) Store (0x01, CCAQ) Store (0x0C, SMIS) Store (0xAB, SMIC) Store (0x01, FVCM) Store (0x01, SMIS) Store (0xAB, SMIC) Store (Add (Arg1, ShiftLeft (MAXV, 0x01)), OVID) Store (0x0B, SMIS) Store (0xAB, SMIC) Store (ShiftRight (Add (Arg1, ShiftLeft (MAXV, 0x01)), 0x01), VIDV) Store (0x04, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x08)), 0x01)) Return (0x03) } Store (DerefOf (Index (OC0A, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01)) Return (0x01) } If (LEqual (Arg1, DDRV)) { Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01)) Return (0x01) } Store (Arg1, DDRV) Store (0x08, SMIS) Store (0xAB, SMIC) Store (DerefOf (Index (DDRT, Arg1)), QDDR) Store (0x01, Index (DerefOf (Index (OCST, 0x09)), 0x01)) Return (0x01) } Store (DerefOf (Index (OC0B, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { If (LNot (LEqual (Arg1, AITU))) { Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01)) Return (0x03) } Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01)) Return (0x01) } If (LNot (LEqual (Arg1, AITU))) { Store (Arg1, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x0A)), 0x01)) Return (0x03) } Store (Arg1, AITU) Store (0x02, SMIS) Store (0xAB, SMIC) Store (0x01, Index (DerefOf (Index (OCST, 0x0A)), 0x01)) Return (0x01) } Store (DerefOf (Index (OC0C, 0x00)), Local1) If (LEqual (Arg0, Local1)) { If (LEqual (Arg2, 0x00)) { If (LEqual (Arg1, CCAQ)) { Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01)) Return (0x01) } Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01)) Return (0x03) } If (LEqual (Arg1, CCAQ)) { Store (0x01, Index (DerefOf (Index (OCST, 0x0B)), 0x01)) Return (0x01) } Store (Arg1, CCAQ) Store (0x09, SMIS) Store (0xAB, SMIC) Store (0x03, Index (DerefOf (Index (OCST, 0x0B)), 0x01)) Return (0x03) } } Method (GETM, 1, NotSerialized) { Multiply (Add (Arg0, 0x01), 0x03E8, Local0) Store (0xFFFF, Local6) Store (0x10, Local1) While (LNot (LGreater (Local1, 0x80))) { Store (0x10, Local2) While (LNot (LGreater (Local2, 0x80))) { Store (Divide (Multiply (Local2, 0x0005E9AC), Multiply (Local1, 0x04), ), Local3) Multiply (Local3, 0x02, Local3) If (LGreater (Local3, Local0)) { Store (Subtract (Local3, Local0), Local3) } Else { Store (Subtract (Local0, Local3), Local3) } If (LLess (Local3, Local6)) { Store (Local1, Local4) Store (Local2, Local5) Store (Local3, Local6) } Increment (Local2) } Increment (Local1) } ShiftLeft (Local5, 0x08, Local1) Or (Local1, Local4, Local6) And (Local6, 0xFFFF, Local6) Return (Local6) } } Device (\_SB.PCI0.PCIE) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x11) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x04, BAS1) CreateDWordField (CRS, 0x08, LEN1) Store (\PCIB, BAS1) Store (\PCIL, LEN1) Return (CRS) } } Scope (\_PR) { Processor (CPU1, 0x01, 0x00005010, 0x06) { Name (APCT, Package (0x02) { ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) }, ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) } }) Name (APSS, Package (0x0A) { Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 } }) Method (APPC, 0, NotSerialized) { Return (0x00) } } Processor (CPU2, 0x02, 0x00000000, 0x00) { Name (APCT, Package (0x02) { ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) }, ResourceTemplate () { Register (FFixedHW, 0x00, 0x00, 0x0000000000000000) } }) Name (APSS, Package (0x0A) { Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 }, Package (0x06) { 0x09999999, 0x00099999, 0x00999999, 0x00999999, 0x99999999, 0x99999999 } }) Method (APPC, 0, NotSerialized) { Return (0x00) } } } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { If (APIC) { CreateDWordField (CRS, 0x08, ML01) CreateDWordField (CRS, 0x04, MB01) CreateDWordField (CRS, 0x14, ML02) CreateDWordField (CRS, 0x10, MB02) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) } Return (CRS) } } Device (\_SB.RMEM) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x01) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000) Memory32Fixed (ReadWrite, 0x00100000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x10, BAS1) CreateDWordField (CRS, 0x14, LEN1) CreateDWordField (CRS, 0x1C, BAS2) CreateDWordField (CRS, 0x20, LEN2) CreateDWordField (CRS, 0x2C, LEN3) CreateDWordField (CRS, 0x34, BAS4) CreateDWordField (CRS, 0x38, LEN4) If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) Subtract (MG1B, BAS1, LEN1) } } Else { Store (0x000C0000, BAS1) Store (0x00020000, LEN1) } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) Subtract (0x00100000, BAS2, LEN2) } } Subtract (MG2B, 0x00100000, LEN3) Add (MG2B, MG2L, BAS4) Subtract (0x00, BAS4, LEN4) Return (CRS) } } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CID, 0x0B03D041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {1} }) } Method (PS2K._PRW, 0, NotSerialized) { Return (GPRW (0x10, 0x04)) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 0x130FD041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (CRS1, ResourceTemplate () { IRQNoFlags () {12} }) Name (CRS2, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS1) } Else { Return (CRS2) } } } Method (PS2M._PRW, 0, NotSerialized) { Return (GPRW (0x10, 0x04)) } Device (UAR1) { Name (_UID, 0x01) Method (_HID, 0, NotSerialized) { Return (UHID (0x00)) } Method (_STA, 0, NotSerialized) { Return (DSTA (0x00)) } Method (_DIS, 0, NotSerialized) { DCNT (0x00, 0x00) } Method (_CRS, 0, NotSerialized) { Return (DCRS (0x00, 0x01)) } Method (_SRS, 1, NotSerialized) { DSRS (Arg0, 0x00) } Method (_PRS, 0, NotSerialized) { Return (CMPR) } Name (CMPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) IRQNoFlags () {4} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,2,3} } EndDependentFn () }) } Method (UAR1._PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x04)) } Device (SIOR) { Name (_HID, EisaId ("PNP0C02")) Method (_UID, 0, NotSerialized) { Return (SPIO) } Name (CRS, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) }) Method (_CRS, 0, NotSerialized) { If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0))) { CreateWordField (CRS, 0x02, GP10) CreateWordField (CRS, 0x04, GP11) CreateByteField (CRS, 0x07, GPL1) Store (SPIO, GP10) Store (SPIO, GP11) Store (0x02, GPL1) } If (IOPB) { CreateWordField (CRS, 0x0A, GP20) CreateWordField (CRS, 0x0C, GP21) CreateByteField (CRS, 0x0F, GPL2) Store (IOPB, GP20) Store (IOPB, GP21) Store (IOPL, GPL2) } If (IOEB) { CreateWordField (CRS, 0x12, GP30) CreateWordField (CRS, 0x14, GP31) CreateByteField (CRS, 0x17, GPL3) Store (IOEB, GP30) Store (IOEB, GP31) Store (IOEL, GPL3) } If (IOGB) { CreateWordField (CRS, 0x1A, GP40) CreateWordField (CRS, 0x1C, GP41) CreateByteField (CRS, 0x1F, GPL4) Store (IOGB, GP40) Store (IOGB, GP41) Store (IOGL, GPL4) } If (IODB) { CreateWordField (CRS, 0x22, GP50) CreateWordField (CRS, 0x24, GP51) CreateByteField (CRS, 0x27, GPL5) Store (IODB, GP50) Store (IODB, GP51) Store (IODL, GPL5) } Return (CRS) } } Name (DCAT, Package (0x16) { 0x01, 0x02, 0x03, 0x00, 0xFF, 0x08, 0xFF, 0xFF, 0x09, 0xFF, 0x05, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }) Name (IKEY, Package (0x02) { Package (0x04) { 0x87, 0x01, 0x55, 0x55 }, Package (0x04) { 0x87, 0x01, 0x55, 0xAA } }) Name (KBFG, 0x01) Name (MSFG, 0x01) Name (UR1F, 0x01) Method (ENFG, 1, NotSerialized) { Store (0x00, Local1) If (LEqual (SPIO, 0x2E)) { Store (0x00, Local1) } If (LEqual (SPIO, 0x4E)) { Store (0x01, Local1) } Store (0x00, Local0) While (LNot (LEqual (Local0, 0x04))) { Store (DerefOf (Index (DerefOf (Index (IKEY, Local1)), Local0)), INDX) Increment (Local0) } Store (Arg0, LDN) } Method (ENTR, 0, NotSerialized) { Store (0x87, INDX) Store (0x01, INDX) Store (0x55, INDX) If (LEqual (SPIO, 0x2E)) { Store (0x55, INDX) } Else { Store (0xAA, INDX) } } Method (EXFG, 0, NotSerialized) { Store (0x02, INDX) Store (0x02, DATA) } Method (LPTM, 1, NotSerialized) { ENFG (CGLD (Arg0)) And (OPT0, 0x02, Local0) EXFG () Return (Local0) } Method (UHID, 1, NotSerialized) { ENFG (CGLD (Arg0)) And (OPT0, 0x70, Local0) EXFG () If (Local0) { Return (0x1005D041) } Return (0x0105D041) } Method (ORF0, 1, NotSerialized) { ENTR () Or (OPT0, Arg0, OPT0) EXFG () } Method (ORF1, 1, NotSerialized) { ENTR () Or (OPT1, Arg0, OPT1) EXFG () } Method (ORF2, 1, NotSerialized) { ENTR () Or (OPT2, Arg0, OPT2) EXFG () } Method (ANF0, 1, NotSerialized) { ENTR () And (OPT0, Arg0, OPT0) EXFG () } Method (ANF2, 1, NotSerialized) { ENTR () And (OPT2, Arg0, OPT2) EXFG () } Method (ANF4, 1, NotSerialized) { ENTR () And (OPT4, Arg0, OPT4) EXFG () } Method (STF0, 1, NotSerialized) { ENTR () Store (Arg0, OPT0) EXFG () } Method (STF1, 1, NotSerialized) { ENTR () Store (Arg0, OPT1) EXFG () } Method (SIOS, 1, NotSerialized) { Store ("SIOS", Debug) Store (0x00, GP10) If (LLess (Arg0, 0x05)) { ENFG (0x04) Store (0x01, ACTR) EXFG () ANF4 (0xFC) ORF1 (0x18) If (KBFG) { ORF0 (0x08) } Else { ANF0 (0xF7) } If (MSFG) { ORF0 (0x10) } Else { ANF0 (0xEF) ENFG (0x06) Store (0x00, ACTR) EXFG () } ENFG (0x04) ANF2 (0xF0) ENFG (0x07) And (OPF9, 0xFE, OPF9) And (OPC0, 0xFE, OPC0) And (OPC3, 0xFE, OPC3) And (OP29, 0xEF, OP29) EXFG () } Else { ENFG (0x07) And (OPC0, 0x00, OPC0) Or (OPC0, 0x01, OPC0) And (OPC3, 0x00, OPC3) Or (OPC3, 0x01, OPC3) Or (OPF9, 0x01, OPF9) And (OP29, 0xEF, OP29) EXFG () } } Method (SIOW, 1, NotSerialized) { Store (0x01, GP10) Store (0x01, GP40) Store ("SIOW", Debug) ENFG (0x04) Store (0x00, ACTR) EXFG () STF0 (0x00) STF1 (0xFF) ENFG (0x07) Or (OP29, 0x10, OP29) Or (OPC0, 0x01, OPC0) Or (OPC3, 0x01, OPC3) EXFG () ENFG (0x05) Or (ACTR, 0x01, ACTR) EXFG () ENFG (0x06) Or (ACTR, 0x01, ACTR) EXFG () ENFG (0x04) Store (0x01, ACTR) EXFG () } Method (SIOH, 0, NotSerialized) { Store ("SIOH", Debug) } OperationRegion (IOID, SystemIO, SPIO, 0x02) Field (IOID, ByteAcc, NoLock, Preserve) { INDX, 8, DATA, 8 } IndexField (INDX, DATA, ByteAcc, NoLock, Preserve) { Offset (0x07), LDN, 8, Offset (0x29), OP29, 8, Offset (0x30), ACTR, 8, Offset (0x60), IOAH, 8, IOAL, 8, IOH2, 8, IOL2, 8, Offset (0x70), INTR, 8, Offset (0x74), DMCH, 8, Offset (0xC0), OPC0, 8, OPC1, 8, OPC2, 8, OPC3, 8, Offset (0xF0), OPT0, 8, OPT1, 8, OPT2, 8, OPT3, 8, OPT4, 8, Offset (0xF8), OPF8, 8, OPF9, 8, OPFA, 8, OPFB, 8 } Method (PS2K._PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, KBFG) } Else { Store (0x00, KBFG) } } Method (PS2M._PSW, 1, NotSerialized) { If (Arg0) { Store (0x01, MSFG) } Else { Store (0x00, MSFG) } } Method (CGLD, 1, NotSerialized) { Return (DerefOf (Index (DCAT, Arg0))) } Method (DSTA, 1, NotSerialized) { ENFG (CGLD (Arg0)) Store (ACTR, Local0) EXFG () If (LEqual (Local0, 0xFF)) { Return (0x00) } And (Local0, 0x01, Local0) Or (IOST, ShiftLeft (Local0, Arg0), IOST) If (Local0) { Return (0x0F) } Else { If (And (ShiftLeft (0x01, Arg0), IOST)) { Return (0x0D) } Else { Return (0x00) } } } Method (DCNT, 2, NotSerialized) { ENFG (CGLD (Arg0)) ShiftLeft (IOAH, 0x08, Local1) Or (IOAL, Local1, Local1) RRIO (Arg0, Arg1, Local1, 0x08) If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00)))) { RDMA (Arg0, Arg1, Increment (Local1)) } Store (Arg1, ACTR) EXFG () } Name (CRS1, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) IRQNoFlags () {} DMA (Compatibility, NotBusMaster, Transfer8) {} }) CreateWordField (CRS1, 0x09, IRQM) CreateByteField (CRS1, 0x0C, DMAM) CreateWordField (CRS1, 0x02, IO11) CreateWordField (CRS1, 0x04, IO12) CreateByteField (CRS1, 0x07, LEN1) Name (CRS2, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} }) CreateWordField (CRS2, 0x11, IRQE) CreateByteField (CRS2, 0x14, DMAE) CreateWordField (CRS2, 0x02, IO21) CreateWordField (CRS2, 0x04, IO22) CreateByteField (CRS2, 0x07, LEN2) CreateWordField (CRS2, 0x0A, IO31) CreateWordField (CRS2, 0x0C, IO32) CreateByteField (CRS2, 0x0F, LEN3) Method (DCRS, 2, NotSerialized) { ENFG (CGLD (Arg0)) ShiftLeft (IOAH, 0x08, IO11) Or (IOAL, IO11, IO11) Store (IO11, IO12) Subtract (FindSetRightBit (IO11), 0x01, Local0) ShiftLeft (0x01, Local0, LEN1) If (INTR) { ShiftLeft (0x01, INTR, IRQM) } Else { Store (0x00, IRQM) } If (LOr (LGreater (DMCH, 0x03), LEqual (Arg1, 0x00))) { Store (0x00, DMAM) } Else { And (DMCH, 0x03, Local1) ShiftLeft (0x01, Local1, DMAM) } EXFG () Return (CRS1) } Method (DSRS, 2, NotSerialized) { CreateWordField (Arg0, 0x09, IRQM) CreateByteField (Arg0, 0x0C, DMAM) CreateWordField (Arg0, 0x02, IO11) ENFG (CGLD (Arg1)) And (IO11, 0xFF, IOAL) ShiftRight (IO11, 0x08, IOAH) If (IRQM) { FindSetRightBit (IRQM, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } If (DMAM) { FindSetRightBit (DMAM, Local0) Subtract (Local0, 0x01, DMCH) } Else { Store (0x04, DMCH) } EXFG () DCNT (Arg1, 0x01) } OperationRegion (GPIO, SystemIO, IO1B, 0x04) Field (GPIO, ByteAcc, NoLock, Preserve) { GP10, 1, GP11, 1, GP12, 1, GP13, 1, GO14, 1, GO15, 1, GO16, 1, GO17, 1, GP20, 1, GP21, 1, GP22, 1, GP23, 1, GO24, 1, GO25, 1, GO26, 1, GO27, 1, GP30, 1, GP31, 1, GP32, 1, GP33, 1, GO34, 1, GO35, 1, GO36, 1, GO37, 1, GP40, 1, GP41, 1, GP42, 1, GP43, 1, GO44, 1, GO45, 1, GO46, 1, GO47, 1 } } Device (NSMB) { Name (_ADR, 0x000A0001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } } Device (USB0) { Name (_ADR, 0x000B0000) Name (_S1D, 0x01) Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) } } Device (USB2) { Name (_ADR, 0x000B0001) Name (_S1D, 0x01) Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (NMAC) { Name (_ADR, 0x00130000) Name (_PRW, Package (0x02) { 0x0B, 0x05 }) Scope (\_GPE) { Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.NMAC, 0x02) Notify (\_SB.PWRB, 0x02) } } } Device (IDE0) { Name (_ADR, 0x000F0000) Name (PTS0, 0x00) Name (SID0, 0x00) Name (SID1, 0x00) Name (SID2, 0x00) Name (SID3, 0x00) Name (SID4, 0x00) Name (SID5, 0x00) OperationRegion (IRQM, SystemIO, 0x21, 0x01) Field (IRQM, ByteAcc, NoLock, Preserve) { IR0M, 1 } Name (REGF, 0x01) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } OperationRegion (A090, PCI_Config, 0x50, 0x18) Field (A090, DWordAcc, NoLock, Preserve) { ID20, 16, Offset (0x08), IDTS, 16, IDTP, 16, ID22, 32, UMSS, 16, UMSP, 16 } Name (TIM0, Package (0x07) { Package (0x05) { 0x3C, 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x05) { 0x11, 0x20, 0x22, 0x47, 0xA8 }, Package (0x07) { 0x78, 0x5A, 0x3C, 0x2D, 0x1E, 0x14, 0x0F }, Package (0x05) { 0x05, 0x04, 0x03, 0x02, 0x00 }, Package (0x04) { 0x02, 0x01, 0x00, 0x00 }, Package (0x08) { 0x02, 0x01, 0x00, 0x00, 0x03, 0x04, 0x05, 0x06 }, Package (0x07) { 0x02, 0x01, 0x00, 0x04, 0x05, 0x06, 0x07 } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, 0x00, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x58, 0x0C) Field (CFG2, DWordAcc, NoLock, Preserve) { SSPT, 8, SMPT, 8, PSPT, 8, PMPT, 8, SSAS, 2, SMAS, 2, PSAS, 2, PMAS, 2, Offset (0x06), SDDR, 4, SDDA, 4, PDDR, 4, PDDA, 4, SSUT, 3, , 3, SSUE, 2, SMUT, 3, , 3, SMUE, 2, PSUT, 3, , 3, PSUE, 2, PMUT, 3, , 3, PMUE, 2 } Name (GMPT, 0x00) Name (GMUE, 0x00) Name (GMUT, 0x00) Name (GSPT, 0x00) Name (GSUE, 0x00) Name (GSUT, 0x00) Device (CHN0) { Name (_ADR, 0x00) Method (_GTM, 0, NotSerialized) { Store ("GTM_CHN0", Debug) Return (GTM (PMPT, PMUE, PMUT, PSPT, PSUE, PSUT)) } Method (_STM, 3, NotSerialized) { Store ("STM_CHN0", Debug) Store (Arg0, Debug) Store (Arg0, TMD0) Store (PMPT, GMPT) Store (PMUE, GMUE) Store (PMUT, GMUT) Store (PSPT, GSPT) Store (PSUE, GSUE) Store (PSUT, GSUT) STM () Store (GMPT, PMPT) Store (GMUE, PMUE) Store (GMUT, PMUT) Store (GSPT, PSPT) Store (GSUE, PSUE) Store (GSUT, PSUT) Store (GTF (0x00, Arg1), ATA0) Store (GTF (0x01, Arg2), ATA1) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store ("_GTF_CHN0_DRV0", Debug) Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Store ("_GTF_CHN0_DRV1", Debug) Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, 0x01) Method (_GTM, 0, NotSerialized) { Store ("GTM_CHN1", Debug) Return (GTM (SMPT, SMUE, SMUT, SSPT, SSUE, SSUT)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) Store (SMPT, GMPT) Store (SMUE, GMUE) Store (SMUT, GMUT) Store (SSPT, GSPT) Store (SSUE, GSUE) Store (SSUT, GSUT) STM () Store (GMPT, SMPT) Store (GMUE, SMUE) Store (GMUT, SMUT) Store (GSPT, SSPT) Store (GSUE, SSUE) Store (GSUT, SSUT) Store (GTF (0x00, Arg1), ATA2) Store (GTF (0x01, Arg2), ATA3) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store ("_GTF_CHN1_DRV0", Debug) Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Store ("_GTF_CHN1_DRV1", Debug) Return (RATA (ATA3)) } } } Method (DRMP, 0, NotSerialized) { ShiftRight (CPB0, 0x04, Local1) And (Local1, 0x0F, Local0) Return (Local0) } Method (GTM, 6, Serialized) { Store (Ones, PIO0) Store (Ones, PIO1) Store (Ones, DMA0) Store (Ones, DMA1) Store (0x10, CHNF) If (REGF) {} Else { Return (TMD0) } If (LEqual (PTS0, 0x01)) { If (OSFL ()) { Store (0x01, IR0M) } } Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA0) Store (Local7, PIO0) Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg3, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA1) Store (Local7, PIO1) If (Arg1) { Store (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Arg2)), Local5) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA0) Or (CHNF, 0x01, CHNF) } If (Arg4) { Store (DerefOf (Index (DerefOf (Index (TIM0, 0x05)), Arg5)), Local5) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Return (0x00) } If (PTS0) { Store (SID0, ID20) Store (SID1, IDTS) Store (SID2, IDTP) Store (SID3, ID22) Store (SID4, UMSS) Store (SID5, UMSP) } Else { Store (ID20, SID0) Store (IDTS, SID1) Store (IDTP, SID2) Store (ID22, SID3) Store (UMSS, SID4) Store (UMSP, SID5) } Store (0x00, PTS0) Store (0x00, GMUE) Store (0x00, GMUT) Store (0x00, GSUE) Store (0x00, GSUT) If (And (CHNF, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, DMA0, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x06)) { Store (0x06, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GMUT) Or (GMUE, 0x03, GMUE) } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00))) { Store (DMA0, PIO0) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, DMA1, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x06)) { Store (0x06, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), GSUT) Or (GSUE, 0x03, GSUE) } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00))) { Store (DMA1, PIO1) } } } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) Store (Local1, GMPT) And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) Store (Local1, GSPT) Return (0x00) } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, 0x00, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store ("GTF_Entry", Debug) Store (Arg1, Debug) Store (0x00, CMDC) Name (ID49, 0x0C00) Name (ID59, 0x00) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, 0x01) Name (PIOT, 0x00) Name (DMAT, 0x00) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, 0x01)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x02)), MLE, DMAT, MTR, 0x00, 0x00), Local1) If (LGreater (Local1, 0x06)) { Store (0x06, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local0)), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, 0x01, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store ("ATAB_GTF", Debug) Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, 0x00, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (RETB) } } Device (ATA0) { Name (_ADR, 0x00100000) Device (PRI0) { Name (_ADR, 0x00) Name (SPTM, Buffer (0x14) { 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x13, 0x00, 0x00, 0x00 }) Method (_GTM, 0, NotSerialized) { Return (SPTM) } Method (_STM, 3, NotSerialized) { Store (Arg0, SPTM) } Device (MAST) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store (Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF }, Local0) Return (Local0) } } } Device (SEC0) { Name (_ADR, 0x01) Name (SSTM, Buffer (0x14) { 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x13, 0x00, 0x00, 0x00 }) Method (_GTM, 0, NotSerialized) { Return (SSTM) } Method (_STM, 3, NotSerialized) { Store (Arg0, SSTM) } Device (MAST) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store (Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF }, Local0) Return (Local0) } } } Method (DRMP, 0, NotSerialized) { Store (0x0C, Local0) If (LEqual (_ADR, 0x00100000)) { Store (0x08, Local0) } ShiftRight (CPB0, Local0, Local1) And (Local1, 0x0F, Local0) Return (Local0) } } Device (ATA1) { Name (_ADR, 0x00110000) Device (PRI0) { Name (_ADR, 0x00) Name (SPTM, Buffer (0x14) { 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x13, 0x00, 0x00, 0x00 }) Method (_GTM, 0, NotSerialized) { Return (SPTM) } Method (_STM, 3, NotSerialized) { Store (Arg0, SPTM) } Device (MAST) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store (Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF }, Local0) Return (Local0) } } } Device (SEC0) { Name (_ADR, 0x01) Name (SSTM, Buffer (0x14) { 0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x13, 0x00, 0x00, 0x00 }) Method (_GTM, 0, NotSerialized) { Return (SSTM) } Method (_STM, 3, NotSerialized) { Store (Arg0, SSTM) } Device (MAST) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Store (Buffer (0x07) { 0x03, 0x46, 0x00, 0x00, 0x00, 0xA0, 0xEF }, Local0) Return (Local0) } } } Method (DRMP, 0, NotSerialized) { Store (0x0C, Local0) If (LEqual (_ADR, 0x00100000)) { Store (0x08, Local0) } ShiftRight (CPB0, Local0, Local1) And (Local1, 0x0F, Local0) Return (Local0) } } Device (PB2P) { Name (_ADR, 0x00120000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x00, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR01) } Return (PR01) } } Device (MC97) { Name (_ADR, 0x000D0001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x07, 0x04)) } } Device (PCE0) { Name (_ADR, 0x00020000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Device (PCE1) { Name (_ADR, 0x00030000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR03) } Return (PR03) } } Device (PCE2) { Name (_ADR, 0x00040000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR04) } Return (PR04) } } Device (PCE3) { Name (_ADR, 0x00170000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR05) } Return (PR05) } } Device (PCE4) { Name (_ADR, 0x00160000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR06) } Return (PR06) } } Device (PCE5) { Name (_ADR, 0x00150000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x11, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR07) } Return (PR07) } } } Scope (\_GPE) { Method (_L10, 0, NotSerialized) { \_SB.PCI0.SBRG.SIOH () Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { \_SB.PCI0.SBRG.SIOH () Notify (\_SB.PWRB, 0x02) } Method (_L09, 0, NotSerialized) { Notify (\_SB.PCI0.NSMB, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.USB0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L00, 0, NotSerialized) { Notify (\_SB.PCI0.PB2P, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L07, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L11, 0, NotSerialized) { Notify (\_SB.PCI0.PCE0, 0x02) Notify (\_SB.PCI0.PCE1, 0x02) Notify (\_SB.PCI0.PCE2, 0x02) Notify (\_SB.PCI0.PCE3, 0x02) Notify (\_SB.PCI0.PCE4, 0x02) Notify (\_SB.PCI0.PCE5, 0x02) Notify (\_SB.PWRB, 0x02) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_UID, 0xAA) Name (_STA, 0x0B) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x04)) } } } OperationRegion (\_SB.PCI0.SBRG.PIMC, PCI_Config, 0x7C, 0x0C) Field (\_SB.PCI0.SBRG.PIMC, ByteAcc, NoLock, Preserve) { PIRA, 4, PIRB, 4, PIRC, 4, PIRD, 4, , 4, PIRF, 4, PIRG, 4, Offset (0x05), PIRM, 4, PIU2, 4, Offset (0x07), SIID, 4, PIID, 4, PIU0, 4, Offset (0x09), PILN, 4, Offset (0x0A), PAUI, 4, PIMO, 4, PR0E, 4, PR0F, 4 } Scope (\_SB) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {15} }) CreateWordField (BUFA, 0x01, ICRS) Method (LSTA, 1, NotSerialized) { If (Arg0) { Return (0x0B) } Else { Return (0x09) } } Method (LPRS, 2, NotSerialized) { If (PICM) { Return (Arg1) } Else { Return (Arg0) } } Method (LCRS, 1, NotSerialized) { If (PICM) { Name (BUFB, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared) { 0x00000011, } }) CreateByteField (BUFB, 0x05, AIRQ) Store (Arg0, AIRQ) If (LEqual (Arg0, 0x01)) { Store (0x11, AIRQ) } If (LEqual (Arg0, 0x02)) { Store (0x12, AIRQ) } If (LEqual (Arg0, 0x08)) { Store (0x10, AIRQ) } If (LEqual (Arg0, 0x0D)) { Store (0x13, AIRQ) } Return (BUFB) } Else { ShiftLeft (0x01, Arg0, ICRS) Return (BUFA) } } Method (LCRO, 1, NotSerialized) { If (PICM) { Name (BUFB, ResourceTemplate () { Interrupt (ResourceConsumer, Level, ActiveLow, Shared) { 0x00000014, } }) CreateByteField (BUFB, 0x05, AIRQ) Store (Arg0, AIRQ) If (LEqual (Arg0, 0x01)) { Store (0x17, AIRQ) } If (LEqual (Arg0, 0x02)) { Store (0x16, AIRQ) } If (LEqual (Arg0, 0x08)) { Store (0x14, AIRQ) } If (LEqual (Arg0, 0x0D)) { Store (0x15, AIRQ) } Return (BUFB) } Else { ShiftLeft (0x01, Arg0, ICRS) Return (BUFA) } } Method (LSRS, 1, NotSerialized) { If (PICM) { CreateByteField (Arg0, 0x05, SAIR) Store (SAIR, Local0) If (LEqual (Local0, 0x10)) { Store (0x08, Local0) } If (LEqual (Local0, 0x11)) { Store (0x01, Local0) } If (LEqual (Local0, 0x12)) { Store (0x02, Local0) } If (LEqual (Local0, 0x13)) { Store (0x0D, Local0) } Return (Local0) } Else { CreateWordField (Arg0, 0x01, ISRS) FindSetRightBit (ISRS, Local0) Return (Decrement (Local0)) } } Method (LSRO, 1, NotSerialized) { If (PICM) { CreateByteField (Arg0, 0x05, SAIR) Store (SAIR, Local0) If (LEqual (Local0, 0x14)) { Store (0x08, Local0) } If (LEqual (Local0, 0x15)) { Store (0x0D, Local0) } If (LEqual (Local0, 0x16)) { Store (0x02, Local0) } If (LEqual (Local0, 0x17)) { Store (0x01, Local0) } Return (Local0) } Else { CreateWordField (Arg0, 0x01, ISRS) FindSetRightBit (ISRS, Local0) Return (Decrement (Local0)) } } Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRA)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (PRSA, RSIR)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRA) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRA)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRB)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (PRSB, RSIR)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRB) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRB)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRC)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (PRSC, RSIR)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRC) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRC)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRD)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (PRSD, RSIR)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRD) } Method (_CRS, 0, NotSerialized) { Return (LCRS (PIRD)) } Method (_SRS, 1, NotSerialized) { Store (LSRS (Arg0), PIRD) } } Device (LUB0) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { Return (LSTA (PIU0)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSB0, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIU0) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PIU0)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PIU0) } } Device (LUB2) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { Return (LSTA (PIU2)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSB2, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIU2) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PIU2)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PIU2) } } Device (LMAC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { Return (LSTA (PILN)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSAC, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PILN) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PILN)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PILN) } } Device (LACI) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x09) Method (_STA, 0, NotSerialized) { Return (LSTA (PAUI)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSCI, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PAUI) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PAUI)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PAUI) } } Device (LMC9) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x0A) Method (_STA, 0, NotSerialized) { Return (LSTA (PIMO)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSC9, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIMO) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PIMO)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PIMO) } } Device (LSMB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x0B) Method (_STA, 0, NotSerialized) { Return (LSTA (PIRM)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSMB, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIRM) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PIRM)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PIRM) } } Device (LSA0) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x0C) Method (_STA, 0, NotSerialized) { Return (LSTA (PIID)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSA0, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PIID) Store (0x00, PIRG) } Method (_CRS, 0, NotSerialized) { Return (LCRO (PIID)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), Local0) Store (Local0, PIID) Store (Local0, PIRG) } } Device (LSA1) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x0D) Method (_STA, 0, NotSerialized) { Return (LSTA (SIID)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSA1, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, SIID) Store (0x00, PIRF) } Method (_CRS, 0, NotSerialized) { Return (LCRO (SIID)) } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), Local0) Store (Local0, SIID) Store (Local0, PIRF) } } Device (LATA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x0E) Method (_STA, 0, NotSerialized) { Return (LSTA (PR0E)) } Method (_PRS, 0, NotSerialized) { Return (LPRS (RSTA, RSII)) } Method (_DIS, 0, NotSerialized) { Store (0x00, PR0E) Store (0x00, PR0F) } Method (_CRS, 0, NotSerialized) { If (OSFL ()) { Return (0x00) } Else { Return (LCRO (PR0E)) } } Method (_SRS, 1, NotSerialized) { Store (LSRO (Arg0), PR0E) Store (LSRO (Arg0), PR0F) } } } Scope (\_SB) { Name (XCPD, 0x00) Name (XNPT, 0x01) Name (XCAP, 0x02) Name (XDCP, 0x04) Name (XDCT, 0x08) Name (XDST, 0x0A) Name (XLCP, 0x0C) Name (XLCT, 0x10) Name (XLST, 0x12) Name (XSCP, 0x14) Name (XSCT, 0x18) Name (XSST, 0x1A) Name (XRCT, 0x1C) Mutex (MUTE, 0x00) Method (RBPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x01) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Release (MUTE) Return (XCFG) } Method (RWPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Release (MUTE) Return (XCFG) } Method (RDPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Release (MUTE) Return (XCFG) } Method (WBPE, 2, NotSerialized) { Acquire (MUTE, 0x0FFF) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x01) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Store (Arg1, XCFG) Release (MUTE) } Method (WWPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Store (Arg1, XCFG) Release (MUTE) } Method (WDPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Store (Arg1, XCFG) Release (MUTE) } Method (RWDP, 3, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, \PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } And (XCFG, Arg2, Local1) Or (Local1, Arg1, XCFG) Release (MUTE) } Method (RPME, 1, NotSerialized) { Add (Arg0, 0x84, Local0) Store (\_SB.RDPE (Local0), Local1) If (LEqual (Local1, 0xFFFFFFFF)) { Return (0x00) } Else { If (LAnd (Local1, 0x00010000)) { \_SB.WDPE (Local0, And (Local1, 0x00010000)) Return (0x01) } Return (0x00) } } } Scope (\_SB.PCI0.SBRG.SIOR) { Device (IT87) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Method (HWV0, 0, NotSerialized) { Return (Multiply (VIV0, 0x10)) } Method (HWV1, 0, NotSerialized) { Return (Multiply (VIV1, 0x10)) } Method (HWV2, 0, NotSerialized) { Return (Multiply (VIV2, 0x10)) } Method (HWV3, 0, NotSerialized) { Return (Multiply (VIV3, 0x10)) } Method (HWV4, 0, NotSerialized) { Return (Multiply (VIV4, 0x10)) } Method (HWV5, 0, NotSerialized) { Return (Multiply (VIV5, 0x10)) } Method (HWV6, 0, NotSerialized) { Return (Multiply (VIV6, 0x10)) } Method (HWV7, 0, NotSerialized) { Return (Multiply (VIV7, 0x10)) } Method (HWT1, 0, NotSerialized) { Store (TPI1, Local0) If (LGreater (Local0, 0x80)) { Subtract (0x0100, Local0, Local0) } Return (Multiply (Local0, 0x0A)) } Method (HWT2, 0, NotSerialized) { Store (TPI2, Local0) If (LGreater (Local0, 0x80)) { Subtract (0x0100, Local0, Local0) } Return (Multiply (Local0, 0x0A)) } Method (HWT3, 0, NotSerialized) { Store (TPI3, Local0) If (LGreater (Local0, 0x80)) { Subtract (0x0100, Local0, Local0) } Return (Multiply (Local0, 0x0A)) } Method (HWF1, 0, NotSerialized) { And (ETDE, 0x01, Local0) While (0x01) { ShiftLeft (0x01, FTD1, Local1) If (LEqual (Local0, 0x01)) { Add (Multiply (EFN1, 0x0100), FTC1, Local2) } Else { Store (FTC1, Local2) } If (LEqual (Local0, 0x01)) { If (LNot (LLess (Local2, 0xF000))) { If (LNot (LEqual (Local1, 0x80))) { Add (FTD1, 0x01, FTD1) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x1000))) { If (LNot (LEqual (Local1, 0x01))) { Subtract (FTD1, 0x01, FTD1) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } Else { If (LNot (LLess (Local2, 0xF0))) { If (LNot (LEqual (Local1, 0x80))) { Add (FTD1, 0x01, FTD1) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x32))) { If (LNot (LEqual (Local1, 0x01))) { Subtract (FTD1, 0x01, FTD1) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } } } Method (HWF2, 0, NotSerialized) { And (ETDE, 0x02, Local0) While (0x01) { ShiftLeft (0x01, FTD2, Local1) If (LEqual (Local0, 0x02)) { Add (Multiply (EFN2, 0x0100), FTC2, Local2) } Else { Store (FTC2, Local2) } If (LEqual (Local0, 0x02)) { If (LNot (LLess (Local2, 0xF000))) { If (LNot (LEqual (Local1, 0x80))) { Add (FTD2, 0x01, FTD2) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x1000))) { If (LNot (LEqual (Local1, 0x01))) { Subtract (FTD2, 0x01, FTD2) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } Else { If (LNot (LLess (Local2, 0xF0))) { If (LNot (LEqual (Local1, 0x80))) { Add (FTD2, 0x01, FTD2) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x32))) { If (LNot (LEqual (Local1, 0x01))) { Subtract (FTD2, 0x01, FTD2) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } } } Method (HWF3, 0, NotSerialized) { And (ETDE, 0x04, Local0) While (0x01) { If (LEqual (FTD3, 0x01)) { Store (0x08, Local1) } Else { Store (0x02, Local1) } If (LEqual (Local0, 0x04)) { Add (Multiply (EFN3, 0x0100), FTC3, Local2) } Else { Store (FTC3, Local2) } If (LEqual (Local0, 0x04)) { If (LNot (LLess (Local2, 0xF000))) { If (LNot (LEqual (Local1, 0x08))) { Add (FTD3, 0x01, FTD3) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x1000))) { If (LNot (LEqual (Local1, 0x00))) { Subtract (FTD3, 0x01, FTD3) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } Else { If (LNot (LLess (Local2, 0xF0))) { If (LNot (LEqual (Local1, 0x08))) { Add (FTD3, 0x01, FTD3) Sleep (0x64) } Else { Return (0x00) } } Else { If (LNot (LGreater (Local2, 0x10))) { If (LNot (LEqual (Local1, 0x00))) { Subtract (FTD3, 0x01, FTD3) Sleep (0x64) } Else { Return (0xFFFF) } } Else { Divide (0x00149970, Multiply (Local1, Local2), , Local1) Return (Local1) } } } } } OperationRegion (ECRE, SystemIO, IOEB, 0x20) Field (ECRE, ByteAcc, NoLock, Preserve) { Offset (0x05), HIDX, 8, HDAT, 8 } IndexField (HIDX, HDAT, ByteAcc, NoLock, Preserve) { Offset (0x0B), FTD1, 3, FTD2, 3, FTD3, 1, Offset (0x0C), ETDE, 8, FTC1, 8, FTC2, 8, FTC3, 8, Offset (0x18), EFN1, 8, EFN2, 8, EFN3, 8, Offset (0x20), VIV0, 8, VIV1, 8, VIV2, 8, VIV3, 8, VIV4, 8, VIV5, 8, VIV6, 8, VIV7, 8, Offset (0x29), TPI1, 8, TPI2, 8, TPI3, 8 } } } Scope (\) { Field (\RAMW, ByteAcc, NoLock, Preserve) { Offset (0x20), CPUQ, 8, CPVL, 16, CPVH, 16, CPVC, 1 } } Scope (\_SB.PCI0.SBRG.ASOC) { Name (CORV, Package (0x05) { 0x06020000, "Vcore Voltage", 0x0320, 0x0708, 0x01 }) Name (V3VV, Package (0x05) { 0x06020001, " +3.3 Voltage", 0x0B9A, 0x0E2E, 0x01 }) Name (V5VV, Package (0x05) { 0x06020002, " +5 Voltage", 0x1194, 0x157C, 0x01 }) Name (VV12, Package (0x05) { 0x06020003, " +12 Voltage", 0x27D8, 0x35E8, 0x01 }) Name (VPAR, Package (0x04) { Package (0x03) { 0x00, 0x01, 0x00 }, Package (0x03) { 0x00, 0x01, 0x00 }, Package (0x03) { 0x22, 0x32, 0x00 }, Package (0x03) { 0x0F, 0x05, 0x00 } }) Name (VBUF, Package (0x05) { 0x04, CORV, V3VV, V5VV, VV12 }) Method (VGET, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Return (^^SIOR.IT87.HWV0 ()) } If (LEqual (Arg0, 0x01)) { Return (^^SIOR.IT87.HWV2 ()) } If (LEqual (Arg0, 0x02)) { Return (^^SIOR.IT87.HWV3 ()) } If (LEqual (Arg0, 0x03)) { Return (^^SIOR.IT87.HWV4 ()) } } Name (CPUT, Package (0x05) { 0x06030000, "CPU Temperature", 0x0258, 0x03B6, 0x00010001 }) Name (MBTP, Package (0x05) { 0x06030001, "MB Temperature", 0x01C2, 0x03B6, 0x00010001 }) Name (TBUF, Package (0x03) { 0x02, CPUT, MBTP }) Method (TGET, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Return (^^SIOR.IT87.HWT1 ()) } If (LEqual (Arg0, 0x01)) { Return (^^SIOR.IT87.HWT2 ()) } } Name (CPUF, Package (0x05) { 0x06040000, "CPU FAN Speed", 0x0320, 0x1C20, 0x00010001 }) Name (CHA1, Package (0x05) { 0x06040001, "CHASSIS FAN Speed", 0x0320, 0x1C20, 0x00010001 }) Name (PWRF, Package (0x05) { 0x06040002, "POWER FAN Speed", 0x0320, 0x1C20, 0x00010001 }) Name (FBUF, Package (0x04) { 0x03, CPUF, CHA1, PWRF }) Method (FGET, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Return (^^SIOR.IT87.HWF1 ()) } If (LEqual (Arg0, 0x01)) { Return (^^SIOR.IT87.HWF2 ()) } If (LEqual (Arg0, 0x02)) { Return (^^SIOR.IT87.HWF3 ()) } } Name (QBUF, Package (0x01) { 0x00 }) Method (VSIF, 0, NotSerialized) { Return (VBUF) } Method (RVLT, 1, NotSerialized) { And (Arg0, 0xFFFF, Local0) Store (VGET (Local0), Local1) Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x00)), Local2) Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x01)), Local3) Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x02)), Local4) Multiply (Local1, Add (Local2, Local3), Local5) Divide (Local5, Local3, , Local5) Add (Local5, Local4, Local5) Return (Local5) } Method (SVLT, 1, NotSerialized) { And (DerefOf (Index (Arg0, 0x00)), 0xFFFF, Local0) Store (DerefOf (Index (VBUF, 0x00)), Local1) If (LNot (LLess (Local0, Local1))) { Return (0x00) } Increment (Local0) Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (VBUF, Local0)), 0x01)) Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (VBUF, Local0)), 0x02)) Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (VBUF, Local0)), 0x03)) Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (VBUF, Local0)), 0x04)) Return (0x01) } Method (TSIF, 0, NotSerialized) { Return (TBUF) } Method (RTMP, 1, NotSerialized) { And (Arg0, 0xFFFF, Local0) Store (TGET (Local0), Local1) Return (Local1) } Method (STMP, 1, NotSerialized) { Store (And (DerefOf (Index (Arg0, 0x00)), 0xFFFF), Local0) Store (DerefOf (Index (TBUF, 0x00)), Local1) If (LNot (LLess (Local0, Local1))) { Return (0x00) } Increment (Local0) Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (TBUF, Local0)), 0x01)) Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (TBUF, Local0)), 0x02)) Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (TBUF, Local0)), 0x03)) Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (TBUF, Local0)), 0x04)) Return (0x01) } Method (FSIF, 0, NotSerialized) { Return (FBUF) } Method (RFAN, 1, NotSerialized) { And (Arg0, 0xFFFF, Local0) Store (FGET (Local0), Local1) Return (Local1) } Method (SFAN, 1, NotSerialized) { And (DerefOf (Index (Arg0, 0x00)), 0xFFFF, Local0) Store (DerefOf (Index (FBUF, 0x00)), Local1) If (LNot (LLess (Local0, Local1))) { Return (0x00) } Increment (Local0) Store (DerefOf (Index (Arg0, 0x01)), Index (DerefOf (Index (FBUF, Local0)), 0x01)) Store (DerefOf (Index (Arg0, 0x02)), Index (DerefOf (Index (FBUF, Local0)), 0x02)) Store (DerefOf (Index (Arg0, 0x03)), Index (DerefOf (Index (FBUF, Local0)), 0x03)) Store (DerefOf (Index (Arg0, 0x04)), Index (DerefOf (Index (FBUF, Local0)), 0x04)) Return (0x01) } Method (QFIF, 0, NotSerialized) { If (LEqual (CPUQ, 0x00)) { And (DerefOf (Index (QCFN, 0x05)), 0xFFFDFFFF, Local0) Store (Local0, Index (QCFN, 0x05)) } Else { Or (DerefOf (Index (QCFN, 0x05)), 0x00020000, Local0) Store (Local0, Index (QCFN, 0x05)) } Return (QBUF) } Method (GCQV, 1, NotSerialized) { If (LEqual (Arg0, 0x00)) { Return (CPVL) } If (LEqual (Arg0, 0x01)) { Return (CPVH) } If (LEqual (Arg0, 0x02)) { Return (CPVC) } Return (0x00) } Method (QFST, 1, NotSerialized) { If (LEqual (Arg0, DerefOf (Index (QCFN, 0x00)))) { Return (CQST) } Return (0x00) } } Scope (\_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, 0x0000, 0x00FF, 0x0000, 0x0100) IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0000, 0x0CF7, 0x0000, 0x0CF8) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0D00, 0xFFFF, 0x0000, 0xF300) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000C0000, 0x000DFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) }) CreateDWordField (CRS, 0x5C, MIN5) CreateDWordField (CRS, 0x60, MAX5) CreateDWordField (CRS, 0x68, LEN5) CreateDWordField (CRS, 0x76, MIN6) CreateDWordField (CRS, 0x7A, MAX6) CreateDWordField (CRS, 0x82, LEN6) Method (_CRS, 0, NotSerialized) { Store (MG1L, Local0) If (Local0) { Store (MG1B, MIN5) Store (MG1L, LEN5) Add (MIN5, Decrement (Local0), MAX5) } Store (MG2B, MIN6) Store (MG2L, LEN6) Store (MG2L, Local0) Add (MIN6, Decrement (Local0), MAX6) Return (CRS) } } } Name (WOTB, 0x00) Name (WSSB, 0x00) Name (WAXB, 0x00) Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (ASSB, WSSB) Store (AOTB, WOTB) Store (AAXB, WAXB) Store (Arg0, ASSB) Store (OSFL (), AOTB) Store (Zero, AAXB) } Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) WAK (Arg0) If (ASSB) { Store (WSSB, ASSB) Store (WOTB, AOTB) Store (WAXB, AAXB) } If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } Return (WAKP) } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS1) { Name (\_S1, Package (0x04) { 0x01, 0x00, 0x00, 0x00 }) } If (SS3) { Name (\_S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x06, 0x00, 0x00, 0x00 }) } Name (\_S5, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.SBRG.SIOS (Arg0) \_SB.PCI0.NB2N.NPTS (Arg0) \_SB.PCI0.SBRG.SPTS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.SBRG.SIOW (Arg0) \_SB.PCI0.NB2N.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) } } --------------020604070307000805050105 Content-Type: application/octet-stream; name="acpi_p4p800.bin" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="acpi_p4p800.bin" RFNEVC04AAABelA0UDgxAFA0UDgxMTA2BgEAAElOVEwmIAACW4BCSU9TAAxkAPR/Cv9bgT9C SU9TAVNTMV8BU1MyXwFTUzNfAVNTNF8BAARJT1NUEFRPUE0gUk9NUyBNRzFCIE1HMUwgTUcy QiBNRzJMIAhIV01CC5ACCElPMUILgAYISU8xTAqACFNQSU8KLghQTTMwCzAICEFDUEgK3ghT VVNXCv8IUE1CUwsACAhQTUxOCoAIR1BCUwuABAhHUExOCkAIU01CUwoACFNNQkwKIAhBUENC DAAAwP4IQVBDTAsAEBQPUlJJTwRwDVJSSU8AWzEUD1JETUEDcA1yRE1BAFsxCFBJQ00KABQf X1BJQwGgCWhwCqpEQkc4oQhwCqxEQkc4cGhQSUNNCE9TVlL/FEYJT1NGTACgDZKTT1NWUv+k T1NWUqAPk1BJQ00KAHAKrERCRzhwCgFPU1ZSoCdNQ1RIXF9PU18NTWljcm9zb2Z0IFdpbmRv d3MgTlQAcAoAT1NWUqE8oDpNQ1RIXF9PU18NTWljcm9zb2Z0IFdpbmRvd3NNRTogTWlsbGVu bml1bSBFZGl0aW9uAHAKAk9TVlKkT1NWUhRPBE1DVEgCoAiVh2iHaaQAcodoCgFgCEJVRjAR AmAIQlVGMRECYHBoQlVGMHBpQlVGMaIaYHZgoBWSk4OIQlVGMGAAg4hCVUYxYACkAKQBFEQJ R1BSVwIIUFJXUBIGAgoACgBwaIhQUldQCgAAcGmIUFJXUAoBAHAKAGB9YHlTUzFfCgEAYH1g eVNTMl8KAgBgfWB5U1MzXwoDAGB9YHlTUzRfCgQAYKAJe3kKAWkAYAChLXpgCgFgoBqRk09T RkwKAZNPU0ZMCgKBYIhQUldQCgEAoQuCYIhQUldQCgEApFBSV1AIV0FLUBIGAgoACgBbgERF QjABCoAKAVuBC0RFQjABREJHOAhbgERFQjEBCpAKAluBC0RFQjECREJHORAQIFxfUFJfW4ML Q1BVMQEAAAAAAFuDC0NQVTICAAAAAAAQjq4CXF9TQl8IUFIwNBJDGBgSDwQM//8IAAoATE5L RQoAEg8EDP//CQAKAExOS0YKABIPBAz//wkACgFMTktHCgASDwQM//8JAAoCTE5LSAoAEg8E DP//CQAKA0xOS0UKABIPBAz//woACgBMTktHCgASDwQM//8KAAoBTE5LSAoAEg8EDP//CgAK AkxOS0UKABIPBAz//woACgNMTktGCgASDwQM//8LAAoATE5LSAoAEg8EDP//CwAKAUxOS0UK ABIPBAz//wsACgJMTktGCgASDwQM//8LAAoDTE5LRwoAEg8EDP//DAAKAExOS0UKABIPBAz/ /wwACgFMTktGCgASDwQM//8MAAoCTE5LRwoAEg8EDP//DAAKA0xOS0gKABIPBAz//w0ACgBM TktGCgASDwQM//8NAAoBTE5LRwoAEg8EDP//DQAKAkxOS0gKABIPBAz//w0ACgNMTktFCgAS DwQM//8FAAoATE5LRwoAEg8EDP//AwAKAExOS0UKABIPBAz//wQACgBMTktICgAIQVIwNBJD FRgSDQQM//8IAAoACgAKFBINBAz//wkACgAKAAoVEg0EDP//CQAKAQoAChYSDQQM//8JAAoC CgAKFxINBAz//wkACgMKAAoUEg0EDP//CgAKAAoAChYSDQQM//8KAAoBCgAKFxINBAz//woA CgIKAAoUEg0EDP//CgAKAwoAChUSDQQM//8LAAoACgAKFxINBAz//wsACgEKAAoUEg0EDP// CwAKAgoAChUSDQQM//8LAAoDCgAKFhINBAz//wwACgAKAAoUEg0EDP//DAAKAQoAChUSDQQM //8MAAoCCgAKFhINBAz//wwACgMKAAoXEg0EDP//DQAKAAoAChUSDQQM//8NAAoBCgAKFhIN BAz//w0ACgIKAAoXEg0EDP//DQAKAwoAChQSDQQM//8FAAoACgAKFhINBAz//wMACgAKAAoU Eg0EDP//BAAKAAoAChcIUFIwMBJDDAwSDwQM//8fAAoATE5LQwoAEg8EDP//HwAKAUxOS0IK ABIPBAz//x0ACgBMTktBCgASDwQM//8dAAoBTE5LRAoAEg8EDP//HQAKAkxOS0MKABIPBAz/ /x0ACgNMTktICgASDwQM//8BAAoATE5LQQoAEg8EDP//AQAKAUxOS0IKABIPBAz//wMACgBM TktBCgASDwQM//8DAAoBTE5LQgoAEg8EDP//AwAKAkxOS0MKABIPBAz//wMACgNMTktECgAI QVIwMBJLCgwSDQQM//8fAAoACgAKEhINBAz//x8ACgEKAAoREg0EDP//HQAKAAoAChASDQQM //8dAAoBCgAKExINBAz//x0ACgIKAAoSEg0EDP//HQAKAwoAChcSDQQM//8BAAoACgAKEBIN BAz//wEACgEKAAoREg0EDP//AwAKAAoAChASDQQM//8DAAoBCgAKERINBAz//wMACgIKAAoS Eg0EDP//AwAKAwoAChMIUFIwMhISARIPBAz//wEACgBMTktDCgAIQVIwMhIQARINBAz//wEA CgAKAAoSCFBSU0ERCQoGI/jcGHkABlBSU0FQUlNCBlBSU0FQUlNDBlBSU0FQUlNEBlBSU0FQ UlNFBlBSU0FQUlNGBlBSU0FQUlNHBlBSU0FQUlNIW4KESgJQQ0kwCF9ISUQMQdAKAwhfQURS CgAIX0JCTgoACF9VSUQKABQWX1BSVACgClBJQ02kQVIwMKRQUjAwW4I2UDBQNAhfQURSDAAA HgAUD19QUlcApEdQUlcKCwoEFBZfUFJUAKAKUElDTaRBUjA0pFBSMDRbgkvQSURFMAhfQURS DAEAHwAIUkVHRgoBFBJfUkVHAqALk2gKAnBpUkVHRghUSU0wEkgGCBILBAp4CrQK8AuEAxIK BAojCiEKEAoAEgoECgsKCQoECgASDgYKcApJCjYKJwoZCg8SDgYKAAoBCgIKAQoCCgESDgYK AAoACgAKAQoBCgESCgQKBAoDCgIKABIKBAoCCgEKAAoACFRNRDARAwoUilRNRDAKAFBJTzCK VE1EMAoERE1BMIpUTUQwCghQSU8xilRNRDAKDERNQTGKVE1EMAoQQ0hORluAQ0ZHMgIKQAog W4FICkNGRzIDUE1QVARQU1BUBFBNUkkGAAJTTVBUBFNTUFQEU01SSQYAAlBTUkkEU1NSSQQA GFBNM0UBUFMzRQFTTTNFAVNTM0UBAAxQTVVUAgACUFNVVAIAAlNNVVQCAAJTU1VUAgACAEAE UE02RQFQUzZFAVNNNkUBU1M2RQFQTUNSAVBTQ1IBU01DUgFTU0NSAQAEUE1BRQFQU0FFAVNN QUUBU1NBRQEIR01QVAoACEdNVUUKAAhHTVVUCgAIR01DUgoACEdTUFQKAAhHU1VFCgAIR1NV VAoACEdTQ1IKAFuCRyRDSE4wCF9BRFIKABRMB19HVE0AeVBTQ1IKAWF9UE1DUmFgeVBNQUUK AmN5UE02RQoBZH1jZGN9UE0zRWNheVBNUFQKBGN9YWNheVBTQUUKAmN5UFM2RQoBZH1jZGN9 UFMzRWNieVBTUFQKBGN9YmNipEdUTV9QTVJJYVBNVVRQU1JJYlBTVVRgFEAYX1NUTQNwaFsx cGhUTUQweVBNQUUKAmN5UE02RQoBZH1jZGN9UE0zRWNgeVBNUFQKBGN9YGNgeVBTQUUKAmN5 UFM2RQoBZH1jZGN9UFMzRWNheVBTUFQKBGN9YWNhcFBNUklHTVBUcGBHTVVFcFBNVVRHTVVU cFBNQ1JHTUNScFBTUklHU1BUcGFHU1VFcFBTVVRHU1VUcFBTQ1JHU0NSU1RNX3BHTVBUUE1S SXBHTVVFYHBHTVVUUE1VVHBHTUNSUE1DUnBHU1VFYXBHU1VUUFNVVHBHU0NSUFNDUqANe2AK AQBwCgFQTTNFoQhwCgBQTTNFoA17YAoCAHAKAVBNNkWhCHAKAFBNNkWgDXtgCgQAcAoBUE1B RaEIcAoAUE1BRaANe2EKAQBwCgFQUzNFoQhwCgBQUzNFoA17YQoCAHAKAVBTNkWhCHAKAFBT NkWgDXthCgQAcAoBUFNBRaEIcAoAUFNBRXBHVEZfCgBpQVRBMHBHVEZfCgFqQVRBMVuCHERS VjAIX0FEUgoAFA9fR1RGAKRSQVRBQVRBMFuCHERSVjEIX0FEUgoBFA9fR1RGAKRSQVRBQVRB MVuCRyRDSE4xCF9BRFIKARRMB19HVE0AeVNTQ1IKAWF9U01DUmFgeVNNQUUKAmN5U002RQoB ZH1jZGN9U00zRWNheVNNUFQKBGN9YWNheVNTQUUKAmN5U1M2RQoBZH1jZGN9U1MzRWNieVNT UFQKBGN9YmNipEdUTV9TTVJJYVNNVVRTU1JJYlNTVVRgFEAYX1NUTQNwaFsxcGhUTUQweVNN QUUKAmN5U002RQoBZH1jZGN9U00zRWNgeVNNUFQKBGN9YGNgeVNTQUUKAmN5U1M2RQoBZH1j ZGN9U1MzRWNheVNTUFQKBGN9YWNhcFNNUklHTVBUcGBHTVVFcFNNVVRHTVVUcFNNQ1JHTUNS cFNTUklHU1BUcGFHU1VFcFNTVVRHU1VUcFNTQ1JHU0NSU1RNX3BHTVBUU01SSXBHTVVFYHBH TVVUU01VVHBHTUNSU01DUnBHU1VFYXBHU1VUU1NVVHBHU0NSU1NDUqANe2AKAQBwCgFTTTNF oQhwCgBTTTNFoA17YAoCAHAKAVNNNkWhCHAKAFNNNkWgDXtgCgQAcAoBU01BRaEIcAoAU01B RaANe2EKAQBwCgFTUzNFoQhwCgBTUzNFoA17YQoCAHAKAVNTNkWhCHAKAFNTNkWgDXthCgQA cAoBU1NBRaEIcAoAU1NBRXBHVEZfCgBpQVRBMnBHVEZfCgFqQVRBM1uCHERSVjAIX0FEUgoA FA9fR1RGAKRSQVRBQVRBMluCHERSVjEIX0FEUgoBFA9fR1RGAKRSQVRBQVRBMxRNE0dUTV8P cP9QSU8wcP9QSU8xcP9ETUEwcP9ETUExcAoQQ0hORqAFUkVHRqEGpFRNRDCgEXtpCiAAfUNI TkYKAkNITkZwiYOIVElNMAoBAAFoAAoACgBmcIOIg4hUSU0wCgAAZgBncGdETUEwcGdQSU8w oBF7bAogAH1DSE5GCghDSE5GcImDiFRJTTAKAgABawAKAAoAZnCDiIOIVElNMAoAAGYAZ3Bn RE1BMXBnUElPMaA+e2kKBwBwamWgC3tpCgIAcmUKAmWgC3tpCgQAcmUKBGVwg4iDiFRJTTAK AwBlAERNQTB9Q0hORgoBQ0hORqA+e2wKBwBwbWWgC3tsCgIAcmUKAmWgC3tsCgQAcmUKBGVw g4iDiFRJTTAKAwBlAERNQTF9Q0hORgoEQ0hORnBUTUQwWzGkVE1EMBRAI1NUTV8IoAVSRUdG oQakVE1EMHAKAEdNVUVwCgBHTVVUcAoAR1NVRXAKAEdTVVSgRAd7Q0hORgoBAHCJg4hUSU0w CgMAAkRNQTAACgAKAGCgCZRgCgVwCgVgcIOIg4hUSU0wCgQAYABHTVVUfUdNVUUKAUdNVUWg EJRgCgJ9R01VRQoCR01VRaAblGAKBHtHTVVFCv1HTVVFfUdNVUUKBEdNVUWhN6A1fZNQSU8w /5NQSU8wCgAAoCR7lURNQTD/lERNQTAKAABwRE1BMFBJTzB9R01VRQqAR01VRaBEB3tDSE5G CgQAcImDiFRJTTAKAwACRE1BMQAKAAoAYKAJlGAKBXAKBWBwg4iDiFRJTTAKBABgAEdTVVR9 R1NVRQoBR1NVRaAQlGAKAn1HU1VFCgJHU1VFoBuUYAoEe0dTVUUK/UdTVUV9R1NVRQoER1NV RaE3oDV9k1BJTzH/k1BJTzEKAACgJHuVRE1BMf+URE1BMQoAAHBETUExUElPMX1HU1VFCoBH U1VFoBR7Q0hORgoCAH1HTVVFCiBHTVVFoBR7Q0hORgoIAH1HU1VFCiBHU1VFe4mDiFRJTTAK AAAEUElPMAAKAAoACgdgcIOIg4hUSU0wCgEAYABhcGFHTVBUoBCVYAoDfUdNVUUKUEdNVUV7 iYOIVElNMAoAAARQSU8xAAoACgAKB2Bwg4iDiFRJTTAKAgBgAGFwYUdTUFSgEJVgCgN9R1NV RQpQR1NVRQhBVDAxEQoKBwMAAAAAAO8IQVQwMhEKCgcAAAAAAACQCEFUMDMRCgoHAAAAAAAA xghBVDA0EQoKBwAAAAAAAJEIQVRBMBEDCh0IQVRBMREDCh0IQVRBMhEDCh0IQVRBMxEDCh0I QVRBQhEDCh2MQVRBQgoAQ01EQxRMBUdURkILd0NNREMKOGByYAoIYVsTQVRBQmEKOENNRFh3 Q01EQwoHYIxBVEFCcmAKAgBBMDAxjEFUQUJyYAoGAEEwMDVwaENNRFhwaUEwMDFwakEwMDV1 Q01EQxRCJEdURl8KcGlbMXAKAENNREMISUQ0OQsADAhJRDU5CgAISUQ1MwoECElENjMLAA8I SUQ4OAsADwhJUkRZCgEIUElPVAoACERNQVQKAKBNBZOHaQsAAotpCmJJVzQ5cElXNDlJRDQ5 i2kKaklXNTNwSVc1M0lENTOLaQp+SVc2M3BJVzYzSUQ2M4tpCnZJVzU5cElXNTlJRDU5i2kK sElXODhwSVc4OElEODhwCqBnoEgFaHAKsGd7Q0hORgoISVJEWaASe0NITkYKEABwUElPMVBJ T1ShCnBQSU8wUElPVKAne0NITkYKBACgEntDSE5GChAAcERNQTFETUFUoQpwRE1BMERNQVSh KHtDSE5GCgJJUkRZcFBJTzBQSU9UoBJ7Q0hORgoBAHBETUEwRE1BVKBHBJCQe0lENTMKBAB7 SUQ4OAsA/wBETUFUcImDiFRJTTAKAwACRE1BVAAKAAoAYaAJlGEKBXAKBWFHVEZCQVQwMX0K QGEAZ6FGBKBDBJB7SUQ2MwsA/wBQSU9Ue4mDiFRJTTAKAAAEUElPVAAKAAoACgNgfQogg4iD iFRJTTAKBwBgAGFHVEZCQVQwMWFnoDhJUkRZe4mDiFRJTTAKAAAEUElPVAAKAAoACgdgfQoI g4iDiFRJTTAKBgBgAGFHVEZCQVQwMWFnoRegFXtJRDQ5CwAEAEdURkJBVDAxCgFnoCSQe0lE NTkLAAEAe0lENTkK/wBHVEZCQVQwM3tJRDU5Cv8AZ3BBVEFCWzGkQVRBQhQsUkFUQQGMaAoA Q01ETndDTUROCjhgWxNoCghgUkVUQnBSRVRCWzGkUkVUQluCD0lERTEIX0FEUgwCAB8AW4If TUM5NwhfQURSDAYAHwAUD19QUlcApEdQUlcKBQoEW4IfVVNCMQhfQURSDAAAHQAUD19QUlcA pEdQUlcKAwoEW4IfVVNCMghfQURSDAEAHQAUD19QUlcApEdQUlcKBAoEW4IfVVNCMwhfQURS DAIAHQAUD19QUlcApEdQUlcKDAoEW4IfVVNCNAhfQURSDAMAHQAUD19QUlcApEdQUlcKDgoE W4IfRVVTQghfQURSDAcAHQAUD19QUlcApEdQUlcKDQoEW4KOXgFTQlJHCF9BRFIMAAAfAFuC K1BJQ18IX0hJRAtB0AhfQ1JTERgKFUcBIAAgAAACRwGgAKAAAAIiBAB5AFuCTgRETUFECF9I SUQMQdACAAhfQ1JTETgKNSoQBEcBAAAAAAAQRwGBAIEAAANHAYcAhwAAAUcBiQCJAAADRwGP AI8AAAFHAcAAwAAAIHkAW4IlVE1SXwhfSElEDEHQAQAIX0NSUxEQCg1HAUAAQAAABCIBAHkA W4IlUlRDMAhfSElEDEHQCwAIX0NSUxEQCg1HAXAAcAAAAiIAAXkAW4JEBVBTMksIX0hJRAxB 0AMDCF9DSUQMQdADCxQbX1NUQQB5CgEKCmCgC3tJT1NUYACkCg+kCgAIX0NSUxEYChVHAWAA YAAAAUcBZABkAAABIgIAeQAUFC5QUzJLX1BSVwCkR1BSVwodCgRbgkQIUFMyTQhfSElEDEHQ DwMIX0NJRAxB0A8TFBtfU1RBAHkKAQoMYKALe0lPU1RgAKQKD6QKAAhDUlMxEQgKBSIAEHkA CENSUzIRGAoVRwFgAGAAAAFHAWQAZAAAASIAEHkAFCFfQ1JTAHkKAQoKYKANe0lPU1RgAKRD UlMxoQakQ1JTMhQULlBTMk1fUFJXAKRHUFJXCh0KBFuCIlNQS1IIX0hJRAxB0AgACF9DUlMR DQoKRwFhAGEAAAF5AFuCJUNPUFIIX0hJRAxB0AwECF9DUlMREAoNRwHwAPAAABAiACB5AFuC QBxVQVIxCF9VSUQKAQhfSElEDEHQBQEUDV9TVEEApERTVEEKABQOX0RJUwBEQ05UCgAKABQR X0NSUwCkUENSUwoACgEKCBQNX1NSUwFQU1JTaAoAFAtfUFJTAKRDTVBSCENNUFIRRAQKQDEA RwH4A/gDBAgiEAAwRwH4A/gDAQgi+BwwRwH4AvgCAQgi+BwwRwHoA+gDAQgi+BwwRwHoAugC AQgi+Bw4eQAIUEJVRhEQCg1HAQAAAAABCCIBAHkAFEwKUENSUwOMUEJVRgoCSU9MT4xQQlVG CgNJT0hJi1BCVUYKAklPSEyLUEJVRgoESU9STIxQQlVGCgZBTE1OjFBCVUYKB0xFTkeMUEJV RgoJSVJRTEVORkdDR0xEaHBJT0FISU9ISXBJT0FMSU9MT3BJT0hMSU9STHBpQUxNTqAPk0lP TE8KvHAKBExFTkehB3BqTEVOR3ABYHlgSU5UUklSUUxFWEZHpFBCVUYUQgVQU1JTAoxoCgJQ T0xCjGgKA1BPSEKLaAoJUElSUUVORkdDR0xEaXBQT0xCSU9BTHBQT0hCSU9BSIJQSVJRYHRg CgFJTlRScAFBQ1RSRVhGR1uCSwlVQVIyCF9VSUQKAghfSElEDEHQBQEUDV9TVEEApERTVEEK ARQOX0RJUwBEQ05UCgEKABQNX0NSUwCkRENSUwoBFA1fU1JTAURTUlNoCgEUC19QUlMApENN UFIIQ01QUhE5CjYi+BwwKgAARwH4A/gDAQgwKgAARwH4AvgCAQgwKgAARwHoA+gDAQgwKgAA RwHoAugCAQg4eQBbgkkPRkRDXwhfSElEDEHQBwAIX0ZERRIMBQoBCgAKAgoCCgIUDV9TVEEA pERTVEEKAxQOX0RJUwBEQ05UCgMKABRIBV9DUlMARENSUwoDcElSUU1JUlFFcERNQU1ETUFF cElPMTFJTzIxcElPMTJJTzIycAoGTEVOMnJJTzIxCgdJTzMxcElPMzFJTzMycAoBTEVOM6RD UlMyFA1fU1JTAURTUlNoCgMIX1BSUxFNBApJMQAiQAAqBABHAfAD8AMBBkcB9wP3AwEBMCL4 HCoOAEcB8APwAwEGRwH3A/cDAQEwIvgcKg4ARwFwA3ADAQZHAXcDdwMBATh5AFuCQTxMUFRF CF9VSUQKARQcX0hJRACgDUxQVE0KAqQMQdAEAaEHpAxB0AQAFA1fU1RBAKREU1RBCgIUDl9E SVMARENOVAoCCgAUDV9DUlMApEVDUlMKAhQNX1NSUwFFU1JTaAoCFBpfUFJTAKAMTFBUTQoC pEVQUFKhBqRMUFBSCExQUFIRNwo0MQBHAXgDeAMBCCKAADBHAXgDeAMBCCL4HDBHAXgCeAIB CCL4HDBHAbwDvAMBBCL4HDh5AAhFUFBSEUQGCmAxAEcBeAN4AwEIRwF4B3gHAQQigAAqCAAw RwF4A3gDAQhHAXgHeAcBBCL4HCoLADBHAXgCeAIBCEcBeAZ4BgEEIvgcKgsAMEcBvAO8AwEE RwG8B7wHAQQi+BwqCwA4eQAIRUJVRhEbChhHAXgDeAMBCEcBeAd4BwEEIoAAKgAAeQCMRUJV RgoCRVBMT4xFQlVGCgNFUEhJi0VCVUYKAkVQSEyLRUJVRgoERVBSTItFQlVGCgZBTE0xi0VC VUYKCkU0TE+LRUJVRgoMRTRSTItFQlVGCg5FTE5Hi0VCVUYKEUVJUlGMRUJVRgoURURNQQhQ QlVGERAKDUcBeAN4AwEIIoAAeQCMUEJVRgoCUFBMT4xQQlVGCgNQUEhJi1BCVUYKAlBQSEyL UEJVRgoEUFBSTItQQlVGCgZBTE0wi1BCVUYKCVBJUlEUQw5FQ1JTAUVORkdDR0xEaHBJT0FI RVBISXBJT0FMRVBMT3BJT0FIUFBISXBJT0FMUFBMT3BFUEhMRVBSTHBQUEhMUFBSTHtPUFQw CgJgoBdgckVQSEwLAARFNExPcEU0TE9FNFJMoBmTRVBITAu8A3ALAQRBTE0xcAsBBEFMTTCh EXALAQhBTE0xcAsBCEFMTTBwAWBwSU5UUmF5YGFFSVJReWBhUElSUXBETUNIYaAMlGEKA3AK AEVETUGhC3ABYHlgYUVETUF7T1BUMAoCYEVYRkegB2CkRUJVRqEGpFBCVUYUQA1FU1JTAkVO RkdDR0xEaYxoCgJMT0VQjGgKA0hJRVB7T1BUMAoCYKASYItoChFJUlFFjGgKFERNQUWhCYto CglJUlFQcExPRVBJT0FMcEhJRVBJT0FIe09QVDAKAmCgH2CgE0lSUUWCSVJRRWB0YAoBSU5U UqEIcAoASU5UUqEeoBNJUlFQgklSUVBgdGAKAUlOVFKhCHAKAElOVFJ7T1BUMAoCYKAfYKAT RE1BRYJETUFFYHRgCgFETUNIoQhwCgRETUNIcAFBQ1RSRVhGR1uCQBBHQU1FCF9ISUQMQdCw LxQNX1NUQQCkRFNUQQoIFA5fRElTAERDTlQKCAoACEdNQ1IRDQoKRwEAAgACAQh5ABRBBl9D UlMAjEdNQ1IKAklPTE+MR01DUgoDSU9ISYtHTUNSCgJJT0hMi0dNQ1IKBElPUkxFTkZHQ0dM RAoIcElPQUhJT0hJcElPQUxJT0xPcElPSExJT1JMRVhGR6RHTUNSFD5fU1JTAYxoCgJQT0xC jGgKA1BPSEJFTkZHQ0dMRAoIcFBPTEJJT0FMcFBPSEJJT0FIRENOVAoICgFFWEZHCF9QUlMR GQoWMQBHAQACAAIBCDBHAQgCCAIBCDh5AFuCQhNNSURJCF9ISUQMQdCwBhQNX1NUQQCkRFNU QQoFFA5fRElTAERDTlQKBQoACE1EQ1IREAoNRwEAAwADAQIiIAB5ABRHB19DUlMAjE1EQ1IK AklPTE+MTURDUgoDSU9ISYtNRENSCgJJT0hMi01EQ1IKBElPUkyLTURDUgoJTUlSUUVORkdD R0xECgVwSU9IMklPSElwSU9MMklPTE9wSU9ITElPUkx5CgFJTlRSTUlSUUVYRkekTURDUhRF BV9TUlMBjGgKAlBPTEKMaAoDUE9IQotoCglNSVJRRU5GR0NHTEQKBXBQT0xCSU9MMnBQT0hC SU9IMoJNSVJRYHRgCgFJTlRSRENOVAoFCgFFWEZHCF9QUlMRGwoYMEcBAAMAAwECMEcBMAMw AwECOCIgDnkAW4JNDVNJT1IIX0hJRAxB0AwCFAtfVUlEAKRTUElPCENSU18RHQoaRwEAAAAA AABHAQAAAAAAAEcBkAKQAgAIeQAUTQlfQ1JTAKBNBJCSk1NQSU8L8AOUU1BJTwrwi0NSU18K AkdQMTCLQ1JTXwoER1AxMYxDUlNfCgdHUEwxcFNQSU9HUDEwcFNQSU9HUDExcAoCR1BMMaBC BElPMUKLQ1JTXwoKR1AyMItDUlNfCgxHUDIxjENSU18KD0dQTDJwSU8xQkdQMjBwSU8xQkdQ MjFwSU8xTEdQTDKkQ1JTXwhEQ0FUEiwVCgIKAwoBCgAK/woHCv8K/woHCv8K/wr/Cv8K/wr/ Cv8KBgoICgkK/wr/FBpFTkZHAXAKh0lORFhwCodJTkRYcGhMRE5fFA1FWEZHAHAKqklORFgU HUxQVE0BRU5GR0NHTERoe09QVDAKAmBFWEZHpGAUMFVISUQBoCOTaAoBRU5GR0NHTERoe09Q VDEKOGBFWEZHoAhgpAxB0AUQpAxB0AUBFEoHU0lPSwFFTkZHCgp7Cv9PUFQzT1BUM3toCjBg e09QVDYKz09QVDZ9T1BUNmBPUFQ2cGhhe2gKBWB7T1BUOQr6T1BUOX1PUFQ5YE9QVDmgHZNo AHAKAEFDVFJwCghMRE5fe09QVDUKP09QVDWhCHAKAUFDVFJFWEZHFC4uUFMyS19QU1cBRU5G RwoKe09QVDYK709QVDagDWh9T1BUNgoQT1BUNkVYRkcULi5QUzJNX1BTVwFFTkZHCgp7T1BU NgrfT1BUNqANaH1PUFQ2CiBPUFQ2RVhGRxQUU0lPUwFwDVNJT1MAWzFTSU9L/xQUU0lPVwFw DVNJT1cAWzFTSU9LABQ8U0lPSABwDVNJT0gAWzFFTkZHCgqgEHtPUFQzChAAhlBTMksKAqAQ e09QVDMKIACGUFMyTQoCU0lPSwBbgElPSUQBU1BJTwoCW4EQSU9JRAFJTkRYCERBVEEIW4ZP CUlORFhEQVRBAQA4TEROXwgAQA1GRENQAQACTFBUUAFVUkFQAVVSQlABAEoGQUNUUggASBdJ T0FICElPQUwISU9IMghJT0wyCABABklOVFIIABhETUNICABINUNSRTAIQ1JFMQhDUkUyCENS RTMIQ1JFNAgASAVPUFQwCE9QVDEIT1BUMghPUFQzCAAIT1BUNQhPUFQ2CAAQT1BUOQgUD0NH TEQBpIOIRENBVGgAFEgGRFNUQQFFTkZHQ0dMRGhwQUNUUmBFWEZHoAiTYAr/pAoAoAqTaAoF emAKAmCgCpNoCgh6YAoBYHtgCgFgfUlPU1R5YGgASU9TVKAFYKQKD6EWoA97eQoBaABJT1NU AKQKDaEEpAoAFEgIRENOVAJFTkZHQ0dMRGh5SU9BSAoIYX1JT0FMYWFSUklPaGlhCgigHZCV RE1DSAoEkpN7RE1DSAoDYQoAUkRNQWhpdWFwaWFwCgFioA+TaAoFeWkKAmF5YgoCYqAPk2gK CHlpCgFheWIKAWJwQUNUUmCAYmN7YGNgfWBhYHBgQUNUUkVYRkcIQ1JTMRETChAiAAAqAABH AQAAAAABAHkAi0NSUzEKAUlSUU2MQ1JTMQoERE1BTYtDUlMxCghJTzExi0NSUzEKCklPMTKM Q1JTMQoNTEVOMQhDUlMyERsKGCJAACoEAEcBAAAAAAEARwEAAAAAAQB5AItDUlMyCgFJUlFF jENSUzIKBERNQUWLQ1JTMgoISU8yMYtDUlMyCgpJTzIyjENSUzIKDUxFTjKLQ1JTMgoQSU8z MYtDUlMyChJJTzMyjENSUzIKFUxFTjMUTQhEQ1JTAUVORkdDR0xEaHlJT0FICghJTzExfUlP QUxJTzExSU8xMXBJTzExSU8xMnSCSU8xMQAKAWB5CgFgTEVOMaAQSU5UUnkKAUlOVFJJUlFN oQhwCgBJUlFNoBx9lERNQ0gKA5N7RE1DSAoDYQoAAHAKAERNQU2hCXkKAWFETUFNRVhGR6RD UlMxFEMIRFNSUwKLaAoBSVJRTYxoCgRETUFNi2gKCElPMTFFTkZHQ0dMRGl7SU8xMQr/SU9B THpJTzExCghJT0FIoBNJUlFNgklSUU1gdGAKAUlOVFKhCHAKAElOVFKgE0RNQU2CRE1BTWB0 YAoBRE1DSKEIcAoERE1DSEVYRkdEQ05UaQoBW4JCGVJNU0MIX0hJRAxB0AwCCF9VSUQKEAhD UlNfEUYKCqJHARAAEAAAEEcBIgAiAAAeRwFEAEQAABxHAWIAYgAAAkcBZQBlAAALRwFyAHIA AA5HAYAAgAAAAUcBhACEAAADRwGIAIgAAAFHAYwAjAAAA0cBkACQAAAQRwGiAKIAAB5HAeAA 4AAAEEcB0ATQBAACRwEAAAAAAABHAQAAAAAAAEcBAAAAAAAAhgkAAQAA0v4AAAcAhgkAAQAA sP8AABAAeQAUTgxfQ1JTAItDUlNfCnJHUDAwi0NSU18KdEdQMDGMQ1JTXwp3R1AwTHBQTUJT R1AwMHBQTUJTR1AwMXBQTUxOR1AwTKBCBFNNQlOLQ1JTXwp6R1AxMItDUlNfCnxHUDExjENS U18Kf0dQMUxwU01CU0dQMTBwU01CU0dQMTFwU01CTEdQMUygQgRHUEJTi0NSU18KgkdQMjCL Q1JTXwqER1AyMYxDUlNfCodHUDJMcEdQQlNHUDIwcEdQQlNHUDIxcEdQTE5HUDJMpENSU19b gkMIUDNGNghfSElEDEHQDAIIX1VJRAv2AxRLBF9TVEEAcAoPYXBcLwRfU0JfUENJMElERTBQ QU1EYKAJk2AKinAKAGFwXC8EX1NCX1BDSTBJREUxU0FNRGCgCZNgCopwCgBhpGEIQ1JTXxEN CgpHAfYD9gMAAXkAFAtfQ1JTAKRDUlNfW4JOCU9NU0MIX0hJRAxB0AwCCF9VSUQKAAhDUlNf ER0KGoYJAAAAAAAAAAAAAIYJAAAAAAAAAAAAAHkAFEMGX0NSUwCgRgVBUENCikNSU18KCE1M MDGKQ1JTXwoETUIwMYpDUlNfChRNTDAyikNSU18KEE1CMDJwQVBDQk1CMDFwQVBDTE1MMDFw DAAA4P5NQjAycAsAEE1MMDKkQ1JTX1uCTRRcLl9TQl9STUVNCF9ISUQMQdAMAQhfVUlECgEI Q1JTXxFCBAo+hgkAAQAAAAAAAAoAhgkAAAAAAAAAAAAAhgkAAAAADgAAAAIAhgkAAQAAEAAA AAAAhgkAAAAAAAAAAAAAeQAURw5fQ1JTAIpDUlNfChBCQVMxikNSU18KFExFTjGKQ1JTXwoc QkFTMopDUlNfCiBMRU4yikNSU18KLExFTjOKQ1JTXwo0QkFTNIpDUlNfCjhMRU40oAVPU0ZM oUEGoChNRzFCoCKUTUcxQgwAAAwAcAwAAAwAQkFTMXRNRzFCQkFTMUxFTjGhFXAMAAAMAEJB UzFwDAAAAgBMRU4xoB9yTUcxQk1HMUxgcGBCQVMydAwAABAAQkFTMkxFTjJ0TUcyQgwAABAA TEVOM3JNRzJCTUcyTEJBUzR0CgBCQVM0TEVONKRDUlNfW4IPUDBQMQhfQURSDAAAAQBbgkgE UDBQMghfQURSDAAAAwAUFl9QUlQAoApQSUNNpEFSMDKkUFIwMluCH0lMQU4IX0FEUgwAAAEA FA9fUFJXAKRHUFJXChgKBBBIFFxfR1BFFCVfTDBCAIZcLwNfU0JfUENJMFAwUDQKAoZcLl9T Ql9QV1JCCgIUJV9MMDUAhlwvA19TQl9QQ0kwTUM5NwoChlwuX1NCX1BXUkIKAhQlX0wwMwCG XC8DX1NCX1BDSTBVU0IxCgKGXC5fU0JfUFdSQgoCFCVfTDA0AIZcLwNfU0JfUENJMFVTQjIK AoZcLl9TQl9QV1JCCgIUJV9MMEMAhlwvA19TQl9QQ0kwVVNCMwoChlwuX1NCX1BXUkIKAhQl X0wwRQCGXC8DX1NCX1BDSTBVU0I0CgKGXC5fU0JfUFdSQgoCFCVfTDBEAIZcLwNfU0JfUENJ MEVVU0IKAoZcLl9TQl9QV1JCCgIUGV9MMUQAXC8EX1NCX1BDSTBTQlJHU0lPSBQcX0wxOACG XC8EX1NCX1BDSTBQMFAySUxBTgoCW4IdUFdSQghfSElEDEHQDAwIX1VJRAqqCF9TVEEKC1uA XC8EX1NCX1BDSTBTQlJHUElYMAIKYAoMW4E/XC8EX1NCX1BDSTBTQlJHUElYMAFQSVJBCFBJ UkIIUElSQwhQSVJECAAgUElSRQhQSVJGCFBJUkcIUElSSAgQQUdcX1NCXwhCVUZBEQkKBiMA gBh5AItCVUZBCgFJUkEwW4JICExOS0EIX0hJRAxB0AwPCF9VSUQKARQZX1NUQQB7UElSQQqA YKAFYKQKCaEEpAoLFAtfUFJTAKRQUlNBFBFfRElTAH1QSVJBCoBQSVJBFBtfQ1JTAHtQSVJB Cg9geQoBYElSQTCkQlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQSVJBW4JICExOS0II X0hJRAxB0AwPCF9VSUQKAhQZX1NUQQB7UElSQgqAYKAFYKQKCaEEpAoLFAtfUFJTAKRQUlNC FBFfRElTAH1QSVJCCoBQSVJCFBtfQ1JTAHtQSVJCCg9geQoBYElSQTCkQlVGQRQcX1NSUwGL aAoBSVJBX4JJUkFfYHZgcGBQSVJCW4JICExOS0MIX0hJRAxB0AwPCF9VSUQKAxQZX1NUQQB7 UElSQwqAYKAFYKQKCaEEpAoLFAtfUFJTAKRQUlNDFBFfRElTAH1QSVJDCoBQSVJDFBtfQ1JT AHtQSVJDCg9geQoBYElSQTCkQlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQSVJDW4JI CExOS0QIX0hJRAxB0AwPCF9VSUQKBBQZX1NUQQB7UElSRAqAYKAFYKQKCaEEpAoLFAtfUFJT AKRQUlNEFBFfRElTAH1QSVJECoBQSVJEFBtfQ1JTAHtQSVJECg9geQoBYElSQTCkQlVGQRQc X1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQSVJEW4JICExOS0UIX0hJRAxB0AwPCF9VSUQKBRQZ X1NUQQB7UElSRQqAYKAFYKQKCaEEpAoLFAtfUFJTAKRQUlNFFBFfRElTAH1QSVJFCoBQSVJF FBtfQ1JTAHtQSVJFCg9geQoBYElSQTCkQlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQ SVJFW4JICExOS0YIX0hJRAxB0AwPCF9VSUQKBhQZX1NUQQB7UElSRgqAYKAFYKQKCaEEpAoL FAtfUFJTAKRQUlNGFBFfRElTAH1QSVJGCoBQSVJGFBtfQ1JTAHtQSVJGCg9geQoBYElSQTCk QlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQSVJGW4JICExOS0cIX0hJRAxB0AwPCF9V SUQKBxQZX1NUQQB7UElSRwqAYKAFYKQKCaEEpAoLFAtfUFJTAKRQUlNHFBFfRElTAH1QSVJH CoBQSVJHFBtfQ1JTAHtQSVJHCg9geQoBYElSQTCkQlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFf YHZgcGBQSVJHW4JICExOS0gIX0hJRAxB0AwPCF9VSUQKCBQZX1NUQQB7UElSSAqAYKAFYKQK CaEEpAoLFAtfUFJTAKRQUlNIFBFfRElTAH1QSVJICoBQSVJIFBtfQ1JTAHtQSVJICg9geQoB YElSQTCkQlVGQRQcX1NSUwGLaAoBSVJBX4JJUkFfYHZgcGBQSVJIEEsEXF9TQl8QQwRQQ0kw W4BJT0IyAQqyCgJbgRBJT0IyAVNNSUMIU01JUwgUH19JTkkAoA9bEl9PU0lgcApYU01JQ6EI cAqFU01JQxBMIVxfU0JfEE0gUENJMAhDUlNfEUwICoiIDQACDAAAAAAA/wAAAAABRwH4DPgM AQiIDQABDAMAAAAA9wwAAPgMiA0AAQwDAAAADf//AAAA84cXAAAMAwAAAAAAAAoA//8LAAAA AAAAAAIAhxcAAAwDAAAAAAAAAAAAAAAAAAAAAAAAAACHFwAADAMAAAAAAAAAAAAAAAAAAAAA AAAAAHkAikNSU18KXE1JTjWKQ1JTXwpgTUFYNYpDUlNfCmhMRU41ikNSU18Kdk1JTjaKQ1JT Xwp6TUFYNopDUlNfCoJMRU42FEEHX0NSUwBwTUcxQk1JTjVwTUcxTExFTjVwTUcxTGCgDWBy TUlONXZgTUFYNXBNRzJCTUlONnJNSU42DAAAAQBNSU42cE1HMkxMRU42dExFTjYMAAABAExF TjZwTEVONmByTUlONnZgTUFYNqRDUlNfFB9fUzNEAKATkZNPU0ZMCgGTT1NGTAoCpAoCoQSk CgMUJC5VU0IxX1MzRACgE5GTT1NGTAoBk09TRkwKAqQKAqEEpAoDFCQuVVNCMl9TM0QAoBOR k09TRkwKAZNPU0ZMCgKkCgKhBKQKAxQkLlVTQjNfUzNEAKATkZNPU0ZMCgGTT1NGTAoCpAoC oQSkCgMUJC5VU0I0X1MzRACgE5GTT1NGTAoBk09TRkwKAqQKAqEEpAoDCE5BVEESBwEMAQAf AAhTTFBTCgAIV1IwMAoACFdSMDEKAAhXUjAyCgAUTQdfUFRTAXBoREJHOFBUU19ocAoAiFdB S1AKAABwCgCIV0FLUAoBAKASkJNoCgSTT1NGTAoCWyILuAtwQVBXUldSMDBwU1BMVldSMDFw T1NGR1dSMDJwaFNQTFZwT1NGTE9TRkdwAVBTMVNwAVBTMUVwAVwuX1NCX1NMUFMUSglfV0FL AXloCgREQkc4cABQUzFFoAVJT1dLoQ6GXC5fU0JfUFdSQgoCoBZ7QVBXUgoCAIZcLl9TQl9Q V1JCCgJwAVBXQlRwV1IwMEFQV1JwV1IwMVNQTFZwV1IwMk9TRkdwAFwuX1NCX1NMUFNXQUtf aKAVg4hXQUtQCgAAcAoAiFdBS1AKAQChC3BoiFdBS1AKAQCkV0FLUFuAUE1TMAFQTUJTCgRb gSRQTVMwAQAKUlRDUwEABFdBS1MBAAhQV0JUAQABUlRDRQEABVuAU01JRQFQTTMwCghbgRZT TUlFAQAEUFMxRQEAH1BTMVMBABtbgFwvA19TQl9QQ0kwU0tQRAJBQ1BICgJbgSJcLwNfU0Jf UENJMFNLUEQBQVBXUghTUExWA09TRkcCAANbgENNT1MBCnAKAluBEENNT1MBQ0lEWAhDREFU CFuGEkNJRFhDREFUAQBAN1dLVFAIW4BJT1JLAQqzCgFbgQtJT1JLAUlPV0sIEChcLwNfU0Jf UENJMElERTBbgFBBUjkCCgkKAVuBC1BBUjkBUEFNRAgQKFwvA19TQl9QQ0kwSURFMVuAU0FS OQIKCQoBW4ELU0FSOQFTQU1ECAhcX1MwXxIKBAoACgAKAAoAoBZTUzFfCFxfUzFfEgoECgEK AAoACgCgFlNTM18IXF9TM18SCgQKBQoACgAKAKAWU1M0XwhcX1M0XxIKBAoGCgAKAAoACFxf UzVfEgoECgcKAAoACgAUHVBUU18BoBZoXC8EX1NCX1BDSTBTQlJHU0lPU2gUGldBS18BXC8E X1NCX1BDSTBTQlJHU0lPV2g= --------------020604070307000805050105 Content-Type: text/plain; name="acpi_p4p800.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="acpi_p4p800.txt" /* * Intel ACPI Component Architecture * AML Disassembler version 20041119 * * Disassembly of /tmp/acpidump.BjPuWc, Mon Oct 23 18:49:27 2006 */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "P4P81", "P4P81106", 262) { OperationRegion (BIOS, SystemMemory, 0x7FF40064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TOPM, 32, ROMS, 32, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32 } Name (HWMB, 0x0290) Name (IO1B, 0x0680) Name (IO1L, 0x80) Name (SPIO, 0x2E) Name (PM30, 0x0830) Name (ACPH, 0xDE) Name (SUSW, 0xFF) Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0480) Name (GPLN, 0x40) Name (SMBS, 0x00) Name (SMBL, 0x20) Name (APCB, 0xFEC00000) Name (APCL, 0x1000) Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, 0x00) Method (_PIC, 1, NotSerialized) { If (Arg0) { Store (0xAA, DBG8) } Else { Store (0xAC, DBG8) } Store (Arg0, PICM) } Name (OSVR, Ones) Method (OSFL, 0, NotSerialized) { If (LNot (LEqual (OSVR, Ones))) { Return (OSVR) } If (LEqual (PICM, 0x00)) { Store (0xAC, DBG8) } Store (0x01, OSVR) If (MCTH (\_OS, "Microsoft Windows NT")) { Store (0x00, OSVR) } Else { If (MCTH (\_OS, "Microsoft WindowsME: Millennium Edition")) { Store (0x02, OSVR) } } Return (OSVR) } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), 0x01, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) { Return (Zero) } } Return (One) } Method (GPRW, 2, NotSerialized) { Name (PRWP, Package (0x02) { 0x00, 0x00 }) Store (Arg0, Index (PRWP, 0x00)) Store (Arg1, Index (PRWP, 0x01)) Store (0x00, Local0) Or (Local0, ShiftLeft (SS1, 0x01), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (0x01, Arg1), Local0)) {} Else { ShiftRight (Local0, 0x01, Local0) If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { FindSetLeftBit (Local0, Index (PRWP, 0x01)) } Else { FindSetRightBit (Local0, Index (PRWP, 0x01)) } } Return (PRWP) } Name (WAKP, Package (0x02) { 0x00, 0x00 }) OperationRegion (DEB0, SystemIO, 0x80, 0x01) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, 0x90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Scope (\_PR) { Processor (CPU1, 0x01, 0x00000000, 0x00) {} Processor (CPU2, 0x02, 0x00000000, 0x00) {} } Scope (\_SB) { Name (PR04, Package (0x18) { Package (0x04) { 0x0008FFFF, 0x00, LNKE, 0x00 }, Package (0x04) { 0x0009FFFF, 0x00, LNKF, 0x00 }, Package (0x04) { 0x0009FFFF, 0x01, LNKG, 0x00 }, Package (0x04) { 0x0009FFFF, 0x02, LNKH, 0x00 }, Package (0x04) { 0x0009FFFF, 0x03, LNKE, 0x00 }, Package (0x04) { 0x000AFFFF, 0x00, LNKG, 0x00 }, Package (0x04) { 0x000AFFFF, 0x01, LNKH, 0x00 }, Package (0x04) { 0x000AFFFF, 0x02, LNKE, 0x00 }, Package (0x04) { 0x000AFFFF, 0x03, LNKF, 0x00 }, Package (0x04) { 0x000BFFFF, 0x00, LNKH, 0x00 }, Package (0x04) { 0x000BFFFF, 0x01, LNKE, 0x00 }, Package (0x04) { 0x000BFFFF, 0x02, LNKF, 0x00 }, Package (0x04) { 0x000BFFFF, 0x03, LNKG, 0x00 }, Package (0x04) { 0x000CFFFF, 0x00, LNKE, 0x00 }, Package (0x04) { 0x000CFFFF, 0x01, LNKF, 0x00 }, Package (0x04) { 0x000CFFFF, 0x02, LNKG, 0x00 }, Package (0x04) { 0x000CFFFF, 0x03, LNKH, 0x00 }, Package (0x04) { 0x000DFFFF, 0x00, LNKF, 0x00 }, Package (0x04) { 0x000DFFFF, 0x01, LNKG, 0x00 }, Package (0x04) { 0x000DFFFF, 0x02, LNKH, 0x00 }, Package (0x04) { 0x000DFFFF, 0x03, LNKE, 0x00 }, Package (0x04) { 0x0005FFFF, 0x00, LNKG, 0x00 }, Package (0x04) { 0x0003FFFF, 0x00, LNKE, 0x00 }, Package (0x04) { 0x0004FFFF, 0x00, LNKH, 0x00 } }) Name (AR04, Package (0x18) { Package (0x04) { 0x0008FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x0009FFFF, 0x00, 0x00, 0x15 }, Package (0x04) { 0x0009FFFF, 0x01, 0x00, 0x16 }, Package (0x04) { 0x0009FFFF, 0x02, 0x00, 0x17 }, Package (0x04) { 0x0009FFFF, 0x03, 0x00, 0x14 }, Package (0x04) { 0x000AFFFF, 0x00, 0x00, 0x16 }, Package (0x04) { 0x000AFFFF, 0x01, 0x00, 0x17 }, Package (0x04) { 0x000AFFFF, 0x02, 0x00, 0x14 }, Package (0x04) { 0x000AFFFF, 0x03, 0x00, 0x15 }, Package (0x04) { 0x000BFFFF, 0x00, 0x00, 0x17 }, Package (0x04) { 0x000BFFFF, 0x01, 0x00, 0x14 }, Package (0x04) { 0x000BFFFF, 0x02, 0x00, 0x15 }, Package (0x04) { 0x000BFFFF, 0x03, 0x00, 0x16 }, Package (0x04) { 0x000CFFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x000CFFFF, 0x01, 0x00, 0x15 }, Package (0x04) { 0x000CFFFF, 0x02, 0x00, 0x16 }, Package (0x04) { 0x000CFFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x000DFFFF, 0x00, 0x00, 0x15 }, Package (0x04) { 0x000DFFFF, 0x01, 0x00, 0x16 }, Package (0x04) { 0x000DFFFF, 0x02, 0x00, 0x17 }, Package (0x04) { 0x000DFFFF, 0x03, 0x00, 0x14 }, Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x16 }, Package (0x04) { 0x0003FFFF, 0x00, 0x00, 0x14 }, Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x17 } }) Name (PR00, Package (0x0C) { Package (0x04) { 0x001FFFFF, 0x00, LNKC, 0x00 }, Package (0x04) { 0x001FFFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x001DFFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x001DFFFF, 0x01, LNKD, 0x00 }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x001DFFFF, 0x03, LNKH, 0x00 }, Package (0x04) { 0x0001FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0001FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0003FFFF, 0x00, LNKA, 0x00 }, Package (0x04) { 0x0003FFFF, 0x01, LNKB, 0x00 }, Package (0x04) { 0x0003FFFF, 0x02, LNKC, 0x00 }, Package (0x04) { 0x0003FFFF, 0x03, LNKD, 0x00 } }) Name (AR00, Package (0x0C) { Package (0x04) { 0x001FFFFF, 0x00, 0x00, 0x12 }, Package (0x04) { 0x001FFFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x001DFFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x001DFFFF, 0x01, 0x00, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, 0x00, 0x17 }, Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0001FFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x0003FFFF, 0x00, 0x00, 0x10 }, Package (0x04) { 0x0003FFFF, 0x01, 0x00, 0x11 }, Package (0x04) { 0x0003FFFF, 0x02, 0x00, 0x12 }, Package (0x04) { 0x0003FFFF, 0x03, 0x00, 0x13 } }) Name (PR02, Package (0x01) { Package (0x04) { 0x0001FFFF, 0x00, LNKC, 0x00 } }) Name (AR02, Package (0x01) { Package (0x04) { 0x0001FFFF, 0x00, 0x00, 0x12 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_ADR, 0x00) Name (_BBN, 0x00) Name (_UID, 0x00) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR00) } Return (PR00) } Device (P0P4) { Name (_ADR, 0x001E0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR04) } Return (PR04) } } Device (IDE0) { Name (_ADR, 0x001F0001) Name (REGF, 0x01) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } Name (TIM0, Package (0x08) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, 0x00 }, Package (0x04) { 0x0B, 0x09, 0x04, 0x00 }, Package (0x06) { 0x70, 0x49, 0x36, 0x27, 0x19, 0x0F }, Package (0x06) { 0x00, 0x01, 0x02, 0x01, 0x02, 0x01 }, Package (0x06) { 0x00, 0x00, 0x00, 0x01, 0x01, 0x01 }, Package (0x04) { 0x04, 0x03, 0x02, 0x00 }, Package (0x04) { 0x02, 0x01, 0x00, 0x00 } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, 0x00, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x40, 0x20) Field (CFG2, DWordAcc, NoLock, Preserve) { PMPT, 4, PSPT, 4, PMRI, 6, Offset (0x02), SMPT, 4, SSPT, 4, SMRI, 6, Offset (0x04), PSRI, 4, SSRI, 4, Offset (0x08), PM3E, 1, PS3E, 1, SM3E, 1, SS3E, 1, Offset (0x0A), PMUT, 2, , 2, PSUT, 2, Offset (0x0B), SMUT, 2, , 2, SSUT, 2, Offset (0x0C), Offset (0x14), PM6E, 1, PS6E, 1, SM6E, 1, SS6E, 1, PMCR, 1, PSCR, 1, SMCR, 1, SSCR, 1, , 4, PMAE, 1, PSAE, 1, SMAE, 1, SSAE, 1 } Name (GMPT, 0x00) Name (GMUE, 0x00) Name (GMUT, 0x00) Name (GMCR, 0x00) Name (GSPT, 0x00) Name (GSUE, 0x00) Name (GSUT, 0x00) Name (GSCR, 0x00) Device (CHN0) { Name (_ADR, 0x00) Method (_GTM, 0, NotSerialized) { ShiftLeft (PSCR, 0x01, Local1) Or (PMCR, Local1, Local0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local1) ShiftLeft (PMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local2) ShiftLeft (PSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local0) ShiftLeft (PMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local1) ShiftLeft (PSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (PMRI, GMPT) Store (Local0, GMUE) Store (PMUT, GMUT) Store (PMCR, GMCR) Store (PSRI, GSPT) Store (Local1, GSUE) Store (PSUT, GSUT) Store (PSCR, GSCR) STM () Store (GMPT, PMRI) Store (GMUE, Local0) Store (GMUT, PMUT) Store (GMCR, PMCR) Store (GSUE, Local1) Store (GSUT, PSUT) Store (GSCR, PSCR) If (And (Local0, 0x01)) { Store (0x01, PM3E) } Else { Store (0x00, PM3E) } If (And (Local0, 0x02)) { Store (0x01, PM6E) } Else { Store (0x00, PM6E) } If (And (Local0, 0x04)) { Store (0x01, PMAE) } Else { Store (0x00, PMAE) } If (And (Local1, 0x01)) { Store (0x01, PS3E) } Else { Store (0x00, PS3E) } If (And (Local1, 0x02)) { Store (0x01, PS6E) } Else { Store (0x00, PS6E) } If (And (Local1, 0x04)) { Store (0x01, PSAE) } Else { Store (0x00, PSAE) } Store (GTF (0x00, Arg1), ATA0) Store (GTF (0x01, Arg2), ATA1) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, 0x01) Method (_GTM, 0, NotSerialized) { ShiftLeft (SSCR, 0x01, Local1) Or (SMCR, Local1, Local0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local1) ShiftLeft (SMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local2) ShiftLeft (SSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local0) ShiftLeft (SMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, 0x01, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local1) ShiftLeft (SSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (SMRI, GMPT) Store (Local0, GMUE) Store (SMUT, GMUT) Store (SMCR, GMCR) Store (SSRI, GSPT) Store (Local1, GSUE) Store (SSUT, GSUT) Store (SSCR, GSCR) STM () Store (GMPT, SMRI) Store (GMUE, Local0) Store (GMUT, SMUT) Store (GMCR, SMCR) Store (GSUE, Local1) Store (GSUT, SSUT) Store (GSCR, SSCR) If (And (Local0, 0x01)) { Store (0x01, SM3E) } Else { Store (0x00, SM3E) } If (And (Local0, 0x02)) { Store (0x01, SM6E) } Else { Store (0x00, SM6E) } If (And (Local0, 0x04)) { Store (0x01, SMAE) } Else { Store (0x00, SMAE) } If (And (Local1, 0x01)) { Store (0x01, SS3E) } Else { Store (0x00, SS3E) } If (And (Local1, 0x02)) { Store (0x01, SS6E) } Else { Store (0x00, SS6E) } If (And (Local1, 0x04)) { Store (0x01, SSAE) } Else { Store (0x00, SSAE) } Store (GTF (0x00, Arg1), ATA2) Store (GTF (0x01, Arg2), ATA3) } Device (DRV0) { Name (_ADR, 0x00) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, 0x01) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA3)) } } } Method (GTM, 7, Serialized) { Store (Ones, PIO0) Store (Ones, PIO1) Store (Ones, DMA0) Store (Ones, DMA1) Store (0x10, CHNF) If (REGF) {} Else { Return (TMD0) } If (And (Arg1, 0x20)) { Or (CHNF, 0x02, CHNF) } Store (Match (DerefOf (Index (TIM0, 0x01)), MEQ, Arg0, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA0) Store (Local7, PIO0) If (And (Arg4, 0x20)) { Or (CHNF, 0x08, CHNF) } Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, 0x00, 0x00), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x00)), Local6)), Local7) Store (Local7, DMA1) Store (Local7, PIO1) If (And (Arg1, 0x07)) { Store (Arg2, Local5) If (And (Arg1, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg1, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) Or (CHNF, 0x01, CHNF) } If (And (Arg4, 0x07)) { Store (Arg5, Local5) If (And (Arg4, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg4, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Return (TMD0) } Store (0x00, GMUE) Store (0x00, GMUT) Store (0x00, GSUE) Store (0x00, GSUT) If (And (CHNF, 0x01)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) Or (GMUE, 0x01, GMUE) If (LGreater (Local0, 0x02)) { Or (GMUE, 0x02, GMUE) } If (LGreater (Local0, 0x04)) { And (GMUE, 0xFD, GMUE) Or (GMUE, 0x04, GMUE) } } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, 0x00))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, 0x00))) { Store (DMA0, PIO0) Or (GMUE, 0x80, GMUE) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, 0x00, 0x00), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) Or (GSUE, 0x01, GSUE) If (LGreater (Local0, 0x02)) { Or (GSUE, 0x02, GSUE) } If (LGreater (Local0, 0x04)) { And (GSUE, 0xFD, GSUE) Or (GSUE, 0x04, GSUE) } } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, 0x00))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, 0x00))) { Store (DMA1, PIO1) Or (GSUE, 0x80, GSUE) } } } If (And (CHNF, 0x02)) { Or (GMUE, 0x20, GMUE) } If (And (CHNF, 0x08)) { Or (GSUE, 0x20, GSUE) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO0, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x01)), Local0)), Local1) Store (Local1, GMPT) If (LLess (Local0, 0x03)) { Or (GMUE, 0x50, GMUE) } And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIO1, MTR, 0x00, 0x00), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) Store (Local1, GSPT) If (LLess (Local0, 0x03)) { Or (GSUE, 0x50, GSUE) } } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, 0x00, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (0x00, CMDC) Name (ID49, 0x0C00) Name (ID59, 0x00) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, 0x01) Name (PIOT, 0x00) Name (DMAT, 0x00) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, 0x01)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, 0x00, 0x00), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, 0x00)), MGE, PIOT, MTR, 0x00, 0x00), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, 0x01, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, 0x00, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Return (RETB) } } Device (IDE1) { Name (_ADR, 0x001F0002) } Device (MC97) { Name (_ADR, 0x001F0006) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (USB1) { Name (_ADR, 0x001D0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x04)) } } Device (USB2) { Name (_ADR, 0x001D0001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x04, 0x04)) } } Device (USB3) { Name (_ADR, 0x001D0002) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0C, 0x04)) } } Device (USB4) { Name (_ADR, 0x001D0003) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0E, 0x04)) } } Device (EUSB) { Name (_ADR, 0x001D0007) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) } } Device (SBRG) { Name (_ADR, 0x001F0000) Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, 0x0020, 0x00, 0x02) IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8) {4} IO (Decode16, 0x0000, 0x0000, 0x00, 0x10) IO (Decode16, 0x0081, 0x0081, 0x00, 0x03) IO (Decode16, 0x0087, 0x0087, 0x00, 0x01) IO (Decode16, 0x0089, 0x0089, 0x00, 0x03) IO (Decode16, 0x008F, 0x008F, 0x00, 0x01) IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, 0x0040, 0x00, 0x04) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, 0x0070, 0x00, 0x02) IRQNoFlags () {8} }) } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CID, 0x0B03D041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {1} }) } Method (PS2K._PRW, 0, NotSerialized) { Return (GPRW (0x1D, 0x04)) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 0x130FD041) Method (_STA, 0, NotSerialized) { ShiftLeft (0x01, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (0x00) } Name (CRS1, ResourceTemplate () { IRQNoFlags () {12} }) Name (CRS2, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {12} }) Method (_CRS, 0, NotSerialized) { ShiftLeft (0x01, 0x0A, Local0) If (And (IOST, Local0)) { Return (CRS1) } Else { Return (CRS2) } } } Method (PS2M._PRW, 0, NotSerialized) { Return (GPRW (0x1D, 0x04)) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, 0x0061, 0x00, 0x01) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10) IRQNoFlags () {13} }) } Device (UAR1) { Name (_UID, 0x01) Name (_HID, EisaId ("PNP0501")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x00)) } Method (_DIS, 0, NotSerialized) { DCNT (0x00, 0x00) } Method (_CRS, 0, NotSerialized) { Return (PCRS (0x00, 0x01, 0x08)) } Method (_SRS, 1, NotSerialized) { PSRS (Arg0, 0x00) } Method (_PRS, 0, NotSerialized) { Return (CMPR) } Name (CMPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x03F8, 0x03F8, 0x04, 0x08) IRQNoFlags () {4} } StartDependentFnNoPri () { IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } StartDependentFnNoPri () { IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } StartDependentFnNoPri () { IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } StartDependentFnNoPri () { IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } EndDependentFn () }) Name (PBUF, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x01, 0x08) IRQNoFlags () {0} }) Method (PCRS, 3, NotSerialized) { CreateByteField (PBUF, 0x02, IOLO) CreateByteField (PBUF, 0x03, IOHI) CreateWordField (PBUF, 0x02, IOHL) CreateWordField (PBUF, 0x04, IORL) CreateByteField (PBUF, 0x06, ALMN) CreateByteField (PBUF, 0x07, LENG) CreateByteField (PBUF, 0x09, IRQL) ENFG (CGLD (Arg0)) Store (IOAH, IOHI) Store (IOAL, IOLO) Store (IOHL, IORL) Store (Arg1, ALMN) If (LEqual (IOLO, 0xBC)) { Store (0x04, LENG) } Else { Store (Arg2, LENG) } Store (One, Local0) ShiftLeft (Local0, INTR, IRQL) EXFG () Return (PBUF) } Method (PSRS, 2, NotSerialized) { CreateByteField (Arg0, 0x02, POLB) CreateByteField (Arg0, 0x03, POHB) CreateWordField (Arg0, 0x09, PIRQ) ENFG (CGLD (Arg1)) Store (POLB, IOAL) Store (POHB, IOAH) FindSetRightBit (PIRQ, Local0) Subtract (Local0, 0x01, INTR) Store (One, ACTR) EXFG () } } Device (UAR2) { Name (_UID, 0x02) Name (_HID, EisaId ("PNP0501")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x01)) } Method (_DIS, 0, NotSerialized) { DCNT (0x01, 0x00) } Method (_CRS, 0, NotSerialized) { Return (DCRS (0x01)) } Method (_SRS, 1, NotSerialized) { DSRS (Arg0, 0x01) } Method (_PRS, 0, NotSerialized) { Return (CMPR) } Name (CMPR, ResourceTemplate () { IRQNoFlags () {3,4,5,6,7,10,11,12} StartDependentFnNoPri () { DMA (Compatibility, NotBusMaster, Transfer8) {} IO (Decode16, 0x03F8, 0x03F8, 0x01, 0x08) } StartDependentFnNoPri () { DMA (Compatibility, NotBusMaster, Transfer8) {} IO (Decode16, 0x02F8, 0x02F8, 0x01, 0x08) } StartDependentFnNoPri () { DMA (Compatibility, NotBusMaster, Transfer8) {} IO (Decode16, 0x03E8, 0x03E8, 0x01, 0x08) } StartDependentFnNoPri () { DMA (Compatibility, NotBusMaster, Transfer8) {} IO (Decode16, 0x02E8, 0x02E8, 0x01, 0x08) } EndDependentFn () }) } Device (FDC) { Name (_HID, EisaId ("PNP0700")) Name (_FDE, Package (0x05) { 0x01, 0x00, 0x02, 0x02, 0x02 }) Method (_STA, 0, NotSerialized) { Return (DSTA (0x03)) } Method (_DIS, 0, NotSerialized) { DCNT (0x03, 0x00) } Method (_CRS, 0, NotSerialized) { DCRS (0x03) Store (IRQM, IRQE) Store (DMAM, DMAE) Store (IO11, IO21) Store (IO12, IO22) Store (0x06, LEN2) Add (IO21, 0x07, IO31) Store (IO31, IO32) Store (0x01, LEN3) Return (CRS2) } Method (_SRS, 1, NotSerialized) { DSRS (Arg0, 0x03) } Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) } StartDependentFnNoPri () { IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3} IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) } StartDependentFnNoPri () { IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {1,2,3} IO (Decode16, 0x0370, 0x0370, 0x01, 0x06) IO (Decode16, 0x0377, 0x0377, 0x01, 0x01) } EndDependentFn () }) } Device (LPTE) { Name (_UID, 0x01) Method (_HID, 0, NotSerialized) { If (LPTM (0x02)) { Return (0x0104D041) } Else { Return (0x0004D041) } } Method (_STA, 0, NotSerialized) { Return (DSTA (0x02)) } Method (_DIS, 0, NotSerialized) { DCNT (0x02, 0x00) } Method (_CRS, 0, NotSerialized) { Return (ECRS (0x02)) } Method (_SRS, 1, NotSerialized) { ESRS (Arg0, 0x02) } Method (_PRS, 0, NotSerialized) { If (LPTM (0x02)) { Return (EPPR) } Else { Return (LPPR) } } Name (LPPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {7} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IRQNoFlags () {3,4,5,6,7,10,11,12} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} } EndDependentFn () }) Name (EPPR, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {3} } StartDependentFnNoPri () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3} } StartDependentFnNoPri () { IO (Decode16, 0x0278, 0x0278, 0x01, 0x08) IO (Decode16, 0x0678, 0x0678, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3} } StartDependentFnNoPri () { IO (Decode16, 0x03BC, 0x03BC, 0x01, 0x04) IO (Decode16, 0x07BC, 0x07BC, 0x01, 0x04) IRQNoFlags () {3,4,5,6,7,10,11,12} DMA (Compatibility, NotBusMaster, Transfer8) {0,1,3} } EndDependentFn () }) Name (EBUF, ResourceTemplate () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IO (Decode16, 0x0778, 0x0778, 0x01, 0x04) IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8) {} }) CreateByteField (EBUF, 0x02, EPLO) CreateByteField (EBUF, 0x03, EPHI) CreateWordField (EBUF, 0x02, EPHL) CreateWordField (EBUF, 0x04, EPRL) CreateWordField (EBUF, 0x06, ALM1) CreateWordField (EBUF, 0x0A, E4LO) CreateWordField (EBUF, 0x0C, E4RL) CreateWordField (EBUF, 0x0E, ELNG) CreateWordField (EBUF, 0x11, EIRQ) CreateByteField (EBUF, 0x14, EDMA) Name (PBUF, ResourceTemplate () { IO (Decode16, 0x0378, 0x0378, 0x01, 0x08) IRQNoFlags () {7} }) CreateByteField (PBUF, 0x02, PPLO) CreateByteField (PBUF, 0x03, PPHI) CreateWordField (PBUF, 0x02, PPHL) CreateWordField (PBUF, 0x04, PPRL) CreateWordField (PBUF, 0x06, ALM0) CreateWordField (PBUF, 0x09, PIRQ) Method (ECRS, 1, NotSerialized) { ENFG (CGLD (Arg0)) Store (IOAH, EPHI) Store (IOAL, EPLO) Store (IOAH, PPHI) Store (IOAL, PPLO) Store (EPHL, EPRL) Store (PPHL, PPRL) And (OPT0, 0x02, Local0) If (Local0) { Add (EPHL, 0x0400, E4LO) Store (E4LO, E4RL) } If (LEqual (EPHL, 0x03BC)) { Store (0x0401, ALM1) Store (0x0401, ALM0) } Else { Store (0x0801, ALM1) Store (0x0801, ALM0) } Store (One, Local0) Store (INTR, Local1) ShiftLeft (Local0, Local1, EIRQ) ShiftLeft (Local0, Local1, PIRQ) Store (DMCH, Local1) If (LGreater (Local1, 0x03)) { Store (0x00, EDMA) } Else { Store (One, Local0) ShiftLeft (Local0, Local1, EDMA) } And (OPT0, 0x02, Local0) EXFG () If (Local0) { Return (EBUF) } Else { Return (PBUF) } } Method (ESRS, 2, NotSerialized) { ENFG (CGLD (Arg1)) CreateByteField (Arg0, 0x02, LOEP) CreateByteField (Arg0, 0x03, HIEP) And (OPT0, 0x02, Local0) If (Local0) { CreateWordField (Arg0, 0x11, IRQE) CreateByteField (Arg0, 0x14, DMAE) } Else { CreateWordField (Arg0, 0x09, IRQP) } Store (LOEP, IOAL) Store (HIEP, IOAH) And (OPT0, 0x02, Local0) If (Local0) { If (IRQE) { FindSetRightBit (IRQE, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } } Else { If (IRQP) { FindSetRightBit (IRQP, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } } And (OPT0, 0x02, Local0) If (Local0) { If (DMAE) { FindSetRightBit (DMAE, Local0) Subtract (Local0, 0x01, DMCH) } Else { Store (0x04, DMCH) } } Store (One, ACTR) EXFG () } } Device (GAME) { Name (_HID, EisaId ("PNPB02F")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x08)) } Method (_DIS, 0, NotSerialized) { DCNT (0x08, 0x00) } Name (GMCR, ResourceTemplate () { IO (Decode16, 0x0200, 0x0200, 0x01, 0x08) }) Method (_CRS, 0, NotSerialized) { CreateByteField (GMCR, 0x02, IOLO) CreateByteField (GMCR, 0x03, IOHI) CreateWordField (GMCR, 0x02, IOHL) CreateWordField (GMCR, 0x04, IORL) ENFG (CGLD (0x08)) Store (IOAH, IOHI) Store (IOAL, IOLO) Store (IOHL, IORL) EXFG () Return (GMCR) } Method (_SRS, 1, NotSerialized) { CreateByteField (Arg0, 0x02, POLB) CreateByteField (Arg0, 0x03, POHB) ENFG (CGLD (0x08)) Store (POLB, IOAL) Store (POHB, IOAH) DCNT (0x08, 0x01) EXFG () } Name (_PRS, ResourceTemplate () { StartDependentFn (0x00, 0x00) { IO (Decode16, 0x0200, 0x0200, 0x01, 0x08) } StartDependentFnNoPri () { IO (Decode16, 0x0208, 0x0208, 0x01, 0x08) } EndDependentFn () }) } Device (MIDI) { Name (_HID, EisaId ("PNPB006")) Method (_STA, 0, NotSerialized) { Return (DSTA (0x05)) } Method (_DIS, 0, NotSerialized) { DCNT (0x05, 0x00) } Name (MDCR, ResourceTemplate () { IO (Decode16, 0x0300, 0x0300, 0x01, 0x02) IRQNoFlags () {5} }) Method (_CRS, 0, NotSerialized) { CreateByteField (MDCR, 0x02, IOLO) CreateByteField (MDCR, 0x03, IOHI) CreateWordField (MDCR, 0x02, IOHL) CreateWordField (MDCR, 0x04, IORL) CreateWordField (MDCR, 0x09, MIRQ) ENFG (CGLD (0x05)) Store (IOH2, IOHI) Store (IOL2, IOLO) Store (IOHL, IORL) ShiftLeft (0x01, INTR, MIRQ) EXFG () Return (MDCR) } Method (_SRS, 1, NotSerialized) { CreateByteField (Arg0, 0x02, POLB) CreateByteField (Arg0, 0x03, POHB) CreateWordField (Arg0, 0x09, MIRQ) ENFG (CGLD (0x05)) Store (POLB, IOL2) Store (POHB, IOH2) FindSetRightBit (MIRQ, Local0) Subtract (Local0, 0x01, INTR) DCNT (0x05, 0x01) EXFG () } Name (_PRS, ResourceTemplate () { StartDependentFnNoPri () { IO (Decode16, 0x0300, 0x0300, 0x01, 0x02) } StartDependentFnNoPri () { IO (Decode16, 0x0330, 0x0330, 0x01, 0x02) } EndDependentFn () IRQNoFlags () {5,9,10,11} }) } Device (SIOR) { Name (_HID, EisaId ("PNP0C02")) Method (_UID, 0, NotSerialized) { Return (SPIO) } Name (CRS, ResourceTemplate () { IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0290, 0x0290, 0x00, 0x08) }) Method (_CRS, 0, NotSerialized) { If (LAnd (LNot (LEqual (SPIO, 0x03F0)), LGreater (SPIO, 0xF0))) { CreateWordField (CRS, 0x02, GP10) CreateWordField (CRS, 0x04, GP11) CreateByteField (CRS, 0x07, GPL1) Store (SPIO, GP10) Store (SPIO, GP11) Store (0x02, GPL1) } If (IO1B) { CreateWordField (CRS, 0x0A, GP20) CreateWordField (CRS, 0x0C, GP21) CreateByteField (CRS, 0x0F, GPL2) Store (IO1B, GP20) Store (IO1B, GP21) Store (IO1L, GPL2) } Return (CRS) } } Name (DCAT, Package (0x15) { 0x02, 0x03, 0x01, 0x00, 0xFF, 0x07, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x08, 0x09, 0xFF, 0xFF }) Method (ENFG, 1, NotSerialized) { Store (0x87, INDX) Store (0x87, INDX) Store (Arg0, LDN) } Method (EXFG, 0, NotSerialized) { Store (0xAA, INDX) } Method (LPTM, 1, NotSerialized) { ENFG (CGLD (Arg0)) And (OPT0, 0x02, Local0) EXFG () Return (Local0) } Method (UHID, 1, NotSerialized) { If (LEqual (Arg0, 0x01)) { ENFG (CGLD (Arg0)) And (OPT1, 0x38, Local0) EXFG () If (Local0) { Return (0x1005D041) } } Return (0x0105D041) } Method (SIOK, 1, NotSerialized) { ENFG (0x0A) And (0xFF, OPT3, OPT3) And (Arg0, 0x30, Local0) And (OPT6, 0xCF, OPT6) Or (OPT6, Local0, OPT6) Store (Arg0, Local1) And (Arg0, 0x05, Local0) And (OPT9, 0xFA, OPT9) Or (OPT9, Local0, OPT9) If (LEqual (Arg0, Zero)) { Store (0x00, ACTR) Store (0x08, LDN) And (OPT5, 0x3F, OPT5) } Else { Store (0x01, ACTR) } EXFG () } Method (PS2K._PSW, 1, NotSerialized) { ENFG (0x0A) And (OPT6, 0xEF, OPT6) If (Arg0) { Or (OPT6, 0x10, OPT6) } EXFG () } Method (PS2M._PSW, 1, NotSerialized) { ENFG (0x0A) And (OPT6, 0xDF, OPT6) If (Arg0) { Or (OPT6, 0x20, OPT6) } EXFG () } Method (SIOS, 1, NotSerialized) { Store ("SIOS", Debug) SIOK (Ones) } Method (SIOW, 1, NotSerialized) { Store ("SIOW", Debug) SIOK (Zero) } Method (SIOH, 0, NotSerialized) { Store ("SIOH", Debug) ENFG (0x0A) If (And (OPT3, 0x10)) { Notify (PS2K, 0x02) } If (And (OPT3, 0x20)) { Notify (PS2M, 0x02) } SIOK (Zero) } OperationRegion (IOID, SystemIO, SPIO, 0x02) Field (IOID, ByteAcc, NoLock, Preserve) { INDX, 8, DATA, 8 } IndexField (INDX, DATA, ByteAcc, NoLock, Preserve) { Offset (0x07), LDN, 8, Offset (0x22), FDCP, 1, , 2, LPTP, 1, URAP, 1, URBP, 1, Offset (0x30), ACTR, 8, Offset (0x60), IOAH, 8, IOAL, 8, IOH2, 8, IOL2, 8, Offset (0x70), INTR, 8, Offset (0x74), DMCH, 8, Offset (0xE0), CRE0, 8, CRE1, 8, CRE2, 8, CRE3, 8, CRE4, 8, Offset (0xF0), OPT0, 8, OPT1, 8, OPT2, 8, OPT3, 8, Offset (0xF5), OPT5, 8, OPT6, 8, Offset (0xF9), OPT9, 8 } Method (CGLD, 1, NotSerialized) { Return (DerefOf (Index (DCAT, Arg0))) } Method (DSTA, 1, NotSerialized) { ENFG (CGLD (Arg0)) Store (ACTR, Local0) EXFG () If (LEqual (Local0, 0xFF)) { Return (0x00) } If (LEqual (Arg0, 0x05)) { ShiftRight (Local0, 0x02, Local0) } If (LEqual (Arg0, 0x08)) { ShiftRight (Local0, 0x01, Local0) } And (Local0, 0x01, Local0) Or (IOST, ShiftLeft (Local0, Arg0), IOST) If (Local0) { Return (0x0F) } Else { If (And (ShiftLeft (0x01, Arg0), IOST)) { Return (0x0D) } Else { Return (0x00) } } } Method (DCNT, 2, NotSerialized) { ENFG (CGLD (Arg0)) ShiftLeft (IOAH, 0x08, Local1) Or (IOAL, Local1, Local1) RRIO (Arg0, Arg1, Local1, 0x08) If (LAnd (LLess (DMCH, 0x04), LNot (LEqual (And (DMCH, 0x03, Local1), 0x00)))) { RDMA (Arg0, Arg1, Increment (Local1)) } Store (Arg1, Local1) Store (0x01, Local2) If (LEqual (Arg0, 0x05)) { ShiftLeft (Arg1, 0x02, Local1) ShiftLeft (Local2, 0x02, Local2) } If (LEqual (Arg0, 0x08)) { ShiftLeft (Arg1, 0x01, Local1) ShiftLeft (Local2, 0x01, Local2) } Store (ACTR, Local0) Not (Local2, Local3) And (Local0, Local3, Local0) Or (Local0, Local1, Local0) Store (Local0, ACTR) EXFG () } Name (CRS1, ResourceTemplate () { IRQNoFlags () {} DMA (Compatibility, NotBusMaster, Transfer8) {} IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) }) CreateWordField (CRS1, 0x01, IRQM) CreateByteField (CRS1, 0x04, DMAM) CreateWordField (CRS1, 0x08, IO11) CreateWordField (CRS1, 0x0A, IO12) CreateByteField (CRS1, 0x0D, LEN1) Name (CRS2, ResourceTemplate () { IRQNoFlags () {6} DMA (Compatibility, NotBusMaster, Transfer8) {2} IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) IO (Decode16, 0x0000, 0x0000, 0x01, 0x00) }) CreateWordField (CRS2, 0x01, IRQE) CreateByteField (CRS2, 0x04, DMAE) CreateWordField (CRS2, 0x08, IO21) CreateWordField (CRS2, 0x0A, IO22) CreateByteField (CRS2, 0x0D, LEN2) CreateWordField (CRS2, 0x10, IO31) CreateWordField (CRS2, 0x12, IO32) CreateByteField (CRS2, 0x15, LEN3) Method (DCRS, 1, NotSerialized) { ENFG (CGLD (Arg0)) ShiftLeft (IOAH, 0x08, IO11) Or (IOAL, IO11, IO11) Store (IO11, IO12) Subtract (FindSetRightBit (IO11), 0x01, Local0) ShiftLeft (0x01, Local0, LEN1) If (INTR) { ShiftLeft (0x01, INTR, IRQM) } Else { Store (0x00, IRQM) } If (Or (LGreater (DMCH, 0x03), LEqual (And (DMCH, 0x03, Local1), 0x00))) { Store (0x00, DMAM) } Else { ShiftLeft (0x01, Local1, DMAM) } EXFG () Return (CRS1) } Method (DSRS, 2, NotSerialized) { CreateWordField (Arg0, 0x01, IRQM) CreateByteField (Arg0, 0x04, DMAM) CreateWordField (Arg0, 0x08, IO11) ENFG (CGLD (Arg1)) And (IO11, 0xFF, IOAL) ShiftRight (IO11, 0x08, IOAH) If (IRQM) { FindSetRightBit (IRQM, Local0) Subtract (Local0, 0x01, INTR) } Else { Store (0x00, INTR) } If (DMAM) { FindSetRightBit (DMAM, Local0) Subtract (Local0, 0x01, DMCH) } Else { Store (0x04, DMCH) } EXFG () DCNT (Arg1, 0x01) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, 0x0010, 0x00, 0x10) IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E) IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C) IO (Decode16, 0x0062, 0x0062, 0x00, 0x02) IO (Decode16, 0x0065, 0x0065, 0x00, 0x0B) IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E) IO (Decode16, 0x0080, 0x0080, 0x00, 0x01) IO (Decode16, 0x0084, 0x0084, 0x00, 0x03) IO (Decode16, 0x0088, 0x0088, 0x00, 0x01) IO (Decode16, 0x008C, 0x008C, 0x00, 0x03) IO (Decode16, 0x0090, 0x0090, 0x00, 0x10) IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E) IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10) IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000) Memory32Fixed (ReadWrite, 0xFFB00000, 0x00100000) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, 0x72, GP00) CreateWordField (CRS, 0x74, GP01) CreateByteField (CRS, 0x77, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (SMBS) { CreateWordField (CRS, 0x7A, GP10) CreateWordField (CRS, 0x7C, GP11) CreateByteField (CRS, 0x7F, GP1L) Store (SMBS, GP10) Store (SMBS, GP11) Store (SMBL, GP1L) } If (GPBS) { CreateWordField (CRS, 0x82, GP20) CreateWordField (CRS, 0x84, GP21) CreateByteField (CRS, 0x87, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } Device (P3F6) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x03F6) Method (_STA, 0, NotSerialized) { Store (0x0F, Local1) Store (\_SB.PCI0.IDE0.PAMD, Local0) If (LEqual (Local0, 0x8A)) { Store (0x00, Local1) } Store (\_SB.PCI0.IDE1.SAMD, Local0) If (LEqual (Local0, 0x8A)) { Store (0x00, Local1) } Return (Local1) } Name (CRS, ResourceTemplate () { IO (Decode16, 0x03F6, 0x03F6, 0x00, 0x01) }) Method (_CRS, 0, NotSerialized) { Return (CRS) } } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x00) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { If (APCB) { CreateDWordField (CRS, 0x08, ML01) CreateDWordField (CRS, 0x04, MB01) CreateDWordField (CRS, 0x14, ML02) CreateDWordField (CRS, 0x10, MB02) Store (APCB, MB01) Store (APCL, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) } Return (CRS) } } Device (\_SB.RMEM) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x01) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000) Memory32Fixed (ReadWrite, 0x00100000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x10, BAS1) CreateDWordField (CRS, 0x14, LEN1) CreateDWordField (CRS, 0x1C, BAS2) CreateDWordField (CRS, 0x20, LEN2) CreateDWordField (CRS, 0x2C, LEN3) CreateDWordField (CRS, 0x34, BAS4) CreateDWordField (CRS, 0x38, LEN4) If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) Subtract (MG1B, BAS1, LEN1) } } Else { Store (0x000C0000, BAS1) Store (0x00020000, LEN1) } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) Subtract (0x00100000, BAS2, LEN2) } } Subtract (MG2B, 0x00100000, LEN3) Add (MG2B, MG2L, BAS4) Subtract (0x00, BAS4, LEN4) Return (CRS) } } } Device (P0P1) { Name (_ADR, 0x00010000) } Device (P0P2) { Name (_ADR, 0x00030000) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } Device (ILAN) { Name (_ADR, 0x00010000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x18, 0x04)) } } } } Scope (\_GPE) { Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.P0P4, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.MC97, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB3, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0E, 0, NotSerialized) { Notify (\_SB.PCI0.USB4, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.EUSB, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L1D, 0, NotSerialized) { \_SB.PCI0.SBRG.SIOH () } Method (_L18, 0, NotSerialized) { Notify (\_SB.PCI0.P0P2.ILAN, 0x02) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_UID, 0xAA) Name (_STA, 0x0B) } } OperationRegion (\_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C) Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, Offset (0x08), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Scope (\_SB) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {15} }) CreateWordField (BUFA, 0x01, IRA0) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x01) Method (_STA, 0, NotSerialized) { And (PIRA, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSA) } Method (_DIS, 0, NotSerialized) { Or (PIRA, 0x80, PIRA) } Method (_CRS, 0, NotSerialized) { And (PIRA, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { And (PIRB, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSB) } Method (_DIS, 0, NotSerialized) { Or (PIRB, 0x80, PIRB) } Method (_CRS, 0, NotSerialized) { And (PIRB, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { And (PIRC, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSC) } Method (_DIS, 0, NotSerialized) { Or (PIRC, 0x80, PIRC) } Method (_CRS, 0, NotSerialized) { And (PIRC, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { And (PIRD, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSD) } Method (_DIS, 0, NotSerialized) { Or (PIRD, 0x80, PIRD) } Method (_CRS, 0, NotSerialized) { And (PIRD, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRD) } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { And (PIRE, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSE) } Method (_DIS, 0, NotSerialized) { Or (PIRE, 0x80, PIRE) } Method (_CRS, 0, NotSerialized) { And (PIRE, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRE) } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_STA, 0, NotSerialized) { And (PIRF, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSF) } Method (_DIS, 0, NotSerialized) { Or (PIRF, 0x80, PIRF) } Method (_CRS, 0, NotSerialized) { And (PIRF, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRF) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { And (PIRG, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSG) } Method (_DIS, 0, NotSerialized) { Or (PIRG, 0x80, PIRG) } Method (_CRS, 0, NotSerialized) { And (PIRG, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { And (PIRH, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSH) } Method (_DIS, 0, NotSerialized) { Or (PIRH, 0x80, PIRH) } Method (_CRS, 0, NotSerialized) { And (PIRH, 0x0F, Local0) ShiftLeft (0x01, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, 0x01, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRH) } } } Scope (\_SB) { Scope (PCI0) { OperationRegion (IOB2, SystemIO, 0xB2, 0x02) Field (IOB2, ByteAcc, NoLock, Preserve) { SMIC, 8, SMIS, 8 } Method (_INI, 0, NotSerialized) { If (CondRefOf (_OSI, Local0)) { Store (0x58, SMIC) } Else { Store (0x85, SMIC) } } } } Scope (\_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, 0x0000, 0x00FF, 0x0000, 0x0100) IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0000, 0x0CF7, 0x0000, 0x0CF8) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0D00, 0xFFFF, 0x0000, 0xF300) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) }) CreateDWordField (CRS, 0x5C, MIN5) CreateDWordField (CRS, 0x60, MAX5) CreateDWordField (CRS, 0x68, LEN5) CreateDWordField (CRS, 0x76, MIN6) CreateDWordField (CRS, 0x7A, MAX6) CreateDWordField (CRS, 0x82, LEN6) Method (_CRS, 0, NotSerialized) { Store (MG1B, MIN5) Store (MG1L, LEN5) Store (MG1L, Local0) If (Local0) { Add (MIN5, Decrement (Local0), MAX5) } Store (MG2B, MIN6) Add (MIN6, 0x00010000, MIN6) Store (MG2L, LEN6) Subtract (LEN6, 0x00010000, LEN6) Store (LEN6, Local0) Add (MIN6, Decrement (Local0), MAX6) Return (CRS) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (USB1._S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (USB2._S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (USB3._S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Method (USB4._S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), 0x01), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Name (NATA, Package (0x01) { 0x001F0001 }) } Name (SLPS, 0x00) } Name (WR00, 0x00) Name (WR01, 0x00) Name (WR02, 0x00) Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (0x00, Index (WAKP, 0x00)) Store (0x00, Index (WAKP, 0x01)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (APWR, WR00) Store (SPLV, WR01) Store (OSFG, WR02) Store (Arg0, SPLV) Store (OSFL (), OSFG) Store (One, PS1S) Store (One, PS1E) Store (One, \_SB.SLPS) } Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (Zero, PS1E) If (IOWK) {} Else { Notify (\_SB.PWRB, 0x02) } If (And (APWR, 0x02)) { Notify (\_SB.PWRB, 0x02) } Store (One, PWBT) Store (WR00, APWR) Store (WR01, SPLV) Store (WR02, OSFG) Store (Zero, \_SB.SLPS) WAK (Arg0) If (DerefOf (Index (WAKP, 0x00))) { Store (0x00, Index (WAKP, 0x01)) } Else { Store (Arg0, Index (WAKP, 0x01)) } Return (WAKP) } OperationRegion (PMS0, SystemIO, PMBS, 0x04) Field (PMS0, ByteAcc, NoLock, Preserve) { , 10, RTCS, 1, , 4, WAKS, 1, Offset (0x03), PWBT, 1, , 1, RTCE, 1, Offset (0x04) } OperationRegion (SMIE, SystemIO, PM30, 0x08) Field (SMIE, ByteAcc, NoLock, Preserve) { , 4, PS1E, 1, , 31, PS1S, 1, Offset (0x08) } OperationRegion (\_SB.PCI0.SKPD, PCI_Config, ACPH, 0x02) Field (\_SB.PCI0.SKPD, ByteAcc, NoLock, Preserve) { APWR, 8, SPLV, 3, OSFG, 2, Offset (0x02) } OperationRegion (CMOS, SystemIO, 0x70, 0x02) Field (CMOS, ByteAcc, NoLock, Preserve) { CIDX, 8, CDAT, 8 } IndexField (CIDX, CDAT, ByteAcc, NoLock, Preserve) { Offset (0x6E), WKTP, 8 } OperationRegion (IORK, SystemIO, 0xB3, 0x01) Field (IORK, ByteAcc, NoLock, Preserve) { IOWK, 8 } Scope (\_SB.PCI0.IDE0) { OperationRegion (PAR9, PCI_Config, 0x09, 0x01) Field (PAR9, ByteAcc, NoLock, Preserve) { PAMD, 8 } } Scope (\_SB.PCI0.IDE1) { OperationRegion (SAR9, PCI_Config, 0x09, 0x01) Field (SAR9, ByteAcc, NoLock, Preserve) { SAMD, 8 } } Name (\_S0, Package (0x04) { 0x00, 0x00, 0x00, 0x00 }) If (SS1) { Name (\_S1, Package (0x04) { 0x01, 0x00, 0x00, 0x00 }) } If (SS3) { Name (\_S3, Package (0x04) { 0x05, 0x00, 0x00, 0x00 }) } If (SS4) { Name (\_S4, Package (0x04) { 0x06, 0x00, 0x00, 0x00 }) } Name (\_S5, Package (0x04) { 0x07, 0x00, 0x00, 0x00 }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.SBRG.SIOS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.SBRG.SIOW (Arg0) } } --------------020604070307000805050105-- From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 17:57:04 2006 Return-Path: X-Original-To: freebsd-acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D697B16A4A7 for ; Mon, 23 Oct 2006 17:57:04 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id A932843D6A for ; Mon, 23 Oct 2006 17:56:58 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 43916 invoked from network); 23 Oct 2006 17:57:42 -0000 Received: from adsl-67-119-74-222.dsl.sntc01.pacbell.net (HELO ?10.0.0.44?) (nate-mail@67.119.74.222) by root.org with ESMTPA; 23 Oct 2006 17:57:42 -0000 Message-ID: <453D0256.2030507@root.org> Date: Mon, 23 Oct 2006 10:56:38 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: "O. Hartmann" References: <200610231550.k9NFoRSq056665@freefall.freebsd.org> <453CF36E.6000201@mail.zedat.fu-berlin.de> In-Reply-To: <453CF36E.6000201@mail.zedat.fu-berlin.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: John Baldwin , freebsd-acpi@FreeBSD.org Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 17:57:04 -0000 O. Hartmann wrote: > John Baldwin wrote: >> The following reply was made to PR kern/104625; it has been noted by GNATS. >> >> From: John Baldwin >> To: bug-followup@freebsd.org, ohartman@zedat.fu-berlin.de >> Cc: >> Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed >> Date: Mon, 23 Oct 2006 11:25:09 -0400 >> >> You need to provide an acpidump. ACPI thermal zones work fine on computers >> that list them in their BIOS. Many older machines only provide access to the >> thermals via non-ACPI methods such as over SMBus, etc. >> > > Attached to this mail you'll find the acpidump of both boxes. > Please note: ASUS A8N32-SLI IS DEFINITELLY NOT OLD as it has been > introduces last year and since then the problem persists. And, even > worse, OpenBSD seems to show up thermal zones. > As I wrote the 'older' ASUS A8N-SLI Deluxe already showed up thermal > zones, but had a AWARD BIOS while the boxes in question use AMI BIOS. On > all boxes I have access to with AMI BIOS, I can not access thermal zones > in FreeBSD 6.X ... No ThermalZone objects present in either of your acpidump tables. Can you show a dmesg from Openbsd that shows what driver is detecting those thermal zones? -- Nate From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 18:33:21 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D392116A403 for ; Mon, 23 Oct 2006 18:33:21 +0000 (UTC) (envelope-from ohartman@uni-mainz.de) Received: from mailgate01.zdv.uni-mainz.de (mailgate01.zdv.Uni-Mainz.DE [134.93.178.131]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4FEE443D53 for ; Mon, 23 Oct 2006 18:32:37 +0000 (GMT) (envelope-from ohartman@uni-mainz.de) Received: from exfront01.zdv.uni-mainz.de ([134.93.176.49]) by mailgate01.zdv.uni-mainz.de with ESMTP; 23 Oct 2006 20:32:22 +0200 Received: from mail.uni-mainz.de ([134.93.176.49]) by exfront01.zdv.Uni-Mainz.DE with Microsoft SMTPSVC(6.0.3790.1830); Mon, 23 Oct 2006 20:32:22 +0200 Received: from [192.168.1.128] ([85.178.6.83] RDNS failed) by mail.uni-mainz.de over TLS secured channel with Microsoft SMTPSVC(6.0.3790.1830); Mon, 23 Oct 2006 20:32:21 +0200 Message-ID: <453D0AAB.2040009@mail.uni-mainz.de> Date: Mon, 23 Oct 2006 20:32:11 +0200 From: "O. Hartmann" User-Agent: Thunderbird 1.5.0.7 (X11/20061015) MIME-Version: 1.0 To: Nate Lawson References: <200610231550.k9NFoRSq056665@freefall.freebsd.org> <453CF36E.6000201@mail.zedat.fu-berlin.de> <453D0256.2030507@root.org> In-Reply-To: <453D0256.2030507@root.org> X-Enigmail-Version: 0.94.1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 23 Oct 2006 18:32:21.0900 (UTC) FILETIME=[940B3CC0:01C6F6D1] Cc: John Baldwin , "O. Hartmann" , freebsd-acpi@FreeBSD.org Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show thermal zones or fan speed X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 18:33:21 -0000 Nate Lawson wrote: > O. Hartmann wrote: >> John Baldwin wrote: >>> The following reply was made to PR kern/104625; it has been noted by >>> GNATS. >>> >>> From: John Baldwin >>> To: bug-followup@freebsd.org, ohartman@zedat.fu-berlin.de >>> Cc: Subject: Re: kern/104625: ACPI on ASUS A8N-32 SLI/ASUS P4P800 >>> does not show thermal zones or fan speed >>> Date: Mon, 23 Oct 2006 11:25:09 -0400 >>> >>> You need to provide an acpidump. ACPI thermal zones work fine on >>> computers that list them in their BIOS. Many older machines only >>> provide access to the thermals via non-ACPI methods such as over >>> SMBus, etc. >>> >> >> Attached to this mail you'll find the acpidump of both boxes. >> Please note: ASUS A8N32-SLI IS DEFINITELLY NOT OLD as it has been >> introduces last year and since then the problem persists. And, even >> worse, OpenBSD seems to show up thermal zones. >> As I wrote the 'older' ASUS A8N-SLI Deluxe already showed up thermal >> zones, but had a AWARD BIOS while the boxes in question use AMI BIOS. On >> all boxes I have access to with AMI BIOS, I can not access thermal zones >> in FreeBSD 6.X ... > > No ThermalZone objects present in either of your acpidump tables. Can > you show a dmesg from Openbsd that shows what driver is detecting > those thermal zones? > That will take a while due to I have no access to a OpenBSD box with that hardware (all FreeBSD again), but yes, I'll show that as soon as possible, when having access to the OpenBSD CDs. Regards, Oliver From owner-freebsd-acpi@FreeBSD.ORG Mon Oct 23 22:45:05 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9AB6616A407 for ; Mon, 23 Oct 2006 22:45:05 +0000 (UTC) (envelope-from bengta@P142.sics.se) Received: from brev.sics.se (brev.sics.se [193.10.64.200]) by mx1.FreeBSD.org (Postfix) with ESMTP id E437143D45 for ; Mon, 23 Oct 2006 22:45:04 +0000 (GMT) (envelope-from bengta@P142.sics.se) Received: from P142.sics.se (h177n1-u-d1.ias.bredband.telia.com [213.64.92.177]) by brev.sics.se (8.12.8/8.12.8) with ESMTP id k9NMitnt001887 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 24 Oct 2006 00:44:55 +0200 Received: from P142.sics.se (localhost [127.0.0.1]) by P142.sics.se (8.13.6/8.13.6) with ESMTP id k9NMjDvn001145; Tue, 24 Oct 2006 00:45:13 +0200 (CEST) (envelope-from bengta@P142.sics.se) Received: (from bengta@localhost) by P142.sics.se (8.13.6/8.13.6/Submit) id k9NMjCF3001144; Tue, 24 Oct 2006 00:45:12 +0200 (CEST) (envelope-from bengta@P142.sics.se) To: freebsd-acpi@freebsd.org From: Bengt Ahlgren Date: Tue, 24 Oct 2006 00:45:12 +0200 Message-ID: User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new Subject: ASUS A8N-E hw.acpi.thermal.tz0.temperature always 40C X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 22:45:05 -0000 Hi! The ACPI thermal zone does not work properly on my ASUS A8N-E (nForce 4 ultra). It always shows the temp as 40C: zeus> sysctl hw.acpi.thermal hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 40.0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 73.0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 75.0C hw.acpi.thermal.tz0._ACx: 73.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 mbmon however shows sane (well, changing at least :-) ) numbers: zeus> mbmon -c 1 Temp.= 35.0, 25.0, 37.0; Rot.= 1480, 0, 6026 Vcore = 1.12, 0.00; Volt. = 3.30, 4.92, 11.67, -10.24, -0.00 I suppose this is no fault of FreeBSD at all, but with the ASL: http://www.sics.se/~bengta/FBSD/a8n-e.asl I am quite clueless when it comes to ASL, but the RTMP method does have a case when it returns the constant 0x0C3C, which I believe evaluates to 40C (/10-273.2). There is also another RTMP method as part of a device "ASOC" which seem to support reading not only CPU temp. The ASOC device seems to provide access to a lot of MB sensors. I don't have a thermal problem, but it would be nice to have the thermal zone working! Any clues if it is easy to fix? (The problem seem similar to: http://lists.freebsd.org/pipermail/freebsd-acpi/2006-May/002724.html but unlike this post, the _TMP is not a no-op) Regards, Bengt From owner-freebsd-acpi@FreeBSD.ORG Tue Oct 24 02:03:59 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AF19816A412 for ; Tue, 24 Oct 2006 02:03:59 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4D1E543D4C for ; Tue, 24 Oct 2006 02:03:59 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 91208 invoked from network); 24 Oct 2006 02:04:44 -0000 Received: from ppp-71-139-31-204.dsl.snfc21.pacbell.net (HELO ?10.0.5.59?) (nate-mail@71.139.31.204) by root.org with ESMTPA; 24 Oct 2006 02:04:44 -0000 Message-ID: <453D747B.9090000@root.org> Date: Mon, 23 Oct 2006 19:03:39 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: Bengt Ahlgren References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: ASUS A8N-E hw.acpi.thermal.tz0.temperature always 40C X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 02:03:59 -0000 Bengt Ahlgren wrote: > Hi! > > The ACPI thermal zone does not work properly on my ASUS A8N-E (nForce > 4 ultra). It always shows the temp as 40C: > > I suppose this is no fault of FreeBSD at all, but with the ASL: > > http://www.sics.se/~bengta/FBSD/a8n-e.asl > > I am quite clueless when it comes to ASL, but the RTMP method does > have a case when it returns the constant 0x0C3C, which I believe > evaluates to 40C (/10-273.2). > > There is also another RTMP method as part of a device "ASOC" which > seem to support reading not only CPU temp. The ASOC device seems to > provide access to a lot of MB sensors. > > I don't have a thermal problem, but it would be nice to have the > thermal zone working! Any clues if it is easy to fix? > > (The problem seem similar to: > > http://lists.freebsd.org/pipermail/freebsd-acpi/2006-May/002724.html > > but unlike this post, the _TMP is not a no-op) THRM has a _TMP method. It is only active if the lowest bit of SENF is set to 1, otherwise it returns 0xB86. _TMP calls RTMP(). If SSHU == 1, it returns a constant 0xc3c. So SENF must be 0 and SSHU must be 0 (or other) for the method to do anything. You can try commenting out those If statements and seeing if your system gets the right temp. Then we should figure out why we're not getting the right values. You can add a Store(SSHU, Debug) I think to get a print of its value. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 04:21:01 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BFE7E16A403 for ; Thu, 26 Oct 2006 04:21:01 +0000 (UTC) (envelope-from john@utzweb.net) Received: from marley.grokthis.net (marley.grokthis.net [69.93.78.26]) by mx1.FreeBSD.org (Postfix) with ESMTP id 857C743D49 for ; Thu, 26 Oct 2006 04:21:01 +0000 (GMT) (envelope-from john@utzweb.net) Received: from [192.168.1.6] (c-71-197-214-178.hsd1.or.comcast.net [71.197.214.178]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by marley.grokthis.net (Postfix) with ESMTP id F19E1F1026 for ; Thu, 26 Oct 2006 00:21:00 -0400 (EDT) Mime-Version: 1.0 (Apple Message framework v752.2) Content-Transfer-Encoding: 7bit Message-Id: Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: freebsd-acpi@freebsd.org From: John Utz Date: Wed, 25 Oct 2006 21:20:58 -0700 X-Mailer: Apple Mail (2.752.2) Subject: smbios.ko probes successfully if i disable acpi sysresource, fails if i do not X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 04:21:01 -0000 Hello; as you may know i am attempting to use fbsd's smbios functionality to support porting the linux i8k-utils dell smbios keyboard and fan stuff. i just discovered today that disabling sysresource allows the module to attach. so, here's the part that i'd love some help with understanding: 1. with acpi enabled, is smbios.ko supposed to be asking acpi for a resource handle or something? 2. is acpi_resource.c behaving in error? should it not be consuming the smbios startaddr? note that startaddr for smbios is 0xf000, bios.c looks for pnpbios and pcibios starting at 0xe000 and completely ignores smbios. it seems to me that either statement 1 or 2 is correct, but not both. of course, i could be totally wrong, can anybody enlighten me? tnx! johnu From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 15:58:59 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8B7D216A415 for ; Thu, 26 Oct 2006 15:58:59 +0000 (UTC) (envelope-from redchrom@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.190]) by mx1.FreeBSD.org (Postfix) with ESMTP id 33CC643D72 for ; Thu, 26 Oct 2006 15:58:53 +0000 (GMT) (envelope-from redchrom@gmail.com) Received: by nf-out-0910.google.com with SMTP id p77so1024226nfc for ; Thu, 26 Oct 2006 08:58:51 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:date:from:to:subject:message-id:reply-to:mail-followup-to:mime-version:content-type:content-disposition:user-agent:x-useless-header; b=hbxzaeph9ZgNWkkIkhP/h0kRNhzUo+nw82/5jxMDZ1NR3s6gdVBqCBoXRlB24EiIhkEW435X7UwGsvny5ycmcVGtJifNhgBXJre7rs+hOffduLEVZ8/Mk+mAbiVpHJINaGdUSOW1uTvOR6yOqSasKPbGRZpZ4KzuVqWpWXA7VH4= Received: by 10.48.242.19 with SMTP id p19mr5834342nfh; Thu, 26 Oct 2006 08:58:51 -0700 (PDT) Received: from localhost ( [82.146.37.133]) by mx.google.com with ESMTP id v20sm2149212nfc.2006.10.26.08.58.50; Thu, 26 Oct 2006 08:58:51 -0700 (PDT) Date: Fri, 27 Oct 2006 00:59:07 +0900 From: Stepan Zastupov To: acpi@freebsd.org Message-ID: <20061026155906.GA904@stepan.ispsystem.net> Mail-Followup-To: acpi@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline User-Agent: Mutt/1.4.2.2i X-Useless-Header: They killed Kenny! THOSE BASTARDS! Cc: Subject: powerd: add support for limiting cpu frequency on adaptive mode X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Stepan Zastupov List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 15:58:59 -0000 Can someone look on the pr (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/104689) I sent. Maybe the patch is dirty but I think that idea is nice and with it battery lives really longer. -- Best regards, Stepan Zastupov aka RedChrom ISPSystem From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 16:29:23 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 56DBA16A403 for ; Thu, 26 Oct 2006 16:29:23 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3BD4E43D99 for ; Thu, 26 Oct 2006 16:29:11 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 6088 invoked from network); 26 Oct 2006 16:30:04 -0000 Received: from ppp-71-139-31-204.dsl.snfc21.pacbell.net (HELO ?10.0.5.59?) (nate-mail@71.139.31.204) by root.org with ESMTPA; 26 Oct 2006 16:30:04 -0000 Message-ID: <4540E242.8080100@root.org> Date: Thu, 26 Oct 2006 09:28:50 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: John Utz References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: smbios.ko probes successfully if i disable acpi sysresource, fails if i do not X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 16:29:23 -0000 John Utz wrote: > Hello; > > as you may know i am attempting to use fbsd's smbios functionality to > support porting the linux i8k-utils dell smbios keyboard and fan stuff. > > i just discovered today that disabling sysresource allows the module to > attach. > > so, here's the part that i'd love some help with understanding: > > 1. with acpi enabled, is smbios.ko supposed to be asking acpi for a > resource handle or something? > > 2. is acpi_resource.c behaving in error? should it not be consuming the > smbios startaddr? > > note that startaddr for smbios is 0xf000, bios.c looks for pnpbios and > pcibios starting at 0xe000 and completely ignores smbios. > > it seems to me that either statement 1 or 2 is correct, but not both. > > of course, i could be totally wrong, can anybody enlighten me? ACPI reserves sysresource objects for downstream devices. Then, those devices get the resources they request via ACPI. Anyway, all this should be transparent to the downstream devices. They shouldn't care if they're getting their resources from nexus (top, pseudo-device) or acpi. Are you using bus_alloc_resource() or the equivalent to get the resources in your driver? It transparently maps resource requests to upstream devices. Please send the output of devinfo -rv with your driver installed, both with and without sysresource enabled in ACPI. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 19:42:44 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1333316A492 for ; Thu, 26 Oct 2006 19:42:44 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 50BF943D55 for ; Thu, 26 Oct 2006 19:42:42 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from zion.baldwin.cx (zion.baldwin.cx [192.168.0.7]) (authenticated bits=0) by server.baldwin.cx (8.13.6/8.13.6) with ESMTP id k9QJgdLk032791; Thu, 26 Oct 2006 15:42:39 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-acpi@freebsd.org Date: Thu, 26 Oct 2006 14:23:04 -0400 User-Agent: KMail/1.9.1 References: <4540E242.8080100@root.org> In-Reply-To: <4540E242.8080100@root.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200610261423.04670.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [192.168.0.1]); Thu, 26 Oct 2006 15:42:39 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/2107/Thu Oct 26 10:33:29 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Subject: Re: smbios.ko probes successfully if i disable acpi sysresource, fails if i do not X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 19:42:44 -0000 On Thursday 26 October 2006 12:28, Nate Lawson wrote: > John Utz wrote: > > Hello; > > > > as you may know i am attempting to use fbsd's smbios functionality to > > support porting the linux i8k-utils dell smbios keyboard and fan stuff. > > > > i just discovered today that disabling sysresource allows the module to > > attach. > > > > so, here's the part that i'd love some help with understanding: > > > > 1. with acpi enabled, is smbios.ko supposed to be asking acpi for a > > resource handle or something? > > > > 2. is acpi_resource.c behaving in error? should it not be consuming the > > smbios startaddr? > > > > note that startaddr for smbios is 0xf000, bios.c looks for pnpbios and > > pcibios starting at 0xe000 and completely ignores smbios. > > > > it seems to me that either statement 1 or 2 is correct, but not both. > > > > of course, i could be totally wrong, can anybody enlighten me? > > ACPI reserves sysresource objects for downstream devices. Then, those > devices get the resources they request via ACPI. Anyway, all this > should be transparent to the downstream devices. They shouldn't care if > they're getting their resources from nexus (top, pseudo-device) or acpi. > > Are you using bus_alloc_resource() or the equivalent to get the > resources in your driver? It transparently maps resource requests to > upstream devices. Please send the output of devinfo -rv with your > driver installed, both with and without sysresource enabled in ACPI. smbios is attached to nexus though, so acpi isn't upstream. -- John Baldwin From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 20:40:14 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 07C0116A4AB for ; Thu, 26 Oct 2006 20:40:13 +0000 (UTC) (envelope-from oberman@es.net) Received: from postal1.es.net (postal1.es.net [198.128.3.205]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9038243D5A for ; Thu, 26 Oct 2006 20:40:13 +0000 (GMT) (envelope-from oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal1.es.net (Postal Node 1) with ESMTP (SSL) id EEN12844; Thu, 26 Oct 2006 13:39:44 -0700 Received: from ptavv.es.net (localhost [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id CB9D04504D; Thu, 26 Oct 2006 13:39:43 -0700 (PDT) To: Nate Lawson In-Reply-To: Your message of "Wed, 04 Oct 2006 22:43:43 PDT." <45249B8F.2060407@root.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1161895183_68145P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Thu, 26 Oct 2006 13:39:43 -0700 From: "Kevin Oberman" Message-Id: <20061026203943.CB9D04504D@ptavv.es.net> Cc: acpi@freebsd.org Subject: Re: Odd power management on ThinkPad T43 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 20:40:14 -0000 --==_Exmh_1161895183_68145P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Date: Wed, 04 Oct 2006 22:43:43 -0700 > From: Nate Lawson > > Kevin Oberman wrote: > > I'm running current on an IBM ThinkPad T43 and I'm not sure I have a problem, > > but something odd seems to be going on. > > > > I have a 2.0 GHz Pentium-M which I believe is 760. I believe it's one IBM has > > not released information on the EST specs. > > > > If I do NOT have cpufreq loaded, I see: > > dev.cpu.0.freq_levels: 2000/27000 1750/23625 1600/22600 1400/19775 1333/19666 > > 1166/17207 1066/16733 932/14641 800/13800 700/12075 600/10350 500/8625 > > 400/6900 300/5175 200/3450 100/1725 > > > > If I load cpufreq I see: > > dev.cpu.0.freq_levels: 1500/-1 1312/-1 1200/-1 1050/-1 1000/-1 875/-1 800/-1 > > 700/-1 600/-1 525/-1 450/-1 375/-1 300/-1 225/-1 150/-1 75/-1 > > > > With cpufreq I report perf0, est0 and p4tcc0 in dmesg. Without loading cpufreq > > I still see acpi_perf0 and acpi_throttle0. > > > > This would lead me to believe that without cpufreq I am only seeing > > throttling, but I see my clock speed decrease (x86info) which I did not expect > > to see with pure throttling. > > > > Am I better off when on battery to use cpufreq or not? Is there something to > > tweak to get full 2GHz performance with EST? > > This sounds like a bad table match for est0. Perhaps it's detecting > your CPU as a 1.5Ghz one when it's actually 2Ghz. > > An easy way to tell is to load cpufreq but disable just est with: > hint.est.0.disabled="1" > > You should get acpi_perf and p4tcc, and the frequencies will be correct > for your system. acpi_perf is often more user-friendly anyway since it > reports the power consumed at each level instead of just "-1". > > It's also possible you were booting on battery and had lower levels > available. Easy way to tell is report output of sysctl -a | grep cpu Well, this experiment was not a success at all! With cpufreq and EST disabled, I had 8 "steps", none at the points they should have been and testing speed and performance showed almost no power reduction between steps and better performance at 496 MHz than at 1985 MHz. I get the following frequency/energy pairs for different setting: dev.cpu.0.freq_levels: 1985/-1 1736/-1 1488/-1 1240/-1 992/-1 744/-1 496/-1 248/-1 The performance measured with byte/sec of MD5 calculations is: 1985 154775012 1736 141901764 1488 140810800 1240 154728184 992 125388600 744 107718376 496 154821869 248 112606365 248 107675442 496 110848872 744 111006586 992 114505624 1240 150149431 1488 136979772 1736 152260357 1985 154612270 High numbers are good. I would describe these results as totally weird. EST vs. running without cpufreq show very consistent and linear change in both performance and power consumption with speed. Only running without cpufreq provides the energy values. I'm baffled, but I think I can live with just running without cpufreq. I'm just not real sure if there is any real difference between running with EST or without cpufreq. My tests sure don't show much. Thanks for the suggestions, even if the results were not what was expected. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1161895183_68145P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFFQR0Pkn3rs5h7N1ERAoehAJ0ThchF5AySmMmBSmiPSsVArxOdsACdHj5N FCHeo3UaDHP/jexzcD0Ov94= =toQo -----END PGP SIGNATURE----- --==_Exmh_1161895183_68145P-- From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 20:43:57 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4E07D16A412 for ; Thu, 26 Oct 2006 20:43:57 +0000 (UTC) (envelope-from oberman@es.net) Received: from postal1.es.net (postal1.es.net [198.128.3.205]) by mx1.FreeBSD.org (Postfix) with ESMTP id 095EE43D45 for ; Thu, 26 Oct 2006 20:43:56 +0000 (GMT) (envelope-from oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal1.es.net (Postal Node 1) with ESMTP (SSL) id EER30529; Thu, 26 Oct 2006 13:43:29 -0700 Received: from ptavv.es.net (localhost [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id C764F4504D; Thu, 26 Oct 2006 13:43:28 -0700 (PDT) To: Stepan Zastupov In-Reply-To: Your message of "Fri, 27 Oct 2006 00:59:07 +0900." <20061026155906.GA904@stepan.ispsystem.net> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1161895408_68145P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Thu, 26 Oct 2006 13:43:28 -0700 From: "Kevin Oberman" Message-Id: <20061026204328.C764F4504D@ptavv.es.net> Cc: acpi@freebsd.org Subject: Re: powerd: add support for limiting cpu frequency on adaptive mode X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 20:43:57 -0000 --==_Exmh_1161895408_68145P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Can someone look on the pr > (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/104689) I sent. Maybe > the patch is dirty but I think that idea is nice and with it battery > lives really longer. YES! When I am on battery for an extended time, I am very happy to have the system max out at a MUCH lower speed if I can keep basic capabilities for simple stuff like editing and such. Slight slow-downs are not an issue. That said, power consumption is NOT intuitive. If I am playing an MP3 (very constant CPU load) at a speed where the CPU is at about 80%, the system uses more power than when the CPU is at 30%. In either case, the MP3 playback is fine. (This was on my T30 with a 1.8G P4M CPU, so it's not the best for power use.) I know that Windows wants to reduce maximum CPU speed when running on battery, so I do believe this is a good thing. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1161895408_68145P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFFQR3wkn3rs5h7N1ERAl7WAKCkD4gUqNH3J5jJMzh8XWX5GPXZVQCfWpp7 izAHjAD//To2iYAD7xwKLog= =kGLt -----END PGP SIGNATURE----- --==_Exmh_1161895408_68145P-- From owner-freebsd-acpi@FreeBSD.ORG Thu Oct 26 21:15:17 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B4FA416A407 for ; Thu, 26 Oct 2006 21:15:17 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4998F43D55 for ; Thu, 26 Oct 2006 21:15:17 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 28770 invoked from network); 26 Oct 2006 21:16:10 -0000 Received: from adsl-67-119-74-222.dsl.sntc01.pacbell.net (HELO ?10.0.0.44?) (nate-mail@67.119.74.222) by root.org with ESMTPA; 26 Oct 2006 21:16:10 -0000 Message-ID: <4541254E.5020108@root.org> Date: Thu, 26 Oct 2006 14:14:54 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: John Baldwin References: <4540E242.8080100@root.org> <200610261423.04670.jhb@freebsd.org> In-Reply-To: <200610261423.04670.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: smbios.ko probes successfully if i disable acpi sysresource, fails if i do not X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 21:15:17 -0000 John Baldwin wrote: > On Thursday 26 October 2006 12:28, Nate Lawson wrote: >> John Utz wrote: >>> Hello; >>> >>> as you may know i am attempting to use fbsd's smbios functionality to >>> support porting the linux i8k-utils dell smbios keyboard and fan stuff. >>> >>> i just discovered today that disabling sysresource allows the module to >>> attach. >>> >>> so, here's the part that i'd love some help with understanding: >>> >>> 1. with acpi enabled, is smbios.ko supposed to be asking acpi for a >>> resource handle or something? >>> >>> 2. is acpi_resource.c behaving in error? should it not be consuming the >>> smbios startaddr? >>> >>> note that startaddr for smbios is 0xf000, bios.c looks for pnpbios and >>> pcibios starting at 0xe000 and completely ignores smbios. >>> >>> it seems to me that either statement 1 or 2 is correct, but not both. >>> >>> of course, i could be totally wrong, can anybody enlighten me? >> ACPI reserves sysresource objects for downstream devices. Then, those >> devices get the resources they request via ACPI. Anyway, all this >> should be transparent to the downstream devices. They shouldn't care if >> they're getting their resources from nexus (top, pseudo-device) or acpi. >> >> Are you using bus_alloc_resource() or the equivalent to get the >> resources in your driver? It transparently maps resource requests to >> upstream devices. Please send the output of devinfo -rv with your >> driver installed, both with and without sysresource enabled in ACPI. > > smbios is attached to nexus though, so acpi isn't upstream. > Why is smbios on nexus? It seems desirable to have it under the top-level bus, which would be acpi if it is not disabled. Also, npx should be there too (additional rationale: npx devices are defined in the acpi Device namespace). -- Nate From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 27 02:19:40 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7A35116A40F; Fri, 27 Oct 2006 02:19:40 +0000 (UTC) (envelope-from john@utzweb.net) Received: from marley.grokthis.net (marley.grokthis.net [69.93.78.26]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0564543D5D; Fri, 27 Oct 2006 02:19:38 +0000 (GMT) (envelope-from john@utzweb.net) Received: from [192.168.1.6] (c-71-197-214-178.hsd1.or.comcast.net [71.197.214.178]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by marley.grokthis.net (Postfix) with ESMTP id 85449F1027; Thu, 26 Oct 2006 22:19:43 -0400 (EDT) In-Reply-To: <4541254E.5020108@root.org> References: <4540E242.8080100@root.org> <200610261423.04670.jhb@freebsd.org> <4541254E.5020108@root.org> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <28D1F57D-B976-4EC3-927A-40F09C4465E6@utzweb.net> Content-Transfer-Encoding: 7bit From: John Utz Date: Thu, 26 Oct 2006 19:19:29 -0700 To: Nate Lawson X-Mailer: Apple Mail (2.752.2) Cc: freebsd-acpi@freebsd.org Subject: Serious Progess Re: smbios.ko probes successfully if i disable acpi sysresource, fails if i do not X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 02:19:40 -0000 On Oct 26, 2006, at 2:14 PM, Nate Lawson wrote: > John Baldwin wrote: >> On Thursday 26 October 2006 12:28, Nate Lawson wrote: >>> John Utz wrote: >>>> Hello; >>>> >>>> as you may know i am attempting to use fbsd's smbios >>>> functionality to support porting the linux i8k-utils dell smbios >>>> keyboard and fan stuff. >>>> >>>> i just discovered today that disabling sysresource allows the >>>> module to attach. >>>> >>>> so, here's the part that i'd love some help with understanding: >>>> >>>> 1. with acpi enabled, is smbios.ko supposed to be asking acpi >>>> for a resource handle or something? >>>> >>>> 2. is acpi_resource.c behaving in error? should it not be >>>> consuming the smbios startaddr? >>>> >>>> note that startaddr for smbios is 0xf000, bios.c looks for >>>> pnpbios and pcibios starting at 0xe000 and completely ignores >>>> smbios. >>>> >>>> it seems to me that either statement 1 or 2 is correct, but not >>>> both. >>>> >>>> of course, i could be totally wrong, can anybody enlighten me? >>> ACPI reserves sysresource objects for downstream devices. Then, >>> those devices get the resources they request via ACPI. Anyway, >>> all this should be transparent to the downstream devices. They >>> shouldn't care if they're getting their resources from nexus >>> (top, pseudo-device) or acpi. >>> >>> Are you using bus_alloc_resource() or the equivalent to get the >>> resources in your driver? this was the us$64K question, thankyou for answering it! man bus_alloc_resource sez 'dont use this any earlier than attach, and smbios.c (and several other things) are using it in probe(). once i yanked that out of probe, then it cohabitates with acpi >>> It transparently maps resource requests to upstream devices. >>> Please send the output of devinfo -rv with your driver installed, >>> both with and without sysresource enabled in ACPI. >> smbios is attached to nexus though, so acpi isn't upstream. > > Why is smbios on nexus? It seems desirable to have it under the > top-level bus, which would be acpi if it is not disabled. Also, > npx should be there too (additional rationale: npx devices are > defined in the acpi Device namespace). > > -- > Nate > From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 27 05:21:08 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0AD3B16A412 for ; Fri, 27 Oct 2006 05:21:08 +0000 (UTC) (envelope-from takawata@init-main.com) Received: from sana.init-main.com (104.194.138.210.bn.2iij.net [210.138.194.104]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9C48543D55 for ; Fri, 27 Oct 2006 05:21:07 +0000 (GMT) (envelope-from takawata@init-main.com) Received: from init-main.com (localhost [127.0.0.1]) by sana.init-main.com (8.13.8/8.13.3) with ESMTP id k9R5HjSm030102; Fri, 27 Oct 2006 14:17:50 +0900 (JST) (envelope-from takawata@init-main.com) Message-Id: <200610270517.k9R5HjSm030102@sana.init-main.com> To: bengta@sics.se In-reply-to: Your message of "Mon, 23 Oct 2006 19:03:39 MST." <453D747B.9090000@root.org> Date: Fri, 27 Oct 2006 14:17:45 +0900 From: Takanori Watanabe Cc: freebsd-acpi@freebsd.org Subject: Re: ASUS A8N-E hw.acpi.thermal.tz0.temperature always 40C X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 05:21:08 -0000 In message <453D747B.9090000@root.org>, Nate Lawson $B$5$s$$$o$/(B: >Bengt Ahlgren wrote: >> Hi! >> >> The ACPI thermal zone does not work properly on my ASUS A8N-E (nForce >> 4 ultra). It always shows the temp as 40C: >> >> I suppose this is no fault of FreeBSD at all, but with the ASL: >> >> http://www.sics.se/~bengta/FBSD/a8n-e.asl >> >> I am quite clueless when it comes to ASL, but the RTMP method does >> have a case when it returns the constant 0x0C3C, which I believe >> evaluates to 40C (/10-273.2). >> >> There is also another RTMP method as part of a device "ASOC" which >> seem to support reading not only CPU temp. The ASOC device seems to >> provide access to a lot of MB sensors. >> >> I don't have a thermal problem, but it would be nice to have the >> thermal zone working! Any clues if it is easy to fix? >> >> (The problem seem similar to: >> >> http://lists.freebsd.org/pipermail/freebsd-acpi/2006-May/002724.html >> >> but unlike this post, the _TMP is not a no-op) > >THRM has a _TMP method. It is only active if the lowest bit of SENF is >set to 1, otherwise it returns 0xB86. _TMP calls RTMP(). If SSHU == 1, >it returns a constant 0xc3c. So SENF must be 0 and SSHU must be 0 (or >other) for the method to do anything. > >You can try commenting out those If statements and seeing if your system >gets the right temp. Then we should figure out why we're not getting >the right values. You can add a Store(SSHU, Debug) I think to get a >print of its value. Hi, I wrote a driver for _HID=ATK0110. It seems to be AI Booster device. With this driver, I gots 2 Temperature 4 Voltage 2 Fan speed. http://www.init-main.com/aiboost.tar.gz Regards. From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 27 08:46:38 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 808EF16A5C1 for ; Fri, 27 Oct 2006 08:46:38 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from gaia.nimnet.asn.au (nimbin.lnk.telstra.net [139.130.45.143]) by mx1.FreeBSD.org (Postfix) with ESMTP id CC32943D46 for ; Fri, 27 Oct 2006 08:46:35 +0000 (GMT) (envelope-from smithi@nimnet.asn.au) Received: from localhost (smithi@localhost) by gaia.nimnet.asn.au (8.8.8/8.8.8R1.4) with SMTP id SAA03550; Fri, 27 Oct 2006 18:45:23 +1000 (EST) (envelope-from smithi@nimnet.asn.au) Date: Fri, 27 Oct 2006 18:45:22 +1000 (EST) From: Ian Smith To: Kevin Oberman In-Reply-To: <20061026204328.C764F4504D@ptavv.es.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: acpi@freebsd.org Subject: Re: powerd: add support for limiting cpu frequency on adaptive mode X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 08:46:38 -0000 On Thu, 26 Oct 2006, Kevin Oberman wrote: > > Can someone look on the pr > > (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/104689) I sent. Maybe > > the patch is dirty but I think that idea is nice and with it battery > > lives really longer. > > YES! When I am on battery for an extended time, I am very happy to have > the system max out at a MUCH lower speed if I can keep basic capabilities > for simple stuff like editing and such. Slight slow-downs are not an > issue. The problem I see with this patch as it stands is that it affects both battery and AC power adaptive modes (ie, powerd default operating mode) Stepan says in the PR: "Apply the patch and run powerd: powerd -a maximum -b adaptive -m 558 Where 558 is maximum frequency on adaptive mode" I want to run adaptive mode on 'AC' both because it uses half the power when idle and greatly reduces the laptop's temperature (Thinkpad T23). 'AC' in quotes, this being a 100% solar power home; every watt counts. Were the -m switch function ANDed with (acline_status = SRC_BATTERY) or perhaps, allowing for SRC_UNKNOWN, (acline_status != SRC_AC) then you could still use adaptive mode at full speed on 'AC' when required and take advantage of setting a maximum speed while running on battery? > That said, power consumption is NOT intuitive. If I am playing an MP3 > (very constant CPU load) at a speed where the CPU is at about 80%, the > system uses more power than when the CPU is at 30%. In either case, the > MP3 playback is fine. (This was on my T30 with a 1.8G P4M CPU, so it's > not the best for power use.) The T23 is only a two-speed P3M (1133/733) so I've yet to see the full potential of powerd, nor have I played with its idle/busy shift points or examined hysteresis between load shift points at various freqs, but it's already a Very Good Thing here .. > I know that Windows wants to reduce maximum CPU speed when running on > battery, so I do believe this is a good thing. If limited to while running on battery only, I'd heartily agree. Meanwhile of course you can run powerd -b min though that might be overkill if you have lots of freqs available .. Cheers, Ian From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 27 16:09:19 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 158C116A407 for ; Fri, 27 Oct 2006 16:09:19 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id C8E2F43D60 for ; Fri, 27 Oct 2006 16:09:18 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 34068 invoked from network); 27 Oct 2006 16:10:14 -0000 Received: from ppp-71-139-31-204.dsl.snfc21.pacbell.net (HELO ?10.0.5.59?) (nate-mail@71.139.31.204) by root.org with ESMTPA; 27 Oct 2006 16:10:14 -0000 Message-ID: <45422F17.4000704@root.org> Date: Fri, 27 Oct 2006 09:08:55 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: Ian Smith References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: acpi@freebsd.org Subject: Re: powerd: add support for limiting cpu frequency on adaptive mode X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 16:09:19 -0000 Ian Smith wrote: > On Thu, 26 Oct 2006, Kevin Oberman wrote: > > > > Can someone look on the pr > > > (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/104689) I sent. Maybe > > > the patch is dirty but I think that idea is nice and with it battery > > > lives really longer. > > > > YES! When I am on battery for an extended time, I am very happy to have > > the system max out at a MUCH lower speed if I can keep basic capabilities > > for simple stuff like editing and such. Slight slow-downs are not an > > issue. > > The problem I see with this patch as it stands is that it affects both > battery and AC power adaptive modes (ie, powerd default operating mode) > > Stepan says in the PR: > > "Apply the patch and run powerd: > powerd -a maximum -b adaptive -m 558 > Where 558 is maximum frequency on adaptive mode" > > I want to run adaptive mode on 'AC' both because it uses half the power > when idle and greatly reduces the laptop's temperature (Thinkpad T23). > 'AC' in quotes, this being a 100% solar power home; every watt counts. > > Were the -m switch function ANDed with (acline_status = SRC_BATTERY) or > perhaps, allowing for SRC_UNKNOWN, (acline_status != SRC_AC) then you > could still use adaptive mode at full speed on 'AC' when required and > take advantage of setting a maximum speed while running on battery? > > > That said, power consumption is NOT intuitive. If I am playing an MP3 > > (very constant CPU load) at a speed where the CPU is at about 80%, the > > system uses more power than when the CPU is at 30%. In either case, the > > MP3 playback is fine. (This was on my T30 with a 1.8G P4M CPU, so it's > > not the best for power use.) > > The T23 is only a two-speed P3M (1133/733) so I've yet to see the full > potential of powerd, nor have I played with its idle/busy shift points > or examined hysteresis between load shift points at various freqs, but > it's already a Very Good Thing here .. > > > I know that Windows wants to reduce maximum CPU speed when running on > > battery, so I do believe this is a good thing. > > If limited to while running on battery only, I'd heartily agree. > Meanwhile of course you can run powerd -b min though that might be > overkill if you have lots of freqs available .. I'll say it again: we need real profiles, not more command line flags. The first person to add a .y and define a config file format gets a cookie. I just haven't found anyone willing to put in that design effort. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Fri Oct 27 16:35:58 2006 Return-Path: X-Original-To: acpi@freebsd.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 15DB816A40F for ; Fri, 27 Oct 2006 16:35:58 +0000 (UTC) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.FreeBSD.org (Postfix) with ESMTP id 54B4E43D6E for ; Fri, 27 Oct 2006 16:35:51 +0000 (GMT) (envelope-from sam@errno.com) Received: from [10.0.0.248] (trouble.errno.com [10.0.0.248]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id k9RGZmDA007403 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 27 Oct 2006 09:35:50 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <45423564.8030703@errno.com> Date: Fri, 27 Oct 2006 09:35:48 -0700 From: Sam Leffler User-Agent: Thunderbird 1.5.0.7 (X11/20060920) MIME-Version: 1.0 To: Nate Lawson References: <45422F17.4000704@root.org> In-Reply-To: <45422F17.4000704@root.org> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: acpi@freebsd.org Subject: Re: powerd: add support for limiting cpu frequency on adaptive mode X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 16:35:58 -0000 Nate Lawson wrote: > Ian Smith wrote: >> On Thu, 26 Oct 2006, Kevin Oberman wrote: >> >> > > Can someone look on the pr >> > > (http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/104689) I sent. >> Maybe >> > > the patch is dirty but I think that idea is nice and with it battery >> > > lives really longer. >> > > YES! When I am on battery for an extended time, I am very happy >> to have >> > the system max out at a MUCH lower speed if I can keep basic >> capabilities >> > for simple stuff like editing and such. Slight slow-downs are not an >> > issue. >> >> The problem I see with this patch as it stands is that it affects both >> battery and AC power adaptive modes (ie, powerd default operating mode) >> >> Stepan says in the PR: >> >> "Apply the patch and run powerd: >> powerd -a maximum -b adaptive -m 558 >> Where 558 is maximum frequency on adaptive mode" >> >> I want to run adaptive mode on 'AC' both because it uses half the power >> when idle and greatly reduces the laptop's temperature (Thinkpad T23). >> 'AC' in quotes, this being a 100% solar power home; every watt counts. >> Were the -m switch function ANDed with (acline_status = SRC_BATTERY) or >> perhaps, allowing for SRC_UNKNOWN, (acline_status != SRC_AC) then you >> could still use adaptive mode at full speed on 'AC' when required and >> take advantage of setting a maximum speed while running on battery? >> > That said, power consumption is NOT intuitive. If I am playing an MP3 >> > (very constant CPU load) at a speed where the CPU is at about 80%, >> the >> > system uses more power than when the CPU is at 30%. In either case, >> the >> > MP3 playback is fine. (This was on my T30 with a 1.8G P4M CPU, so it's >> > not the best for power use.) >> >> The T23 is only a two-speed P3M (1133/733) so I've yet to see the full >> potential of powerd, nor have I played with its idle/busy shift points >> or examined hysteresis between load shift points at various freqs, but >> it's already a Very Good Thing here .. >> >> > I know that Windows wants to reduce maximum CPU speed when running on >> > battery, so I do believe this is a good thing. >> >> If limited to while running on battery only, I'd heartily agree. >> Meanwhile of course you can run powerd -b min though that might be >> overkill if you have lots of freqs available .. > > I'll say it again: we need real profiles, not more command line flags. > The first person to add a .y and define a config file format gets a > cookie. I just haven't found anyone willing to put in that design effort. > Config files are great but I think something more dynamic is needed. In particular I'd like to see devd launch tools that inform powerd it should switch operating mode from AC -> battery. Otherwise powerd needs this builtin and then we'll have no good place to centralize power-related work (e.g. like setting wireless cards into power save mode when operating in sta mode and on battery). Or perhaps I'm not clueful here... Sam From owner-freebsd-acpi@FreeBSD.ORG Sat Oct 28 17:40:19 2006 Return-Path: X-Original-To: acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AE3D316A40F; Sat, 28 Oct 2006 17:40:19 +0000 (UTC) (envelope-from nork@FreeBSD.org) Received: from sakura.ninth-nine.com (sakura.ninth-nine.com [219.127.74.120]) by mx1.FreeBSD.org (Postfix) with ESMTP id C151643D55; Sat, 28 Oct 2006 17:40:18 +0000 (GMT) (envelope-from nork@FreeBSD.org) Received: from nadesico.ninth-nine.com (nadesico.ninth-nine.com [219.127.74.122]) by sakura.ninth-nine.com (8.13.8/8.13.8/NinthNine) with SMTP id k9SHeHBD075344; Sun, 29 Oct 2006 02:40:17 +0900 (JST) (envelope-from nork@FreeBSD.org) Date: Sun, 29 Oct 2006 02:40:16 +0900 From: Norikatsu Shigemura To: John Baldwin Message-Id: <20061029024016.37b858ab.nork@FreeBSD.org> In-Reply-To: <20061011233113.7446a3ab.nork@FreeBSD.org> References: <200610101020.32041.jhb@freebsd.org> <20061011233113.7446a3ab.nork@FreeBSD.org> X-Mailer: Sylpheed version 2.2.9 (GTK+ 2.10.6; i386-portbld-freebsd6.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 (sakura.ninth-nine.com [219.127.74.121]); Sun, 29 Oct 2006 02:40:17 +0900 (JST) Cc: acpi@FreeBSD.org, mobile@FreeBSD.org Subject: Re: [PATCH] UP APIC suspend/resume support -- Please test X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Oct 2006 17:40:19 -0000 On Wed, 11 Oct 200 23:31:13 +0900 Norikatsu Shigemura wrote: > On Tue, 10 Oct 2006 10:20:31 -0400 > John Baldwin wrote: > > No one has tested this yet, so I gues folks missed it. Can someone with > > otherwise working suspend/resume on a system with APIC please test > > http://www.freebsd.org/~jhb/patches/apic_resume.patch and let me know if > > suspend/resume works? Note that it doesn't add SMP support, so you'll > > still need to disable SMP (either via kern.smp.disabled or by removing > > SMP from the kernel config) to test. Thanks. > Perfect!! in my Panasonic CF-R4 (Let's note/Toughbook) > on 6.2-PRERELEASE. Oops, I found a problem. After suspend/resume, acpi_panasonic(4)'s ACPI hotkey driver is not works. But sysctl hw.acpi.panasonic.* can work well. And if hint.apic.0.disabled=1, ACPI hotkey driver always works. From owner-freebsd-acpi@FreeBSD.ORG Sat Oct 28 21:19:56 2006 Return-Path: X-Original-To: acpi@FreeBSD.org Delivered-To: freebsd-acpi@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B66216A47C for ; Sat, 28 Oct 2006 21:19:56 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3457943D46 for ; Sat, 28 Oct 2006 21:19:55 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 82657 invoked from network); 28 Oct 2006 21:20:55 -0000 Received: from ppp-71-139-31-204.dsl.snfc21.pacbell.net (HELO ?10.0.5.59?) (nate-mail@71.139.31.204) by root.org with ESMTPA; 28 Oct 2006 21:20:55 -0000 Message-ID: <4543C963.4000106@root.org> Date: Sat, 28 Oct 2006 14:19:31 -0700 From: Nate Lawson User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: Norikatsu Shigemura References: <200610101020.32041.jhb@freebsd.org> <20061011233113.7446a3ab.nork@FreeBSD.org> <20061029024016.37b858ab.nork@FreeBSD.org> In-Reply-To: <20061029024016.37b858ab.nork@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: acpi@FreeBSD.org, mobile@FreeBSD.org, John Baldwin Subject: Re: [PATCH] UP APIC suspend/resume support -- Please test X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Oct 2006 21:19:56 -0000 Norikatsu Shigemura wrote: > On Wed, 11 Oct 200 23:31:13 +0900 > Norikatsu Shigemura wrote: >> On Tue, 10 Oct 2006 10:20:31 -0400 >> John Baldwin wrote: >>> No one has tested this yet, so I gues folks missed it. Can someone with >>> otherwise working suspend/resume on a system with APIC please test >>> http://www.freebsd.org/~jhb/patches/apic_resume.patch and let me know if >>> suspend/resume works? Note that it doesn't add SMP support, so you'll >>> still need to disable SMP (either via kern.smp.disabled or by removing >>> SMP from the kernel config) to test. Thanks. >> Perfect!! in my Panasonic CF-R4 (Let's note/Toughbook) >> on 6.2-PRERELEASE. > > Oops, I found a problem. After suspend/resume, acpi_panasonic(4)'s > ACPI hotkey driver is not works. But sysctl hw.acpi.panasonic.* > can work well. And if hint.apic.0.disabled=1, ACPI hotkey driver > always works. I wonder if it's related to how the SCI is being reprogrammed (or not) on resume. I wonder if it needs different treatment than other APIC interrupts. -- Nate From owner-freebsd-acpi@FreeBSD.ORG Sat Oct 28 22:23:44 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 49D1616A492 for ; Sat, 28 Oct 2006 22:23:44 +0000 (UTC) (envelope-from bengta@P142.sics.se) Received: from brev.sics.se (brev.sics.se [193.10.64.200]) by mx1.FreeBSD.org (Postfix) with ESMTP id A1A2B43D5C for ; Sat, 28 Oct 2006 22:23:43 +0000 (GMT) (envelope-from bengta@P142.sics.se) Received: from P142.sics.se (h177n1-u-d1.ias.bredband.telia.com [213.64.92.177]) by brev.sics.se (8.12.8/8.12.8) with ESMTP id k9SMNZnt007724 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 29 Oct 2006 00:23:36 +0200 Received: from P142.sics.se (localhost [127.0.0.1]) by P142.sics.se (8.13.6/8.13.6) with ESMTP id k9SMNwK7001734; Sun, 29 Oct 2006 00:23:58 +0200 (CEST) (envelope-from bengta@P142.sics.se) Received: (from bengta@localhost) by P142.sics.se (8.13.6/8.13.6/Submit) id k9SMNvkh001733; Sun, 29 Oct 2006 00:23:57 +0200 (CEST) (envelope-from bengta@P142.sics.se) To: Nate Lawson From: Bengt Ahlgren In-Reply-To: <453D747B.9090000@root.org> (Nate Lawson's message of "Mon, 23 Oct 2006 19:03:39 -0700") References: <453D747B.9090000@root.org> Date: Sun, 29 Oct 2006 00:23:56 +0200 Message-ID: User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: by amavisd-new Cc: freebsd-acpi@freebsd.org Subject: Re: ASUS A8N-E hw.acpi.thermal.tz0.temperature always 40C X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Oct 2006 22:23:44 -0000 Nate Lawson writes: > Bengt Ahlgren wrote: >> Hi! >> The ACPI thermal zone does not work properly on my ASUS A8N-E (nForce >> 4 ultra). It always shows the temp as 40C: >> I suppose this is no fault of FreeBSD at all, but with the ASL: >> http://www.sics.se/~bengta/FBSD/a8n-e.asl >> I am quite clueless when it comes to ASL, but the RTMP method does >> have a case when it returns the constant 0x0C3C, which I believe >> evaluates to 40C (/10-273.2). >> There is also another RTMP method as part of a device "ASOC" which >> seem to support reading not only CPU temp. The ASOC device seems to >> provide access to a lot of MB sensors. >> I don't have a thermal problem, but it would be nice to have the >> thermal zone working! Any clues if it is easy to fix? >> (The problem seem similar to: >> http://lists.freebsd.org/pipermail/freebsd-acpi/2006-May/002724.html >> but unlike this post, the _TMP is not a no-op) > > THRM has a _TMP method. It is only active if the lowest bit of SENF > is set to 1, otherwise it returns 0xB86. _TMP calls RTMP(). If SSHU > == 1, it returns a constant 0xc3c. So SENF must be 0 and SSHU must be > 0 (or other) for the method to do anything. > > You can try commenting out those If statements and seeing if your > system gets the right temp. Then we should figure out why we're not > getting the right values. You can add a Store(SSHU, Debug) I think to > get a print of its value. Commenting out the if on SSHU does indeed make the thermal zone show the same temp as the third temp value from mbmon. Where should Store(SSHU, Debug) print? I don't see anything on the console. Do I need to compile acpi with ACPI_DEBUG? (Just curios - I don't think I will bother since it now works.) iasl however complained so I had to force with -f: Intel ACPI Component Architecture ASL Optimizing Compiler / AML Disassembler version 20041119 [Oct 21 2006] Copyright (C) 2000 - 2004 Intel Corporation Supports ACPI Specification Revision 2.0c a8n-e-hack.asl 461: Method (\_WAK, 1, NotSerialized) Warning 2026 - ^ Reserved method must return a value (_WA K) a8n-e-hack.asl 2779: Name (_HID, "_NVRAIDBUS") Error 1068 - String must be entirely alphanumeric ^ (_NVRAIDBUS) a8n-e-hack.asl 3026: Method (RVLT, 1, NotSerialized) Warning 2019 - ^ Not all control paths return a value (RVLT) a8n-e-hack.asl 3146: Method (RTMP, 1, NotSerialized) Warning 2019 - ^ Not all control paths return a value (RTMP) a8n-e-hack.asl 3341: Method (OCOP, 1, NotSerialized) Warning 2019 - ^ Not all control paths return a value (OCOP) a8n-e-hack.asl 4212: Method (GCQV, 1, NotSerialized) Warning 2019 - ^ Not all control paths return a value (GCQV) ASL Input: a8n-e-hack.asl - 7252 lines, 213903 bytes, 3003 keywords Compilation complete. 1 Errors, 5 Warnings, 0 Remarks, 850 Optimizations Regards, Bengt