summaryrefslogtreecommitdiff
path: root/board/ti/j784s4/evm.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/ti/j784s4/evm.c')
-rw-r--r--board/ti/j784s4/evm.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/board/ti/j784s4/evm.c b/board/ti/j784s4/evm.c
index f691ea4ebb..07e7d9cc8b 100644
--- a/board/ti/j784s4/evm.c
+++ b/board/ti/j784s4/evm.c
@@ -28,6 +28,8 @@
#define board_is_j784s4_evm() board_ti_k3_is("J784S4-EVM")
+#define board_is_am69_sk() board_ti_k3_is("AM69-SK")
+
DECLARE_GLOBAL_DATA_PTR;
int board_init(void)
@@ -77,8 +79,15 @@ int dram_init_banksize(void)
#ifdef CONFIG_SPL_LOAD_FIT
int board_fit_config_name_match(const char *name)
{
- if (!strcmp(name, "J784S4X-EVM"))
- return 0;
+ bool eeprom_read = board_ti_was_eeprom_read();
+
+ if (!eeprom_read || board_is_j784s4_evm()) {
+ if ((!strcmp(name, "k3-j784s4-evm")) || (!strcmp(name, "k3-j784s4-r5-evm")))
+ return 0;
+ } else if (!eeprom_read || board_is_am69_sk()) {
+ if ((!strcmp(name, "k3-am69-sk")) || (!strcmp(name, "k3-am69-r5-sk")))
+ return 0;
+ }
return -1;
}
@@ -105,11 +114,20 @@ int do_board_detect(void)
{
int ret;
+ if (board_ti_was_eeprom_read())
+ return 0;
+
ret = ti_i2c_eeprom_am6_get_base(CONFIG_EEPROM_BUS_ADDRESS,
CONFIG_EEPROM_CHIP_ADDRESS);
- if (ret)
- pr_err("Reading on-board EEPROM at 0x%02x failed %d\n",
- CONFIG_EEPROM_CHIP_ADDRESS, ret);
+ if (ret) {
+ printf("EEPROM not available at 0x%02x, trying to read at 0x%02x\n",
+ CONFIG_EEPROM_CHIP_ADDRESS, CONFIG_EEPROM_CHIP_ADDRESS + 1);
+ ret = ti_i2c_eeprom_am6_get_base(CONFIG_EEPROM_BUS_ADDRESS,
+ CONFIG_EEPROM_CHIP_ADDRESS + 1);
+ if (ret)
+ pr_err("Reading on-board EEPROM at 0x%02x failed %d\n",
+ CONFIG_EEPROM_CHIP_ADDRESS + 1, ret);
+ }
return ret;
}
@@ -136,6 +154,8 @@ static void setup_board_eeprom_env(void)
if (board_is_j784s4_evm())
name = "j784s4";
+ else if (board_is_am69_sk())
+ name = "am69-sk";
else
printf("Unidentified board claims %s in eeprom header\n",
board_ti_get_name());