aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2024-01-10 21:17:44 +0100
committerLeo Yu-Chi Liang <ycliang@andestech.com>2024-01-31 16:52:07 +0800
commit465e7e6d506a419ab12ed0817d8f083d43584602 (patch)
tree8a22445f5367fa01a0646ec35716d1e4769fe629
parenta400ffad022b1bc8a14ba16342c74cf9c06889fd (diff)
downloadu-boot-465e7e6d506a419ab12ed0817d8f083d43584602.zip
u-boot-465e7e6d506a419ab12ed0817d8f083d43584602.tar.gz
u-boot-465e7e6d506a419ab12ed0817d8f083d43584602.tar.bz2
board: starfive: handle compatible property in dynamic DT configuration
The difference between the StarFive VisionFive 2 1.2A and 1.3B boards is handled dynamically by looking at the PCB version in the EEPROM in order to have a single u-boot version for both versions of the board. While the "model" property is correctly handled, the "compatible" one is always the the one of version 1.3b. This patch add support for dynamically configuring that property. Fixes: 9b7060bd15e7 ("riscv: dts: jh7110: Combine the board device tree files of 1.2A and 1.3B") Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
-rw-r--r--board/starfive/visionfive2/spl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/board/starfive/visionfive2/spl.c b/board/starfive/visionfive2/spl.c
index 336f0cd..911add4 100644
--- a/board/starfive/visionfive2/spl.c
+++ b/board/starfive/visionfive2/spl.c
@@ -61,11 +61,13 @@ static const struct starfive_vf2_pro starfive_verb[] = {
void spl_fdt_fixup_version_a(void *fdt)
{
+ static const char compat[] = "starfive,visionfive-2-v1.2a\0starfive,jh7110";
u32 phandle;
u8 i;
int offset;
int ret;
+ fdt_setprop(fdt, fdt_path_offset(fdt, "/"), "compatible", compat, sizeof(compat));
fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "model",
"StarFive VisionFive 2 v1.2A");
@@ -106,11 +108,13 @@ void spl_fdt_fixup_version_a(void *fdt)
void spl_fdt_fixup_version_b(void *fdt)
{
+ static const char compat[] = "starfive,visionfive-2-v1.3b\0starfive,jh7110";
u32 phandle;
u8 i;
int offset;
int ret;
+ fdt_setprop(fdt, fdt_path_offset(fdt, "/"), "compatible", compat, sizeof(compat));
fdt_setprop_string(fdt, fdt_path_offset(fdt, "/"), "model",
"StarFive VisionFive 2 v1.3B");