Skip to content

Commit 6a2789b

Browse files
committed
u-boot: v2026.04: helios64: add ensure_otp_data_ready() to get_variant()
get_variant() was the only public OTP accessor that read the otp struct without first validating/loading the cache. After a transient SPI failure during board_early_init_r(), it could return a misleading variant string from stale/partial data instead of exercising the retry path that set_board_info() and mac_read_from_otp() already use. Also make var_str static const — it's a read-only lookup table that doesn't need to be rebuilt on every call. Suggested-by: coderabbitai[bot]
1 parent fe7e77f commit 6a2789b

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

  • patch/u-boot/v2026.04/board_helios64/board

patch/u-boot/v2026.04/board_helios64/board/sys_otp.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,15 +229,18 @@ int get_revision(int *major, int *minor)
229229

230230
const char *get_variant(void)
231231
{
232-
const char* var_str[BOARD_VARIANT_MAX] = {
232+
static const char * const var_str[BOARD_VARIANT_MAX] = {
233233
"Unknown",
234234
"Engineering Sample",
235235
"4GB non ECC"
236236
};
237237

238+
if (ensure_otp_data_ready())
239+
return var_str[BOARD_VARIANT_INVALID];
240+
238241
if ((otp.variant < BOARD_VARIANT_ENG_SAMPLE) ||
239242
(otp.variant >= BOARD_VARIANT_MAX))
240-
return var_str[0];
243+
return var_str[BOARD_VARIANT_INVALID];
241244

242245
return var_str[otp.variant];
243246
}

0 commit comments

Comments
 (0)