Re: [PATCH 1/1] riscv: set fdtfile on VisionFive 2
On Fri, Sep 22, 2023 at 09:54:23PM +0800, Shengyu Qu wrote: > Hello Leo, > > This patch seems only landed in next branch, not master. It is seriously > > needed to make visionfive 2 working properly. Could you merge it to > > master branch? > > Best regards, > > Shengyu > Hi Shengyu, Got it! Will do ASAP! Best regards, Leo > > Multiple revisions of the StarFive VisionFive 2 board exist. They can be > > identified by reading their EEPROM. > > > > Linux uses two differently named device-tree files. To load the correct > > device-tree we need to set $fdtfile to the device-tree file name that > > matches the board revision. > > > > Signed-off-by: Heinrich Schuchardt > > Reviewed-by: Leo Yu-Chi Liang > > Tested-by: Milan P. Stanić > > --- > > arch/riscv/Kconfig| 1 + > > .../visionfive2/starfive_visionfive2.c| 43 ++- > > 2 files changed, 42 insertions(+), 2 deletions(-) > > > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > > index 6771d8d919..1c62c2345b 100644 > > --- a/arch/riscv/Kconfig > > +++ b/arch/riscv/Kconfig > > @@ -26,6 +26,7 @@ config TARGET_SIFIVE_UNMATCHED > > config TARGET_STARFIVE_VISIONFIVE2 > > bool "Support StarFive VisionFive2 Board" > > + select BOARD_LATE_INIT > > config TARGET_TH1520_LPI4A > > bool "Support Sipeed's TH1520 Lichee PI 4A Board" > > diff --git a/board/starfive/visionfive2/starfive_visionfive2.c > > b/board/starfive/visionfive2/starfive_visionfive2.c > > index d609262b67..05d8d2d657 100644 > > --- a/board/starfive/visionfive2/starfive_visionfive2.c > > +++ b/board/starfive/visionfive2/starfive_visionfive2.c > > @@ -5,14 +5,20 @@ > >*/ > > #include > > -#include > > -#include > > #include > > #include > > +#include > > +#include > > +#include > > +#include > > #include > > #define JH7110_L2_PREFETCHER_BASE_ADDR0x203 > > #define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000 > > +#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" > > /* enable U74-mc hart1~hart4 prefetcher */ > > static void enable_prefetcher(void) > > @@ -33,6 +39,31 @@ 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; > > + > > + 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; > > + }; > > + > > + env_set("fdtfile", fdtfile); > > +} > > + > > int board_init(void) > > { > > enable_caches(); > > @@ -41,6 +72,14 @@ int board_init(void) > > return 0; > > } > > +int board_late_init(void) > > +{ > > + if (CONFIG_IS_ENABLED(ID_EEPROM)) > > + set_fdtfile(); > > + > > + return 0; > > +} > > + > > void *board_fdt_blob_setup(int *err) > > { > > *err = 0;
Re: [PATCH 1/1] riscv: set fdtfile on VisionFive 2
Hello Leo, This patch seems only landed in next branch, not master. It is seriously needed to make visionfive 2 working properly. Could you merge it to master branch? Best regards, Shengyu Multiple revisions of the StarFive VisionFive 2 board exist. They can be identified by reading their EEPROM. Linux uses two differently named device-tree files. To load the correct device-tree we need to set $fdtfile to the device-tree file name that matches the board revision. Signed-off-by: Heinrich Schuchardt Reviewed-by: Leo Yu-Chi Liang Tested-by: Milan P. Stanić --- arch/riscv/Kconfig| 1 + .../visionfive2/starfive_visionfive2.c| 43 ++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 6771d8d919..1c62c2345b 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -26,6 +26,7 @@ config TARGET_SIFIVE_UNMATCHED config TARGET_STARFIVE_VISIONFIVE2 bool "Support StarFive VisionFive2 Board" + select BOARD_LATE_INIT config TARGET_TH1520_LPI4A bool "Support Sipeed's TH1520 Lichee PI 4A Board" diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c index d609262b67..05d8d2d657 100644 --- a/board/starfive/visionfive2/starfive_visionfive2.c +++ b/board/starfive/visionfive2/starfive_visionfive2.c @@ -5,14 +5,20 @@ */ #include -#include -#include #include #include +#include +#include +#include +#include #include #define JH7110_L2_PREFETCHER_BASE_ADDR 0x203 #define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000 +#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" /* enable U74-mc hart1~hart4 prefetcher */ static void enable_prefetcher(void) @@ -33,6 +39,31 @@ 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; + + 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; + }; + + env_set("fdtfile", fdtfile); +} + int board_init(void) { enable_caches(); @@ -41,6 +72,14 @@ int board_init(void) return 0; } +int board_late_init(void) +{ + if (CONFIG_IS_ENABLED(ID_EEPROM)) + set_fdtfile(); + + return 0; +} + void *board_fdt_blob_setup(int *err) { *err = 0;
Re: [PATCH 1/1] riscv: set fdtfile on VisionFive 2
On Thu, 2023-09-07 at 13:21, Heinrich Schuchardt wrote: > Multiple revisions of the StarFive VisionFive 2 board exist. They can be > identified by reading their EEPROM. > > Linux uses two differently named device-tree files. To load the correct > device-tree we need to set $fdtfile to the device-tree file name that > matches the board revision. > > Signed-off-by: Heinrich Schuchardt > Reviewed-by: Leo Yu-Chi Liang Tested-by: Milan P. Stanić > --- > arch/riscv/Kconfig| 1 + > .../visionfive2/starfive_visionfive2.c| 43 ++- > 2 files changed, 42 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 6771d8d919..1c62c2345b 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -26,6 +26,7 @@ config TARGET_SIFIVE_UNMATCHED > > config TARGET_STARFIVE_VISIONFIVE2 > bool "Support StarFive VisionFive2 Board" > + select BOARD_LATE_INIT > > config TARGET_TH1520_LPI4A > bool "Support Sipeed's TH1520 Lichee PI 4A Board" > diff --git a/board/starfive/visionfive2/starfive_visionfive2.c > b/board/starfive/visionfive2/starfive_visionfive2.c > index d609262b67..05d8d2d657 100644 > --- a/board/starfive/visionfive2/starfive_visionfive2.c > +++ b/board/starfive/visionfive2/starfive_visionfive2.c > @@ -5,14 +5,20 @@ > */ > > #include > -#include > -#include > #include > #include > +#include > +#include > +#include > +#include > #include > > #define JH7110_L2_PREFETCHER_BASE_ADDR 0x203 > #define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000 > +#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" > > /* enable U74-mc hart1~hart4 prefetcher */ > static void enable_prefetcher(void) > @@ -33,6 +39,31 @@ 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; > + > + 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; > + }; > + > + env_set("fdtfile", fdtfile); > +} > + > int board_init(void) > { > enable_caches(); > @@ -41,6 +72,14 @@ int board_init(void) > return 0; > } > > +int board_late_init(void) > +{ > + if (CONFIG_IS_ENABLED(ID_EEPROM)) > + set_fdtfile(); > + > + return 0; > +} > + > void *board_fdt_blob_setup(int *err) > { > *err = 0;
Re: [PATCH 1/1] riscv: set fdtfile on VisionFive 2
On Thu, Sep 07, 2023 at 01:21:28PM +0200, Heinrich Schuchardt wrote: > Multiple revisions of the StarFive VisionFive 2 board exist. They can be > identified by reading their EEPROM. > > Linux uses two differently named device-tree files. To load the correct > device-tree we need to set $fdtfile to the device-tree file name that > matches the board revision. > > Signed-off-by: Heinrich Schuchardt > --- > arch/riscv/Kconfig| 1 + > .../visionfive2/starfive_visionfive2.c| 43 ++- > 2 files changed, 42 insertions(+), 2 deletions(-) Reviewed-by: Leo Yu-Chi Liang
[PATCH 1/1] riscv: set fdtfile on VisionFive 2
Multiple revisions of the StarFive VisionFive 2 board exist. They can be identified by reading their EEPROM. Linux uses two differently named device-tree files. To load the correct device-tree we need to set $fdtfile to the device-tree file name that matches the board revision. Signed-off-by: Heinrich Schuchardt --- arch/riscv/Kconfig| 1 + .../visionfive2/starfive_visionfive2.c| 43 ++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 6771d8d919..1c62c2345b 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -26,6 +26,7 @@ config TARGET_SIFIVE_UNMATCHED config TARGET_STARFIVE_VISIONFIVE2 bool "Support StarFive VisionFive2 Board" + select BOARD_LATE_INIT config TARGET_TH1520_LPI4A bool "Support Sipeed's TH1520 Lichee PI 4A Board" diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c index d609262b67..05d8d2d657 100644 --- a/board/starfive/visionfive2/starfive_visionfive2.c +++ b/board/starfive/visionfive2/starfive_visionfive2.c @@ -5,14 +5,20 @@ */ #include -#include -#include #include #include +#include +#include +#include +#include #include #define JH7110_L2_PREFETCHER_BASE_ADDR 0x203 #define JH7110_L2_PREFETCHER_HART_OFFSET 0x2000 +#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" /* enable U74-mc hart1~hart4 prefetcher */ static void enable_prefetcher(void) @@ -33,6 +39,31 @@ 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; + + 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; + }; + + env_set("fdtfile", fdtfile); +} + int board_init(void) { enable_caches(); @@ -41,6 +72,14 @@ int board_init(void) return 0; } +int board_late_init(void) +{ + if (CONFIG_IS_ENABLED(ID_EEPROM)) + set_fdtfile(); + + return 0; +} + void *board_fdt_blob_setup(int *err) { *err = 0; -- 2.40.1