
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@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!