![Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS VOLUME 3 REV 2.3 Manual Download Page 878](http://html.mh-extra.com/html/intel/itanium-architecture-software-developers-volume-3-rev-2-3/itanium-architecture-software-developers-volume-3-rev-2-3_manual_2073404878.webp)
2:630
Volume 2, Part 2: Firmware Overview
13.2.1.3
PAL Procedure Calls and Performance
PAL procedure calls are designed for a number of different functions varying from
boot-time usage before platform memory is available to processor-specific functions
used during runtime by the OS. PAL runtime procedure calls made by the OS are
designed to be flexible with minimal overhead. The following features aid in this goal:
• PAL procedure calls are relocatable. This feature is useful for platforms that have
PAL stored in non-volatile storage, such as flash. During OS boot the PAL
procedures are copied into RAM which will reduce the memory latency.
• A number of PAL procedure calls are defined to be called in both physical and virtual
addressing. This allows the caller to make the call in its currently executing
addressing mode, thus reducing the need to switch between physical and virtual
addressing.
13.2.2
SAL Procedure Calls
All SAL procedure calls use the stacked register calling convention. SAL follows the
floating-point register conventions specified in the calling conventions document
[SWC], with the exception that SAL does not use the floating-point registers FR32 to
FR127. This exception eliminates the need for the OS to save these registers across SAL
procedure calls.
SAL procedures are non re-entrant. The OS is required to enforce single threaded
access to the SAL procedures except for the following procedures:
• SAL_MC_RENDEZ, SAL_CACHE_INIT, SAL_CACHE_FLUSH
13.2.3
UEFI Procedure Calls
UEFI procedure calls are classified into the following two categories: boot services and
runtime services. The UEFI boot services execute in physical addressing mode only. The
runtime services can execute in either physical or virtual addressing mode. The UEFI
boot services are only available during the boot process and are terminated by a call to
movl r4 = AddressOfPALProc;;// Address of the PAL proc entry point
ld8 r4 = [r4];;// Read address from local pointer
mov b5 = r4
// Move address into a branch register
// Make the PAL_HALT_INFO procedure call. PAL_HALT_INFO uses stacked
register
// convention and parameters are passed with in0-in3
mov r28 = PAL_HALT_INFO;;// Index of the PAL procedure
mov out0 = r28// r28 and in0 must both contain the
// index value for stacked PAL calls.
mov out1 = ScratchMem_Pointer// Pointer to the memory argument
mov out2 = 0x0// Write zero to unused input arguments
mov out3 = 0x0
br.call.sptk.few b0 = b5;;// PAL stacked call
// PAL will return here when the call is completed
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 ...