2:286
Volume 2, Part 1: Processor Abstraction Layer
• The 8 bytes at 0xFFFF_FFE0 (4GB-32) contain the physical address of the Firmware
Interface Table.
• The 16 bytes at 0xFFFF_FFD0 (4GB-48) contain the FIT entry for the PAL_A (or
generic PAL_A in the split PAL_A model) code provided by the processor vendor.
The format of this FIT entry is described in
• The 8 bytes at 0xFFFF_FFC8 (4GB-56) contains the physical address of the
alternate Firmware Interface Table. This pointer is optional and is only needed if the
firmware contains an alternate FIT table. If no alternate FIT table it provided a
value of 0x0 should be encoded in this entry.
• The 8 bytes at 0xFFFF_FFC0 (4GB-64) are zero-filled and reserved for future use.
• PAL_A code (also known as generic PAL_A code in split PAL_A model) resides below
0xFFFF_FFC0. This area contains the hardware-triggered entrypoints PALE_RESET,
PALE_INIT, and PALE_CHECK. In the model where PAL_A is not split, the PAL_A
code will perform any processor-specific initialization needed in order for SAL to
perform a firmware recovery. In the split PAL_A model, the generic PAL_A will
search the FIT table(s) to find the first compatible and error-free processor-specific
PAL_A code. It will then branch to this code to perform the processor-specific
initialization needed in order for SAL to perform a firmware recovery. The PAL_A
code area is a multiple of 16 bytes in length.
• SAL_A code occupies the region immediately below the PAL_A code. This area
contains the SALE_ENTRY entrypoint as well as optional
implementation-independent firmware update code. The SAL_A code area is a
multiple of 16 bytes in length.
• The collection of regions above from the beginning of the SAL_A code to 4GB is
called the Protected Bootblock. The size of the Protected Bootblock is SAL_A size +
PAL_A size + 64.
• The Firmware Interface Table (FIT) comprises of 16-byte entries containing starting
address and size information for the firmware components. The FIT is generated at
build time, based on the size and location of the firmware components. Optionally,
an alternate FIT may be included in the firmware. The alternate FIT will only be
used if the primary FIT failed its checksum. In the split PAL_A model, this allows the
generic PAL_A firmware to find the processor-specific PAL_A component(s), even if
the primary FIT is corrupt. This feature allows hand-off to the SAL recovery code,
even if there is a primary FIT checksum failure.
• The processor-specific PAL_A contains the code that is required to be run before
handing off to SAL for a firmware recovery check. This component is only available
on processors that support a split PAL_A firmware model. One processor-specific
PAL_A is architecturally required in this model. The firmware may optionally contain
two or more processor-specific PAL_A components.
• The PAL_B block is comprised of code that is not required to be executed for SAL to
perform a firmware recovery update. The PAL_B code area is a multiple of 16 bytes
in length. The PAL_B block must be aligned on a 32K byte boundary or a 64K byte
boundary depending on the implementation. Processor specific documentation
provides the requirement for alignment. An OEM can choose to have more than one
PAL_B block in the firmware image.
• The remainder of the firmware address space is occupied by SAL_B code. SAL_B
may include IA-32 BIOS code. The location of the SAL_B and IA-32 BIOS code
within the firmware address space is implementation dependent.
Summary of Contents for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3
Page 1: ......
Page 11: ...x Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 13: ...1 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 33: ...1 22 Volume 1 Part 1 Introduction to the Intel Itanium Architecture ...
Page 57: ...1 46 Volume 1 Part 1 Execution Environment ...
Page 147: ...1 136 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 149: ...1 138 Volume 1 Part 2 About the Optimization Guide ...
Page 191: ...1 180 Volume 1 Part 2 Predication Control Flow and Instruction Stream ...
Page 230: ......
Page 248: ...236 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 250: ...2 2 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 264: ...2 16 Volume 2 Part 1 Intel Itanium System Environment ...
Page 380: ...2 132 Volume 2 Part 1 Interruptions ...
Page 398: ...2 150 Volume 2 Part 1 Register Stack Engine ...
Page 486: ...2 238 Volume 2 Part 1 IA 32 Interruption Vector Descriptions ...
Page 750: ...2 502 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 754: ...2 506 Volume 2 Part 2 About the System Programmer s Guide ...
Page 796: ...2 548 Volume 2 Part 2 Interruptions and Serialization ...
Page 808: ...2 560 Volume 2 Part 2 Context Management ...
Page 842: ...2 594 Volume 2 Part 2 Floating point System Software ...
Page 850: ...2 602 Volume 2 Part 2 IA 32 Application Support ...
Page 862: ...2 614 Volume 2 Part 2 External Interrupt Architecture ...
Page 870: ...2 622 Volume 2 Part 2 Performance Monitoring Support ...
Page 891: ......
Page 1099: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault ...
Page 1295: ...3 396 Volume 3 Resource and Dependency Semantics ...
Page 1296: ......
Page 1302: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1494: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Page 1647: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Page 1884: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Page 1885: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Page 1886: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Page 1898: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...