#define BOOT_DEVICE_OPTION_MAX 300\r
#define BOOT_DEVICE_ADDRESS_MAX (sizeof(L"0x0000000000000000"))\r
\r
-#define ARM_BDS_OPTIONAL_DATA_SIGNATURE SIGNATURE_32('a', 'b', 'o', 'd')\r
-\r
-#define IS_ARM_BDS_BOOTENTRY(ptr) \\r
- (((ptr)->OptionalData != NULL) && \\r
- (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) \\r
- == ARM_BDS_OPTIONAL_DATA_SIGNATURE))\r
-\r
#define UPDATE_BOOT_ENTRY L"Update entry: "\r
#define DELETE_BOOT_ENTRY L"Delete entry: "\r
#define MOVE_BOOT_ENTRY L"Move entry: "\r
\r
-typedef enum {\r
- BDS_LOADER_EFI_APPLICATION = 0,\r
- BDS_LOADER_KERNEL_LINUX_ATAG,\r
- BDS_LOADER_KERNEL_LINUX_FDT,\r
-} ARM_BDS_LOADER_TYPE;\r
-\r
-typedef struct {\r
- UINT16 CmdLineSize;\r
- UINT16 InitrdSize;\r
-\r
- // These following fields have variable length and are packed:\r
- //CHAR8 *CmdLine;\r
- //EFI_DEVICE_PATH_PROTOCOL *InitrdPathList;\r
-} ARM_BDS_LINUX_ARGUMENTS;\r
-\r
-typedef union {\r
- ARM_BDS_LINUX_ARGUMENTS LinuxArguments;\r
-} ARM_BDS_LOADER_ARGUMENTS;\r
-\r
-typedef struct {\r
- UINT32 Signature;\r
- ARM_BDS_LOADER_TYPE LoaderType;\r
-} ARM_BDS_LOADER_OPTIONAL_DATA_HEADER;\r
-\r
-typedef struct {\r
- ARM_BDS_LOADER_OPTIONAL_DATA_HEADER Header;\r
- ARM_BDS_LOADER_ARGUMENTS Arguments;\r
-} ARM_BDS_LOADER_OPTIONAL_DATA;\r
-\r
typedef struct {\r
LIST_ENTRY Link;\r
BDS_LOAD_OPTION* BdsLoadOption;\r
IN UINT32 Attributes,\r
IN CHAR16* BootDescription,\r
IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
- IN ARM_BDS_LOADER_TYPE BootType,\r
IN UINT8* OptionalData,\r
IN UINTN OptionalDataSize,\r
OUT BDS_LOAD_OPTION** BdsLoadOption\r
IN UINT32 Attributes,\r
IN CHAR16* BootDescription,\r
IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
- IN ARM_BDS_LOADER_TYPE BootType,\r
IN UINT8* OptionalData,\r
IN UINTN OptionalDataSize\r
);\r
IN BDS_LOAD_OPTION *BootOption\r
);\r
\r
-EFI_STATUS\r
-BootDeviceGetType (\r
- IN EFI_DEVICE_PATH* DevicePath,\r
- OUT ARM_BDS_LOADER_TYPE *BootType,\r
- OUT UINT32 *Attributes\r
- );\r
-\r
EFI_STATUS\r
BootMenuMain (\r
VOID\r