mirror of https://github.com/acidanthera/audk.git
354 lines
10 KiB
Plaintext
354 lines
10 KiB
Plaintext
/** @file
|
|
Contains root level name space objects for the platform
|
|
|
|
Copyright (c) 2013-2015 Intel Corporation.
|
|
|
|
This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
//
|
|
// OS TYPE DEFINITION
|
|
//
|
|
#define WINDOWS_XP 0x01
|
|
#define WINDOWS_XP_SP1 0x02
|
|
#define WINDOWS_XP_SP2 0x04
|
|
#define WINDOWS_2003 0x08
|
|
#define WINDOWS_Vista 0x10
|
|
#define WINDOWS_WIN7 0x11
|
|
#define WINDOWS_WIN8 0x12
|
|
#define WINDOWS_WIN8_1 0x13
|
|
#define LINUX 0xF0
|
|
|
|
//
|
|
// GPIO Interrupt Connection Resource Descriptor (GpioInt) usage.
|
|
// GpioInt() descriptors maybe used in this file and included .asi files.
|
|
//
|
|
// The mapping below was provided by the first OS user that requested
|
|
// GpioInt() support.
|
|
// Other OS users that need GpioInt() support must use the following mapping.
|
|
//
|
|
#define QUARK_GPIO8_MAPPING 0x00
|
|
#define QUARK_GPIO9_MAPPING 0x01
|
|
#define QUARK_GPIO_SUS0_MAPPING 0x02
|
|
#define QUARK_GPIO_SUS1_MAPPING 0x03
|
|
#define QUARK_GPIO_SUS2_MAPPING 0x04
|
|
#define QUARK_GPIO_SUS3_MAPPING 0x05
|
|
#define QUARK_GPIO_SUS4_MAPPING 0x06
|
|
#define QUARK_GPIO_SUS5_MAPPING 0x07
|
|
#define QUARK_GPIO0_MAPPING 0x08
|
|
#define QUARK_GPIO1_MAPPING 0x09
|
|
#define QUARK_GPIO2_MAPPING 0x0A
|
|
#define QUARK_GPIO3_MAPPING 0x0B
|
|
#define QUARK_GPIO4_MAPPING 0x0C
|
|
#define QUARK_GPIO5_MAPPING 0x0D
|
|
#define QUARK_GPIO6_MAPPING 0x0E
|
|
#define QUARK_GPIO7_MAPPING 0x0F
|
|
|
|
DefinitionBlock (
|
|
"Platform.aml",
|
|
"DSDT",
|
|
1,
|
|
"INTEL ",
|
|
"QuarkNcSocId",
|
|
3)
|
|
{
|
|
//
|
|
// Global Variables
|
|
//
|
|
Name(\GPIC, 0x0)
|
|
|
|
//
|
|
// Port 80
|
|
//
|
|
OperationRegion (DBG0, SystemIO, 0x80, 1)
|
|
Field (DBG0, ByteAcc, NoLock, Preserve)
|
|
{ IO80,8 }
|
|
|
|
//
|
|
// Access CMOS range
|
|
//
|
|
OperationRegion (ACMS, SystemIO, 0x72, 2)
|
|
Field (ACMS, ByteAcc, NoLock, Preserve)
|
|
{ INDX, 8, DATA, 8 }
|
|
|
|
//
|
|
// Global NVS Memory Block
|
|
//
|
|
OperationRegion (MNVS, SystemMemory, 0xFFFF0000, 512)
|
|
Field (MNVS, ByteAcc, NoLock, Preserve)
|
|
{
|
|
OSTP, 32,
|
|
CFGD, 32,
|
|
HPEA, 32, // HPET Enabled ?
|
|
|
|
P1BB, 32, // Pm1blkIoBaseAddress;
|
|
PBAB, 32, // PmbaIoBaseAddress;
|
|
GP0B, 32, // Gpe0blkIoBaseAddress;
|
|
GPAB, 32, // GbaIoBaseAddress;
|
|
|
|
SMBB, 32, // SmbaIoBaseAddress;
|
|
NRV1, 32, // GNVS reserved field 1.
|
|
WDTB, 32, // WdtbaIoBaseAddress;
|
|
|
|
HPTB, 32, // HpetBaseAddress;
|
|
HPTS, 32, // HpetSize;
|
|
PEXB, 32, // PciExpressBaseAddress;
|
|
PEXS, 32, // PciExpressSize;
|
|
|
|
RCBB, 32, // RcbaMmioBaseAddress;
|
|
RCBS, 32, // RcbaMmioSize;
|
|
APCB, 32, // IoApicBaseAddress;
|
|
APCS, 32, // IoApicSize;
|
|
|
|
TPMP, 32, // TpmPresent ?
|
|
DBGP, 32, // DBG2 Present?
|
|
PTYP, 32, // Set to one of EFI_PLATFORM_TYPE enums.
|
|
ALTS, 32, // Use alternate I2c SLA addresses.
|
|
}
|
|
|
|
OperationRegion (GPEB, SystemIO, 0x1100, 0x40) //GPE Block
|
|
Field (GPEB, AnyAcc, NoLock, Preserve)
|
|
{
|
|
Offset(0x10),
|
|
SMIE, 32, // SMI Enable
|
|
SMIS, 32, // SMI Status
|
|
}
|
|
|
|
//
|
|
// Processor Objects
|
|
//
|
|
Scope(\_PR) {
|
|
//
|
|
// IO base will be updated at runtime with search key "PRIO"
|
|
//
|
|
Processor (CPU0, 0x01, 0x4F495250, 0x06) {}
|
|
}
|
|
|
|
//
|
|
// System Sleep States
|
|
//
|
|
Name (\_S0,Package (){0,0,0,0})
|
|
Name (\_S3,Package (){5,0,0,0})
|
|
Name (\_S4,Package (){6,0,0,0})
|
|
Name (\_S5,Package (){7,0,0,0})
|
|
|
|
//
|
|
// General Purpose Event
|
|
//
|
|
Scope(\_GPE)
|
|
{
|
|
//
|
|
// EGPE generated GPE
|
|
//
|
|
Method(_L0D, 0x0, NotSerialized)
|
|
{
|
|
//
|
|
// Check EGPE for this wake event
|
|
//
|
|
Notify (\_SB.SLPB, 0x02)
|
|
|
|
}
|
|
|
|
//
|
|
// GPIO generated GPE
|
|
//
|
|
Method(_L0E, 0x0, NotSerialized)
|
|
{
|
|
//
|
|
// Check GPIO for this wake event
|
|
//
|
|
Notify (\_SB.PWRB, 0x02)
|
|
|
|
}
|
|
|
|
//
|
|
// SCLT generated GPE
|
|
//
|
|
Method(_L0F, 0x0, NotSerialized)
|
|
{
|
|
//
|
|
// Check SCLT for this wake event
|
|
//
|
|
Notify (\_SB.PCI0.SDIO, 0x02)
|
|
Notify (\_SB.PCI0.URT0, 0x02)
|
|
Notify (\_SB.PCI0.USBD, 0x02)
|
|
Notify (\_SB.PCI0.EHCI, 0x02)
|
|
Notify (\_SB.PCI0.OHCI, 0x02)
|
|
Notify (\_SB.PCI0.URT1, 0x02)
|
|
Notify (\_SB.PCI0.ENT0, 0x02)
|
|
Notify (\_SB.PCI0.ENT1, 0x02)
|
|
Notify (\_SB.PCI0.SPI0, 0x02)
|
|
Notify (\_SB.PCI0.SPI1, 0x02)
|
|
Notify (\_SB.PCI0.GIP0, 0x02)
|
|
|
|
}
|
|
|
|
//
|
|
// Remote Management Unit generated GPE
|
|
//
|
|
Method(_L10, 0x0, NotSerialized)
|
|
{
|
|
//
|
|
// Check Remote Management Unit for this wake event.
|
|
//
|
|
}
|
|
|
|
//
|
|
// PCIE generated GPE
|
|
//
|
|
Method(_L11, 0x0, NotSerialized)
|
|
{
|
|
//
|
|
// Check PCIE for this wake event
|
|
//
|
|
Notify (\_SB.PCI0.PEX0, 0x02)
|
|
Notify (\_SB.PCI0.PEX1, 0x02)
|
|
}
|
|
}
|
|
|
|
//
|
|
// define Sleeping button as mentioned in ACPI spec 2.0
|
|
//
|
|
Device (\_SB.SLPB)
|
|
{
|
|
Name (_HID, EISAID ("PNP0C0E"))
|
|
Method (_PRW, 0, NotSerialized)
|
|
{
|
|
Return (Package (0x02) {0x0D,0x04})
|
|
}
|
|
}
|
|
|
|
//
|
|
// define Power Button
|
|
//
|
|
Device (\_SB.PWRB)
|
|
{
|
|
Name (_HID, EISAID ("PNP0C0C"))
|
|
Method (_PRW, 0, NotSerialized)
|
|
{
|
|
Return (Package (0x02) {0x0E,0x04})
|
|
}
|
|
}
|
|
//
|
|
// System Wake up
|
|
//
|
|
Method(_WAK, 1, Serialized)
|
|
{
|
|
// Do nothing here
|
|
Return (0)
|
|
}
|
|
|
|
//
|
|
// System sleep down
|
|
//
|
|
Method (_PTS, 1, NotSerialized)
|
|
{
|
|
// Get ready for S3 sleep
|
|
if (Lequal(Arg0,3))
|
|
{
|
|
Store(0xffffffff,SMIS) // clear SMI status
|
|
Store(SMIE, Local0) // SMI Enable
|
|
Or(Local0,0x4,SMIE) // Generate SMI on sleep
|
|
}
|
|
}
|
|
|
|
//
|
|
// Determing PIC mode
|
|
//
|
|
Method(\_PIC, 1, NotSerialized)
|
|
{
|
|
Store(Arg0,\GPIC)
|
|
}
|
|
|
|
//
|
|
// System Bus
|
|
//
|
|
Scope(\_SB)
|
|
{
|
|
Device(PCI0)
|
|
{
|
|
Name(_HID,EISAID ("PNP0A08")) // PCI Express Root Bridge
|
|
Name(_CID,EISAID ("PNP0A03")) // Compatible PCI Root Bridge
|
|
|
|
Name(_ADR,0x00000000) // Device (HI WORD)=0, Func (LO WORD)=0
|
|
Method (_INI)
|
|
{
|
|
Store(LINUX, OSTP) // Set the default os is Linux
|
|
If (CondRefOf (_OSI, local0))
|
|
{
|
|
//
|
|
//_OSI is supported, so it is WinXp or Win2003Server
|
|
//
|
|
If (\_OSI("Windows 2001"))
|
|
{
|
|
Store (WINDOWS_XP, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2001 SP1"))
|
|
{
|
|
Store (WINDOWS_XP_SP1, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2001 SP2"))
|
|
{
|
|
Store (WINDOWS_XP_SP2, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2001.1"))
|
|
{
|
|
Store (WINDOWS_2003, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2006"))
|
|
{
|
|
Store (WINDOWS_Vista, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2009"))
|
|
{
|
|
Store (WINDOWS_WIN7, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2012"))
|
|
{
|
|
Store (WINDOWS_WIN8, OSTP)
|
|
}
|
|
If (\_OSI("Windows 2013"))
|
|
{
|
|
Store (WINDOWS_WIN8_1, OSTP)
|
|
}
|
|
If (\_OSI("Linux"))
|
|
{
|
|
Store (LINUX, OSTP)
|
|
}
|
|
}
|
|
}
|
|
|
|
Include ("PciHostBridge.asi") // PCI0 Host bridge
|
|
Include ("QNC.asi") // QNC miscellaneous
|
|
Include ("PcieExpansionPrt.asi") // PCIe expansion bridges/devices
|
|
Include ("QuarkSouthCluster.asi") // Quark South Cluster devices
|
|
Include ("QNCLpc.asi") // LPC bridge device
|
|
Include ("QNCApic.asi") // QNC I/O Apic device
|
|
|
|
}
|
|
|
|
//
|
|
// Include asi files for I2C and SPI onboard devices.
|
|
// Devices placed here instead of below relevant controllers.
|
|
// Hardware topology information is maintained by the
|
|
// ResourceSource arg to the I2CSerialBus/SPISerialBus macros
|
|
// within the device asi files.
|
|
//
|
|
Include ("Tpm.asi") // TPM device.
|
|
Include ("CY8C9540A.asi") // CY8C9540A 40Bit I/O Expander & EEPROM
|
|
Include ("PCAL9555A.asi") // NXP PCAL9555A I/O expander.
|
|
Include ("PCA9685.asi") // NXP PCA9685 PWM/LED controller.
|
|
Include ("CAT24C08.asi") // ONSEMI CAT24C08 I2C 8KB EEPROM.
|
|
Include ("AD7298.asi") // Analog devices AD7298 ADC.
|
|
Include ("ADC108S102.asi") // TI ADC108S102 ADC.
|
|
Include ("GpioClient.asi") // Software device to expose GPIO
|
|
}
|
|
}
|