sandbox: provide /chosen/boot-hartid property
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 28 Aug 2021 09:42:09 +0000 (11:42 +0200)
committerSimon Glass <sjg@chromium.org>
Thu, 21 Oct 2021 18:50:48 +0000 (12:50 -0600)
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
arch/sandbox/lib/fdt_fixup.c [new file with mode: 0644]

index b4ff717..a2bc5a7 100644 (file)
@@ -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 (file)
index 0000000..a646f20
--- /dev/null
@@ -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