[PATCH v2] Initial EFI support

Sascha Hauer s.hauer at pengutronix.de
Fri Jul 11 00:36:23 PDT 2014


Second round of barebox on EFI patches. I merged the preparatory patches
already to -next, so here are only the EFI patches again.

Changes since v1:

- Add documentation how to run this on qemu
- The root directory on EFI filesystems now works on Tianocore (tested with qemu)
- Made 64-bit mandatory since 32-bit doesn't compile and cannot be tested
- Updated defconfig. For some reason the original defconfig had all relevant drivers
  disabled
- Add patch from Jean-Christophe to print GUIDs as strings

Sascha

The following changes since commit b6a37cf0c3eb5dddf69a5067c1b1d629d48a2fa0:

  efi: Add more error codes (2014-07-11 09:27:18 +0200)

are available in the git repository at:

  git://git.pengutronix.de/git/barebox.git efi

for you to fetch changes up to 873c978375a9a0b689c5bc73ac2281d748e0b809:

  EFI: introduce efi_strguid to convert GUID to human readable names (2014-07-11 09:29:13 +0200)

----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (1):
      EFI: introduce efi_strguid to convert GUID to human readable names

Sascha Hauer (6):
      Documentation: Add EFI documentation
      Add initial EFI architecture support
      net: Add EFI Simple Network Protocol Driver
      serial: Add EFI stdio driver
      fs: implement EFI filesystem driver
      fs: implement EFI variable filesystem driver

 .gitignore                                 |    1 +
 Documentation/boards/efi.rst               |  298 ++++++
 Documentation/glossary.rst                 |    3 +
 Makefile                                   |    3 +-
 arch/efi/Kconfig                           |   51 ++
 arch/efi/Makefile                          |   41 +
 arch/efi/configs/efi_defconfig             |   78 ++
 arch/efi/efi/Makefile                      |    2 +
 arch/efi/efi/clocksource.c                 |   60 ++
 arch/efi/efi/efi-block-io.c                |  174 ++++
 arch/efi/efi/efi-device.c                  |  349 +++++++
 arch/efi/efi/efi-image.c                   |  105 +++
 arch/efi/efi/efi.c                         |  343 +++++++
 arch/efi/efi/env-efi/network/eth0-discover |    5 +
 arch/efi/include/asm/barebox.h             |    1 +
 arch/efi/include/asm/bitops.h              |   15 +
 arch/efi/include/asm/byteorder.h           |    8 +
 arch/efi/include/asm/common.h              |    4 +
 arch/efi/include/asm/dma.h                 |   13 +
 arch/efi/include/asm/elf.h                 |   60 ++
 arch/efi/include/asm/io.h                  |   55 ++
 arch/efi/include/asm/posix_types.h         |   93 ++
 arch/efi/include/asm/sections.h            |    1 +
 arch/efi/include/asm/string.h              |    1 +
 arch/efi/include/asm/swab.h                |    6 +
 arch/efi/include/asm/types.h               |   73 ++
 arch/efi/include/asm/unaligned.h           |   19 +
 arch/efi/include/mach/debug_ll.h           |   20 +
 arch/efi/include/mach/efi-device.h         |   45 +
 arch/efi/include/mach/efi.h                |   24 +
 arch/efi/lib/.gitignore                    |    2 +
 arch/efi/lib/Makefile                      |    4 +
 arch/efi/lib/crt0-efi-ia32.S               |   76 ++
 arch/efi/lib/crt0-efi-x86_64.S             |   75 ++
 arch/efi/lib/elf_ia32_efi.lds.S            |  102 +++
 arch/efi/lib/elf_x86_64_efi.lds.S          |   93 ++
 arch/efi/lib/reloc_ia32.c                  |   97 ++
 arch/efi/lib/reloc_x86_64.c                |   96 ++
 commands/edit.c                            |   11 +-
 common/Kconfig                             |    8 +
 common/Makefile                            |    4 +-
 common/efi-devicepath.c                    | 1370 ++++++++++++++++++++++++++++
 common/efi-guid.c                          |   84 ++
 common/memory.c                            |    2 +-
 common/partitions/efi.c                    |    2 +-
 drivers/net/Kconfig                        |    4 +
 drivers/net/Makefile                       |    1 +
 drivers/net/efi-snp.c                      |  296 ++++++
 drivers/of/Kconfig                         |    2 +-
 drivers/serial/Kconfig                     |    4 +
 drivers/serial/Makefile                    |    1 +
 drivers/serial/efi-stdio.c                 |  367 ++++++++
 fs/Kconfig                                 |   15 +
 fs/Makefile                                |    2 +
 fs/efi.c                                   |  563 ++++++++++++
 fs/efivarfs.c                              |  340 +++++++
 include/efi.h                              |  572 ++++++------
 57 files changed, 5873 insertions(+), 271 deletions(-)
 create mode 100644 Documentation/boards/efi.rst
 create mode 100644 arch/efi/Kconfig
 create mode 100644 arch/efi/Makefile
 create mode 100644 arch/efi/configs/efi_defconfig
 create mode 100644 arch/efi/efi/Makefile
 create mode 100644 arch/efi/efi/clocksource.c
 create mode 100644 arch/efi/efi/efi-block-io.c
 create mode 100644 arch/efi/efi/efi-device.c
 create mode 100644 arch/efi/efi/efi-image.c
 create mode 100644 arch/efi/efi/efi.c
 create mode 100644 arch/efi/efi/env-efi/network/eth0-discover
 create mode 100644 arch/efi/include/asm/barebox.h
 create mode 100644 arch/efi/include/asm/bitops.h
 create mode 100644 arch/efi/include/asm/byteorder.h
 create mode 100644 arch/efi/include/asm/common.h
 create mode 100644 arch/efi/include/asm/dma.h
 create mode 100644 arch/efi/include/asm/elf.h
 create mode 100644 arch/efi/include/asm/io.h
 create mode 100644 arch/efi/include/asm/posix_types.h
 create mode 100644 arch/efi/include/asm/sections.h
 create mode 100644 arch/efi/include/asm/string.h
 create mode 100644 arch/efi/include/asm/swab.h
 create mode 100644 arch/efi/include/asm/types.h
 create mode 100644 arch/efi/include/asm/unaligned.h
 create mode 100644 arch/efi/include/mach/debug_ll.h
 create mode 100644 arch/efi/include/mach/efi-device.h
 create mode 100644 arch/efi/include/mach/efi.h
 create mode 100644 arch/efi/lib/.gitignore
 create mode 100644 arch/efi/lib/Makefile
 create mode 100644 arch/efi/lib/crt0-efi-ia32.S
 create mode 100644 arch/efi/lib/crt0-efi-x86_64.S
 create mode 100644 arch/efi/lib/elf_ia32_efi.lds.S
 create mode 100644 arch/efi/lib/elf_x86_64_efi.lds.S
 create mode 100644 arch/efi/lib/reloc_ia32.c
 create mode 100644 arch/efi/lib/reloc_x86_64.c
 create mode 100644 common/efi-devicepath.c
 create mode 100644 common/efi-guid.c
 create mode 100644 drivers/net/efi-snp.c
 create mode 100644 drivers/serial/efi-stdio.c
 create mode 100644 fs/efi.c
 create mode 100644 fs/efivarfs.c



More information about the barebox mailing list