2 This file declares the related BootScript definitions and some SMBus definitions.
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 Module Name: BootScript.h
15 @par Revision Reference:
16 These definitions are defined in BootScript Spec 0.91 and SmBus PPI spec 0.9.
20 #ifndef _EFI_SCRIPT_H_
21 #define _EFI_SCRIPT_H_
23 #define EFI_ACPI_S3_RESUME_SCRIPT_TABLE 0x00
26 // Boot Script Opcode Definitions
29 #define EFI_BOOT_SCRIPT_IO_WRITE_OPCODE 0x00
30 #define EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE 0x01
31 #define EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE 0x02
32 #define EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE 0x03
33 #define EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE 0x04
34 #define EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE 0x05
35 #define EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE 0x06
36 #define EFI_BOOT_SCRIPT_STALL_OPCODE 0x07
37 #define EFI_BOOT_SCRIPT_DISPATCH_OPCODE 0x08
38 #define EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE 0x09
40 #define EFI_BOOT_SCRIPT_TABLE_OPCODE 0xAA
41 #define EFI_BOOT_SCRIPT_TERMINATE_OPCODE 0xFF
46 // EFI Boot Script Width
49 EfiBootScriptWidthUint8
,
50 EfiBootScriptWidthUint16
,
51 EfiBootScriptWidthUint32
,
52 EfiBootScriptWidthUint64
,
53 EfiBootScriptWidthFifoUint8
,
54 EfiBootScriptWidthFifoUint16
,
55 EfiBootScriptWidthFifoUint32
,
56 EfiBootScriptWidthFifoUint64
,
57 EfiBootScriptWidthFillUint8
,
58 EfiBootScriptWidthFillUint16
,
59 EfiBootScriptWidthFillUint32
,
60 EfiBootScriptWidthFillUint64
,
61 EfiBootScriptWidthMaximum
62 } EFI_BOOT_SCRIPT_WIDTH
;
65 // EFI Smbus Device Address, Smbus Device Command, Smbus Operation
68 UINTN SmbusDeviceAddress
: 7;
69 } EFI_SMBUS_DEVICE_ADDRESS
;
71 typedef UINTN EFI_SMBUS_DEVICE_COMMAND
;
73 typedef enum _EFI_SMBUS_OPERATION
86 EfiSmbusBWBRProcessCall
87 } EFI_SMBUS_OPERATION
;
90 // Boot Script Opcode Header Structure Definitions
96 } EFI_BOOT_SCRIPT_GENERIC_HEADER
;
104 } EFI_BOOT_SCRIPT_TABLE_HEADER
;
109 EFI_BOOT_SCRIPT_WIDTH Width
;
110 } EFI_BOOT_SCRIPT_COMMON_HEADER
;
115 EFI_BOOT_SCRIPT_WIDTH Width
;
118 } EFI_BOOT_SCRIPT_IO_WRITE
;
123 EFI_BOOT_SCRIPT_WIDTH Width
;
125 } EFI_BOOT_SCRIPT_IO_READ_WRITE
;
130 EFI_BOOT_SCRIPT_WIDTH Width
;
133 } EFI_BOOT_SCRIPT_MEM_WRITE
;
138 EFI_BOOT_SCRIPT_WIDTH Width
;
140 } EFI_BOOT_SCRIPT_MEM_READ_WRITE
;
145 EFI_BOOT_SCRIPT_WIDTH Width
;
148 } EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE
;
153 EFI_BOOT_SCRIPT_WIDTH Width
;
155 } EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE
;
160 EFI_SMBUS_DEVICE_ADDRESS SlaveAddress
;
161 EFI_SMBUS_DEVICE_COMMAND Command
;
162 EFI_SMBUS_OPERATION Operation
;
165 } EFI_BOOT_SCRIPT_SMBUS_EXECUTE
;
171 } EFI_BOOT_SCRIPT_STALL
;
176 EFI_PHYSICAL_ADDRESS EntryPoint
;
177 } EFI_BOOT_SCRIPT_DISPATCH
;
182 EFI_PHYSICAL_ADDRESS EntryPoint
;
183 EFI_PHYSICAL_ADDRESS Context
;
184 } EFI_BOOT_SCRIPT_DISPATCH_2
;
189 } EFI_BOOT_SCRIPT_TERMINATE
;
192 EFI_BOOT_SCRIPT_GENERIC_HEADER
*Header
;
193 EFI_BOOT_SCRIPT_TABLE_HEADER
*TableInfo
;
194 EFI_BOOT_SCRIPT_IO_WRITE
*IoWrite
;
195 EFI_BOOT_SCRIPT_IO_READ_WRITE
*IoReadWrite
;
196 EFI_BOOT_SCRIPT_MEM_WRITE
*MemWrite
;
197 EFI_BOOT_SCRIPT_MEM_READ_WRITE
*MemReadWrite
;
198 EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE
*PciWrite
;
199 EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE
*PciReadWrite
;
200 EFI_BOOT_SCRIPT_SMBUS_EXECUTE
*SmbusExecute
;
201 EFI_BOOT_SCRIPT_STALL
*Stall
;
202 EFI_BOOT_SCRIPT_DISPATCH
*Dispatch
;
203 EFI_BOOT_SCRIPT_DISPATCH_2
*Dispatch2
;
204 EFI_BOOT_SCRIPT_TERMINATE
*Terminate
;
205 EFI_BOOT_SCRIPT_COMMON_HEADER
*CommonHeader
;
207 } BOOT_SCRIPT_POINTERS
;