mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
As recommended in http://www.gnu.org/licenses/gpl-howto.en.html. This is the result of: $ git grep -El Mass\|Temple\|Franklin | xargs ./fsf.pl Where fsf.pl is: #!/usr/bin/perl -w -pi.bak -0777 my $repl = 'If not, see <http://www.gnu.org/licenses/>.'; my $br = qr/(?:\s*\n\s*(?:[\*\#]|\/\/|\.\\" )?\s*|\s+)/; my $inwt = qr/[Ii]f${br}not,${br}write${br}(?:to${br})?the${br}Free${br}Software${br}Foundation,(?:${br}Inc\.,)?/; my $mass = qr/675${br}Mass${br}Ave,?${br}Cambridge,?${br}MA${br}02139,?${br}USA,?\.?/; my $franklin = qr/51${br}Franklin${br}St(?:reet)?(?:,${br}| - )Fifth${br}Floor,?${br}Boston,?${br}MA,?${br}02110-1301,?${br}USA,?\.?/; my $temple = qr/59${br}Temple${br}Place(?:,${br}| - )Suite${br}330,?${br}Boston,?${br}MA,?${br}021110?-1307,?${br}USA,?\.?/; s|$inwt$br$mass|$repl|m; s|$inwt$br$franklin|$repl|m; s|$inwt$br$temple|$repl|m; The only remaining mentions of these addresses are in COPYING files which I haven't touched. Some of the changed files are imports from elsewhere, however filtering them out is tricky, I think it is tolerable to have these files be modified here and then perhaps reverted on the next sync, since it's only 1-2 lines and obvious what is going on. Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
480 lines
16 KiB
Plaintext
480 lines
16 KiB
Plaintext
/******************************************************************************
|
|
* 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, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
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)
|
|
|
|
/* _S3 and _S4 are in separate SSDTs */
|
|
Name (\_S5, Package (0x04)
|
|
{
|
|
0x00, /* PM1a_CNT.SLP_TYP */
|
|
0x00, /* PM1b_CNT.SLP_TYP */
|
|
0x00, /* reserved */
|
|
0x00 /* reserved */
|
|
})
|
|
|
|
Name(PICD, 0)
|
|
Method(_PIC, 1)
|
|
{
|
|
Store(Arg0, PICD)
|
|
}
|
|
|
|
Scope (\_SB)
|
|
{
|
|
/* ACPI_INFO_PHYSICAL_ADDRESS == 0xFC000000 */
|
|
OperationRegion(BIOS, SystemMemory, 0xFC000000, 40)
|
|
Field(BIOS, ByteAcc, NoLock, Preserve) {
|
|
UAR1, 1,
|
|
UAR2, 1,
|
|
LTP1, 1,
|
|
HPET, 1,
|
|
Offset(4),
|
|
PMIN, 32,
|
|
PLEN, 32,
|
|
MSUA, 32, /* MADT checksum address */
|
|
MAPA, 32, /* MADT LAPIC0 address */
|
|
VGIA, 32, /* VM generation id address */
|
|
LMIN, 32,
|
|
HMIN, 32,
|
|
LLEN, 32,
|
|
HLEN, 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)
|
|
|
|
/* Make cirrues VGA S3 suspend/resume work in Windows XP/2003 */
|
|
Device (VGA)
|
|
{
|
|
Name (_ADR, 0x00020000)
|
|
|
|
Method (_S1D, 0, NotSerialized)
|
|
{
|
|
Return (0x00)
|
|
}
|
|
Method (_S2D, 0, NotSerialized)
|
|
{
|
|
Return (0x00)
|
|
}
|
|
Method (_S3D, 0, NotSerialized)
|
|
{
|
|
Return (0x00)
|
|
}
|
|
}
|
|
|
|
Method (_CRS, 0, NotSerialized)
|
|
{
|
|
Store (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,
|
|
WriteCombining, ReadWrite,
|
|
0x00000000,
|
|
0x000A0000,
|
|
0x000BFFFF,
|
|
0x00000000,
|
|
0x00020000)
|
|
|
|
DWordMemory(
|
|
ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
|
NonCacheable, ReadWrite,
|
|
0x00000000,
|
|
0xF0000000,
|
|
0xF4FFFFFF,
|
|
0x00000000,
|
|
0x05000000,
|
|
,, _Y01)
|
|
|
|
QWordMemory (
|
|
ResourceProducer, PosDecode, MinFixed, MaxFixed,
|
|
NonCacheable, ReadWrite,
|
|
0x0000000000000000,
|
|
0x0000000FFFFFFFF0,
|
|
0x0000000FFFFFFFFF,
|
|
0x0000000000000000,
|
|
0x0000000000000010,
|
|
,, _Y02)
|
|
|
|
}, Local1)
|
|
|
|
CreateDWordField(Local1, \_SB.PCI0._CRS._Y01._MIN, MMIN)
|
|
CreateDWordField(Local1, \_SB.PCI0._CRS._Y01._MAX, MMAX)
|
|
CreateDWordField(Local1, \_SB.PCI0._CRS._Y01._LEN, MLEN)
|
|
|
|
Store(\_SB.PMIN, MMIN)
|
|
Store(\_SB.PLEN, MLEN)
|
|
Add(MMIN, MLEN, MMAX)
|
|
Subtract(MMAX, One, MMAX)
|
|
|
|
/*
|
|
* WinXP / Win2K3 blue-screen for operations on 64-bit values.
|
|
* Therefore we need to split the 64-bit calculations needed
|
|
* here, but different iasl versions evaluate name references
|
|
* to integers differently:
|
|
* Year (approximate) 2006 2008 2012
|
|
* \_SB.PCI0._CRS._Y02 zero valid valid
|
|
* \_SB.PCI0._CRS._Y02._MIN valid valid huge
|
|
*/
|
|
If(LEqual(Zero, \_SB.PCI0._CRS._Y02)) {
|
|
Subtract(\_SB.PCI0._CRS._Y02._MIN, 14, Local0)
|
|
} Else {
|
|
Store(\_SB.PCI0._CRS._Y02, Local0)
|
|
}
|
|
CreateDWordField(Local1, Add(Local0, 14), MINL)
|
|
CreateDWordField(Local1, Add(Local0, 18), MINH)
|
|
CreateDWordField(Local1, Add(Local0, 22), MAXL)
|
|
CreateDWordField(Local1, Add(Local0, 26), MAXH)
|
|
CreateDWordField(Local1, Add(Local0, 38), LENL)
|
|
CreateDWordField(Local1, Add(Local0, 42), LENH)
|
|
|
|
Store(\_SB.LMIN, MINL)
|
|
Store(\_SB.HMIN, MINH)
|
|
Store(\_SB.LLEN, LENL)
|
|
Store(\_SB.HLEN, LENH)
|
|
Add(MINL, LENL, MAXL)
|
|
Add(MINH, LENH, MAXH)
|
|
If(LLess(MAXL, MINL)) {
|
|
Add(MAXH, One, MAXH)
|
|
}
|
|
If(LOr(MINH, LENL)) {
|
|
If(LEqual(MAXL, 0)) {
|
|
Subtract(MAXH, One, MAXH)
|
|
}
|
|
Subtract(MAXL, One, MAXL)
|
|
}
|
|
|
|
Return (Local1)
|
|
}
|
|
|
|
Device(HPET) {
|
|
Name(_HID, EISAID("PNP0103"))
|
|
Name(_UID, 0)
|
|
Method (_STA, 0, NotSerialized) {
|
|
If(LEqual(\_SB.HPET, 0)) {
|
|
Return(0x00)
|
|
} Else {
|
|
Return(0x0F)
|
|
}
|
|
}
|
|
Name(_CRS, ResourceTemplate() {
|
|
DWordMemory(
|
|
ResourceConsumer, PosDecode, MinFixed, MaxFixed,
|
|
NonCacheable, ReadWrite,
|
|
0x00000000,
|
|
0xFED00000,
|
|
0xFED003FF,
|
|
0x00000000,
|
|
0x00000400 /* 1K memory: FED00000 - FED003FF */
|
|
)
|
|
})
|
|
}
|
|
|
|
Device (ISA)
|
|
{
|
|
Name (_ADR, 0x00010000) /* device 1, fn 0 */
|
|
|
|
OperationRegion(PIRQ, PCI_Config, 0x60, 0x4)
|
|
Scope(\) {
|
|
Field (\_SB.PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) {
|
|
PIRA, 8,
|
|
PIRB, 8,
|
|
PIRC, 8,
|
|
PIRD, 8
|
|
}
|
|
}
|
|
Device (SYSR)
|
|
{
|
|
Name (_HID, EisaId ("PNP0C02"))
|
|
Name (_UID, 0x01)
|
|
Name (CRS, ResourceTemplate ()
|
|
{
|
|
/* TODO: list hidden resources */
|
|
IO (Decode16, 0x0010, 0x0010, 0x00, 0x10)
|
|
IO (Decode16, 0x0022, 0x0022, 0x00, 0x0C)
|
|
IO (Decode16, 0x0030, 0x0030, 0x00, 0x10)
|
|
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, 0x1C)
|
|
IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10)
|
|
IO (Decode16, 0x08A0, 0x08A0, 0x00, 0x04)
|
|
IO (Decode16, 0x0CC0, 0x0CC0, 0x00, 0x10)
|
|
IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02)
|
|
})
|
|
Method (_CRS, 0, NotSerialized)
|
|
{
|
|
Return (CRS)
|
|
}
|
|
}
|
|
|
|
Device (PIC)
|
|
{
|
|
Name (_HID, EisaId ("PNP0000"))
|
|
Name (_CRS, ResourceTemplate ()
|
|
{
|
|
IO (Decode16, 0x0020, 0x0020, 0x01, 0x02)
|
|
IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02)
|
|
IRQNoFlags () {2}
|
|
})
|
|
}
|
|
|
|
Device (DMA0)
|
|
{
|
|
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)
|
|
IO (Decode16, 0x0480, 0x0480, 0x00, 0x10)
|
|
})
|
|
}
|
|
|
|
Device (TMR)
|
|
{
|
|
Name (_HID, EisaId ("PNP0100"))
|
|
Name (_CRS, ResourceTemplate ()
|
|
{
|
|
IO (Decode16, 0x0040, 0x0040, 0x00, 0x04)
|
|
IRQNoFlags () {0}
|
|
})
|
|
}
|
|
|
|
Device (RTC)
|
|
{
|
|
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 (PS2M)
|
|
{
|
|
Name (_HID, EisaId ("PNP0F13"))
|
|
Name (_CID, 0x130FD041)
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
Return (0x0F)
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate ()
|
|
{
|
|
IRQNoFlags () {12}
|
|
})
|
|
}
|
|
|
|
Device (PS2K)
|
|
{
|
|
Name (_HID, EisaId ("PNP0303"))
|
|
Name (_CID, 0x0B03D041)
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
Return (0x0F)
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate ()
|
|
{
|
|
IO (Decode16, 0x0060, 0x0060, 0x00, 0x01)
|
|
IO (Decode16, 0x0064, 0x0064, 0x00, 0x01)
|
|
IRQNoFlags () {1}
|
|
})
|
|
}
|
|
|
|
Device (FDC0)
|
|
{
|
|
Name (_HID, EisaId ("PNP0700"))
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
Return (0x0F)
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate ()
|
|
{
|
|
IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
|
|
IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
|
|
IRQNoFlags () {6}
|
|
DMA (Compatibility, NotBusMaster, Transfer8) {2}
|
|
})
|
|
}
|
|
|
|
Device (UAR1)
|
|
{
|
|
Name (_HID, EisaId ("PNP0501"))
|
|
Name (_UID, 0x01)
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
If(LEqual(\_SB.UAR1, 0)) {
|
|
Return(0x00)
|
|
} Else {
|
|
Return(0x0F)
|
|
}
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate()
|
|
{
|
|
IO (Decode16, 0x03F8, 0x03F8, 8, 8)
|
|
IRQNoFlags () {4}
|
|
})
|
|
}
|
|
|
|
Device (UAR2)
|
|
{
|
|
Name (_HID, EisaId ("PNP0501"))
|
|
Name (_UID, 0x02)
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
If(LEqual(\_SB.UAR2, 0)) {
|
|
Return(0x00)
|
|
} Else {
|
|
Return(0x0F)
|
|
}
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate()
|
|
{
|
|
IO (Decode16, 0x02F8, 0x02F8, 8, 8)
|
|
IRQNoFlags () {3}
|
|
})
|
|
}
|
|
|
|
Device (LTP1)
|
|
{
|
|
Name (_HID, EisaId ("PNP0400"))
|
|
Name (_UID, 0x02)
|
|
Method (_STA, 0, NotSerialized)
|
|
{
|
|
If(LEqual(\_SB.LTP1, 0)) {
|
|
Return(0x00)
|
|
} Else {
|
|
Return(0x0F)
|
|
}
|
|
}
|
|
|
|
Name (_CRS, ResourceTemplate()
|
|
{
|
|
IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
|
|
IRQNoFlags () {7}
|
|
})
|
|
}
|
|
|
|
Device(VGID) {
|
|
Name(_HID, EisaId ("XEN0000"))
|
|
Name(_UID, 0x00)
|
|
Name(_CID, "VM_Gen_Counter")
|
|
Name(_DDN, "VM_Gen_Counter")
|
|
Method(_STA, 0, NotSerialized)
|
|
{
|
|
If(LEqual(\_SB.VGIA, 0x00000000)) {
|
|
Return(0x00)
|
|
} Else {
|
|
Return(0x0F)
|
|
}
|
|
}
|
|
Name(PKG, Package ()
|
|
{
|
|
0x00000000,
|
|
0x00000000
|
|
})
|
|
Method(ADDR, 0, NotSerialized)
|
|
{
|
|
Store(\_SB.VGIA, Index(PKG, 0))
|
|
Return(PKG)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|