IntelIntel LabsLabs
ACPI 2.0 Support ACPI 2.0 Support for IA-64 Systemsfor IA-64 Systems
Guy TherienGuy TherienACPI Architecture Mgr. ACPI Architecture Mgr. MALMALIntel CorporationIntel CorporationAugust 2000August 2000
IntelIntel LabsLabs
Learning ObjectivesLearning Objectives Differentiate the changes in IA-64 system ACPI support Differentiate the changes in IA-64 system ACPI support
moving from ACPI 1.0 to ACPI 2.0moving from ACPI 1.0 to ACPI 2.0
Identify the specific ACPI 2.0 enhancements that Identify the specific ACPI 2.0 enhancements that support or impact IA-64 platformssupport or impact IA-64 platforms
Explain how IA-64 workstation and server Explain how IA-64 workstation and server configurations are supported using ACPI 2.0 interfacesconfigurations are supported using ACPI 2.0 interfaces
Articulate the time frame for when ACPI 2.0 platform Articulate the time frame for when ACPI 2.0 platform support will be required including the estimated OS support will be required including the estimated OS support timelinesupport timeline
IntelIntel LabsLabs
AgendaAgenda ACPI Specification Scope and HistoryACPI Specification Scope and History
ACPI 2.0 OverviewACPI 2.0 Overview
ACPI 2.0 support for the IA-64 architecture and platforms ACPI 2.0 support for the IA-64 architecture and platforms
ACPI 1.0 Support for IA-64 SystemsACPI 1.0 Support for IA-64 Systems
ACPI 2.0 System Description TablesACPI 2.0 System Description Tables
Migrating IA-64 Systems from ACPI 1.0 to ACPI 2.0Migrating IA-64 Systems from ACPI 1.0 to ACPI 2.0
Platform and OS Support TimelinePlatform and OS Support Timeline
Call to ActionCall to Action
IntelIntel LabsLabs
ACPI Specification Scope and HistoryACPI Specification Scope and History ACPI provides uniform cross-platform interfaces ACPI provides uniform cross-platform interfaces
enabling robust motherboard device enumeration and enabling robust motherboard device enumeration and configuration along with device and system power configuration along with device and system power managementmanagement
ACPI/OS-directed configuration and Power ACPI/OS-directed configuration and Power Management (OSPM) replaces existing interfaces:Management (OSPM) replaces existing interfaces:– PnP BIOS, APM, MPS, proprietaryPnP BIOS, APM, MPS, proprietary
ACPI defines hardware, software, and firmware ACPI defines hardware, software, and firmware interfacesinterfaces
ACPI 1.0 published in December 1996ACPI 1.0 published in December 1996
IntelIntel LabsLabs
Scope and History - continuedScope and History - continuedOS implementations to date include OS implementations to date include
Windows* 98 and Windows 2000Windows* 98 and Windows 2000ACPI 1.0 Specification comments to date:ACPI 1.0 Specification comments to date:– Difficult to readDifficult to read
– Overwhelming to implement (from the OSV Overwhelming to implement (from the OSV perspective)perspective)
– Very mobile and power management focusedVery mobile and power management focused
ACPI 2.0 under development for 18 monthsACPI 2.0 under development for 18 monthsACPI Component Architecture is paving the ACPI Component Architecture is paving the
way to greater OSV support for ACPIway to greater OSV support for ACPI IA-64 Systems require ACPI!IA-64 Systems require ACPI!
IntelIntel LabsLabs
ACPI 2.0 OverviewACPI 2.0 Overview64-bit processor / addressing support added64-bit processor / addressing support addedProcessor / device performance states addedProcessor / device performance states addedFunctional Fixed Hardware concept definedFunctional Fixed Hardware concept definedMany server related enhancements added Many server related enhancements added
– Hot-pluggable CPUs, Memory, and GPE BlocksHot-pluggable CPUs, Memory, and GPE BlocksLegacy Reduced HW IA-PC support includedLegacy Reduced HW IA-PC support includedSM Bus CM interfaces rewritten SM Bus CM interfaces rewritten General readability/consistency enhancements General readability/consistency enhancements
applied throughoutapplied throughoutASL examples updated (corrected)ASL examples updated (corrected)
IntelIntel LabsLabs
ACPI 2.0 Support for the IA-64 ArchitectureACPI 2.0 Support for the IA-64 Architecture 64 bit addressing enhancements64 bit addressing enhancements
– Registers and Memory addressesRegisters and Memory addresses
IA-64 Interrupt controller (SAPIC, I/O SAPIC) support IA-64 Interrupt controller (SAPIC, I/O SAPIC) support addedadded
System Address Map Interfaces now include EFI System Address Map Interfaces now include EFI GetMemoryMap() Boot Services functionGetMemoryMap() Boot Services function
Platform corrected error interrupt routing specifiedPlatform corrected error interrupt routing specified
ASL QWORD arithmetic addedASL QWORD arithmetic added– 64-bit ASL compiler available from tentatively 64-bit ASL compiler available from tentatively
Microsoft* January 1, 2001Microsoft* January 1, 2001
IntelIntel LabsLabs
ACPI 2.0 Support for IA-64 PlatformsACPI 2.0 Support for IA-64 Platforms \_PR and \_TZ scopes obsoleted\_PR and \_TZ scopes obsoleted
– Processors and thermal zones now defined under \_SBProcessors and thermal zones now defined under \_SB Processor Object updated (more device-like) Processor Object updated (more device-like) Memory Device addedMemory Device added
– Resource Type Specific Flags enhanced -Resource Type Specific Flags enhanced -Memory types expandedMemory types expanded
GPE Block Device addedGPE Block Device added Module Device addedModule Device added New Device Notifications added forNew Device Notifications added for
– Processor, Thermal, and PCI Hot PlugProcessor, Thermal, and PCI Hot Plug Expanded reserved table signaturesExpanded reserved table signatures
– DBGP, ECDT, ETDT, HMEM, OEMxDBGP, ECDT, ETDT, HMEM, OEMx– Data Table operation region support addedData Table operation region support added
IntelIntel LabsLabs
Other Configuration Enhancements for ServersOther Configuration Enhancements for Servers _FIX (Fixed Hardware)_FIX (Fixed Hardware)
– Provides a correlation between the fixed hardware register Provides a correlation between the fixed hardware register blocks and the devices in the ACPI namespace that implement blocks and the devices in the ACPI namespace that implement themthem
_MAT (Multiple APIC Table Entry)_MAT (Multiple APIC Table Entry) – Facilitates hot plugging of APICsFacilitates hot plugging of APICs and SAPICs and SAPICs
_PXM (Proximity)_PXM (Proximity)– Provides topology information conveying proximity of Provides topology information conveying proximity of
processors, memory, and I/O enabling CC-NUMA processors, memory, and I/O enabling CC-NUMA optimizations optimizations
_HPP (Hot Plug Parameters)_HPP (Hot Plug Parameters)– Specifies the Cache-line size, Latency timer, SERR enable, and Specifies the Cache-line size, Latency timer, SERR enable, and
PERR enable values for use during hot inserting a PCI devicePERR enable values for use during hot inserting a PCI device _SEG (Segment)_SEG (Segment)
– Indicates a bus segment location - a level higher than _BBNIndicates a bus segment location - a level higher than _BBN– Each segment has a potential of 256 PCI Bus Numbers Each segment has a potential of 256 PCI Bus Numbers
IntelIntel LabsLabs
ACPI 1.0 Support for IA-64 SystemsACPI 1.0 Support for IA-64 Systems
ACPI 1.0 System Description Tables for ACPI 1.0 System Description Tables for IA-64 (interim tables)IA-64 (interim tables)–32-bit tables expanded to 64-bits + interrupt 32-bit tables expanded to 64-bits + interrupt
controller supportcontroller support
–Not backward compatible with ACPI 1.0 OSNot backward compatible with ACPI 1.0 OS
–Conveyed to OS from the EFI OS loaderConveyed to OS from the EFI OS loader– Loader finds pointer to RSDP Structure in EFI Loader finds pointer to RSDP Structure in EFI
system table using ACPI 1.0 GUIDsystem table using ACPI 1.0 GUID
– Pointer conveyed to OS via OS dependent data Pointer conveyed to OS via OS dependent data structurestructure
IntelIntel LabsLabs
ACPI 2.0 System Description TablesACPI 2.0 System Description Tables
Generic Address Structure (GAS) is a key Generic Address Structure (GAS) is a key structurestructure– Extends register addressing to 64-bitsExtends register addressing to 64-bits
– A Register’s address space can be specifiedA Register’s address space can be specified– Enables Memory-mapped I/O–based registersEnables Memory-mapped I/O–based registers
– Can describe both fixed registers and addressesCan describe both fixed registers and addresses
New fields added at end of the system New fields added at end of the system description tables to maintain compatibility description tables to maintain compatibility with ACPI 1.0with ACPI 1.0
IntelIntel LabsLabs
ACPI 2.0 Tables - continuedACPI 2.0 Tables - continued RSDP Structure extended to allow 64-bit pointer to the RSDP Structure extended to allow 64-bit pointer to the
new extended RSDT (XSDT) new extended RSDT (XSDT)
Support added for finding the RSDP structure on EFI-Support added for finding the RSDP structure on EFI-enabled systems (IA-64)enabled systems (IA-64)– Loader finds pointer to RSDP Structure in EFI system table using Loader finds pointer to RSDP Structure in EFI system table using
ACPI 2.0 GUID (ACPI 2.0 GUID (8868E871-E4F1-11d3-BC22-0080C73C8881)8868E871-E4F1-11d3-BC22-0080C73C8881)
XSDT added (extended RSDT)XSDT added (extended RSDT)– Provides identical functionality to the RSDT but accommodates Provides identical functionality to the RSDT but accommodates
64-bit physical addresses64-bit physical addresses– XSDT supersedes RSDT – ACPI 2.0 OS will look for XSDT firstXSDT supersedes RSDT – ACPI 2.0 OS will look for XSDT first– Allows platform to provide one set of tables to an ACPI 1.0 OS Allows platform to provide one set of tables to an ACPI 1.0 OS
and another set of tables to an ACPI 2.0 OSand another set of tables to an ACPI 2.0 OS
IntelIntel LabsLabs
ACPI 2.0 Tables - continuedACPI 2.0 Tables - continuedFixed ACPI Description Table (FADT)Fixed ACPI Description Table (FADT)– New fields support IA-64New fields support IA-64
– FACS (X_FIRMWARE _CTRL)FACS (X_FIRMWARE _CTRL)
– DSDT (X_DSDT)DSDT (X_DSDT)
– Fixed register blocks (X_Fixed register blocks (X_registerblockregisterblock))
– SW_CPU_SLP (fixed feature flags bit 13)SW_CPU_SLP (fixed feature flags bit 13)– If set, OSPM uses native instruction to place the CPU in a sleeping state
during system sleep sequence
Firmware ACPI Control Structure (FACS)Firmware ACPI Control Structure (FACS)– New X_Firmware_Waking_Vector field supports IA-64New X_Firmware_Waking_Vector field supports IA-64
– Global lock stays 32 bits!Global lock stays 32 bits!
IntelIntel LabsLabs
ACPI 2.0 Tables - continuedACPI 2.0 Tables - continued
Multiple APIC Description Table (MADT)Multiple APIC Description Table (MADT)–New APIC structure entries support IA-64New APIC structure entries support IA-64– Local APIC address overrideLocal APIC address override
– Local SAPICLocal SAPIC
– I/O SAPICI/O SAPIC
– Platform Interrupt sourcesPlatform Interrupt sources– Routing for PMI, INIT, and Corrected Platform Error
Interrupts
IntelIntel LabsLabs
ACPI 1.0 and 2.0 OS use ofACPI 1.0 and 2.0 OS use ofACPI 2.0 System Description TablesACPI 2.0 System Description Tables
RSDP Structure
RSDT XSDT
SSDT SSDT
DSDTFADT
Separate SSDTs isolateprocessor and thermal zone definitions
IntelIntel LabsLabs
Migrating IA-64 Systems from ACPI Migrating IA-64 Systems from ACPI 1.0 to ACPI 2.01.0 to ACPI 2.0
ACPI 1.0 ACPI 2.0 RSDP Structure Pointer
ACPI GUID ACPI 2.0 GUID
RSDP Reserved = 0 RsdtAddress (8 bytes)
Revision = 2 RsdtAddress (4 bytes) Length XsdtAddress Extended Checksum Reserved (3 bytes)
RSDT / XSDT Reserved (4 bytes) Entry (8 bytes)
ACPI 1.0b RSDT is maintained Use new XSDT – Same as IA-64 RSDT except: Reserved field removed
FADT ACPI 1.0b FADT Reserved fields added (padding) Other fields removed ADDRESS_SPACE field added Address fields expanded
ACPI 1.0b FADT is extended: Reserved fields now used New fields added (e.g. reset support) New fields (at end) provide extended addressing support using the GAS.
FACS Firmware Waking Vector (8 bytes) Global Lock (8 bytes)
X_Firmware_Waking_Vector added (at end) Global Lock remains 4 bytes
MADT (APIC/SPIC) Interrupt Block
ACPI 1.0b MADT extended – new APIC structure entries. Local APIC Address Override Local SAPIC, I/O SAPIC, Platform Interrupt Sources
IntelIntel LabsLabs
ACPI 2.0 Release ScheduleACPI 2.0 Release Schedule
ACPI 2.0 is published!ACPI 2.0 is published!Download the spec from the Download the spec from the
teleport site:teleport site:
http://www.teleport.com/~acpihttp://www.teleport.com/~acpi
IntelIntel LabsLabs
Platform Support TimelinePlatform Support TimelineHardware Design Guide Version 3.0 for Hardware Design Guide Version 3.0 for
Microsoft* Windows 2000 ServerMicrosoft* Windows 2000 Server–Requires ACPI 2.0-defined interfaces for all Requires ACPI 2.0-defined interfaces for all
IA-64 systemsIA-64 systems–Compliance date is July 1, 2001Compliance date is July 1, 2001
DIG64 Release 2.0DIG64 Release 2.0–Update will require ACPI 2.0-defined Update will require ACPI 2.0-defined
interfaces (September 29, 2000)interfaces (September 29, 2000)–Expected compliance – McKinley-based IA-Expected compliance – McKinley-based IA-
64 platforms64 platforms
IntelIntel LabsLabs
OS Support TimelineOS Support TimelineMicrosoft* will have a phased implementation Microsoft* will have a phased implementation
approach to ACPI 2.0 supportapproach to ACPI 2.0 support– Implementation of a small subset of interfaces is Implementation of a small subset of interfaces is
planned for Win64 and BTS 2001 OS releasesplanned for Win64 and BTS 2001 OS releases– General support for ACPI 2.0 is planned for the OS General support for ACPI 2.0 is planned for the OS
release after the BTS 2001 OS releaserelease after the BTS 2001 OS release– Ask Microsoft for more informationAsk Microsoft for more information
Linux support will vary with distributorLinux support will vary with distributor– Contact your Linux distributor for more informationContact your Linux distributor for more information– See also: See also: http://phobos.fachschaften.tu-muenchen.de/acpi/http://phobos.fachschaften.tu-muenchen.de/acpi/
IntelIntel LabsLabs
OS Support Timeline – cont.OS Support Timeline – cont. IBM MontereyIBM Monterey– Tentatively targeted for the second release of Tentatively targeted for the second release of
Monterey on IA-64 in 1H2002Monterey on IA-64 in 1H2002HP-UnixHP-Unix– HP platforms and operating systems will support HP platforms and operating systems will support
DIG64 guidelines on ACPI 2.0 when they become DIG64 guidelines on ACPI 2.0 when they become availableavailable
NovellNovell– NetWare 5 - 6 Pack release 1H2001 basic supportNetWare 5 - 6 Pack release 1H2001 basic support–Modesto IA-64 OS - basic support in initial releaseModesto IA-64 OS - basic support in initial release
Sun SolarisSun Solaris– Support timeframe not yet determinedSupport timeframe not yet determined
IntelIntel LabsLabs
What we learned today:What we learned today:The changes in IA-64 system ACPI support The changes in IA-64 system ACPI support
moving from ACPI 1.0b to ACPI 2.0moving from ACPI 1.0b to ACPI 2.0
The specific ACPI 2.0 enhancements that support The specific ACPI 2.0 enhancements that support or impact IA-64 platformsor impact IA-64 platforms
How IA-64 workstation and server configurations How IA-64 workstation and server configurations are supported using ACPI 2.0 interfacesare supported using ACPI 2.0 interfaces
The time frame for when ACPI 2.0 platform The time frame for when ACPI 2.0 platform support will be required including an estimated support will be required including an estimated OS support timelineOS support timeline
IntelIntel LabsLabs
Call To ActionCall To Action Review the ACPI 2.0 specificationReview the ACPI 2.0 specification
– http://www.teleport.com/~acpihttp://www.teleport.com/~acpi
Contact us with any implementation questionsContact us with any implementation questions– Use the email reflectorsUse the email reflectors
– [email protected]@hwdev.org (Windows) (Windows)– [email protected]@telelist.com (General) (General)
Include ACPI 2.0 support in your emerging platformsInclude ACPI 2.0 support in your emerging platforms– Ask your BIOS vendor for ACPI 2.0 supportAsk your BIOS vendor for ACPI 2.0 support
Become an ACPI 2.0 AdopterBecome an ACPI 2.0 Adopter– http://www.teleport.com/~http://www.teleport.com/~acpiacpi
IntelIntel LabsLabs
ACPI 2.0 ContributorsACPI 2.0 Contributors PromotersPromoters
– Compaq, Intel, Phoenix, Microsoft, ToshibaCompaq, Intel, Phoenix, Microsoft, Toshiba
Contributing AdoptersContributing Adopters
AdoptersAdoptersAuspex Systems Inc., Hitachi America LtdAuspex Systems Inc., Hitachi America Ltd
Acer Inc.Acer Inc.Acer Lab Inc.Acer Lab Inc.Advanced Micro Devices Inc.Advanced Micro Devices Inc.American Megatrends Inc.American Megatrends Inc.ATI Technologies Inc.ATI Technologies Inc.Bull S.A. Bull S.A. Cherry GmbHCherry GmbHFujitsu Siemens ComputersFujitsu Siemens ComputersHewlett-Packard CompanyHewlett-Packard CompanyInsyde SoftwareInsyde SoftwareIntelliworxx Inc.Intelliworxx Inc.
Intersil CorporationIntersil CorporationNovell Inc.Novell Inc.Silicon Integrated System Corp.Silicon Integrated System Corp.Silicon Motion Inc.Silicon Motion Inc.Standard Microsystems Corp.Standard Microsystems Corp.TouchStone (Unicore) SoftwareTouchStone (Unicore) SoftwareTransmeta Corp.Transmeta Corp.Unisys CorporationUnisys CorporationUSAR TechnologiesUSAR TechnologiesVIA Technologies Inc.VIA Technologies Inc.Winbond Electronics Corp.Winbond Electronics Corp.