u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/39] efi: Improvements to U-Boot running on top of UEFI
@ 2021-09-25  0:30 Simon Glass
  2021-09-25  0:30 ` [PATCH v2 01/39] RFC: efi: Drop code that doesn't work with driver model Simon Glass
                   ` (38 more replies)
  0 siblings, 39 replies; 74+ messages in thread
From: Simon Glass @ 2021-09-25  0:30 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Heinrich Schuchardt, Bin Meng, Christian Melki, Tom Rini,
	Ilias Apalodimas, Simon Glass, Alexander Graf

At present U-Boot can be built as an EFI app, but it is really just for
testing, with very few features. Instead, the payload build is used for
booting on top of UEFI, where U-Boot takes over the machine immediately
and supplies its own drivers.

But the app could be made more useful.

This series provides access to EFI block devices and the video console
within U-Boot. It also restructures the app to make it possible to boot
a kernel, although further work is needed to implement this.

This can be thought of as making U-Boot perform a little like 'grub', in
that it runs purely based on UEFI-provided services.

Of course a lot more work is required, but this is a start.

Note: It would be very useful to include qemu tests of the app and stub
in CI.

This is available at u-boot-dm/efi-working

Changes in v2:
- Add MAINTAINERS entry
- Add a better boot command too
- Add a note that EFI_GRAPHICS_OUTPUT_PROTOCOL is used
- Add a sentence about what the patch does
- Add a work-around to avoid a toolchain crash
- Add new patch to drop the OF_EMBED warning for EFI
- Add new patch to enable DM_ETH for the app
- Add new patch to support the efi command in the app
- Add new patch with maintainer entry
- Add support for creating a partition table with a filesystem inside
- Add support for running qemu with just a serial console (no display)
- Drop mention of partitions from the commit message
- Expand the commit message to make things clearer
- Fix 'as' typo
- Mention why this patch is included in this series
- Put this patch first so that it is separated from the rest of the series
- Show the correct interface type with 'part list'
- Update commit message to mention that these function are x86-specific
- Update commit message to mention why the data structure is like it is
- Update commit message to mention why ulong is used
- Update documentation
- Update the commit message to explain things better
- Use log_info() instead of printf()

Simon Glass (39):
  RFC: efi: Drop code that doesn't work with driver model
  efi: Add a separate maintainer entry for the app
  x86: Keep symbol information in u-boot ELF file
  x86: Create a new header for EFI
  x86: Show some EFI info with the bdinfo command
  x86: Tidy up global_data pointer for 64-bit
  efi: Add a script for building and testing U-Boot on UEFI
  efi: Enable DM_ETH for the app
  efi: Drop the OF_EMBED warning for EFI
  x86: Create a 32/64-bit selection for the app
  efi: Create a 64-bit app
  x86: Don't duplicate global_ptr in 64-bit EFI app
  efi: Add a way to obtain boot services in the app
  efi: Add video support to the app
  efi: Add EFI uclass for media
  efi: Add a media/block driver for EFI block devices
  efi: Locate all block devices in the app
  patman: Use a ValueError exception if tools.Run() fails
  binman: Report an error if test files fail to compile
  binman: Support reading the offset of an ELF-file symbol
  binman: Allow timeout to occur in the image or its section
  binman: Tidy up comments on _DoTestFile()
  binman: Support updating the dtb in an ELF file
  efi: serial: Support arrow keys
  bloblist: Support allocating the bloblist
  x86: Allow booting a kernel from the EFI app
  x86: Don't process the kernel command line unless enabled
  x86: efi: Add room for the binman definition in the dtb
  efi: Add comments to struct efi_priv
  efi: Fix ll_boot_init() operation with the app
  efi: Add a few comments to the stub
  efi: Share struct efi_priv between the app and stub code
  efi: Move exit_boot_services into a function
  efi: Check for failure when initing the app
  efi: Mention that efi_info_get() is only used in the stub
  efi: Show when allocated pages are used
  efi: Allow easy selection of serial-only operation
  efi: Update efi_get_next_mem_desc() to avoid needing a map
  efi: Support the efi command in the app

 MAINTAINERS                                   |  14 +
 Makefile                                      |  10 +-
 arch/sandbox/dts/test.dts                     |   4 +
 arch/x86/config.mk                            |   4 +-
 arch/x86/cpu/efi/payload.c                    |  21 +-
 arch/x86/cpu/intel_common/Makefile            |   2 +-
 arch/x86/cpu/u-boot-64.lds                    |   2 +
 arch/x86/cpu/x86_64/Makefile                  |   4 +
 arch/x86/cpu/x86_64/cpu.c                     |  32 +-
 arch/x86/cpu/x86_64/misc.c                    |  41 +++
 arch/x86/dts/Makefile                         |   2 +-
 arch/x86/dts/efi-x86_app.dts                  |   4 +
 arch/x86/include/asm/efi.h                    |  39 +++
 arch/x86/include/asm/global_data.h            |   2 +
 arch/x86/include/asm/zimage.h                 |   3 -
 arch/x86/lib/Makefile                         |   1 +
 arch/x86/lib/bdinfo.c                         |  22 ++
 arch/x86/lib/bootm.c                          |  11 +-
 arch/x86/lib/zimage.c                         |  14 +-
 board/efi/Kconfig                             |  15 +-
 board/efi/efi-x86_app/Kconfig                 |   6 +-
 board/efi/efi-x86_app/MAINTAINERS             |  11 +-
 cmd/Makefile                                  |   2 +-
 cmd/efi.c                                     |  76 +++--
 common/Kconfig                                |  15 +-
 common/bloblist.c                             |  16 +-
 common/board_f.c                              |   8 +-
 ..._app_defconfig => efi-x86_app32_defconfig} |   3 +-
 configs/efi-x86_app64_defconfig               |  39 +++
 disk/part.c                                   |   5 +-
 doc/develop/bloblist.rst                      |  16 +
 doc/develop/uefi/u-boot_on_efi.rst            |  74 ++++-
 drivers/block/Kconfig                         |  33 +++
 drivers/block/Makefile                        |   4 +
 drivers/block/blk-uclass.c                    |   2 +-
 drivers/block/efi-media-uclass.c              |  15 +
 drivers/block/efi_blk.c                       | 115 ++++++++
 drivers/block/sb_efi_media.c                  |  20 ++
 drivers/serial/serial_efi.c                   |  11 +-
 drivers/video/Kconfig                         |   2 +-
 drivers/video/efi.c                           |  45 ++-
 include/configs/efi-x86_app.h                 |  31 +-
 include/dm/uclass-id.h                        |   1 +
 include/efi.h                                 | 123 +++++++-
 include/efi_api.h                             |  15 +
 include/init.h                                |   2 +-
 lib/efi/Kconfig                               |  34 ++-
 lib/efi/efi.c                                 | 106 +++++++
 lib/efi/efi_app.c                             | 276 +++++++++++++++++-
 lib/efi/efi_stub.c                            |  95 +++---
 lib/efi_driver/Makefile                       |   2 +-
 lib/efi_loader/Kconfig                        |   1 +
 lib/efi_loader/efi_device_path.c              |  96 ++----
 lib/efi_loader/efi_disk.c                     |  48 ---
 scripts/build-efi.sh                          | 188 ++++++++++++
 test/dm/Makefile                              |   1 +
 test/dm/efi_media.c                           |  24 ++
 tools/binman/binman.rst                       |  36 +++
 tools/binman/cmdline.py                       |   2 +
 tools/binman/control.py                       |  11 +
 tools/binman/elf.py                           |  74 ++++-
 tools/binman/elf_test.py                      |  45 ++-
 tools/binman/ftest.py                         |  91 +++++-
 tools/binman/test/Makefile                    |  13 +-
 tools/binman/test/bss_data.c                  |   2 +-
 tools/binman/test/embed_data.c                |  16 +
 tools/binman/test/embed_data.lds              |  23 ++
 tools/binman/test/u_boot_binman_embed.c       |  13 +
 tools/binman/test/u_boot_binman_embed.lds     |  29 ++
 tools/binman/test/u_boot_binman_embed_sm.c    |  13 +
 tools/patman/tools.py                         |   2 +-
 71 files changed, 1841 insertions(+), 337 deletions(-)
 create mode 100644 arch/x86/cpu/x86_64/misc.c
 create mode 100644 arch/x86/include/asm/efi.h
 create mode 100644 arch/x86/lib/bdinfo.c
 rename configs/{efi-x86_app_defconfig => efi-x86_app32_defconfig} (94%)
 create mode 100644 configs/efi-x86_app64_defconfig
 create mode 100644 drivers/block/efi-media-uclass.c
 create mode 100644 drivers/block/efi_blk.c
 create mode 100644 drivers/block/sb_efi_media.c
 create mode 100755 scripts/build-efi.sh
 create mode 100644 test/dm/efi_media.c
 create mode 100644 tools/binman/test/embed_data.c
 create mode 100644 tools/binman/test/embed_data.lds
 create mode 100644 tools/binman/test/u_boot_binman_embed.c
 create mode 100644 tools/binman/test/u_boot_binman_embed.lds
 create mode 100644 tools/binman/test/u_boot_binman_embed_sm.c

-- 
2.33.0.685.g46640cef36-goog


^ permalink raw reply	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2022-10-14 16:01 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-25  0:30 [PATCH v2 00/39] efi: Improvements to U-Boot running on top of UEFI Simon Glass
2021-09-25  0:30 ` [PATCH v2 01/39] RFC: efi: Drop code that doesn't work with driver model Simon Glass
2021-10-20 23:34   ` Heinrich Schuchardt
2022-10-14 11:51     ` Jan Kiszka
2022-10-14 13:13       ` Tom Rini
2022-10-14 15:33         ` Simon Glass
2022-10-14 15:34           ` Jan Kiszka
2022-10-14 15:36             ` Simon Glass
2022-10-14 15:39               ` Tom Rini
2022-10-14 15:47                 ` Jan Kiszka
2022-10-14 15:58                   ` Tom Rini
2022-10-14 15:10       ` Heinrich Schuchardt
2022-10-14 15:20         ` Tom Rini
2022-10-14 15:27           ` Jan Kiszka
2022-10-14 15:34             ` Tom Rini
2022-10-14 15:35               ` Jan Kiszka
2022-10-14 15:38                 ` Tom Rini
2022-10-14 15:25         ` Jan Kiszka
2021-09-25  0:30 ` [PATCH v2 02/39] efi: Add a separate maintainer entry for the app Simon Glass
2021-10-18 16:36   ` Heinrich Schuchardt
2021-09-25  0:30 ` [PATCH v2 03/39] x86: Keep symbol information in u-boot ELF file Simon Glass
2021-09-25  0:30 ` [PATCH v2 04/39] x86: Create a new header for EFI Simon Glass
2021-10-18 17:00   ` Heinrich Schuchardt
2021-09-25  0:30 ` [PATCH v2 05/39] x86: Show some EFI info with the bdinfo command Simon Glass
2021-10-18 17:10   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 06/39] x86: Tidy up global_data pointer for 64-bit Simon Glass
2021-10-18 17:15   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 07/39] efi: Add a script for building and testing U-Boot on UEFI Simon Glass
2021-10-18 17:30   ` Heinrich Schuchardt
2021-10-18 18:12     ` Simon Glass
2021-10-25 19:35   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 08/39] efi: Enable DM_ETH for the app Simon Glass
2021-09-25  0:30 ` [PATCH v2 09/39] efi: Drop the OF_EMBED warning for EFI Simon Glass
2021-10-23 11:37   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 10/39] x86: Create a 32/64-bit selection for the app Simon Glass
2021-10-23 11:41   ` Heinrich Schuchardt
2021-09-25  0:30 ` [PATCH v2 11/39] efi: Create a 64-bit app Simon Glass
2021-09-25  0:30 ` [PATCH v2 12/39] x86: Don't duplicate global_ptr in 64-bit EFI app Simon Glass
2021-09-25  0:30 ` [PATCH v2 13/39] efi: Add a way to obtain boot services in the app Simon Glass
2021-09-25  0:30 ` [PATCH v2 14/39] efi: Add video support to " Simon Glass
2021-09-25  0:30 ` [PATCH v2 15/39] efi: Add EFI uclass for media Simon Glass
2021-10-23 12:26   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 16/39] efi: Add a media/block driver for EFI block devices Simon Glass
2021-09-25  0:30 ` [PATCH v2 17/39] efi: Locate all block devices in the app Simon Glass
2021-09-25  0:30 ` [PATCH v2 18/39] patman: Use a ValueError exception if tools.Run() fails Simon Glass
2021-09-25  0:30 ` [PATCH v2 19/39] binman: Report an error if test files fail to compile Simon Glass
2021-09-25  0:30 ` [PATCH v2 20/39] binman: Support reading the offset of an ELF-file symbol Simon Glass
2021-09-25  0:30 ` [PATCH v2 21/39] binman: Allow timeout to occur in the image or its section Simon Glass
2021-09-25  0:30 ` [PATCH v2 22/39] binman: Tidy up comments on _DoTestFile() Simon Glass
2021-09-25  0:30 ` [PATCH v2 23/39] binman: Support updating the dtb in an ELF file Simon Glass
2021-09-25  0:30 ` [PATCH v2 24/39] efi: serial: Support arrow keys Simon Glass
2021-10-18 16:55   ` Heinrich Schuchardt
2021-10-26  3:29     ` Simon Glass
2021-09-25  0:30 ` [PATCH v2 25/39] bloblist: Support allocating the bloblist Simon Glass
2021-09-25  0:30 ` [PATCH v2 26/39] x86: Allow booting a kernel from the EFI app Simon Glass
2021-09-25  0:30 ` [PATCH v2 27/39] x86: Don't process the kernel command line unless enabled Simon Glass
2021-09-25  0:30 ` [PATCH v2 28/39] x86: efi: Add room for the binman definition in the dtb Simon Glass
2021-09-25  0:30 ` [PATCH v2 29/39] efi: Add comments to struct efi_priv Simon Glass
2021-10-23 11:28   ` Heinrich Schuchardt
2021-09-25  0:30 ` [PATCH v2 30/39] efi: Fix ll_boot_init() operation with the app Simon Glass
2021-09-25  0:30 ` [PATCH v2 32/39] efi: Share struct efi_priv between the app and stub code Simon Glass
2021-09-25  0:30 ` [PATCH v2 33/39] efi: Move exit_boot_services into a function Simon Glass
2021-09-25  0:30 ` [PATCH v2 34/39] efi: Check for failure when initing the app Simon Glass
2021-09-25  0:30 ` [PATCH v2 35/39] efi: Mention that efi_info_get() is only used in the stub Simon Glass
2021-09-25  0:30 ` [PATCH v2 36/39] efi: Show when allocated pages are used Simon Glass
2021-09-25  0:30 ` [PATCH v2 37/39] efi: Allow easy selection of serial-only operation Simon Glass
2021-09-25  0:30 ` [PATCH v2 38/39] efi: Update efi_get_next_mem_desc() to avoid needing a map Simon Glass
2021-09-25  0:30 ` [PATCH v2 39/39] efi: Support the efi command in the app Simon Glass
2021-10-18 15:25 ` [PATCH v2 00/39] efi: Improvements to U-Boot running on top of UEFI Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).