📄 dsdt.asl
字号:
/****************************************************************************** * DSDT for Xen with Qemu device model * * Copyright (c) 2004, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place - Suite 330, Boston, MA 02111-1307 USA. */DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0){ Name (\PMBS, 0x0C00) Name (\PMLN, 0x08) Name (\IOB1, 0x00) Name (\IOL1, 0x00) Name (\APCB, 0xFEC00000) Name (\APCL, 0x00010000) Name (\PUID, 0x00) Scope (\_PR) { Processor (PR00, 0x00, 0x0000, 0x00) {} Processor (PR01, 0x01, 0x0000, 0x00) {} Processor (PR02, 0x02, 0x0000, 0x00) {} Processor (PR03, 0x03, 0x0000, 0x00) {} Processor (PR04, 0x04, 0x0000, 0x00) {} Processor (PR05, 0x05, 0x0000, 0x00) {} Processor (PR06, 0x06, 0x0000, 0x00) {} Processor (PR07, 0x07, 0x0000, 0x00) {} Processor (PR08, 0x08, 0x0000, 0x00) {} Processor (PR09, 0x09, 0x0000, 0x00) {} Processor (PR0A, 0x0a, 0x0000, 0x00) {} Processor (PR0B, 0x0b, 0x0000, 0x00) {} Processor (PR0C, 0x0c, 0x0000, 0x00) {} Processor (PR0D, 0x0d, 0x0000, 0x00) {} Processor (PR0E, 0x0e, 0x0000, 0x00) {} /* No more than 15 Processor objects, as otherwise Windows 2000 * experiences a BSOD of KMODE_EXCEPTION_NOT_HANDLED. If we require * more in some configurations then we should move \_PR scope into a * SSDT, statically compiled with a range of different numbers of * processors. We can then link the appropriate one into the RSDT/XSDT * at HVM guest boot time. */ } /* * S3 (suspend-to-ram), S4 (suspend-to-disc) and S5 (power-off) type codes: * must match piix4 emulation. */ Name (\_S3, Package (0x04) { 0x05, /* PM1a_CNT.SLP_TYP */ 0x05, /* PM1b_CNT.SLP_TYP */ 0x0, /* reserved */ 0x0 /* reserved */ }) Name (\_S4, Package (0x04) { 0x06, /* PM1a_CNT.SLP_TYP */ 0x06, /* PM1b_CNT.SLP_TYP */ 0x00, /* reserved */ 0x00 /* reserved */ }) Name (\_S5, Package (0x04) { 0x07, /* PM1a_CNT.SLP_TYP */ 0x07, /* PM1b_CNT.SLP_TYP */ 0x00, /* reserved */ 0x00 /* reserved */ }) Name(PICD, 0) Method(_PIC, 1) { Store(Arg0, PICD) } Scope (\_SB) { /* ACPI_PHYSICAL_ADDRESS == 0xEA000 */ OperationRegion(BIOS, SystemMemory, 0xEA000, 16) Field(BIOS, ByteAcc, NoLock, Preserve) { UAR1, 1, UAR2, 1, HPET, 1, Offset(4), PMIN, 32, PLEN, 32 } /* Fix HCT test for 0x400 pci memory: * - need to report low 640 MB mem as motherboard resource */ Device(MEM0) { Name(_HID, EISAID("PNP0C02")) Name(_CRS, ResourceTemplate() { QWordMemory( ResourceConsumer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x0009ffff, 0x00000000, 0x000a0000) }) } Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_UID, 0x00) Name (_ADR, 0x00) Name (_BBN, 0x00) Method (_CRS, 0, NotSerialized) { Name (PRT0, ResourceTemplate () { /* bus number is from 0 - 255*/ WordBusNumber( ResourceProducer, MinFixed, MaxFixed, SubDecode, 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) /* reserve memory for pci devices */ DWordMemory( ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000) DWordMemory( ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0xF0000000, 0xF4FFFFFF, 0x00000000, 0x05000000, ,, _Y01) }) CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._MIN, MMIN) CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._MAX, MMAX) CreateDWordField(PRT0, \_SB.PCI0._CRS._Y01._LEN, MLEN) Store(\_SB.PMIN, MMIN) Store(\_SB.PLEN, MLEN) Add(MMIN, MLEN, MMAX) Subtract(MMAX, One, MMAX) Return (PRT0) } Name(BUFA, ResourceTemplate() { IRQ(Level, ActiveLow, Shared) { 5, 10, 11 } }) Name(BUFB, Buffer() { 0x23, 0x00, 0x00, 0x18, /* IRQ descriptor */ 0x79, 0 /* End tag, null checksum */ }) CreateWordField(BUFB, 0x01, IRQV) Device(LNKA) { Name(_HID, EISAID("PNP0C0F")) /* PCI interrupt link */ Name(_UID, 1) Method(_STA, 0) { And(PIRA, 0x80, Local0) If(LEqual(Local0, 0x80)) { Return(0x09) } Else { Return(0x0B) } } Method(_PRS) { Return(BUFA) } Method(_DIS) { Or(PIRA, 0x80, PIRA) } Method(_CRS) { And(PIRA, 0x0f, Local0) ShiftLeft(0x1, Local0, IRQV) Return(BUFB) } Method(_SRS, 1) { CreateWordField(ARG0, 0x01, IRQ1) FindSetRightBit(IRQ1, Local0) Decrement(Local0) Store(Local0, PIRA) } } Device(LNKB) { Name(_HID, EISAID("PNP0C0F")) /* PCI interrupt link */ Name(_UID, 2) Method(_STA, 0) { And(PIRB, 0x80, Local0) If(LEqual(Local0, 0x80)) { Return(0x09) } Else { Return(0x0B) } } Method(_PRS) { Return(BUFA) } Method(_DIS) { Or(PIRB, 0x80, PIRB) } Method(_CRS) { And(PIRB, 0x0f, Local0) ShiftLeft(0x1, Local0, IRQV) Return(BUFB) } Method(_SRS, 1) { CreateWordField(ARG0, 0x01, IRQ1) FindSetRightBit(IRQ1, Local0) Decrement(Local0) Store(Local0, PIRB) } } Device(LNKC) { Name(_HID, EISAID("PNP0C0F")) /* PCI interrupt link */ Name(_UID, 3) Method(_STA, 0) { And(PIRC, 0x80, Local0) If(LEqual(Local0, 0x80)) { Return(0x09) } Else { Return(0x0B) } } Method(_PRS) { Return(BUFA) } Method(_DIS) { Or(PIRC, 0x80, PIRC) } Method(_CRS) { And(PIRC, 0x0f, Local0) ShiftLeft(0x1, Local0, IRQV)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -