[PATCH v3 13/13] board: starfive: spl: Support multiple DTBs for JH7110 based boards
Hal Feng
hal.feng at linux.starfivetech.com
Wed Nov 6 02:53:48 CET 2024
On 11/5/2024 2:47 PM, Heinrich Schuchardt wrote:
> On 11/5/24 04:43, Hal Feng wrote:
>> Get product ID and PCB version from EEPROM, use them to select
>> the correct DTB.
>>
>> Signed-off-by: Hal Feng <hal.feng at starfivetech.com>
>> ---
>> board/starfive/visionfive2/spl.c | 25 +++++++++++++++++++++++--
>> 1 file changed, 23 insertions(+), 2 deletions(-)
>>
>> diff --git a/board/starfive/visionfive2/spl.c b/board/starfive/visionfive2/spl.c
>> index cf7f39d5c5..4396583026 100644
>> --- a/board/starfive/visionfive2/spl.c
>> +++ b/board/starfive/visionfive2/spl.c
>> @@ -113,7 +113,28 @@ void board_init_f(ulong dummy)
>> #if CONFIG_IS_ENABLED(LOAD_FIT)
>> int board_fit_config_name_match(const char *name)
>> {
>> - /* boot using first FIT config */
>> - return 0;
>> + const char *product_id;
>> + u8 version;
>> +
>> + product_id = get_product_id_from_eeprom();
>> +
>> + if (!strncmp(product_id, "VF7110", 6)) {
>> + version = get_pcb_revision_from_eeprom();
>> + if ((version == 'b' || version == 'B') &&
>> + !strcmp(name, "jh7110-starfive-visionfive-2-v1.3b"))
>> + return 0;
>> +
>> + if ((version == 'a' || version == 'A') &&
>> + !strcmp(name, "jh7110-starfive-visionfive-2-v1.2a"))
>> + return 0;
>> + } else if (!strncmp(product_id, "MARS", 4) &&
>> + !strcmp(name, "jh7110-milkv-mars")) {
>> + return 0;
>
> Hello Hal,
>
> I have seen
>
> Milk-V Mars CM: MARC-V10-2340-D004E016-xxxxxxxx
> Milk-V Mars CM lite: MARC-V10-2340-D002E016-xxxxxxxx
>
> Obviously here they got the eMMC size wrong. Milk-V should have used
> E000 for the lite version. But at least they provide a correction
> procedure in
> https://milkv.io/docs/mars/compute-module/update-eeprom
> and confirm the usage of the values MARC and E###.
>
> So here we should be able to detect these two boards, too.
>
> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
OK, will add detection for these two boards.
Thanks for your review.
Best regards,
Hal
>
>> + } else if (!strncmp(product_id, "STAR64", 6) &&
>> + !strcmp(name, "jh7110-pine64-star64")) {
>> + return 0;
>> + }
>> +
>> + return -EINVAL;
>> }
>> #endif
>
>
More information about the U-Boot
mailing list