]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: starfive: handle compatible property in dynamic DT configuration
authorAurelien Jarno <aurelien@aurel32.net>
Wed, 10 Jan 2024 20:17:44 +0000 (21:17 +0100)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Wed, 31 Jan 2024 08:52:07 +0000 (16:52 +0800)
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>
board/starfive/visionfive2/spl.c

index 336f0cdfc90fc5b1ee558fb3403cd326fd0b3752..911add429df19cfdd2d418bd976c091166c7e135 100644 (file)
@@ -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");