浏览代码

[efi] Update EDK2 headers

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 11 年前
父节点
当前提交
cff0103bd2

+ 12
- 1
src/include/ipxe/efi/Base.h 查看文件

6
   environment. There are a set of base libraries in the Mde Package that can
6
   environment. There are a set of base libraries in the Mde Package that can
7
   be used to implement base modules.
7
   be used to implement base modules.
8
 
8
 
9
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
9
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
10
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
10
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
11
 This program and the accompanying materials
11
 This program and the accompanying materials
12
 are licensed and made available under the terms and conditions of the BSD License
12
 are licensed and made available under the terms and conditions of the BSD License
208
 ///
208
 ///
209
 #define NULL  ((VOID *) 0)
209
 #define NULL  ((VOID *) 0)
210
 
210
 
211
+///
212
+/// Maximum values for common UEFI Data Types
213
+///
214
+#define MAX_INT8    ((INT8)0x7F)
215
+#define MAX_UINT8   ((UINT8)0xFF)
216
+#define MAX_INT16   ((INT16)0x7FFF)
217
+#define MAX_UINT16  ((UINT16)0xFFFF)
218
+#define MAX_INT32   ((INT32)0x7FFFFFFF)
219
+#define MAX_UINT32  ((UINT32)0xFFFFFFFF)
220
+#define MAX_INT64   ((INT64)0x7FFFFFFFFFFFFFFFULL)
221
+#define MAX_UINT64  ((UINT64)0xFFFFFFFFFFFFFFFFULL)
211
 
222
 
212
 #define  BIT0     0x00000001
223
 #define  BIT0     0x00000001
213
 #define  BIT1     0x00000002
224
 #define  BIT1     0x00000002

+ 7
- 1
src/include/ipxe/efi/Ia32/ProcessorBind.h 查看文件

1
 /** @file
1
 /** @file
2
   Processor or Compiler specific defines and types for IA-32 architecture.
2
   Processor or Compiler specific defines and types for IA-32 architecture.
3
 
3
 
4
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
4
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
 This program and the accompanying materials are licensed and made available under
5
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
6
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
7
 The full text of the license may be found at
228
 ///
228
 ///
229
 #define MAX_ADDRESS   0xFFFFFFFF
229
 #define MAX_ADDRESS   0xFFFFFFFF
230
 
230
 
231
+///
232
+/// Maximum legal IA-32 INTN and UINTN values.
233
+///
234
+#define MAX_INTN   ((INTN)0x7FFFFFFF)
235
+#define MAX_UINTN  ((UINTN)0xFFFFFFFF)
236
+
231
 ///
237
 ///
232
 /// The stack alignment required for IA-32.
238
 /// The stack alignment required for IA-32.
233
 ///
239
 ///

+ 2
- 1
src/include/ipxe/efi/IndustryStandard/PeImage.h 查看文件

4
   EFI_IMAGE_NT_HEADERS64 is for PE32+.
4
   EFI_IMAGE_NT_HEADERS64 is for PE32+.
5
 
5
 
6
   This file is coded to the Visual Studio, Microsoft Portable Executable and
6
   This file is coded to the Visual Studio, Microsoft Portable Executable and
7
-  Common Object File Format Specification, Revision 8.0 - May 16, 2006.
7
+  Common Object File Format Specification, Revision 8.3 - February 6, 2013.
8
   This file also includes some definitions in PI Specification, Revision 1.0.
8
   This file also includes some definitions in PI Specification, Revision 1.0.
9
 
9
 
10
 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
10
 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
41
 #define IMAGE_FILE_MACHINE_EBC             0x0EBC
41
 #define IMAGE_FILE_MACHINE_EBC             0x0EBC
42
 #define IMAGE_FILE_MACHINE_X64             0x8664
42
 #define IMAGE_FILE_MACHINE_X64             0x8664
43
 #define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED  0x01c2
43
 #define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED  0x01c2
44
+#define IMAGE_FILE_MACHINE_ARM64           0xAA64
44
 
45
 
45
 //
46
 //
46
 // EXE file formats
47
 // EXE file formats

+ 35
- 2
src/include/ipxe/efi/Library/BaseLib.h 查看文件

2
   Provides string functions, linked list functions, math functions, synchronization
2
   Provides string functions, linked list functions, math functions, synchronization
3
   functions, and CPU architecture-specific functions.
3
   functions, and CPU architecture-specific functions.
4
 
4
 
5
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
5
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
6
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
6
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
7
 This program and the accompanying materials
7
 This program and the accompanying materials
8
 are licensed and made available under the terms and conditions of the BSD License
8
 are licensed and made available under the terms and conditions of the BSD License
148
 
148
 
149
 #endif  // defined (MDE_CPU_ARM)
149
 #endif  // defined (MDE_CPU_ARM)
150
 
150
 
151
+#if defined (MDE_CPU_AARCH64)
152
+typedef struct {
153
+  // GP regs
154
+  UINT64    X19;
155
+  UINT64    X20;
156
+  UINT64    X21;
157
+  UINT64    X22;
158
+  UINT64    X23;
159
+  UINT64    X24;
160
+  UINT64    X25;
161
+  UINT64    X26;
162
+  UINT64    X27;
163
+  UINT64    X28;
164
+  UINT64    FP;
165
+  UINT64    LR;
166
+  UINT64    IP0;
167
+
168
+  // FP regs
169
+  UINT64    D8;
170
+  UINT64    D9;
171
+  UINT64    D10;
172
+  UINT64    D11;
173
+  UINT64    D12;
174
+  UINT64    D13;
175
+  UINT64    D14;
176
+  UINT64    D15;
177
+} BASE_LIBRARY_JUMP_BUFFER;
178
+
179
+#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
180
+
181
+#endif  // defined (MDE_CPU_AARCH64)
182
+
183
+
151
 //
184
 //
152
 // String Services
185
 // String Services
153
 //
186
 //
1359
   @param  List  A pointer to the head node of a doubly linked list.
1392
   @param  List  A pointer to the head node of a doubly linked list.
1360
 
1393
 
1361
   @return The first node of a doubly linked list.
1394
   @return The first node of a doubly linked list.
1362
-  @retval NULL  The list is empty.
1395
+  @retval List  The list is empty.
1363
 
1396
 
1364
 **/
1397
 **/
1365
 LIST_ENTRY *
1398
 LIST_ENTRY *

+ 2
- 2
src/include/ipxe/efi/Pi/PiDxeCis.h 查看文件

1
 /** @file
1
 /** @file
2
   Include file matches things in PI.
2
   Include file matches things in PI.
3
 
3
 
4
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
 This program and the accompanying materials are licensed and made available under
5
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
6
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
7
 The full text of the license may be found at
659
 //
659
 //
660
 #define DXE_SERVICES_SIGNATURE            0x565245535f455844ULL
660
 #define DXE_SERVICES_SIGNATURE            0x565245535f455844ULL
661
 #define DXE_SPECIFICATION_MAJOR_REVISION  1
661
 #define DXE_SPECIFICATION_MAJOR_REVISION  1
662
-#define DXE_SPECIFICATION_MINOR_REVISION  20
662
+#define DXE_SPECIFICATION_MINOR_REVISION  30
663
 #define DXE_SERVICES_REVISION             ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
663
 #define DXE_SERVICES_REVISION             ((DXE_SPECIFICATION_MAJOR_REVISION<<16) | (DXE_SPECIFICATION_MINOR_REVISION))
664
 
664
 
665
 typedef struct {
665
 typedef struct {

+ 3
- 3
src/include/ipxe/efi/Pi/PiFirmwareVolume.h 查看文件

1
 /** @file
1
 /** @file
2
   The firmware volume related definitions in PI.
2
   The firmware volume related definitions in PI.
3
 
3
 
4
-  Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4
+  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
   This program and the accompanying materials
5
   This program and the accompanying materials
6
   are licensed and made available under the terms and conditions of the BSD License
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
7
   which accompanies this distribution.  The full text of the license may be found at
11
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
 
12
 
13
   @par Revision Reference:
13
   @par Revision Reference:
14
-  PI Version 1.2C
14
+  PI Version 1.3
15
 
15
 
16
 **/
16
 **/
17
 
17
 
88
 #define EFI_FVB2_ALIGNMENT_512M     0x001D0000
88
 #define EFI_FVB2_ALIGNMENT_512M     0x001D0000
89
 #define EFI_FVB2_ALIGNMENT_1G       0x001E0000
89
 #define EFI_FVB2_ALIGNMENT_1G       0x001E0000
90
 #define EFI_FVB2_ALIGNMENT_2G       0x001F0000
90
 #define EFI_FVB2_ALIGNMENT_2G       0x001F0000
91
-
91
+#define EFI_FVB2_WEAK_ALIGNMENT     0x80000000
92
 
92
 
93
 typedef struct {
93
 typedef struct {
94
   ///
94
   ///

+ 30
- 1
src/include/ipxe/efi/Pi/PiMultiPhase.h 查看文件

1
 /** @file
1
 /** @file
2
   Include file matches things in PI for multiple module types.
2
   Include file matches things in PI for multiple module types.
3
 
3
 
4
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
4
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
 This program and the accompanying materials are licensed and made available under
5
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
6
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
7
 The full text of the license may be found at
135
   UINT64                RegionState;
135
   UINT64                RegionState;
136
 } EFI_SMRAM_DESCRIPTOR;
136
 } EFI_SMRAM_DESCRIPTOR;
137
 
137
 
138
+typedef enum {
139
+  EFI_PCD_TYPE_8,
140
+  EFI_PCD_TYPE_16,
141
+  EFI_PCD_TYPE_32,
142
+  EFI_PCD_TYPE_64,
143
+  EFI_PCD_TYPE_BOOL,
144
+  EFI_PCD_TYPE_PTR
145
+} EFI_PCD_TYPE;
146
+
147
+typedef struct {
148
+  ///
149
+  /// The returned information associated with the requested TokenNumber. If
150
+  /// TokenNumber is 0, then PcdType is set to EFI_PCD_TYPE_8.
151
+  ///
152
+  EFI_PCD_TYPE      PcdType;
153
+  ///
154
+  /// The size of the data in bytes associated with the TokenNumber specified. If
155
+  /// TokenNumber is 0, then PcdSize is set 0.
156
+  ///
157
+  UINTN             PcdSize;
158
+  ///
159
+  /// The null-terminated ASCII string associated with a given token. If the
160
+  /// TokenNumber specified was 0, then this field corresponds to the null-terminated
161
+  /// ASCII string associated with the token's namespace Guid. If NULL, there is no
162
+  /// name associated with this request.
163
+  ///
164
+  CHAR8             *PcdName;
165
+} EFI_PCD_INFO;
166
+
138
 #endif
167
 #endif

+ 7
- 2
src/include/ipxe/efi/Pi/PiStatusCode.h 查看文件

1
 /** @file
1
 /** @file
2
   StatusCode related definitions in PI.
2
   StatusCode related definitions in PI.
3
 
3
 
4
-Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
4
+Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
5
 This program and the accompanying materials are licensed and made available under
5
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
6
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
7
 The full text of the license may be found at
598
 //
598
 //
599
 // IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
599
 // IO Bus Class ATA/ATAPI Subclass Progress Code definitions.
600
 //
600
 //
601
-
601
+#define EFI_IOB_ATA_BUS_SMART_ENABLE          (EFI_SUBCLASS_SPECIFIC | 0x00000000)
602
+#define EFI_IOB_ATA_BUS_SMART_DISABLE         (EFI_SUBCLASS_SPECIFIC | 0x00000001)
603
+#define EFI_IOB_ATA_BUS_SMART_OVERTHRESHOLD   (EFI_SUBCLASS_SPECIFIC | 0x00000002)
604
+#define EFI_IOB_ATA_BUS_SMART_UNDERTHRESHOLD  (EFI_SUBCLASS_SPECIFIC | 0x00000003)
602
 //
605
 //
603
 // IO Bus Class FC Subclass Progress Code definitions.
606
 // IO Bus Class FC Subclass Progress Code definitions.
604
 //
607
 //
671
 //
674
 //
672
 // IO Bus Class ATA/ATAPI Subclass Error Code definitions.
675
 // IO Bus Class ATA/ATAPI Subclass Error Code definitions.
673
 //
676
 //
677
+#define EFI_IOB_ATA_BUS_SMART_NOTSUPPORTED  (EFI_SUBCLASS_SPECIFIC | 0x00000000)
678
+#define EFI_IOB_ATA_BUS_SMART_DISABLED      (EFI_SUBCLASS_SPECIFIC | 0x00000001)
674
 
679
 
675
 //
680
 //
676
 // IO Bus Class FC Subclass Error Code definitions.
681
 // IO Bus Class FC Subclass Error Code definitions.

+ 97
- 2
src/include/ipxe/efi/Protocol/DebugSupport.h 查看文件

1
 /** @file
1
 /** @file
2
-  DebugSupport protocol and supporting definitions as defined in the UEFI2.0
2
+  DebugSupport protocol and supporting definitions as defined in the UEFI2.4
3
   specification.
3
   specification.
4
 
4
 
5
   The DebugSupport protocol is used by source level debuggers to abstract the
5
   The DebugSupport protocol is used by source level debuggers to abstract the
6
   processor and handle context save and restore operations.
6
   processor and handle context save and restore operations.
7
 
7
 
8
 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
8
 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
9
+Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
10
+
9
 This program and the accompanying materials are licensed and made available under
11
 This program and the accompanying materials are licensed and made available under
10
 the terms and conditions of the BSD License that accompanies this distribution.
12
 the terms and conditions of the BSD License that accompanies this distribution.
11
 The full text of the license may be found at
13
 The full text of the license may be found at
519
   UINT32  IFAR;
521
   UINT32  IFAR;
520
 } EFI_SYSTEM_CONTEXT_ARM;
522
 } EFI_SYSTEM_CONTEXT_ARM;
521
 
523
 
524
+
525
+///
526
+///  AARCH64 processor exception types.
527
+///
528
+#define EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS    0
529
+#define EXCEPT_AARCH64_IRQ                       1
530
+#define EXCEPT_AARCH64_FIQ                       2
531
+#define EXCEPT_AARCH64_SERROR                    3
532
+
533
+///
534
+/// For coding convenience, define the maximum valid ARM exception.
535
+///
536
+#define MAX_AARCH64_EXCEPTION EXCEPT_AARCH64_SERROR
537
+
538
+typedef struct {
539
+  // General Purpose Registers
540
+  UINT64  X0;
541
+  UINT64  X1;
542
+  UINT64  X2;
543
+  UINT64  X3;
544
+  UINT64  X4;
545
+  UINT64  X5;
546
+  UINT64  X6;
547
+  UINT64  X7;
548
+  UINT64  X8;
549
+  UINT64  X9;
550
+  UINT64  X10;
551
+  UINT64  X11;
552
+  UINT64  X12;
553
+  UINT64  X13;
554
+  UINT64  X14;
555
+  UINT64  X15;
556
+  UINT64  X16;
557
+  UINT64  X17;
558
+  UINT64  X18;
559
+  UINT64  X19;
560
+  UINT64  X20;
561
+  UINT64  X21;
562
+  UINT64  X22;
563
+  UINT64  X23;
564
+  UINT64  X24;
565
+  UINT64  X25;
566
+  UINT64  X26;
567
+  UINT64  X27;
568
+  UINT64  X28;
569
+  UINT64  FP;   // x29 - Frame pointer
570
+  UINT64  LR;   // x30 - Link Register
571
+  UINT64  SP;   // x31 - Stack pointer
572
+
573
+  // FP/SIMD Registers
574
+  UINT64  V0[2];
575
+  UINT64  V1[2];
576
+  UINT64  V2[2];
577
+  UINT64  V3[2];
578
+  UINT64  V4[2];
579
+  UINT64  V5[2];
580
+  UINT64  V6[2];
581
+  UINT64  V7[2];
582
+  UINT64  V8[2];
583
+  UINT64  V9[2];
584
+  UINT64  V10[2];
585
+  UINT64  V11[2];
586
+  UINT64  V12[2];
587
+  UINT64  V13[2];
588
+  UINT64  V14[2];
589
+  UINT64  V15[2];
590
+  UINT64  V16[2];
591
+  UINT64  V17[2];
592
+  UINT64  V18[2];
593
+  UINT64  V19[2];
594
+  UINT64  V20[2];
595
+  UINT64  V21[2];
596
+  UINT64  V22[2];
597
+  UINT64  V23[2];
598
+  UINT64  V24[2];
599
+  UINT64  V25[2];
600
+  UINT64  V26[2];
601
+  UINT64  V27[2];
602
+  UINT64  V28[2];
603
+  UINT64  V29[2];
604
+  UINT64  V30[2];
605
+  UINT64  V31[2];
606
+
607
+  UINT64  ELR;  // Exception Link Register
608
+  UINT64  SPSR; // Saved Processor Status Register
609
+  UINT64  FPSR; // Floating Point Status Register
610
+  UINT64  ESR;  // Exception syndrome register
611
+  UINT64  FAR;  // Fault Address Register
612
+} EFI_SYSTEM_CONTEXT_AARCH64;
613
+
614
+
522
 ///
615
 ///
523
 /// Universal EFI_SYSTEM_CONTEXT definition.
616
 /// Universal EFI_SYSTEM_CONTEXT definition.
524
 ///
617
 ///
528
   EFI_SYSTEM_CONTEXT_X64  *SystemContextX64;
621
   EFI_SYSTEM_CONTEXT_X64  *SystemContextX64;
529
   EFI_SYSTEM_CONTEXT_IPF  *SystemContextIpf;
622
   EFI_SYSTEM_CONTEXT_IPF  *SystemContextIpf;
530
   EFI_SYSTEM_CONTEXT_ARM  *SystemContextArm;
623
   EFI_SYSTEM_CONTEXT_ARM  *SystemContextArm;
624
+  EFI_SYSTEM_CONTEXT_AARCH64  *SystemContextAArch64;
531
 } EFI_SYSTEM_CONTEXT;
625
 } EFI_SYSTEM_CONTEXT;
532
 
626
 
533
 //
627
 //
568
   IsaX64  = IMAGE_FILE_MACHINE_X64,            ///< 0x8664
662
   IsaX64  = IMAGE_FILE_MACHINE_X64,            ///< 0x8664
569
   IsaIpf  = IMAGE_FILE_MACHINE_IA64,           ///< 0x0200
663
   IsaIpf  = IMAGE_FILE_MACHINE_IA64,           ///< 0x0200
570
   IsaEbc  = IMAGE_FILE_MACHINE_EBC,            ///< 0x0EBC
664
   IsaEbc  = IMAGE_FILE_MACHINE_EBC,            ///< 0x0EBC
571
-  IsaArm  = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED  ///< 0x01c2
665
+  IsaArm  = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED, ///< 0x01c2
666
+  IsaAArch64  = IMAGE_FILE_MACHINE_ARM64       ///< 0xAA64
572
 } EFI_INSTRUCTION_SET_ARCHITECTURE;
667
 } EFI_INSTRUCTION_SET_ARCHITECTURE;
573
 
668
 
574
 
669
 

+ 13
- 1
src/include/ipxe/efi/Protocol/DevicePath.h 查看文件

5
   from a software point of view. The path must persist from boot to boot, so
5
   from a software point of view. The path must persist from boot to boot, so
6
   it can not contain things like PCI bus numbers that change from boot to boot.
6
   it can not contain things like PCI bus numbers that change from boot to boot.
7
 
7
 
8
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
8
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
9
 This program and the accompanying materials are licensed and made available under
9
 This program and the accompanying materials are licensed and made available under
10
 the terms and conditions of the BSD License that accompanies this distribution.
10
 the terms and conditions of the BSD License that accompanies this distribution.
11
 The full text of the license may be found at
11
 The full text of the license may be found at
787
   UINT16                          RelativeTargetPort;
787
   UINT16                          RelativeTargetPort;
788
 } SASEX_DEVICE_PATH;
788
 } SASEX_DEVICE_PATH;
789
 
789
 
790
+///
791
+/// NvmExpress Namespace Device Path SubType.
792
+///
793
+#define MSG_NVME_NAMESPACE_DP     0x17
794
+typedef struct {
795
+  EFI_DEVICE_PATH_PROTOCOL        Header;
796
+  UINT32                          NamespaceId;
797
+  UINT64                          NamespaceUuid;
798
+} NVME_NAMESPACE_DEVICE_PATH;
799
+
790
 ///
800
 ///
791
 /// iSCSI Device Path SubType
801
 /// iSCSI Device Path SubType
792
 ///
802
 ///
1085
   UART_FLOW_CONTROL_DEVICE_PATH              UartFlowControl;
1095
   UART_FLOW_CONTROL_DEVICE_PATH              UartFlowControl;
1086
   SAS_DEVICE_PATH                            Sas;
1096
   SAS_DEVICE_PATH                            Sas;
1087
   SASEX_DEVICE_PATH                          SasEx;
1097
   SASEX_DEVICE_PATH                          SasEx;
1098
+  NVME_NAMESPACE_DEVICE_PATH                 NvmeNamespace;
1088
   HARDDRIVE_DEVICE_PATH                      HardDrive;
1099
   HARDDRIVE_DEVICE_PATH                      HardDrive;
1089
   CDROM_DEVICE_PATH                          CD;
1100
   CDROM_DEVICE_PATH                          CD;
1090
 
1101
 
1134
   UART_FLOW_CONTROL_DEVICE_PATH              *UartFlowControl;
1145
   UART_FLOW_CONTROL_DEVICE_PATH              *UartFlowControl;
1135
   SAS_DEVICE_PATH                            *Sas;
1146
   SAS_DEVICE_PATH                            *Sas;
1136
   SASEX_DEVICE_PATH                          *SasEx;
1147
   SASEX_DEVICE_PATH                          *SasEx;
1148
+  NVME_NAMESPACE_DEVICE_PATH                 *NvmeNamespace;
1137
   HARDDRIVE_DEVICE_PATH                      *HardDrive;
1149
   HARDDRIVE_DEVICE_PATH                      *HardDrive;
1138
   CDROM_DEVICE_PATH                          *CD;
1150
   CDROM_DEVICE_PATH                          *CD;
1139
 
1151
 

+ 2
- 2
src/include/ipxe/efi/Protocol/FormBrowser2.h 查看文件

4
   The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
4
   The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to
5
   leverage the EFI configuration driver interface.
5
   leverage the EFI configuration driver interface.
6
 
6
 
7
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
7
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
8
 This program and the accompanying materials are licensed and made available under
8
 This program and the accompanying materials are licensed and made available under
9
 the terms and conditions of the BSD License that accompanies this distribution.
9
 the terms and conditions of the BSD License that accompanies this distribution.
10
 The full text of the license may be found at
10
 The full text of the license may be found at
84
 
84
 
85
   @param FormSetGuid     This field points to the EFI_GUID which must match the Guid field or one of the
85
   @param FormSetGuid     This field points to the EFI_GUID which must match the Guid field or one of the
86
                          elements of the ClassId field  in the EFI_IFR_FORM_SET op-code.  If
86
                          elements of the ClassId field  in the EFI_IFR_FORM_SET op-code.  If
87
-                         FormsetGuid is NULL, then this function will display the the form set class
87
+                         FormsetGuid is NULL, then this function will display the form set class
88
                          EFI_HII_PLATFORM_SETUP_FORMSET_GUID.
88
                          EFI_HII_PLATFORM_SETUP_FORMSET_GUID.
89
 
89
 
90
   @param FormId          This field specifies the identifier of the form within the form set to render as the first
90
   @param FormId          This field specifies the identifier of the form within the form set to render as the first

+ 5
- 8
src/include/ipxe/efi/Protocol/HiiConfigAccess.h 查看文件

5
   This protocol is published by drivers providing and requesting
5
   This protocol is published by drivers providing and requesting
6
   configuration data from HII. It may only be invoked by HII.
6
   configuration data from HII. It may only be invoked by HII.
7
 
7
 
8
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
8
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
9
 This program and the accompanying materials are licensed and made available under
9
 This program and the accompanying materials are licensed and made available under
10
 the terms and conditions of the BSD License that accompanies this distribution.
10
 the terms and conditions of the BSD License that accompanies this distribution.
11
 The full text of the license may be found at
11
 The full text of the license may be found at
96
                                   stored awaiting possible future
96
                                   stored awaiting possible future
97
                                   protocols.
97
                                   protocols.
98
 
98
 
99
-  @retval EFI_NOT_FOUND           Routing data doesn't match any
100
-                                  known driver. Progress set to the
101
-                                  first character in the routing header.
102
-                                  Note: There is no requirement that the
103
-                                  driver validate the routing data. It
104
-                                  must skip the <ConfigHdr> in order to
105
-                                  process the names.
99
+  @retval EFI_NOT_FOUND           A configuration element matching
100
+                                  the routing data is not found.
101
+                                  Progress set to the first character
102
+                                  in the routing header.
106
 
103
 
107
   @retval EFI_INVALID_PARAMETER   Illegal syntax. Progress set
104
   @retval EFI_INVALID_PARAMETER   Illegal syntax. Progress set
108
                                   to most recent "&" before the
105
                                   to most recent "&" before the

+ 15
- 1
src/include/ipxe/efi/Protocol/HiiDatabase.h 查看文件

225
                                 updated with a value that will
225
                                 updated with a value that will
226
                                 enable the data to fit.
226
                                 enable the data to fit.
227
   @retval EFI_NOT_FOUND         No matching handle could be found in database.
227
   @retval EFI_NOT_FOUND         No matching handle could be found in database.
228
-  @retval EFI_INVALID_PARAMETER Handle or HandleBufferLength was NULL.
228
+  @retval EFI_INVALID_PARAMETER HandleBufferLength was NULL.
229
+  @retval EFI_INVALID_PARAMETER The value referenced by HandleBufferLength was not
230
+                                zero and Handle was NULL.
229
   @retval EFI_INVALID_PARAMETER PackageType is not a EFI_HII_PACKAGE_TYPE_GUID but
231
   @retval EFI_INVALID_PARAMETER PackageType is not a EFI_HII_PACKAGE_TYPE_GUID but
230
                                 PackageGuid is not NULL, PackageType is a EFI_HII_
232
                                 PackageGuid is not NULL, PackageType is a EFI_HII_
231
                                 PACKAGE_TYPE_GUID but PackageGuid is NULL.
233
                                 PACKAGE_TYPE_GUID but PackageGuid is NULL.
273
 
275
 
274
   @retval EFI_OUT_OF_RESOURCES  BufferSize is too small to hold the package.
276
   @retval EFI_OUT_OF_RESOURCES  BufferSize is too small to hold the package.
275
 
277
 
278
+  @retval EFI_NOT_FOUND         The specifiecd Handle could not be found in the
279
+                                current database.
280
+
281
+  @retval EFI_INVALID_PARAMETER BufferSize was NULL.
282
+
283
+  @retval EFI_INVALID_PARAMETER The value referenced by BufferSize was not zero
284
+                                and Buffer was NULL.
276
 **/
285
 **/
277
 typedef
286
 typedef
278
 EFI_STATUS
287
 EFI_STATUS
395
                                 KeyGuidBufferLength is updated
404
                                 KeyGuidBufferLength is updated
396
                                 with a value that will enable
405
                                 with a value that will enable
397
                                 the data to fit.
406
                                 the data to fit.
407
+  @retval EFI_INVALID_PARAMETER The KeyGuidBufferLength is NULL.
408
+  @retval EFI_INVALID_PARAMETER The value referenced by
409
+                                KeyGuidBufferLength is not
410
+                                zero and KeyGuidBuffer is NULL.
411
+  @retval EFI_NOT_FOUND         There was no keyboard layout.
398
 
412
 
399
 **/
413
 **/
400
 typedef
414
 typedef

+ 9
- 5
src/include/ipxe/efi/Protocol/NetworkInterfaceIdentifier.h 查看文件

1
 /** @file
1
 /** @file
2
   EFI Network Interface Identifier Protocol.
2
   EFI Network Interface Identifier Protocol.
3
 
3
 
4
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
 This program and the accompanying materials are licensed and made available under
5
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
6
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
7
 The full text of the license may be found at
36
     0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } \
36
     0x1ACED566, 0x76ED, 0x4218, {0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 } \
37
   }
37
   }
38
 
38
 
39
-#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION    0x00010000
39
+//
40
+// Revision defined in UEFI Specification 2.4
41
+//
42
+#define EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_REVISION    0x00020000
43
+
40
 
44
 
41
 ///
45
 ///
42
 /// Revision defined in EFI1.1.
46
 /// Revision defined in EFI1.1.
72
   UINT8     MajorVer;   ///< Major version number.
76
   UINT8     MajorVer;   ///< Major version number.
73
   UINT8     MinorVer;   ///< Minor version number.
77
   UINT8     MinorVer;   ///< Minor version number.
74
   BOOLEAN   Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.
78
   BOOLEAN   Ipv6Supported; ///< TRUE if the network interface supports IPv6; otherwise FALSE.
75
-  UINT8     IfNum;      ///< The network interface number that is being identified by this Network
76
-                        ///< Interface Identifier Protocol. This field must be less than or equal
77
-                        ///< to the IFcnt field in the !PXE structure.
79
+  UINT16    IfNum;      ///< The network interface number that is being identified by this Network
80
+                        ///< Interface Identifier Protocol. This field must be less than or
81
+                        ///< equal to the (IFcnt | IFcntExt <<8 ) fields in the !PXE structure.
78
 
82
 
79
 };
83
 };
80
 
84
 

+ 166
- 5
src/include/ipxe/efi/Protocol/SimpleFileSystem.h 查看文件

7
 
7
 
8
   UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem.
8
   UEFI 2.0 can boot from any valid EFI image contained in a SimpleFileSystem.
9
 
9
 
10
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
10
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
11
 This program and the accompanying materials are licensed and made available under
11
 This program and the accompanying materials are licensed and made available under
12
 the terms and conditions of the BSD License that accompanies this distribution.
12
 the terms and conditions of the BSD License that accompanies this distribution.
13
 The full text of the license may be found at
13
 The full text of the license may be found at
192
   @retval EFI_DEVICE_ERROR     An attempt was made to read from a deleted file.
192
   @retval EFI_DEVICE_ERROR     An attempt was made to read from a deleted file.
193
   @retval EFI_DEVICE_ERROR     On entry, the current file position is beyond the end of the file.
193
   @retval EFI_DEVICE_ERROR     On entry, the current file position is beyond the end of the file.
194
   @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
194
   @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
195
-  @retval EFI_BUFFER_TO_SMALL  The BufferSize is too small to read the current directory
195
+  @retval EFI_BUFFER_TOO_SMALL The BufferSize is too small to read the current directory
196
                                entry. BufferSize has been updated with the size
196
                                entry. BufferSize has been updated with the size
197
                                needed to complete the request.
197
                                needed to complete the request.
198
 
198
 
365
   IN EFI_FILE_PROTOCOL  *This
365
   IN EFI_FILE_PROTOCOL  *This
366
   );
366
   );
367
 
367
 
368
-#define EFI_FILE_PROTOCOL_REVISION   0x00010000
368
+typedef struct {
369
+  //
370
+  // If Event is NULL, then blocking I/O is performed.
371
+  // If Event is not NULL and non-blocking I/O is supported, then non-blocking I/O is performed,
372
+  // and Event will be signaled when the read request is completed.
373
+  // The caller must be prepared to handle the case where the callback associated with Event
374
+  // occurs before the original asynchronous I/O request call returns.
375
+  //
376
+  EFI_EVENT                   Event;
377
+
378
+  //
379
+  // Defines whether or not the signaled event encountered an error.
380
+  //
381
+  EFI_STATUS                  Status;
382
+
383
+  //
384
+  // For OpenEx():  Not Used, ignored.
385
+  // For ReadEx():  On input, the size of the Buffer. On output, the amount of data returned in Buffer.
386
+  //                In both cases, the size is measured in bytes.
387
+  // For WriteEx(): On input, the size of the Buffer. On output, the amount of data actually written.
388
+  //                In both cases, the size is measured in bytes.
389
+  // For FlushEx(): Not used, ignored.
390
+  //
391
+  UINTN                       BufferSize;
392
+
393
+  //
394
+  // For OpenEx():  Not Used, ignored.
395
+  // For ReadEx():  The buffer into which the data is read.
396
+  // For WriteEx(): The buffer of data to write.
397
+  // For FlushEx(): Not Used, ignored.
398
+  //
399
+  VOID                        *Buffer;
400
+} EFI_FILE_IO_TOKEN;
401
+
402
+/**
403
+  Opens a new file relative to the source directory's location.
404
+
405
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file
406
+                     handle to the source location.
407
+  @param  NewHandle  A pointer to the location to return the opened handle for the new
408
+                     file.
409
+  @param  FileName   The Null-terminated string of the name of the file to be opened.
410
+                     The file name may contain the following path modifiers: "\", ".",
411
+                     and "..".
412
+  @param  OpenMode   The mode to open the file. The only valid combinations that the
413
+                     file may be opened with are: Read, Read/Write, or Create/Read/Write.
414
+  @param  Attributes Only valid for EFI_FILE_MODE_CREATE, in which case these are the
415
+                     attribute bits for the newly created file.
416
+  @param  Token      A pointer to the token associated with the transaction.
417
+
418
+  @retval EFI_SUCCESS          If Event is NULL (blocking I/O): The data was read successfully.
419
+                               If Event is not NULL (asynchronous I/O): The request was successfully
420
+                                                                        queued for processing.
421
+  @retval EFI_NOT_FOUND        The specified file could not be found on the device.
422
+  @retval EFI_NO_MEDIA         The device has no medium.
423
+  @retval EFI_MEDIA_CHANGED    The device has a different medium in it or the medium is no
424
+                               longer supported.
425
+  @retval EFI_DEVICE_ERROR     The device reported an error.
426
+  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
427
+  @retval EFI_WRITE_PROTECTED  An attempt was made to create a file, or open a file for write
428
+                               when the media is write-protected.
429
+  @retval EFI_ACCESS_DENIED    The service denied access to the file.
430
+  @retval EFI_OUT_OF_RESOURCES Not enough resources were available to open the file.
431
+  @retval EFI_VOLUME_FULL      The volume is full.
432
+
433
+**/
434
+typedef
435
+EFI_STATUS
436
+(EFIAPI *EFI_FILE_OPEN_EX)(
437
+  IN EFI_FILE_PROTOCOL        *This,
438
+  OUT EFI_FILE_PROTOCOL       **NewHandle,
439
+  IN CHAR16                   *FileName,
440
+  IN UINT64                   OpenMode,
441
+  IN UINT64                   Attributes,
442
+  IN OUT EFI_FILE_IO_TOKEN    *Token
443
+  );
444
+
445
+
446
+/**
447
+  Reads data from a file.
448
+
449
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to read data from.
450
+  @param  Token      A pointer to the token associated with the transaction.
451
+
452
+  @retval EFI_SUCCESS          If Event is NULL (blocking I/O): The data was read successfully.
453
+                               If Event is not NULL (asynchronous I/O): The request was successfully
454
+                                                                        queued for processing.
455
+  @retval EFI_NO_MEDIA         The device has no medium.
456
+  @retval EFI_DEVICE_ERROR     The device reported an error.
457
+  @retval EFI_DEVICE_ERROR     An attempt was made to read from a deleted file.
458
+  @retval EFI_DEVICE_ERROR     On entry, the current file position is beyond the end of the file.
459
+  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
460
+  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
461
+**/
462
+typedef
463
+EFI_STATUS
464
+(EFIAPI *EFI_FILE_READ_EX) (
465
+  IN EFI_FILE_PROTOCOL        *This,
466
+  IN OUT EFI_FILE_IO_TOKEN    *Token
467
+);
468
+
469
+
470
+/**
471
+  Writes data to a file.
472
+
473
+  @param  This       A pointer to the EFI_FILE_PROTOCOL instance that is the file handle to write data to.
474
+  @param  Token      A pointer to the token associated with the transaction.
475
+
476
+  @retval EFI_SUCCESS          If Event is NULL (blocking I/O): The data was read successfully.
477
+                               If Event is not NULL (asynchronous I/O): The request was successfully
478
+                                                                        queued for processing.
479
+  @retval EFI_UNSUPPORTED      Writes to open directory files are not supported.
480
+  @retval EFI_NO_MEDIA         The device has no medium.
481
+  @retval EFI_DEVICE_ERROR     The device reported an error.
482
+  @retval EFI_DEVICE_ERROR     An attempt was made to write to a deleted file.
483
+  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
484
+  @retval EFI_WRITE_PROTECTED  The file or medium is write-protected.
485
+  @retval EFI_ACCESS_DENIED    The file was opened read only.
486
+  @retval EFI_VOLUME_FULL      The volume is full.
487
+  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
488
+**/
489
+typedef
490
+EFI_STATUS
491
+(EFIAPI *EFI_FILE_WRITE_EX) (
492
+  IN EFI_FILE_PROTOCOL        *This,
493
+  IN OUT EFI_FILE_IO_TOKEN    *Token
494
+);
495
+
496
+/**
497
+  Flushes all modified data associated with a file to a device.
498
+
499
+  @param  This  A pointer to the EFI_FILE_PROTOCOL instance that is the file
500
+                handle to flush.
501
+  @param  Token A pointer to the token associated with the transaction.
502
+
503
+  @retval EFI_SUCCESS          If Event is NULL (blocking I/O): The data was read successfully.
504
+                               If Event is not NULL (asynchronous I/O): The request was successfully
505
+                                                                        queued for processing.
506
+  @retval EFI_NO_MEDIA         The device has no medium.
507
+  @retval EFI_DEVICE_ERROR     The device reported an error.
508
+  @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.
509
+  @retval EFI_WRITE_PROTECTED  The file or medium is write-protected.
510
+  @retval EFI_ACCESS_DENIED    The file was opened read-only.
511
+  @retval EFI_VOLUME_FULL      The volume is full.
512
+  @retval EFI_OUT_OF_RESOURCES Unable to queue the request due to lack of resources.
513
+
514
+**/
515
+typedef
516
+EFI_STATUS
517
+(EFIAPI *EFI_FILE_FLUSH_EX) (
518
+  IN EFI_FILE_PROTOCOL        *This,
519
+  IN OUT EFI_FILE_IO_TOKEN    *Token
520
+  );
521
+
522
+#define EFI_FILE_PROTOCOL_REVISION        0x00010000
523
+#define EFI_FILE_PROTOCOL_REVISION2       0x00020000
524
+#define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
525
+
369
 //
526
 //
370
 // Revision defined in EFI1.1.
527
 // Revision defined in EFI1.1.
371
 //
528
 //
381
 struct _EFI_FILE_PROTOCOL {
538
 struct _EFI_FILE_PROTOCOL {
382
   ///
539
   ///
383
   /// The version of the EFI_FILE_PROTOCOL interface. The version specified
540
   /// The version of the EFI_FILE_PROTOCOL interface. The version specified
384
-  /// by this specification is 0x00010000. Future versions are required
385
-  /// to be backward compatible to version 1.0.
541
+  /// by this specification is EFI_FILE_PROTOCOL_LATEST_REVISION.
542
+  /// Future versions are required to be backward compatible to version 1.0.
386
   ///
543
   ///
387
   UINT64                Revision;
544
   UINT64                Revision;
388
   EFI_FILE_OPEN         Open;
545
   EFI_FILE_OPEN         Open;
395
   EFI_FILE_GET_INFO     GetInfo;
552
   EFI_FILE_GET_INFO     GetInfo;
396
   EFI_FILE_SET_INFO     SetInfo;
553
   EFI_FILE_SET_INFO     SetInfo;
397
   EFI_FILE_FLUSH        Flush;
554
   EFI_FILE_FLUSH        Flush;
555
+  EFI_FILE_OPEN_EX      OpenEx;
556
+  EFI_FILE_READ_EX      ReadEx;
557
+  EFI_FILE_WRITE_EX     WriteEx;
558
+  EFI_FILE_FLUSH_EX     FlushEx;
398
 };
559
 };
399
 
560
 
400
 
561
 

+ 14
- 0
src/include/ipxe/efi/Uefi/UefiBaseType.h 查看文件

2
   Defines data types and constants introduced in UEFI.
2
   Defines data types and constants introduced in UEFI.
3
 
3
 
4
 Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4
 Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
5
+Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
6
+
5
 This program and the accompanying materials are licensed and made available under
7
 This program and the accompanying materials are licensed and made available under
6
 the terms and conditions of the BSD License that accompanies this distribution.
8
 the terms and conditions of the BSD License that accompanies this distribution.
7
 The full text of the license may be found at
9
 The full text of the license may be found at
243
 ///
245
 ///
244
 #define EFI_IMAGE_MACHINE_ARMTHUMB_MIXED  0x01C2
246
 #define EFI_IMAGE_MACHINE_ARMTHUMB_MIXED  0x01C2
245
 
247
 
248
+///
249
+/// PE32+ Machine type for AARCH64 A64 images.
250
+///
251
+#define EFI_IMAGE_MACHINE_AARCH64  0xAA64
252
+
246
 
253
 
247
 #if   defined (MDE_CPU_IA32)
254
 #if   defined (MDE_CPU_IA32)
248
 
255
 
272
 
279
 
273
 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)
280
 #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) ((Machine) == EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)
274
 
281
 
282
+#elif defined (MDE_CPU_AARCH64)
283
+
284
+#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \
285
+  (((Machine) == EFI_IMAGE_MACHINE_AARCH64) || ((Machine) == EFI_IMAGE_MACHINE_EBC))
286
+
287
+#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE)
288
+
275
 #elif defined (MDE_CPU_EBC)
289
 #elif defined (MDE_CPU_EBC)
276
 
290
 
277
 ///
291
 ///

+ 8
- 1
src/include/ipxe/efi/Uefi/UefiInternalFormRepresentation.h 查看文件

3
   IFR is primarily consumed by the EFI presentation engine, and produced by EFI
3
   IFR is primarily consumed by the EFI presentation engine, and produced by EFI
4
   internal application and drivers as well as all add-in card option-ROM drivers
4
   internal application and drivers as well as all add-in card option-ROM drivers
5
 
5
 
6
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
6
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
7
 This program and the accompanying materials are licensed and made available under
7
 This program and the accompanying materials are licensed and made available under
8
 the terms and conditions of the BSD License that accompanies this distribution.
8
 the terms and conditions of the BSD License that accompanies this distribution.
9
 The full text of the license may be found at
9
 The full text of the license may be found at
781
 #define EFI_IFR_SECURITY_OP            0x60
781
 #define EFI_IFR_SECURITY_OP            0x60
782
 #define EFI_IFR_MODAL_TAG_OP           0x61
782
 #define EFI_IFR_MODAL_TAG_OP           0x61
783
 #define EFI_IFR_REFRESH_ID_OP          0x62
783
 #define EFI_IFR_REFRESH_ID_OP          0x62
784
+#define EFI_IFR_WARNING_IF_OP          0x63
784
 
785
 
785
 //
786
 //
786
 // Definitions of IFR Standard Headers
787
 // Definitions of IFR Standard Headers
1128
   EFI_STRING_ID            Error;
1129
   EFI_STRING_ID            Error;
1129
 } EFI_IFR_NO_SUBMIT_IF;
1130
 } EFI_IFR_NO_SUBMIT_IF;
1130
 
1131
 
1132
+typedef struct _EFI_IFR_WARNING_IF {
1133
+  EFI_IFR_OP_HEADER        Header;
1134
+  EFI_STRING_ID            Warning;
1135
+  UINT8                    TimeOut;
1136
+} EFI_IFR_WARNING_IF;
1137
+
1131
 typedef struct _EFI_IFR_REFRESH {
1138
 typedef struct _EFI_IFR_REFRESH {
1132
   EFI_IFR_OP_HEADER        Header;
1139
   EFI_IFR_OP_HEADER        Header;
1133
   UINT8                    RefreshInterval;
1140
   UINT8                    RefreshInterval;

+ 7
- 5
src/include/ipxe/efi/Uefi/UefiPxe.h 查看文件

3
   structure prototypes, global variables and constants that
3
   structure prototypes, global variables and constants that
4
   are needed for porting PXE to EFI.
4
   are needed for porting PXE to EFI.
5
 
5
 
6
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
6
+Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
7
 This program and the accompanying materials are licensed and made available under
7
 This program and the accompanying materials are licensed and made available under
8
 the terms and conditions of the BSD License that accompanies this distribution.
8
 the terms and conditions of the BSD License that accompanies this distribution.
9
 The full text of the license may be found at
9
 The full text of the license may be found at
721
   PXE_UINT8   Len;            ///< sizeof(PXE_HW_UNDI).
721
   PXE_UINT8   Len;            ///< sizeof(PXE_HW_UNDI).
722
   PXE_UINT8   Fudge;          ///< makes 8-bit cksum equal zero.
722
   PXE_UINT8   Fudge;          ///< makes 8-bit cksum equal zero.
723
   PXE_UINT8   Rev;            ///< PXE_ROMID_REV.
723
   PXE_UINT8   Rev;            ///< PXE_ROMID_REV.
724
-  PXE_UINT8   IFcnt;          ///< physical connector count.
724
+  PXE_UINT8   IFcnt;          ///< physical connector count lower byte.
725
   PXE_UINT8   MajorVer;       ///< PXE_ROMID_MAJORVER.
725
   PXE_UINT8   MajorVer;       ///< PXE_ROMID_MAJORVER.
726
   PXE_UINT8   MinorVer;       ///< PXE_ROMID_MINORVER.
726
   PXE_UINT8   MinorVer;       ///< PXE_ROMID_MINORVER.
727
-  PXE_UINT16  reserved;       ///< zero, not used.
727
+  PXE_UINT8   IFcntExt;       ///< physical connector count upper byte.
728
+  PXE_UINT8   reserved;       ///< zero, not used.
728
   PXE_UINT32  Implementation; ///< implementation flags.
729
   PXE_UINT32  Implementation; ///< implementation flags.
729
   ///< reserved             ///< vendor use.
730
   ///< reserved             ///< vendor use.
730
   ///< UINT32 Status;       ///< status port.
731
   ///< UINT32 Status;       ///< status port.
817
   PXE_UINT8   Len;            ///< sizeof(PXE_SW_UNDI).
818
   PXE_UINT8   Len;            ///< sizeof(PXE_SW_UNDI).
818
   PXE_UINT8   Fudge;          ///< makes 8-bit cksum zero.
819
   PXE_UINT8   Fudge;          ///< makes 8-bit cksum zero.
819
   PXE_UINT8   Rev;            ///< PXE_ROMID_REV.
820
   PXE_UINT8   Rev;            ///< PXE_ROMID_REV.
820
-  PXE_UINT8   IFcnt;          ///< physical connector count.
821
+  PXE_UINT8   IFcnt;          ///< physical connector count lower byte.
821
   PXE_UINT8   MajorVer;       ///< PXE_ROMID_MAJORVER.
822
   PXE_UINT8   MajorVer;       ///< PXE_ROMID_MAJORVER.
822
   PXE_UINT8   MinorVer;       ///< PXE_ROMID_MINORVER.
823
   PXE_UINT8   MinorVer;       ///< PXE_ROMID_MINORVER.
823
-  PXE_UINT16  reserved1;      ///< zero, not used.
824
+  PXE_UINT8   IFcntExt;       ///< physical connector count upper byte.
825
+  PXE_UINT8   reserved1;      ///< zero, not used.
824
   PXE_UINT32  Implementation; ///< Implementation flags.
826
   PXE_UINT32  Implementation; ///< Implementation flags.
825
   PXE_UINT64  EntryPoint;     ///< API entry point.
827
   PXE_UINT64  EntryPoint;     ///< API entry point.
826
   PXE_UINT8   reserved2[3];   ///< zero, not used.
828
   PXE_UINT8   reserved2[3];   ///< zero, not used.

+ 92
- 52
src/include/ipxe/efi/Uefi/UefiSpec.h 查看文件

1
 /** @file
1
 /** @file
2
   Include file that supports UEFI.
2
   Include file that supports UEFI.
3
 
3
 
4
-  This include file must contain things defined in the UEFI 2.3 specification.
5
-  If a code construct is defined in the UEFI 2.3 specification it must be included
4
+  This include file must contain things defined in the UEFI 2.4 specification.
5
+  If a code construct is defined in the UEFI 2.4 specification it must be included
6
   by this include file.
6
   by this include file.
7
 
7
 
8
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
8
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
9
 This program and the accompanying materials are licensed and made available under
9
 This program and the accompanying materials are licensed and made available under
10
 the terms and conditions of the BSD License that accompanies this distribution.
10
 the terms and conditions of the BSD License that accompanies this distribution.
11
 The full text of the license may be found at
11
 The full text of the license may be found at
459
   ///
459
   ///
460
   TimerCancel,
460
   TimerCancel,
461
   ///
461
   ///
462
-  /// An event is to be signalled periodically at a specified interval from the current time.
462
+  /// An event is to be signaled periodically at a specified interval from the current time.
463
   ///
463
   ///
464
   TimerPeriodic,
464
   TimerPeriodic,
465
   ///
465
   ///
466
-  /// An event is to be signalled once at a specified interval from the current time.
466
+  /// An event is to be signaled once at a specified interval from the current time.
467
   ///
467
   ///
468
   TimerRelative
468
   TimerRelative
469
 } EFI_TIMER_DELAY;
469
 } EFI_TIMER_DELAY;
664
                                  then EFI_INVALID_PARAMETER is returned.
664
                                  then EFI_INVALID_PARAMETER is returned.
665
   @param  VendorGuid             A unique identifier for the vendor.
665
   @param  VendorGuid             A unique identifier for the vendor.
666
   @param  Attributes             Attributes bitmask to set for the variable.
666
   @param  Attributes             Attributes bitmask to set for the variable.
667
-  @param  DataSize               The size in bytes of the Data buffer. A size of zero causes the
668
-                                 variable to be deleted.
667
+  @param  DataSize               The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE,
668
+                                 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS, or
669
+                                 EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero
670
+                                 causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is
671
+                                 set, then a SetVariable() call with a DataSize of zero will not cause any change to
672
+                                 the variable value (the timestamp associated with the variable may be updated however
673
+                                 even if no new data value is provided,see the description of the
674
+                                 EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not
675
+                                 be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated).
669
   @param  Data                   The contents for the variable.
676
   @param  Data                   The contents for the variable.
670
 
677
 
671
   @retval EFI_SUCCESS            The firmware has successfully stored the variable and its data as
678
   @retval EFI_SUCCESS            The firmware has successfully stored the variable and its data as
672
                                  defined by the Attributes.
679
                                  defined by the Attributes.
673
-  @retval EFI_INVALID_PARAMETER  An invalid combination of attribute bits was supplied, or the
680
+  @retval EFI_INVALID_PARAMETER  An invalid combination of attribute bits, name, and GUID was supplied, or the
674
                                  DataSize exceeds the maximum allowed.
681
                                  DataSize exceeds the maximum allowed.
675
   @retval EFI_INVALID_PARAMETER  VariableName is an empty string.
682
   @retval EFI_INVALID_PARAMETER  VariableName is an empty string.
676
   @retval EFI_OUT_OF_RESOURCES   Not enough storage is available to hold the variable and its data.
683
   @retval EFI_OUT_OF_RESOURCES   Not enough storage is available to hold the variable and its data.
678
   @retval EFI_WRITE_PROTECTED    The variable in question is read-only.
685
   @retval EFI_WRITE_PROTECTED    The variable in question is read-only.
679
   @retval EFI_WRITE_PROTECTED    The variable in question cannot be deleted.
686
   @retval EFI_WRITE_PROTECTED    The variable in question cannot be deleted.
680
   @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
687
   @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
681
-                                 set but the AuthInfo does NOT pass the validation check carried out
682
-                                 by the firmware.
688
+                                 or EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS being set, but the AuthInfo
689
+                                 does NOT pass the validation check carried out by the firmware.
690
+
683
   @retval EFI_NOT_FOUND          The variable trying to be updated or deleted was not found.
691
   @retval EFI_NOT_FOUND          The variable trying to be updated or deleted was not found.
684
 
692
 
685
 **/
693
 **/
989
   /// state.  If the system does not support this reset type, then when the system
997
   /// state.  If the system does not support this reset type, then when the system
990
   /// is rebooted, it should exhibit the EfiResetCold attributes.
998
   /// is rebooted, it should exhibit the EfiResetCold attributes.
991
   ///
999
   ///
992
-  EfiResetShutdown
1000
+  EfiResetShutdown,
1001
+  ///
1002
+  /// Used to induce a system-wide reset. The exact type of the reset is defined by
1003
+  /// the EFI_GUID that follows the Null-terminated Unicode string passed into
1004
+  /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the
1005
+  /// platform must pick a supported reset type to perform. The platform may
1006
+  /// optionally log the parameters from any non-normal reset that occurs.
1007
+  ///
1008
+  EfiResetPlatformSpecific
993
 } EFI_RESET_TYPE;
1009
 } EFI_RESET_TYPE;
994
 
1010
 
995
 /**
1011
 /**
1150
   @retval EFI_OUT_OF_RESOURCES  There was not enough memory in pool to install all the protocols.
1166
   @retval EFI_OUT_OF_RESOURCES  There was not enough memory in pool to install all the protocols.
1151
   @retval EFI_ALREADY_STARTED   A Device Path Protocol instance was passed in that is already present in
1167
   @retval EFI_ALREADY_STARTED   A Device Path Protocol instance was passed in that is already present in
1152
                                 the handle database.
1168
                                 the handle database.
1169
+  @retval EFI_INVALID_PARAMETER Handle is NULL.
1170
+  @retval EFI_INVALID_PARAMETER Protocol is already installed on the handle specified by Handle.
1153
 
1171
 
1154
 **/
1172
 **/
1155
 typedef
1173
 typedef
1655
   @retval EFI_INVALID_PARAMETER CapsuleCount is 0.
1673
   @retval EFI_INVALID_PARAMETER CapsuleCount is 0.
1656
   @retval EFI_DEVICE_ERROR      The capsule update was started, but failed due to a device error.
1674
   @retval EFI_DEVICE_ERROR      The capsule update was started, but failed due to a device error.
1657
   @retval EFI_UNSUPPORTED       The capsule type is not supported on this platform.
1675
   @retval EFI_UNSUPPORTED       The capsule type is not supported on this platform.
1658
-  @retval EFI_OUT_OF_RESOURCES  There were insufficient resources to process the capsule.
1676
+  @retval EFI_OUT_OF_RESOURCES  When ExitBootServices() has been previously called this error indicates the capsule
1677
+                                is compatible with this platform but is not capable of being submitted or processed
1678
+                                in runtime. The caller may resubmit the capsule prior to ExitBootServices().
1679
+  @retval EFI_OUT_OF_RESOURCES  When ExitBootServices() has not been previously called then this error indicates
1680
+                                the capsule is compatible with this platform but there are insufficient resources to process.
1659
 
1681
 
1660
 **/
1682
 **/
1661
 typedef
1683
 typedef
1682
   @retval EFI_UNSUPPORTED       The capsule type is not supported on this platform, and
1704
   @retval EFI_UNSUPPORTED       The capsule type is not supported on this platform, and
1683
                                 MaximumCapsuleSize and ResetType are undefined.
1705
                                 MaximumCapsuleSize and ResetType are undefined.
1684
   @retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
1706
   @retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.
1685
-  @retval EFI_OUT_OF_RESOURCES  There were insufficient resources to process the query request.
1707
+  @retval EFI_OUT_OF_RESOURCES  When ExitBootServices() has been previously called this error indicates the capsule
1708
+                                is compatible with this platform but is not capable of being submitted or processed
1709
+                                in runtime. The caller may resubmit the capsule prior to ExitBootServices().
1710
+  @retval EFI_OUT_OF_RESOURCES  When ExitBootServices() has not been previously called then this error indicates
1711
+                                the capsule is compatible with this platform but there are insufficient resources to process.
1686
 
1712
 
1687
 **/
1713
 **/
1688
 typedef
1714
 typedef
1728
 //
1754
 //
1729
 // Firmware should stop at a firmware user interface on next boot
1755
 // Firmware should stop at a firmware user interface on next boot
1730
 //
1756
 //
1731
-#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI    0x0000000000000001
1757
+#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI                    0x0000000000000001
1758
+#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION             0x0000000000000002
1759
+#define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED  0x0000000000000004
1760
+#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED            0x0000000000000008
1761
+#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED     0x0000000000000010
1732
 
1762
 
1733
 //
1763
 //
1734
 // EFI Runtime Services Table
1764
 // EFI Runtime Services Table
1735
 //
1765
 //
1736
 #define EFI_SYSTEM_TABLE_SIGNATURE      SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1766
 #define EFI_SYSTEM_TABLE_SIGNATURE      SIGNATURE_64 ('I','B','I',' ','S','Y','S','T')
1767
+#define EFI_2_40_SYSTEM_TABLE_REVISION  ((2 << 16) | (40))
1737
 #define EFI_2_31_SYSTEM_TABLE_REVISION  ((2 << 16) | (31))
1768
 #define EFI_2_31_SYSTEM_TABLE_REVISION  ((2 << 16) | (31))
1738
 #define EFI_2_30_SYSTEM_TABLE_REVISION  ((2 << 16) | (30))
1769
 #define EFI_2_30_SYSTEM_TABLE_REVISION  ((2 << 16) | (30))
1739
 #define EFI_2_20_SYSTEM_TABLE_REVISION  ((2 << 16) | (20))
1770
 #define EFI_2_20_SYSTEM_TABLE_REVISION  ((2 << 16) | (20))
1741
 #define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | (00))
1772
 #define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | (00))
1742
 #define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
1773
 #define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
1743
 #define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
1774
 #define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
1744
-#define EFI_SYSTEM_TABLE_REVISION       EFI_2_31_SYSTEM_TABLE_REVISION
1775
+#define EFI_SYSTEM_TABLE_REVISION       EFI_2_40_SYSTEM_TABLE_REVISION
1776
+#define EFI_SPECIFICATION_VERSION       EFI_SYSTEM_TABLE_REVISION
1745
 
1777
 
1746
 #define EFI_RUNTIME_SERVICES_SIGNATURE  SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1778
 #define EFI_RUNTIME_SERVICES_SIGNATURE  SIGNATURE_64 ('R','U','N','T','S','E','R','V')
1747
-#define EFI_RUNTIME_SERVICES_REVISION   EFI_2_31_SYSTEM_TABLE_REVISION
1779
+#define EFI_RUNTIME_SERVICES_REVISION   EFI_SPECIFICATION_VERSION
1748
 
1780
 
1749
 ///
1781
 ///
1750
 /// EFI Runtime Services Table.
1782
 /// EFI Runtime Services Table.
1796
 
1828
 
1797
 
1829
 
1798
 #define EFI_BOOT_SERVICES_SIGNATURE   SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1830
 #define EFI_BOOT_SERVICES_SIGNATURE   SIGNATURE_64 ('B','O','O','T','S','E','R','V')
1799
-#define EFI_BOOT_SERVICES_REVISION    EFI_2_31_SYSTEM_TABLE_REVISION
1831
+#define EFI_BOOT_SERVICES_REVISION    EFI_SPECIFICATION_VERSION
1800
 
1832
 
1801
 ///
1833
 ///
1802
 /// EFI Boot Services Table.
1834
 /// EFI Boot Services Table.
2013
 ///
2045
 ///
2014
 /// EFI Boot Key Data
2046
 /// EFI Boot Key Data
2015
 ///
2047
 ///
2016
-typedef UINT32 EFI_BOOT_KEY_DATA;
2017
-///
2018
-/// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
2019
-///
2020
-#define EFI_KEY_OPTION_REVISION_MASK        0x000000FF
2021
-///
2022
-/// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
2023
-///
2024
-#define EFI_KEY_OPTION_SHIFT_PRESSED_MASK   BIT8
2025
-///
2026
-/// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
2027
-///
2028
-#define EFI_KEY_OPTION_CONTROL_PRESSED_MASK BIT9
2029
-///
2030
-/// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
2031
-///
2032
-#define EFI_KEY_OPTION_ALT_PRESSED_MASK     BIT10
2033
-///
2034
-/// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
2035
-///
2036
-#define EFI_KEY_OPTION_LOGO_PRESSED_MASK    BIT11
2037
-///
2038
-/// The Menu key must be pressed (1) or must not be pressed (0).
2039
-///
2040
-#define EFI_KEY_OPTION_MENU_PRESSED_MASK    BIT12
2041
-///
2042
-/// The SysReq key must be pressed (1) or must not be pressed (0).
2043
-///
2044
-#define EFI_KEY_OPTION_SYS_REQ_PRESSED_MASK BIT13
2045
-///
2046
-/// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
2047
-/// zero, then only the shift state is considered. If more than one, then the boot option will
2048
-/// only be launched if all of the specified keys are pressed with the same shift state.
2049
-///
2050
-#define EFI_KEY_OPTION_INPUT_KEY_COUNT_MASK (BIT30 | BIT31)
2048
+typedef union {
2049
+  struct {
2050
+    ///
2051
+    /// Indicates the revision of the EFI_KEY_OPTION structure. This revision level should be 0.
2052
+    ///
2053
+    UINT32  Revision        : 8;
2054
+    ///
2055
+    /// Either the left or right Shift keys must be pressed (1) or must not be pressed (0).
2056
+    ///
2057
+    UINT32  ShiftPressed    : 1;
2058
+    ///
2059
+    /// Either the left or right Control keys must be pressed (1) or must not be pressed (0).
2060
+    ///
2061
+    UINT32  ControlPressed  : 1;
2062
+    ///
2063
+    /// Either the left or right Alt keys must be pressed (1) or must not be pressed (0).
2064
+    ///
2065
+    UINT32  AltPressed      : 1;
2066
+    ///
2067
+    /// Either the left or right Logo keys must be pressed (1) or must not be pressed (0).
2068
+    ///
2069
+    UINT32  LogoPressed     : 1;
2070
+    ///
2071
+    /// The Menu key must be pressed (1) or must not be pressed (0).
2072
+    ///
2073
+    UINT32  MenuPressed     : 1;
2074
+    ///
2075
+    /// The SysReq key must be pressed (1) or must not be pressed (0).
2076
+    ///
2077
+    UINT32  SysReqPressed    : 1;
2078
+    UINT32  Reserved        : 16;
2079
+    ///
2080
+    /// Specifies the actual number of entries in EFI_KEY_OPTION.Keys, from 0-3. If
2081
+    /// zero, then only the shift state is considered. If more than one, then the boot option will
2082
+    /// only be launched if all of the specified keys are pressed with the same shift state.
2083
+    ///
2084
+    UINT32  InputKeyCount   : 2;
2085
+  } Options;
2086
+  UINT32  PackedValue;
2087
+} EFI_BOOT_KEY_DATA;
2051
 
2088
 
2052
 ///
2089
 ///
2053
 /// EFI Key Option.
2090
 /// EFI Key Option.
2085
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64    L"\\EFI\\BOOT\\BOOTIA64.EFI"
2122
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_IA64    L"\\EFI\\BOOT\\BOOTIA64.EFI"
2086
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_X64     L"\\EFI\\BOOT\\BOOTX64.EFI"
2123
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_X64     L"\\EFI\\BOOT\\BOOTX64.EFI"
2087
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM     L"\\EFI\\BOOT\\BOOTARM.EFI"
2124
 #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM     L"\\EFI\\BOOT\\BOOTARM.EFI"
2125
+#define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI"
2088
 
2126
 
2089
 #if   defined (MDE_CPU_IA32)
2127
 #if   defined (MDE_CPU_IA32)
2090
   #define EFI_REMOVABLE_MEDIA_FILE_NAME   EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2128
   #define EFI_REMOVABLE_MEDIA_FILE_NAME   EFI_REMOVABLE_MEDIA_FILE_NAME_IA32
2095
 #elif defined (MDE_CPU_EBC)
2133
 #elif defined (MDE_CPU_EBC)
2096
 #elif defined (MDE_CPU_ARM)
2134
 #elif defined (MDE_CPU_ARM)
2097
   #define EFI_REMOVABLE_MEDIA_FILE_NAME   EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2135
   #define EFI_REMOVABLE_MEDIA_FILE_NAME   EFI_REMOVABLE_MEDIA_FILE_NAME_ARM
2136
+#elif defined (MDE_CPU_AARCH64)
2137
+  #define EFI_REMOVABLE_MEDIA_FILE_NAME   EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64
2098
 #else
2138
 #else
2099
   #error Unknown Processor Type
2139
   #error Unknown Processor Type
2100
 #endif
2140
 #endif

+ 7
- 1
src/include/ipxe/efi/X64/ProcessorBind.h 查看文件

1
 /** @file
1
 /** @file
2
   Processor or Compiler specific defines and types x64 (Intel 64, AMD64).
2
   Processor or Compiler specific defines and types x64 (Intel 64, AMD64).
3
 
3
 
4
-  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
4
+  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
5
   This program and the accompanying materials
5
   This program and the accompanying materials
6
   are licensed and made available under the terms and conditions of the BSD License
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
7
   which accompanies this distribution.  The full text of the license may be found at
229
 ///
229
 ///
230
 #define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL
230
 #define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL
231
 
231
 
232
+///
233
+/// Maximum legal x64 INTN and UINTN values.
234
+///
235
+#define MAX_INTN   ((INTN)0x7FFFFFFFFFFFFFFFULL)
236
+#define MAX_UINTN  ((UINTN)0xFFFFFFFFFFFFFFFFULL)
237
+
232
 ///
238
 ///
233
 /// The stack alignment required for x64
239
 /// The stack alignment required for x64
234
 ///
240
 ///

正在加载...
取消
保存