[PATCH 00/38] x86: Use qemu-x86_64 to boot EFI installers

Simon Glass sjg at chromium.org
Wed Apr 19 03:45:58 CEST 2023


Hi Bin,

On Thu, 30 Mar 2023 at 15:32, Simon Glass <sjg at chromium.org> wrote:
>
> This series adds various minor features so that qemu-x86_64 can boot the
> Ubuntu 2022.04 installer using a virtio device:
>
>     qemu-system-x86_64 -M pc -drive format=raw,file=root.img
>         -bios /tmp/b/qemu-x86_64/u-boot.rom
>         -drive if=virtio,file=ubuntu-22.04.2-desktop-amd64.iso
>         -smp 4 -m 4G -serial mon:stdio
>
> The main changes include:
> - Enable video in SPL while running in 32-bit mode
> - Drop the duplicate ACPI tables with EFI
> - Support PCI autoconfig in SPL
> - Support FAT on a CDROM filesystem
> - Improved bootstd rules around device tree and efi_set_bootdev()
>
> There are also quite a number of minor tweaks and fixes to make things
> easier to use.
>
> This series is based on an older version of the SPL-video series from
> Nikhil M Jain. It is available at u-boot-dm/bryc-working
>
>
> Simon Glass (38):
>   x86: Tidy up availability of string functions
>   x86: Allow listing MTRRs in SPL
>   bios_emulator: Add Kconfig and adjust Makefile for SPL
>   bios_emulator: Drop VIDEO_IO_OFFSET
>   x86: Tidy up EFI code in interrupt_init()
>   x86: Set high bits of the mtrr base registrer
>   x86: Add a comment for board_init_f_r_trampoline()
>   x86: Show the CPU physical address size with bdinfo
>   x86: Correct get_sp() implementation for 64-bit
>   x86: Show an error when a BINS exception occurs
>   acpi: Add a comment to set the acpi tables
>   bdinfo: Show the RAM top and approximate stack pointer
>   part: Allow setting the partition-table type
>   qfw: Show the file address if available
>   log: Tidy up an ambiguous comment.
>   video: Allow building video drivers for SPL
>   qfw: Set the address of the ACPI tables
>   efi: Show all known UUIDs with CONFIG_CMD_EFIDEBUG
>   x86: Improve the trampoline in 64-bit mode
>   Show the malloc base with the bdinfo command
>   nvme: Provide more useful debugging messages
>   pci: Support autoconfig in SPL
>   pci: Allow the video BIOS to work in SPL with QEMU
>   pci: Tidy up logging and reporting for video BIOS
>   x86: Allow video-BIOS code to be built for SPL
>   x86: Pass video settings from SPL to U-Boot proper
>   x86: Init video in SPL if enabled
>   pci: Adjust video BIOS debugging to be SPL-friendly
>   pci: Mask the ROM address in case it is already enabled
>   x86: Enable display for QEMU 64-bit
>   x86: Allow logging to be used in SPL reliably
>   fs: fat: Shrink the size of a few strings
>   fs: fat: Support reading from a larger block size
>   x86: Enable useful options for qemu-86_64
>   x86: Record the start and end of the tables
>   sandbox: Correct header order in board file
>   sandbox: Install ACPI tables on startup
>   efi: Use the installed ACPI tables
>
>  arch/sandbox/include/asm/global_data.h    |   4 +
>  arch/x86/cpu/i386/interrupt.c             |  17 +--
>  arch/x86/cpu/mtrr.c                       |  62 +++++++-
>  arch/x86/cpu/start64.S                    |  19 +++
>  arch/x86/include/asm/global_data.h        |   4 +
>  arch/x86/include/asm/mtrr.h               |  20 +++
>  arch/x86/include/asm/string.h             |   6 +-
>  arch/x86/include/asm/u-boot-x86.h         |  21 ++-
>  arch/x86/lib/Makefile                     |   9 +-
>  arch/x86/lib/bdinfo.c                     |   5 +
>  arch/x86/lib/bios.c                       |   5 +-
>  arch/x86/lib/bootm.c                      |   2 +-
>  arch/x86/lib/spl.c                        |  26 +++-
>  arch/x86/lib/tables.c                     |   4 +-
>  board/google/Kconfig                      |   7 -
>  board/sandbox/sandbox.c                   |  22 ++-
>  cmd/Kconfig                               |   8 ++
>  cmd/acpi.c                                |  24 +++-
>  cmd/bdinfo.c                              |   6 +
>  cmd/part.c                                |  34 +++++
>  cmd/qfw.c                                 |   2 +-
>  cmd/x86/mtrr.c                            |  60 +-------
>  common/board_f.c                          |  12 +-
>  common/board_r.c                          |   7 +-
>  common/log.c                              |   2 +-
>  configs/qemu-x86_64_defconfig             |  14 ++
>  disk/part.c                               |  16 +++
>  doc/usage/cmd/acpi.rst                    |  29 +++-
>  doc/usage/cmd/part.rst                    |  74 ++++++++++
>  doc/usage/cmd/qfw.rst                     |  28 ++--
>  drivers/Kconfig                           |   2 +
>  drivers/Makefile                          |   5 +-
>  drivers/bios_emulator/Kconfig             |  10 ++
>  drivers/bios_emulator/biosemui.h          |  18 +--
>  drivers/bios_emulator/x86emu/sys.c        |   1 +
>  drivers/misc/qfw.c                        |  12 ++
>  drivers/nvme/nvme.c                       |  36 +++--
>  drivers/pci/Kconfig                       |   8 ++
>  drivers/pci/pci-uclass.c                  |  10 +-
>  drivers/pci/pci_rom.c                     | 165 +++++++++++++++++-----
>  fs/fat/Kconfig                            |  13 ++
>  fs/fat/fat.c                              | 117 ++++++++++++---
>  fs/fat/fat_write.c                        |  22 ++-
>  include/asm-generic/global_data.h         |  11 ++
>  include/bloblist.h                        |   1 +
>  include/configs/conga-qeval20-qa3-e3845.h |   2 -
>  include/configs/dfi-bt700.h               |   2 -
>  include/configs/minnowmax.h               |   2 -
>  include/configs/som-db5800-som-6867.h     |   2 -
>  include/configs/theadorable-x86-common.h  |   2 -
>  include/configs/x86-chromebook.h          |   2 -
>  include/part.h                            |   9 ++
>  include/pci_ids.h                         |   1 +
>  include/video.h                           |  24 ++++
>  lib/efi_loader/efi_acpi.c                 |  33 +++--
>  lib/uuid.c                                |   2 +-
>  test/dm/acpi.c                            |  38 +++++
>  57 files changed, 866 insertions(+), 233 deletions(-)
>  create mode 100644 drivers/bios_emulator/Kconfig
>
> --
> 2.40.0.348.gf938b09366-goog
>

Any thoughts on this series, please? I have some comments from
Heinrich so will respin this, but would like to check first if there
is anything else?

Regards,
Simon


More information about the U-Boot mailing list