[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 00/11] Add basic Boot Loader Interface support
From: |
Daniel Kiper |
Subject: |
Re: [PATCH v9 00/11] Add basic Boot Loader Interface support |
Date: |
Tue, 30 May 2023 19:12:44 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Fri, May 26, 2023 at 01:35:41PM +0200, Oliver Steffen wrote:
> This is a step towards supporting unified kernel images (UKI) in Grub.
>
> Add a new module named bli. It implements a small but quite useful part
> of the Boot Loader Interface [0]. This interface uses EFI variables for
> communication between the boot loader and the operating system.
>
> This module sets two EFI variables under the vendor GUID
> 4a67b082-0a4c-41cf-b6c7-440b29bb8c4f:
>
> - LoaderInfo: contains GRUB + <version number>.
> This allows the running operating system to identify the boot loader
> used during boot.
>
> - LoaderDevicePartUUID: contains the partition UUID of the
> EFI System Partition (ESP). This is used by
> systemd-gpt-auto-generator [1] to find the root partitions (and
> others too), via partition type IDs [2]. This is especially useful for
> UKIs, where the kernel command line is fixed and usually does not
> contain any information about the root partition.
>
> This module is only available on EFI platforms.
>
> This series also unifies the GUID implementations and introduces a
> printf format specifier for them: %pG.
>
> [0] https://systemd.io/BOOT_LOADER_INTERFACE/
> [1]
> https://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html
> [2]
> https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
>
> v9:
> - Rebase to latest master branch
> - Fix error handling in bli.c: get_part_uuid()
> And with that fix the NULL pointer issue discovered by Coverity
> - Add NULL checks to grub_device_close() and grub_disk_close()
> These are not strictly needed anymore with the changed error handling
> in get_part_uuid().
> I leave the fate of this patch at the maintainer's discretion.
>
> v8:
> - https://mail.gnu.org/archive/html/grub-devel/2023-05/msg00128.html
> - Rebase to latest master branch
> - Fix the documentation build (I hope)
> - Fix build on arm
> - Make more grub_guid instances 'static'
> - Move endian conversion back out of the grub_guid printf code
>
> v7:
> - https://mail.gnu.org/archive/html/grub-devel/2023-05/msg00005.html
> - Add a "Modules" chapter to the documentation and describe the bli
> module there
> - Reword some section headings in the documentation
>
> v6:
> - https://mail.gnu.org/archive/html/grub-devel/2023-04/msg00068.html
> - Initialize the Boot Loader Interface on module load and remove the bli
> command.
> - Extract code for grub_efi_set_variable_to_string()
> - Improve error messages in the bli module
> - Improve GUID printing code
>
> v5:
> - https://mail.gnu.org/archive/html/grub-devel/2023-03/msg00120.html
> - Replace more grub_*_guid with the new grub_guid struct
>
> v4:
> - https://mail.gnu.org/archive/html/grub-devel/2023-03/msg00058.html
> - Place grub_utf8_to_utf16_alloc() in kern/misc.c and use it in kern/efi.c
> - bli: rework partition GUID code, improve error reporting
> - Add documentation for the bli module
> - Address other comments
>
> v3:
> - https://mail.gnu.org/archive/html/grub-devel/2023-03/msg00008.html
> - Unify GUID implementations for GPT and EFI
> - Add printf format specifier for GUIDs, drop guid print function from
> v2.
> - WIP/Please comment: Started extracting utf8->utf16 code. Where should
> this go?
> - Address other comments
>
> v2:
> - https://mail.gnu.org/archive/html/grub-devel/2023-02/msg00099.html
> - Addressed comments from Daniel
> - Added a print function for gpt guids`
> - Added integer overflow check in UTF16 conversion
> - Added config drop-in file that loads the module on EFI
>
> v1:
> - https://mail.gnu.org/archive/html/grub-devel/2023-01/msg00104.html
>
>
> Oliver Steffen (11):
> efi: Add grub_efi_set_variable_with_attributes()
> Unify GUID types
> kern/misc: Add a format specifier GUIDs
> grub-core: Make use of guid printf format specifier
> types.h: Add GRUB_SSIZE_MAX
> kern/misc, kern/efi: Extract UTF-8 to UTF-16 code
> efi: Add grub_efi_set_variable_to_string()
> docs: Reword section headings
> kern: check for NULL when closing devices and disks
> Add a module for the Boot Loader Interface
> util/grub.d: Activate bli module on EFI
>
> Makefile.util.def | 6 ++
> docs/grub.texi | 43 +++++++---
> grub-core/Makefile.core.def | 6 ++
> grub-core/commands/acpi.c | 4 +-
> grub-core/commands/bli.c | 122 +++++++++++++++++++++++++++
> grub-core/commands/efi/efifwsetup.c | 4 +-
> grub-core/commands/efi/loadbios.c | 14 +--
> grub-core/commands/efi/lsefi.c | 17 +---
> grub-core/commands/efi/lsefisystab.c | 10 +--
> grub-core/commands/efi/lssal.c | 4 +-
> grub-core/commands/efi/smbios.c | 12 +--
> grub-core/commands/efi/tpm.c | 6 +-
> grub-core/commands/probe.c | 14 ++-
> grub-core/disk/efi/efidisk.c | 4 +-
> grub-core/disk/ldm.c | 2 +-
> grub-core/efiemu/i386/pc/cfgtables.c | 6 +-
> grub-core/efiemu/main.c | 4 +-
> grub-core/efiemu/runtime/efiemu.c | 14 +--
> grub-core/kern/device.c | 3 +
> grub-core/kern/disk.c | 4 +
> grub-core/kern/efi/acpi.c | 12 +--
> grub-core/kern/efi/efi.c | 109 ++++++++++++------------
> grub-core/kern/efi/fdt.c | 2 +-
> grub-core/kern/efi/init.c | 2 +-
> grub-core/kern/efi/sb.c | 4 +-
> grub-core/kern/misc.c | 113 ++++++++++++++++++++-----
> grub-core/loader/efi/fdt.c | 2 +-
> grub-core/loader/efi/linux.c | 4 +-
> grub-core/loader/i386/xnu.c | 13 +--
> grub-core/loader/ia64/efi/linux.c | 2 +-
> grub-core/net/drivers/efi/efinet.c | 4 +-
> grub-core/partmap/gpt.c | 4 +-
> grub-core/term/efi/console.c | 2 +-
> grub-core/term/efi/serial.c | 2 +-
> grub-core/video/efi_gop.c | 8 +-
> grub-core/video/efi_uga.c | 2 +-
> include/grub/efi/api.h | 69 ++++++---------
> include/grub/efi/efi.h | 23 +++--
> include/grub/efiemu/efiemu.h | 10 +--
> include/grub/efiemu/runtime.h | 2 +-
> include/grub/gpt_partition.h | 13 +--
> include/grub/misc.h | 3 +
> include/grub/types.h | 11 +++
> util/grub-install.c | 2 +-
> util/grub-probe.c | 2 +-
> util/grub.d/25_bli.in | 24 ++++++
> 46 files changed, 487 insertions(+), 256 deletions(-)
> create mode 100644 grub-core/commands/bli.c
> create mode 100644 util/grub.d/25_bli.in
For all the patches Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>...
Thank you for adding this feature!
Daniel
- [PATCH v9 05/11] types.h: Add GRUB_SSIZE_MAX, (continued)
- [PATCH v9 05/11] types.h: Add GRUB_SSIZE_MAX, Oliver Steffen, 2023/05/26
- [PATCH v9 04/11] grub-core: Make use of guid printf format specifier, Oliver Steffen, 2023/05/26
- [PATCH v9 02/11] Unify GUID types, Oliver Steffen, 2023/05/26
- [PATCH v9 06/11] kern/misc, kern/efi: Extract UTF-8 to UTF-16 code, Oliver Steffen, 2023/05/26
- [PATCH v9 01/11] efi: Add grub_efi_set_variable_with_attributes(), Oliver Steffen, 2023/05/26
- [PATCH v9 03/11] kern/misc: Add a format specifier GUIDs, Oliver Steffen, 2023/05/26
- [PATCH v9 08/11] docs: Reword section headings, Oliver Steffen, 2023/05/26
- [PATCH v9 10/11] Add a module for the Boot Loader Interface, Oliver Steffen, 2023/05/26
- [PATCH v9 09/11] kern: check for NULL when closing devices and disks, Oliver Steffen, 2023/05/26
- [PATCH v9 11/11] util/grub.d: Activate bli module on EFI, Oliver Steffen, 2023/05/26
- Re: [PATCH v9 00/11] Add basic Boot Loader Interface support,
Daniel Kiper <=