
Hi Heinrich,
On Sat, 28 Aug 2021 at 03:42, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On RISC-V the sandbox must provide the /chosen/boot-hartid in the devicetree.
Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
arch/sandbox/lib/Makefile | 2 +- arch/sandbox/lib/fdt_fixup.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 arch/sandbox/lib/fdt_fixup.c
Can you add a bit more detail here? This is for the sandbox build, so we don't actually get to boot the kernel. So who is actually using this data?
Regards, Simon
diff --git a/arch/sandbox/lib/Makefile b/arch/sandbox/lib/Makefile index b4ff717e78..a2bc5a7ee6 100644 --- a/arch/sandbox/lib/Makefile +++ b/arch/sandbox/lib/Makefile @@ -5,7 +5,7 @@ # (C) Copyright 2002-2006 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-obj-y += interrupts.o sections.o +obj-y += fdt_fixup.o interrupts.o sections.o obj-$(CONFIG_PCI) += pci_io.o obj-$(CONFIG_CMD_BOOTM) += bootm.o obj-$(CONFIG_CMD_BOOTZ) += bootm.o diff --git a/arch/sandbox/lib/fdt_fixup.c b/arch/sandbox/lib/fdt_fixup.c new file mode 100644 index 0000000000..a646f2059c --- /dev/null +++ b/arch/sandbox/lib/fdt_fixup.c @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-2.0+
+#define LOG_CATEGORY LOGC_ARCH
+#include <common.h> +#include <fdt_support.h> +#include <log.h>
+#if defined(__riscv) +int arch_fixup_fdt(void *blob) +{
int ret;
ret = fdt_find_or_add_subnode(blob, 0, "chosen");;
if (ret < 0)
goto err;
ret = fdt_setprop_u32(blob, ret, "boot-hartid", 1);
if (ret < 0)
goto err;
return 0;
+err:
log_err("Setting /chosen/boot-hartid failed: %s\n", fdt_strerror(ret));
return ret;
+}
+#endif
2.30.2