Custom BBB Black board with blank EEPROM


I have made a custom Beaglebone black board to go in a medical product I am designing. Its been silly-fiddly to get this up and running. 1) the SD card socket I sourced has the card-in switch inverted. This bit was easy to fix. 2) The EEPROM is blank and I understand I forgot to remove the write protect [school boy error] so they way forward is to just bypass the detection and make a patch to hard-wire the code for Beaglebone black or green.

Right now all I get is a single character on boot, which appears to be a ASCII 3 or ETX (end of text)

There was a patch for this for the old linux (around version 3), but I am migrating to the Wind River linux version 5.4.33 (or LTS10) which is a really nice version.

It did work, but I dont see why as it appears to put a pair of strings into a numeric return value.

Is there a newer reference anywhere for bypassing the EEPROM ? , as I can only find a really old one that doesnt work well.

Much appreciated.



diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 56f4984…e5f953e 100644
— a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -57,7 +57,8 @@ static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
static inline int __maybe_unused read_eeprom(void)

  • return ti_i2c_eeprom_am_get(-1, CONFIG_SYS_I2C_EEPROM_ADDR);
  • puts ("\nUse hard coded Board Name and Revision in case the EEPROM is not programmed.\n");
  • return ti_i2c_eeprom_am_set(“A335BNLT”, “00C0”);

— a/board/ti/common/board_detect.c
+++ b/board/ti/common/board_detect.c
@@ -160,6 +160,30 @@ already_read:
return 0;

+int __maybe_unused ti_i2c_eeprom_am_set(const char *name, const char *rev)

  • struct ti_common_eeprom *ep;

its fine - nailed it !

Index: git/board/ti/am335x/board.h