From fd95c780b6ad39ab55344c0e4b9c2125c2c2f5ad Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 16 Nov 2016 22:22:22 +0000 Subject: [efi] Add basic EFI SAN booting capability Signed-off-by: Michael Brown --- src/include/ipxe/efi/efi_block.h | 27 +++++++++++++++++++++++++++ src/include/ipxe/errfile.h | 1 + src/include/ipxe/sanboot.h | 1 + 3 files changed, 29 insertions(+) create mode 100644 src/include/ipxe/efi/efi_block.h (limited to 'src/include') diff --git a/src/include/ipxe/efi/efi_block.h b/src/include/ipxe/efi/efi_block.h new file mode 100644 index 000000000..ea28230bf --- /dev/null +++ b/src/include/ipxe/efi/efi_block.h @@ -0,0 +1,27 @@ +#ifndef _IPXE_EFI_BLOCK_H +#define _IPXE_EFI_BLOCK_H + +/** @block + * + * EFI block device protocols + * + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#ifdef SANBOOT_EFI +#define SANBOOT_PREFIX_efi +#else +#define SANBOOT_PREFIX_efi __efi_ +#endif + +static inline __always_inline unsigned int +SANBOOT_INLINE ( efi, san_default_drive ) ( void ) { + /* Drive numbers don't exist as a concept under EFI. We + * arbitarily choose to use drive 0x80 to minimise differences + * with a standard BIOS. + */ + return 0x80; +} + +#endif /* _IPXE_EFI_BLOCK_H */ diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h index 08e166ce7..d0b93d02f 100644 --- a/src/include/ipxe/errfile.h +++ b/src/include/ipxe/errfile.h @@ -71,6 +71,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define ERRFILE_fault ( ERRFILE_CORE | 0x001f0000 ) #define ERRFILE_blocktrans ( ERRFILE_CORE | 0x00200000 ) #define ERRFILE_pixbuf ( ERRFILE_CORE | 0x00210000 ) +#define ERRFILE_efi_block ( ERRFILE_CORE | 0x00220000 ) #define ERRFILE_eisa ( ERRFILE_DRIVER | 0x00000000 ) #define ERRFILE_isa ( ERRFILE_DRIVER | 0x00010000 ) diff --git a/src/include/ipxe/sanboot.h b/src/include/ipxe/sanboot.h index 041e18935..c651364cb 100644 --- a/src/include/ipxe/sanboot.h +++ b/src/include/ipxe/sanboot.h @@ -54,6 +54,7 @@ struct uri; /* Include all architecture-independent sanboot API headers */ #include +#include /* Include all architecture-dependent sanboot API headers */ #include -- cgit v1.2.3-55-g7522