read_ddr_info() passes i to read_tlvinfo_tlv_eeprom() as the EEPROM
device index before giving it a value, so which device is read depends
on whatever is on the stack. read_product_name() does the same call
with i set to 0.

Initialise i to 0 in read_ddr_info() as well.

Fixes: 83026cf8f90b ("spacemit: k1: Add DDR firmware support to SPL")
Signed-off-by: Hung-Chun Tseng <[email protected]>
---
 board/spacemit/k1/spl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/spacemit/k1/spl.c b/board/spacemit/k1/spl.c
index cc0e26bb0..60f5d8c56 100644
--- a/board/spacemit/k1/spl.c
+++ b/board/spacemit/k1/spl.c
@@ -332,7 +332,7 @@ int read_ddr_info(struct ddr_cfg *cfg)
        struct tlvinfo_header *tlv_hdr;
        struct tlvinfo_tlv *tlv_entry;
        u32 size, entry_size;
-       int ret, i;
+       int ret, i = 0;
        bool found = false;
 
        if (!cfg)
-- 
2.43.0

Reply via email to