Hi,
its fine - nailed it !
Index: git/board/ti/am335x/board.h
===================================================================
--- git.orig/board/ti/am335x/board.h
+++ git/board/ti/am335x/board.h
@@ -30,7 +30,10 @@ static inline int board_is_bone(void)
static inline int board_is_bone_lt(void)
{
- return board_ti_is("A335BNLT");
+/* return board_ti_is("A335BNLT"); board is Beaglebone Black */
+ puts ("\nFound board - setting up \n");
+ return ti_i2c_eeprom_am_set("A335BNLT", "00C0");
+
}
static inline int board_is_pb(void)
@@ -50,8 +53,9 @@ static inline int board_is_bben(void)
static inline int board_is_beaglebonex(void)
{
- return board_is_pb() || board_is_bone() || board_is_bone_lt() ||
- board_is_bbg1() || board_is_bben();
+ /* return board_is_pb() || board_is_bone() || board_is_bone_lt() ||
+ board_is_bbg1() || board_is_bben(); */
+ return 1;
}
static inline int board_is_evm_sk(void)
Index: git/board/ti/common/board_detect.c
===================================================================
--- git.orig/board/ti/common/board_detect.c
+++ git/board/ti/common/board_detect.c
@@ -172,10 +172,11 @@ int __maybe_unused ti_i2c_eeprom_am_set(
{
struct ti_common_eeprom *ep;
- if (!name || !rev)
- return -1;
+/* if (!name || !rev)
+ return -1; */
ep = TI_EEPROM_DATA;
+
if (ep->header == TI_EEPROM_HEADER_MAGIC)
goto already_set;
@@ -189,7 +190,7 @@ int __maybe_unused ti_i2c_eeprom_am_set(
ep->header = TI_EEPROM_HEADER_MAGIC;
already_set:
- return 0;
+ return 1;
}
int __maybe_unused ti_i2c_eeprom_am_get(int bus_addr, int dev_addr)
On Thu, May 14, 2020 at 12:57 PM Rich_d <[email protected]> wrote:
> Hi,
>
> 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.
>
>
> Cheers
>
> Richard
>
>
> 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");
> }
>
> #ifndef CONFIG_DM_SERIAL
> --- 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;
> +
> + if (!name || !rev)
> + return -1;
> +
> + ep = TI_EEPROM_DATA;
> + if (ep->header == TI_EEPROM_HEADER_MAGIC)
> + goto already_set;
> +
> + /* Set to 0 all fields */
> + memset(ep, 0, sizeof(*ep));
> + strncpy(ep->name, name, TI_EEPROM_HDR_NAME_LEN);
> + strncpy(ep->version, rev, TI_EEPROM_HDR_REV_LEN);
> + /* Some dummy serial number to identify the platform */
> + strncpy(ep->serial, "0000", TI_EEPROM_HDR_SERIAL_LEN);
> + /* Mark it with a valid header */
> + ep->header = TI_EEPROM_HEADER_MAGIC;
> +
> +already_set:
> + return 0;
> +}
> +
> int __maybe_unused ti_i2c_eeprom_dra7_get(int bus_addr, int dev_addr)
> {
> int rc, offset = 0;
> --- a/board/ti/common/board_detect.h
> +++ b/board/ti/common/board_detect.h
> @@ -111,6 +111,24 @@ struct ti_common_eeprom {
> int ti_i2c_eeprom_am_get(int bus_addr, int dev_addr);
>
> /**
> + * ti_i2c_eeprom_am_set() - Setup the eeprom data with predefined values
> + * @name: Name of the board
> + * @rev: Revision of the board
> + *
> + * In some situations the EEPROM used for board detection may not be
> + * programmed or simply programmed incorrectly. Therefore, it may be
> + * necessary to "simulate" reading the contents of the EEPROM to set
> + * appropriate variables used in the board detection code.
> + * For those platforms, provide a handy function to pre-program
> information.
> + *
> + * NOTE: many eeprom information such as serial number, mac address etc
> is not
> + * available.
> + *
> + * Return: 0 if all went fine, else return error.
> + */
> +int ti_i2c_eeprom_am_set(const char *name, const char *rev);
> +
> +/**
> * ti_i2c_eeprom_dra7_get() - Consolidated eeprom data for DRA7 TI EVMs
> * @bus_addr: I2C bus address
> * @dev_addr: I2C slave address
>
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beagleboard/3d6e4e2e-a50d-488e-9e50-31a0bc0ff25c%40googlegroups.com
> <https://groups.google.com/d/msgid/beagleboard/3d6e4e2e-a50d-488e-9e50-31a0bc0ff25c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/CABi%3DvYAj7JMz9dgy%3DkJdOZ7gW%3D2sZ5G9Q%2ByzXoNGNvS8B0TP4Q%40mail.gmail.com.