[RFC PATCH v2 3/3] bootm: handle global.bootm.root_dev

Robert Karszniewicz r.karszniewicz at phytec.de
Wed Aug 5 06:15:50 EDT 2020


On 8/5/20 12:10 PM, Robert Karszniewicz wrote:
> ---
>   common/bootm.c | 13 ++++++++++++-
>   1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/common/bootm.c b/common/bootm.c
> index 73409bf9f70c..01b54ab93958 100644
> --- a/common/bootm.c
> +++ b/common/bootm.c
> @@ -656,7 +656,18 @@ int bootm_boot(struct bootm_data *bootm_data)
>   	if (bootm_data->appendroot) {
>   		char *rootarg;
>   
> -		rootarg = path_get_linux_rootarg(data->os_file);
> +		if (bootm_data->root_dev) {
> +			const char *root_dev_name = devpath_to_name(bootm_data->root_dev);
> +			const struct cdev *root_cdev = cdev_by_name(root_dev_name);
> +
> +			if (root_cdev && root_cdev->partuuid[0] != 0) {
> +				rootarg = basprintf("root=PARTUUID=%s", root_cdev->partuuid);
> +			} else {
> +				rootarg = path_get_linux_rootarg("invalid");

Here I wasn't sure if I should be uniform and let the function return an 
error or just straight assign ERR_PTR(-EINVAL).

> +			}
> +		} else {
> +			rootarg = path_get_linux_rootarg(data->os_file);
> +		}
>   		if (!IS_ERR(rootarg)) {
>   			printf("Adding \"%s\" to Kernel commandline\n", rootarg);
>   			globalvar_add_simple("linux.bootargs.bootm.appendroot",
> 




More information about the barebox mailing list