diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-07-27 16:39:13 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-08-02 10:28:49 +0200 |
commit | a67f22c4a73a22312a61dd9352504cd2a960b8a8 (patch) | |
tree | 89c93aadbe29b7aaab3463defb011356432d467a /src | |
parent | 6977ea99755efb5d2f3f8a8801199c37a521f1e2 (diff) | |
download | systemd-a67f22c4a73a22312a61dd9352504cd2a960b8a8.tar.gz |
boot: add three new boot loader feature flags
Report whether the devicetree + sort-key boot loader spec type #1
fields are supported, and whether the "@saved" pseudo-entry is
supported.
Strictly speaking, thes features have been added in versions that are
already released (250+), so by adding this those version even though
they support the features will be considered not supporting them, but
that should be OK (the opposite would be a problem though, i.e. if we'd
assume a boot loader had a feature it actually does not).
These three features are features relevant to userspace, as it allows
userspace to tweak/genereate BLS entries or set EFI vars correctly.
Other features (i.e. that have no impliciations to userspace) are not
reported.
Diffstat (limited to 'src')
-rw-r--r-- | src/boot/bootctl.c | 3 | ||||
-rw-r--r-- | src/boot/efi/boot.c | 3 | ||||
-rw-r--r-- | src/fundamental/efivars-fundamental.h | 3 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index e53328ca39..8d71b4c40a 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -1723,6 +1723,9 @@ static int verb_status(int argc, char *argv[], void *userdata) { { EFI_LOADER_FEATURE_XBOOTLDR, "Support for XBOOTLDR partition" }, { EFI_LOADER_FEATURE_RANDOM_SEED, "Support for passing random seed to OS" }, { EFI_LOADER_FEATURE_LOAD_DRIVER, "Load drop-in drivers" }, + { EFI_LOADER_FEATURE_SORT_KEY, "Support Type #1 sort-key field" }, + { EFI_LOADER_FEATURE_SAVED_ENTRY, "Support @saved pseudo-entry" }, + { EFI_LOADER_FEATURE_DEVICETREE, "Support Type #1 devicetree field" }, }; static const struct { uint64_t flag; diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c index 193eebde0c..b3f424d8ba 100644 --- a/src/boot/efi/boot.c +++ b/src/boot/efi/boot.c @@ -2443,6 +2443,9 @@ static void export_variables( EFI_LOADER_FEATURE_XBOOTLDR | EFI_LOADER_FEATURE_RANDOM_SEED | EFI_LOADER_FEATURE_LOAD_DRIVER | + EFI_LOADER_FEATURE_SORT_KEY | + EFI_LOADER_FEATURE_SAVED_ENTRY | + EFI_LOADER_FEATURE_DEVICETREE | 0; _cleanup_free_ char16_t *infostr = NULL, *typestr = NULL; diff --git a/src/fundamental/efivars-fundamental.h b/src/fundamental/efivars-fundamental.h index 5d15e19a0e..fe34e6c714 100644 --- a/src/fundamental/efivars-fundamental.h +++ b/src/fundamental/efivars-fundamental.h @@ -13,6 +13,9 @@ #define EFI_LOADER_FEATURE_XBOOTLDR (UINT64_C(1) << 5) #define EFI_LOADER_FEATURE_RANDOM_SEED (UINT64_C(1) << 6) #define EFI_LOADER_FEATURE_LOAD_DRIVER (UINT64_C(1) << 7) +#define EFI_LOADER_FEATURE_SORT_KEY (UINT64_C(1) << 8) +#define EFI_LOADER_FEATURE_SAVED_ENTRY (UINT64_C(1) << 9) +#define EFI_LOADER_FEATURE_DEVICETREE (UINT64_C(1) << 10) /* Features of the stub, i.e. systemd-stub */ #define EFI_STUB_FEATURE_REPORT_BOOT_PARTITION (UINT64_C(1) << 0) |