diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c index 07dcca26b3..9847e0efdb 100644 --- a/board/starfive/visionfive2/starfive_visionfive2.c +++ b/board/starfive/visionfive2/starfive_visionfive2.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include #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; diff --git a/configs/starfive_visionfive2_defconfig b/configs/starfive_visionfive2_defconfig index e9b63e5b84..33f9ec8ad6 100644 --- a/configs/starfive_visionfive2_defconfig +++ b/configs/starfive_visionfive2_defconfig @@ -125,3 +125,4 @@ CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PCI=y CONFIG_USB_KEYBOARD=y +CONFIG_MISC_INIT_R=y