[PATCH RFC 1/2] board: visionfive2: Select fdtfile based on revision
Jami Kettunen
jamipkettunen at gmail.com
Mon Sep 11 17:32:35 CEST 2023
From: Jami Kettunen <jami.kettunen at protonmail.com>
Linux mainline kernel device tree files[1] are named:
- jh7110-starfive-visionfive-2-v1.2a
- jh7110-starfive-visionfive-2-v1.3b
which should be selected accordingly by U-Boot to have a proper extlinux
experience with fdtdir set by the distribution.
[1] https://github.com/torvalds/linux/tree/master/arch/riscv/boot/dts/starfive
Signed-off-by: Jami Kettunen <jami.kettunen at protonmail.com>
---
.../visionfive2/starfive_visionfive2.c | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c
index d609262b67..9244d4654b 100644
--- a/board/starfive/visionfive2/starfive_visionfive2.c
+++ b/board/starfive/visionfive2/starfive_visionfive2.c
@@ -10,6 +10,8 @@
#include <cpu_func.h>
#include <dm.h>
#include <linux/bitops.h>
+#include <asm/arch-jh7110/eeprom.h>
+#include <env.h>
#define JH7110_L2_PREFETCHER_BASE_ADDR 0x2030000
#define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000
@@ -41,6 +43,29 @@ int board_init(void)
return 0;
}
+int misc_init_r(void)
+{
+ u8 rev;
+ const char *linux_dtb_file;
+
+ rev = get_pcb_revision_from_eeprom();
+ switch (rev) {
+ case 'a':
+ case 'A':
+ linux_dtb_file = "starfive/jh7110-starfive-visionfive-2-v1.2a.dtb";
+ break;
+
+ case 'b':
+ case 'B':
+ default:
+ linux_dtb_file = "starfive/jh7110-starfive-visionfive-2-v1.3b.dtb";
+ break;
+ };
+
+ env_set("fdtfile", linux_dtb_file);
+ return 0;
+}
+
void *board_fdt_blob_setup(int *err)
{
*err = 0;
--
2.42.0
More information about the U-Boot
mailing list