Hi, On 2025-04-22 5:07 AM, E Shattow wrote: > Oops should have compiled before sending. > > On 4/21/25 23:45, E Shattow wrote: >> Remove board detection logic from main payload that is duplicated from SPL >> and do not set convenience data into $fdtfile environment variable. U-Boot >> "starfive visionfive2" board target(s) now boot on recent upstream Linux >> Kernel releases without this manipulation since the JH7110 OF_UPSTREAM >> migration. Changes to $fdtfile by users (i.e. following newer or older Linux >> Kernel releases) should follow the advice in general U-Boot documentation. >> >> Signed-off-by: E Shattow <e...@freeshell.de> >> --- >> .../visionfive2/starfive_visionfive2.c | 61 ------------------- >> 1 file changed, 61 deletions(-) >> >> diff --git a/board/starfive/visionfive2/starfive_visionfive2.c >> b/board/starfive/visionfive2/starfive_visionfive2.c >> index b8cd509bc89..039a32f1874 100644 >> --- a/board/starfive/visionfive2/starfive_visionfive2.c >> +++ b/board/starfive/visionfive2/starfive_visionfive2.c >> @@ -17,14 +17,6 @@ >> DECLARE_GLOBAL_DATA_PTR; >> #define JH7110_L2_PREFETCHER_BASE_ADDR 0x2030000 >> #define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000 >> -#define FDTFILE_MILK_V_MARS \ >> - "starfive/jh7110-milkv-mars.dtb" >> -#define FDTFILE_VISIONFIVE2_1_2A \ >> - "starfive/jh7110-starfive-visionfive-2-v1.2a.dtb" >> -#define FDTFILE_VISIONFIVE2_1_3B \ >> - "starfive/jh7110-starfive-visionfive-2-v1.3b.dtb" >> -#define FDTFILE_PINE64_STAR64 \ >> - "starfive/jh7110-pine64-star64.dtb" >> >> /* enable U74-mc hart1~hart4 prefetcher */ >> static void enable_prefetcher(void) >> @@ -45,51 +37,6 @@ static void enable_prefetcher(void) >> } >> } >> >> -/** >> - * set_fdtfile() - set the $fdtfile variable based on the board revision >> - */ >> -static void set_fdtfile(void) >> -{ >> - u8 version; >> - const char *fdtfile; >> - const char *product_id; >> - >> - fdtfile = env_get("fdtfile"); >> - if (fdtfile) >> - return; >> - >> - product_id = get_product_id_from_eeprom(); >> - if (!product_id) { >> - log_err("Can't read EEPROM\n"); >> - return; >> - } >> - if (!strncmp(product_id, "MARS", 4)) { >> - fdtfile = FDTFILE_MILK_V_MARS; >> - } else if (!strncmp(product_id, "VF7110", 6)) { >> - version = get_pcb_revision_from_eeprom(); >> - >> - switch (version) { >> - case 'a': >> - case 'A': >> - fdtfile = FDTFILE_VISIONFIVE2_1_2A; >> - break; >> - >> - case 'b': >> - case 'B': >> - default: >> - fdtfile = FDTFILE_VISIONFIVE2_1_3B; >> - break; >> - } >> - } else if (!strncmp(product_id, "STAR64", 6)) { >> - fdtfile = FDTFILE_PINE64_STAR64; >> - } else { >> - log_err("Unknown product\n"); >> - return; >> - } >> - >> - env_set("fdtfile", fdtfile); >> -} >> - >> int board_init(void) >> { >> enable_caches(); >> @@ -98,14 +45,6 @@ int board_init(void) >> return 0; >> } >> > >> -int board_late_init(void) >> -{ >> - if (CONFIG_IS_ENABLED(ID_EEPROM)) >> - set_fdtfile(); >> - >> - return 0; >> -} >> - > > > Need to keep board_late_init() or compile fails. Will fix in v2.
Alternatively you can drop the "select BOARD_LATE_INIT" from arch/riscv/Kconfig. Regards, Samuel >> int board_fdt_blob_setup(void **fdtp) >> { >> if (gd->arch.firmware_fdt_addr) { > > -E