[PATCH] fdt_support.c: Allow late kernel cmdline modification

Tom Rini trini at konsulko.com
Mon Feb 22 21:21:24 CET 2021


On Mon, Feb 22, 2021 at 07:18:51PM +0000, Niko Mauno wrote:

> By declaring board-specific board_fdt_chosen_bootargs() the kernel
> command line arguments can be adjusted before injecting to flat dt
> chosen node.
> 
> Signed-off-by: Niko Mauno <niko.mauno at vaisala.com>
> ---
>  common/fdt_support.c  | 12 +++++++++++-
>  include/fdt_support.h | 10 ++++++++++
>  2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index 08d540bfc8..4379507e30 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -269,6 +269,15 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end)
>  	return 0;
>  }
>  
> +/**
> + * board_fdt_chosen_bootargs - boards may override this function to use
> + *                             alternative kernel command line arguments
> + */
> +__weak char *board_fdt_chosen_bootargs(void)
> +{
> +	return env_get("bootargs");
> +}
> +
>  int fdt_chosen(void *fdt)
>  {
>  	int   nodeoffset;
> @@ -286,7 +295,8 @@ int fdt_chosen(void *fdt)
>  	if (nodeoffset < 0)
>  		return nodeoffset;
>  
> -	str = env_get("bootargs");
> +	str = board_fdt_chosen_bootargs();
> +
>  	if (str) {
>  		err = fdt_setprop(fdt, nodeoffset, "bootargs", str,
>  				  strlen(str) + 1);

What's this look like in practice?  I'm very wary about changing "set
bootargs to what you pass to the kernel" logic that's been there for
forever and a constant of every platform.  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210222/2d2084e9/attachment.sig>


More information about the U-Boot mailing list