
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
Changes in v5: - Make mtrr_type_name[] static - Fix 'abrievated' typo - Drop extra space in penultimate example - Drop unnecessary 'it' in commit message - Adjust the prompt for clarity (although it is now >12 chars) - Reword commit message - Drop unnecessary 'allow' word - Add tests for bdinfo additions - Drop extra 'qfw list' line - Update commit message to explain 'md' reference - Drop period at end of commit subject - Drop extra 'a' in commit message - Add 'bdinfo' tag to commit subject - Use the existing QEMU code instead - Use u16 instead of ushort - Split out banner code into a separate patch - Drop code to ensure the SPL banner is only shown once - Fix 'litlle' typo in subject - Correct indentation - Add a comment about QFW putting its tables up high - Add a comment that the bloblist is always in high memory - Use "gpio" for log return - Use QEMU instead of qemu - Drop patch 'Show the number of physical address bits'
Changes in v4: - Drop patch "video: Allow building video drivers for SPL" - Drop use of video in SPL
Changes in v3: - Fix invalid commit IDs obtained from another branch - Add a tag name for the blob - Add new patch to refactor table-writing code a ltitle - Adjust the code to handle qemu writing a pointer to tables in memory
Changes in v2: - Add new patch with docs for mtrr command - Add docs to board_init_f_r() too - Fix BINS typo - Drop the Ooops string - Drop ** in strings and use log_err() for messages - Use log_warning() for the warning - Handle the case where the tables are in the bloblist - Add new patch to convert some debug statements to use logging - Add new patch to support Micron memory - Add new patch to make sure that the LPC is active before SDRAM init - Add new patch to support outputing function names in SPL - Drop patch to set high bits of the mtrr base register, for now - Bring in to qemu series - Rebase to -next - Drop unused of_match - Fix Boschs typo - Rename bochs_init_linear_fb() function to drop 'linear' - Fix uninited variable
Simon Glass (46): bdinfo: Add tests for serial settings x86: Return mtrr_add_request() to its old purpose x86: Allow listing MTRRs in SPL x86: mtrr: Add documentation bios_emulator: Add Kconfig and adjust Makefile for SPL bios_emulator: Drop VIDEO_IO_OFFSET x86: Tidy up EFI code in interrupt_init() 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 BIOS 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 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 bdinfo: 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: Ensure SPL banner is only shown once 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: Refactor table-writing code a little x86: Record the start and end of the tables x86: Convert some debug statements to use logging x86: link: Support Micron memory x86: Make sure that the LPC is active before SDRAM init log: Support outputing function names in SPL sandbox: Correct header order in board file sandbox: Install ACPI tables on startup efi: Use the installed ACPI tables x86: video: Add a driver for QEMU bochs emulation x86: Switch QEMU over to use the bochs driver
arch/sandbox/include/asm/global_data.h | 4 + arch/x86/cpu/i386/interrupt.c | 17 +-- arch/x86/cpu/intel_common/mrc.c | 10 +- arch/x86/cpu/ivybridge/sdram.c | 4 +- arch/x86/cpu/mtrr.c | 67 +++++++++- arch/x86/cpu/qemu/Kconfig | 2 +- arch/x86/cpu/qemu/qemu.c | 5 +- arch/x86/cpu/start64.S | 19 +++ arch/x86/dts/chromebook_link.dts | 1 + arch/x86/include/asm/global_data.h | 4 + arch/x86/include/asm/mtrr.h | 20 +++ arch/x86/include/asm/u-boot-x86.h | 27 +++- arch/x86/lib/Makefile | 7 +- arch/x86/lib/bdinfo.c | 5 + arch/x86/lib/bios.c | 4 +- arch/x86/lib/bootm.c | 2 +- arch/x86/lib/mrccache.c | 6 +- arch/x86/lib/spl.c | 68 ++++++++-- arch/x86/lib/tables.c | 46 +++++-- 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/bloblist.c | 1 + common/board_f.c | 12 +- common/board_r.c | 7 +- common/log.c | 2 +- common/log_console.c | 10 +- configs/qemu-x86_64_defconfig | 16 ++- configs/qemu-x86_defconfig | 3 - disk/part.c | 16 +++ doc/usage/cmd/acpi.rst | 29 ++++- doc/usage/cmd/mtrr.rst | 151 ++++++++++++++++++++++ doc/usage/cmd/part.rst | 74 +++++++++++ doc/usage/cmd/qfw.rst | 27 ++-- doc/usage/index.rst | 1 + drivers/Kconfig | 2 + drivers/Makefile | 2 +- drivers/bios_emulator/Kconfig | 10 ++ drivers/bios_emulator/biosemui.h | 18 +-- drivers/bios_emulator/x86emu/sys.c | 1 + drivers/gpio/intel_ich6_gpio.c | 5 +- drivers/misc/qfw.c | 13 ++ drivers/nvme/nvme.c | 36 ++++-- drivers/pch/pch9.c | 6 +- drivers/pci/Kconfig | 5 + drivers/pci/pci-uclass.c | 10 +- drivers/pci/pci_rom.c | 124 ++++++++++++------ drivers/video/Kconfig | 30 +++++ drivers/video/Makefile | 1 + drivers/video/bochs.c | 123 ++++++++++++++++++ drivers/video/bochs.h | 36 ++++++ fs/fat/Kconfig | 13 ++ fs/fat/fat.c | 121 ++++++++++++++--- fs/fat/fat_write.c | 22 ++-- include/asm-generic/global_data.h | 13 ++ 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/qemu.h | 14 ++ include/video.h | 24 ++++ lib/efi_loader/efi_acpi.c | 33 +++-- lib/uuid.c | 2 +- test/cmd/bdinfo.c | 21 +++ test/dm/acpi.c | 38 ++++++ 74 files changed, 1299 insertions(+), 276 deletions(-) create mode 100644 doc/usage/cmd/mtrr.rst create mode 100644 drivers/bios_emulator/Kconfig create mode 100644 drivers/video/bochs.c create mode 100644 drivers/video/bochs.h create mode 100644 include/qemu.h