Академический Документы
Профессиональный Документы
Культура Документы
0
A publication of the Consortium of Developers Interface Guides for Intel Itanium Architecture-based Servers (DIG64) December 2007
Bull SAS Fujitsu Siemens Computers Hewlett-Packard Company Hitachi Limited Intel Corporation NEC Corporation Unisys Corporation
Notice: Implementations developed using the information provided in this specification may infringe the intellectual property rights of various parties including, but not limited to, the Promoters and parties involved in the development of this specification. An agreement to grant a limited patent license is available under the terms of a DIG64 Adopters Agreement, a copy of which may be obtained from http://www.dig64.org. THIS DOCUMENT IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NON-INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. The Promoters of this document disclaim all liability, including liability for infringement of any proprietary rights, relating to use of information in this specification. No license, express or implied, by estoppel or otherwise, to any intellectual property rights (including without limitation rights under any party's patents) is granted herein, except that a copyright license is hereby granted to you to copy and reproduce this specification for your internal use only. Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters"). All rights reserved. *Other product and corporate names may be trademarks of other companies and are used only for explanation and to the owners benefit, without intent to infringe.
2 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Table of Contents
HOT-PLUG & PARTITIONING FLOWS SPECIFICATION .............................................. 1 1
1.1 1.2
INTRODUCTION...................................................................................................... 6
Conventions and Terminology ............................................................................................6 Reference Documents..........................................................................................................8
2
2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.4
3
3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2
3 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
4 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
5 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
1 Introduction
Servers based on the Intel Itanium Architecture, or IA-64, are generally designed for use in mission critical environments. Reliability, Availability and Serviceability (RAS) features such as the capability to add, remove, or replace processors, memory and I/O controller hubs without interruption of service are vital to achieving the highest levels of system availability ( 99.999% or better) required by these environments. In the area of domain partitioning, these hot-plug capabilities also provide the very mechanisms that enable dynamic allocation of processor, memory and I/O resources to partitions as well as between partitions. This document describes the architectural flows for hot-plug and partitioning on multiprocessor (MP) servers based on IA-64 (using Intel Itanium Architecture processors) and/or Intel64 (Intel Xeon processors with Extended Memory 64 Technology) architecture. These flows make use of standards-based platform interfaces such as ACPI and are meant to be implemented with OSs that support ACPI. Through this specification, DIG64 aims to promote and help accelerate industry adoption of RAS features across various MP platform designs and operating systems (OSs). As platform capabilities such as hot-plug subsystems and domain partitioning move from high-end servers into the mainstream of standard high volume servers, having common, architected flows for these features will help realize the benefits of interoperability and shorter development cycles while allowing for innovation and differentiation through the use of industry standards wherever possible.
field of an I/O SAPIC redirection table entry). CPEP Domain Partitioning Corrected Platform Error Polling refers to the sampling for the occurence of a corrected platform error as opposed to the use of an interrupt as in CPEI. The ability to divide a system into a number of smaller systems (or domains) each booting its own OS and operating independently of one another. It may also include the ability to merge multiple domains to form a single larger system (see Dynamic Partitioning). The type of domain partitioning that can be achieved without having to shut down the system or rebooting the OS of the partitions involved. This is in contrast to Static Partitioning. Extensible Firmware Interface Field Replaceable Unit, or a system component that can be physically added, removed and/or replaced in the field. Depending on the platform, an FRU can be hot-pluggable or not. The type of domain partitioning where each partition is completely isolated from software and hardware errors of the other partitions in the system. The physical addition of a FRU component to a running system. The hot-added component is recognized by the OS and added to the running system without shutting down. This capability typically requires special support from the OS. The generic term used to refer to Hot-Add and Hot-Remove operations. The ability to physically remove of an FRU component from a running system without having to stop the OS. This capability typically requires special support from the OS. The ability to physically replace an FRU from a running system without having to stop or shut down the OS. Hot-Replace actions are usually prompted by components that are defective or starting to show signs of defects. A Hot-Replace operation is basically a Hot-Remove followed by a Hot-Add. Hot-Replace capabilities can have restrictions based on platform and OS capabilities. For example, the memory device that contains physical address 0 may not be HotRemovable on some platforms. The ability to replace a component with a spare that has been readily prepared in the running system to serve as a replacement any time during normal system operation. In Hot-Swap situations, the OS resources on the failing component are migrated to the spare. Hot-Swap can be OS-transparent where the hardware is responsible for migrating the OS resources (e.g. DIMM sparing), or OS-assisted where the spare is visible to the OS and the platform migrates resources from the failing component to the spare in cooperation with the OS. Any of the processing units in a multiprocessing (MP) environment that the OS recognizes as a resource for executing a thread of code. Note that a single physical processor, or a single core within a multi-core processor, can have several logical processors. The logical (non-physical) removal or functional disabling of a component from a running system by an OS that has such capability. The offlined component can
7 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Hot-Plug Hot-Remove
Hot-Replace
Hot-Swap
Logical Processor
Offlining
remain in the system as an inactive component (to be later removed during downtime) or reallocated to another partition within the system that is needing more resources. Onlining The logical (non-physical) addition or functional enabling of a component to a running system by an OS that has such capability. The onlined component can already be present in the system either as a spare ready to be activated, or as part of another partition that has offlined the component. (see Domain Partitioning) An Intel processor from the Itanium or Xeon processor family. A processor may contain one or more cores, where each core may contain one or more logical processors. An FRU board containing processors which connects to other boards in the system such as a motherboard or to a common backplane that interconnects all the boards in the system together. A processor board may also include memory controllers and DIMMs depending on the platform design. System bootstrap processor, or the monarch processor within a particular domain partition which hands off to the OS loader for OS boot on that partition. Domain partitioning that is configured only at boot time. This is in contrast to Dynamic Partitioning. Refers to a set of compute and I/O resources that can boot and run an OS as a single entity. Depending on context, a system can refer to a particular domain partition, or an entire platform that supports domain partitioning.
Paritioning Processor
Processor Board
8 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
9 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
10 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
The following describes the steps of the memory hot-add flow in more detail:
11 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
} // MD1 Device (MD2) { //Memory Device Name(_HID, EISAID(PNP0C80)) Name (_CRS, ResourceTemplate) (0x8000_0000 to 0xBFFF_FFFF) // 1GB range [231..231+1GB-1]
Method (_STA, 0) { // If memory not present --> Return(0x00) // Else if memory is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to device }
} // MD2 } // _SB scope Scope (\_GPE) { Method _Lxx { If (MD1 add) Notify(MD1,1) If (MD2 add) Notify(MD2,1) If (MD1 remove) Notify(MD1,3) If (MD2 remove) Notify(MD2,3) } // _Lxx } // _GPE
IMPLEMENTATION NOTE: Hot-remove capable memory present in the system at boot time must be described as hot-removable using the System Resource Affinity Table (SRAT) of ACPI.
13 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Hardware Flow
OS Flow
User initiates memory hotremove request (via button press, management console or application)
Trigger ACPI event
Call _EJ0
The following describes the steps of the memory hot-remove flow in more detail. Note that the sample code template for memory hot-add provided in 2.1.1.5 can also be used for memory hotremove.
14 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Some ranges of physical memory may be treated as special by some OSs such that they cannot be offlined and therefore not hot-removable. The memory range targeted for hot-removal may contain pinned pages that prevent successful offlining
4) If the OS determines the memory can be offlined, the OS attempts to offline the specified memory from the running system. The OS migrates the contents from the specified memory range, releases physical memory pages and removes page table entries that belong to the specified range. 5) OS flushes all the processor caches to purge all cache lines of references to the target memory range. IMPLEMENTATION NOTE on Itanium Architecture: The following describes a scheme for flushing processor caches on Itanium Architecture platforms. First, a sequence for halting speculative references and prefetches to the target range and for returning cache lines to the memory being removed is described in The Intel Itanium Architecture Software Developers Manual, Volume 2, Revision 2.2, Volume 2, Section 4.4.11.3, here referred to as SDM Sec 4.4.11.3. The OS basically uses this sequence under the following requirements: 1. The OS must execute the SDM Sec 4.4.11.3 sequence on all processors owned by the OS at the time of the hot-removal operation. 2. The OS must wake and execute the SDM Sec 4.4.11.3 sequence on all processors on which the OS had called PAL_HALT. The SAL is not responsible for processors placed in the HALT state by the OS 3. In step 9 of the SDM Sec 4.4.11.3 sequence, the OS must call SAL_CACHE_FLUSH from every processor active in the OS to flush all platform caches. However, there may be processors that are not visible to the OS and are visible only to the SAL at the time of the hot-remove request (e.g. some processors may not be visible to the OS due to license restrictions, or returned by the OS to SAL BR0 loop). In this case, the SAL needs to ensure these processors are performing prefetches for only code and data owned by firmware. This is accomplished by executing the following sequence on every processor visible only to the SAL: 1. Call PAL_PTCE_INFO to get information needed to purge translation caches, then use the parameters returned to execute the loop describing the ptc.e (purge translation cache entry) instruction in The Intel Itanium Architecture Software Developers Manual, Revision 2.2, Volume 3, Section 2.2. 2. Call PAL_PREFETCH_VISIBILITY with trans_type=1 3. Call PAL_CACHE_FLUSH with the inv parameter set to 1. 4. Call PAL_MC_DRAIN The execution of the above sequence by the SAL for processors visible only to the SAL must meet the following requirements:
15 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
1. SAL firmware must execute this sequence when the OS returns the processor to system firmware via the BR0 return address. 2. SAL firmware must execute this sequence whenever a processor that has completed Selftest is placed in the BR0 loop to wait to be claimed by the OS (as in after performing memory test during initialization). 3. This sequence must be executed from the SAL memory area where the SAL BR0 loop is located without making references to any other memory area except to the PAL procedure calls used in the sequence. 4. No references to any OS-owned memory area may be made during or after execution of the sequence.
6) If OS successfully offlines the memory from running system, it calls _EJ0 of the corresponding module device to indicate successful offlining of the memory by OS. Since _EJ0 does not return status, OS will evaluate _STA method to verify the success of the ejection operation. 7) If _EJ0 is called, ACPI code may invoke system firmware to continue to hot-remove operation (e.g. power off the memory FRU device). 8) If OS is unable to offline the memory, then it calls _OST to indicate failure to ACPI code.
Note that this is not an exhaustive list of every ACPI object that needs to be implemented. Only the relevant ACPI primitives that were either introduced in ACPI 3.0 or that have not been universally supported in ACPI 2.0 compliant OSs are specifically mentioned here.
16 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
2.2.2 Assumptions
The platform does not have power domain dependencies between separate processor boards. Given that a processor board is assumed to include memory, if the platform allows memory interleaving across processor boards, the same assumptions pertaining to memory interleaving described in the Memory Hot-Plug section apply here as well. If CPEI (Corrected Platform Error Interrupt) is used, the OS must comprehend the CPEI Processor Override Flag in the Platform Interrupt Source Structure (defined in ACPI 3.0) to support hot-removal of a processor board that is targeted for a CPEI. Note that the ACPI 2.0 definition of CPEI implies that the CPEI handler can only be run on a specific processor. ACPI 3.0 relaxes this restriction by making the processor IDs in the Platform Interrupt Source Structure provide a hint for a target processor (see ACPI 3.0 Section 5.2.11.14). If CPEP (Corrected Platform Error Polling) is used, the OS needs to comprehend _PPE (Poll for Corrected Platform Error) method handling during device notification as outlined in the DIG64 CPEP Interface Specification (see References). The OS must comprehend Processor ID extension using _UID (ACPI 3.0) if it is supporting processor hot-plug on a system with > 256 processors Any processor board can be hot-removed. Note that there may be OS limitations on hotremoval of the System Bootstrap Processor (SBSP), and/or boot memory that happens to reside on the processor board. If hot-remove of a SBSP is supported, during the hot-removal of the SBSP, one of the APs (Application Processors) must contain the return value to SAL.
17 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
18 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
19 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
} // _SB scope ASL for OS that supports Processor Board Hot-Add and Hot-Remove Scope (\_SB) { Device (S1) { // Processor Board1
Name(_HID, ACPI0004) // Module Device IMPLEMENTATION NOTE: DIG64 recommends using ACPI Module Device objects to describe nodes in a NUMA system. Refer to DIG64 R2.2, section 5.5.2.4.
Method (_STA, 0) { // If Module is not present --> Return(0x00) // Else if Module is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to Module }
Method (_PXM) {} Processor( CPU1, 0, 0, 0) { Method (_MAT) {} } // CPU1 Processor( CPU4, 0, 0, 0) { Method (_MAT) {} } // CPU4 Device (MD1) {//Memory Device Name(_HID, EISAID(PNP0C80)) Name (_CRS, ResourceTemplate) (0x4000_0000 to 0x7FFF_FFFF) // 1GB range [230..230+1GB-1]
Method (_STA, 0) { // If memory device not present --> Return(0x00) // Else if memory device is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to device }
} // MD1 Device (MD2) {//Memory Device Name(_HID, EISAID(PNP0C80)) Name (_CRS, ResourceTemplate) (0x8000_0000 to 0xBFFF_FFFF) // 1GB range [231..231+1GB-1)
Method (_STA, 0) {
20 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
// If memory device not present --> Return(0x00) // Else if memory device is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to device }
} // MD2 } // S1 } // _SB Scope (\_GPE) { Method _Lxx { If (S1 hot-add request) Notify (S1, 1) If (S1 hot-remove request) Notify (S1, 3) } // _Lxx } // _GPE
21 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Hardware Flow
OS Flow
User initiates processorboard hot- remove request (via button press, management console or application)
Trigger ACPI event
Call _EJ0
22 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
2) The OS generates a Notify with Notify Code 3 (eject request) to the ACPI device corresponding to the processor board 3) OS attempts to offline the processors before offlining memory corresponding to the processor board. The process by which the OS offlines processors is specific to the OS. However, platform firmware can assume that on completion of offlining of processors by the OS, the corresponding caches of the processors have been flushed by the OS. The details of this process are described in the section on memory hot-remove. 4) If the OS successfully offlines the resources (processors and memory) on the processor board from the running system, it then calls _EJ0 of the processor board device. Since _EJ0 does not return status, the OS evaluates _STA method to verify the success of the ejection operation.
IMPLEMENTATION NOTE for Itanium Architecture: The OS is required to return the offlined processors to a SAL rendezvous loop, prior to calling _EJ0 to indicate successful offlining of the processor board. This note assumes offlining of non-BSP processors only.
5) If _EJ0 is called, ACPI code may invoke system firmware to continue the hot-remove operation, for example. cutting off power to the processor board.
IMPLEMENTATION NOTE for Itanium Architecture: Prior to removing power, SAL needs to ensure that all the processors in the SAL boot rendezvous routine for the outgoing processor board are placed in PAL_SHUTDOWN state. This ensures that all the processors enter a low power state before the power is removed from the processor board.
6) If the OS is unable to offline the processor board, it calls _OST to indicate failure of the hotremove operation.
_OSI (Object for representing Operating System Interfaces) _OST (Object for status indication for device insertion and removal) _MAT (Object for describing a Multiple APIC Device) _PXM (Object for describing proximity domains of devices) _SLI (System Locality Information) , if SLIT (System Locality Distance Information Table) is supported Comprehension of the CPEI Override Flag _STA (Object for status of device enabled/disabled, insertion/removal)
Note that this is not an exhaustive list of every ACPI object that needs to be implemented. Only the relevant ACPI primitives that were either introduced in ACPI 3.0 or that have not been universally supported in ACPI 2.0 compliant OSs are specifically mentioned here.
24 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
25 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
If the I/O Controller Hub contains I/O APIC devices, the I/O APIC device must be described in the ACPI namespace in order to provide the global system address base of the I/O APIC (IOSAPIC or IOxAPIC).
... } Device (IOH2) { // host bridge representation for IOH2 Name (_HID, EISAID(PNP0A08)) Name (_CID, EISAID(PNP0A03)) Name (_ADR, 0)
Method (_STA, 0) { // If IOH not present --> Return(0x00) // Else if IOH is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to device }
// resources for host bridge indicates PCI Segment for the IOH2 indicates boot bus number for IOH2 // return MMCFG base address for // host bridge
26
Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Method (_OSC, 4) { } // enable OS to indicate //capabilities related to PCI-E Device (PCI1) { // IOAPIC PCI Device Name (_ADR, ) } ... } } // _SB scope Scope (\_GPE) { Method _Lxx { if (IOH2 hot-add) Notify(IOH2, 1) if (IOH2 hot-remove) Notify(IOH2, 3) } // _Lxx } // _GPE
Hardware Flow
OS Flow
OS attempts to offline the I/O controller hub and the hierarchy of devices under it
Call _EJ0
27 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Note that this is not an exhaustive list of every ACPI object that needs to be implemented. Only the relevant ACPI primitives that were either introduced in ACPI3.0 or that have not been universally supported in ACPI 2.0 compliant OSs are mentioned here.
28 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
2.4
When implementing the flows specified in this document, it may be necessary for the ACPI code to invoke native system firmware to assist in completing the hot-plug flow. The mechanism to invoke native system firmware from ACPI code is implementation specific. IMPLEMENTATION NOTE: Using firmware-triggered platform management interrupts (PMI on Itanium Architecture, or SMI on Intel64 architecture), or defining special ACPI Operation Regions are possible approaches for implementation.
29 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
30 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
ASL for OS that supports Partition Unit Hot-Add and Hot-Remove Scope (\_SB) { Device (S1) { // Partition Unit1 Name(_HID, ACPI0004) // Module Device IMPLEMENTATION NOTE: DIG64 recommends using ACPI Module Device objects to describe nodes in a NUMA system. Refer to DIG64 R2.2, section 5.5.2.4.
Method (_STA, 0) { // If Module not present --> Return(0x00) // Else if Module is disabled --> Return(0x0D) // Else --> Return(0x0F) } // _STA Method(_EJ0, 1) { // Offline or remove all power to device }
Method (_PXM) {} Processor( CPU1, 0, 0, 0) { Method (_MAT) {} ... } // CPU1 Processor( CPU4, 0, 0, 0) { Method (_MAT) {} ... } // CPU4 Device (MD1) {//Memory Device Name(_HID, EISAID(PNP0C80)) Name (_CRS, ResourceTemplate) (0x4000_0000 to 0x7FFF_FFFF) // 1GB range [230..230+1GB-1]
Method (_STA, 0) {...} Method(_EJ0, 1) {...}
} // MD1 Device (MD2) {//Memory Device Name(_HID, EISAID(PNP0C80)) Name (_CRS, ResourceTemplate) (0x8000_0000 to 0xBFFF_FFFF) // 1GB range [231..231+1GB-1]
Method (_STA, 0) {...} Method(_EJ0, 1) {...}
} // MD2 Device (IOH1) { // host bridge representation for IOH1 Name (_HID, EISAID(PNP0A08))
31 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
} // S1 Device (IOH0) { // host bridge representation of legacy IOH Name (_HID, EISAID(PNP0A08)) Name (_CID, EISAID(PNP0A03)) ... } } // _SB Scope (\_GPE) { Method _Lxx { If (S1 hot-add request) Notify (S1, 1) If (S1 hot-remove request) Notify (S1, 3) } // _Lxx } // _GPE
First, resources of an existing partition are offlined. For example, the following hot-plug FRUs can be offlined: PB2, PB3, IOH2, IOH3. Note hot-removal or offlining of PB0 or IOH0 may not be allowed due to OS and/or platform restrictions.
32 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
Next, the domain perimeter of the existing partition is reconfigured to remove the offlined components from the current domain. The mechanism for reconfiguring domain perimeters is implementation specific. The offlined components can now be used to construct a new domain partition using the onlining mechanisms supported on the platform.
Partition2 4 processor boards: PB4, PB5, PB6, PB7 where PB4 contains boot memory 4 I/O boards: IOH4, IOH5, IOH6, IOH7 where IOH4 has legacy I/O devices behind it
The sequence of actions for migrating a processor board from Partition2 to Partition1 is as follows: 1. Perform a processor board offline on PB7 in Partition2 2. Reprogram the system domain perimeter to move PB7 from Partition2 to Partition1 (this step is implementation specific) 3. Online PB7 in Partition1.
33 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").
34 Copyright 2007 Bull SAS, Fujitsu Siemens Computers, Hewlett-Packard Company, Hitachi Limited, Intel Corporation, NEC Corporation, and Unisys Corporation (collectively referred to as the "DIG64 Promoters").