[PATCH v3 2/5] common: bootm: add policy to commandline
Sascha Hauer
s.hauer at pengutronix.de
Wed Mar 18 03:23:14 PDT 2026
On Wed, Mar 18, 2026 at 10:22:00AM +0100, Fabian Pflug wrote:
> If security policies are used, then the variable bootm.provide_policy
> can be set to automatically append the currently selected security
> policy to the kernel commandline with the prefix
> barebox.security.policy=
> This allows the the system to behave different based on the selected
> security policy.
>
> Signed-off-by: Fabian Pflug <f.pflug at pengutronix.de>
> ---
> common/bootm.c | 23 +++++++++++++++++++++++
> include/bootm.h | 5 +++++
> 2 files changed, 28 insertions(+)
>
> diff --git a/common/bootm.c b/common/bootm.c
> index d43079bb81..9484539bc3 100644
> --- a/common/bootm.c
> +++ b/common/bootm.c
> @@ -22,6 +22,7 @@
> #include <uncompress.h>
> #include <zero_page.h>
> #include <security/config.h>
> +#include <security/policy.h>
>
> static LIST_HEAD(handler_list);
> static struct sconfig_notifier_block sconfig_notifier;
> @@ -75,6 +76,7 @@ static int bootm_dryrun;
> static int bootm_earlycon;
> static int bootm_provide_machine_id;
> static int bootm_provide_hostname;
> +static int bootm_provide_policy;
> static int bootm_verbosity;
> static int bootm_efi_mode = BOOTM_EFI_AVAILABLE;
>
> @@ -97,6 +99,7 @@ void bootm_data_init_defaults(struct bootm_data *data)
> data->appendroot = bootm_appendroot;
> data->provide_machine_id = bootm_provide_machine_id;
> data->provide_hostname = bootm_provide_hostname;
> + data->provide_policy = bootm_provide_policy;
> data->verbose = bootm_verbosity;
> data->dryrun = bootm_dryrun;
> data->efi_boot = bootm_efi_mode;
> @@ -118,6 +121,7 @@ void bootm_data_restore_defaults(const struct bootm_data *data)
> bootm_appendroot = data->appendroot;
> bootm_provide_machine_id = data->provide_machine_id;
> bootm_provide_hostname = data->provide_hostname;
> + bootm_provide_policy = data->provide_policy;
> bootm_verbosity = data->verbose;
> bootm_dryrun = data->dryrun;
> bootm_efi_mode = data->efi_boot;
> @@ -759,6 +763,20 @@ int bootm_boot(struct bootm_data *bootm_data)
> free(hostname_bootarg);
> }
>
> + if (IS_ENABLED(CONFIG_SECURITY_POLICY) && bootm_data->provide_policy) {
This change conflicts with Ahmads bootm override series. In that series
int bootm_boot(struct bootm_data *bootm_data)
is replaced with
int bootm_boot_handler(struct image_data *data)
So bootm_data is no longer available here. I replaced bootm_data->provide_policy
with 0 for now, but this needs a proper fix. Ahmad, Fabian, Could you look into it?
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list