On Mon, Nov 4, 2013 at 11:20 PM, Lokesh Vutla <lokeshvu...@ti.com> wrote: > From: Sekhar Nori <nsek...@ti.com> > > Add support for reading onboard EEPROM to enable > board detection. > > Signed-off-by: Sekhar Nori <nsek...@ti.com> > Signed-off-by: Lokesh Vutla <lokeshvu...@ti.com> > --- > arch/arm/include/asm/arch-am33xx/omap.h | 2 ++ > board/ti/am43xx/board.c | 46 > +++++++++++++++++++++++++++++++ > board/ti/am43xx/board.h | 32 +++++++++++++++++++++ > include/configs/am43xx_evm.h | 7 +++++ > 4 files changed, 87 insertions(+) > > diff --git a/arch/arm/include/asm/arch-am33xx/omap.h > b/arch/arm/include/asm/arch-am33xx/omap.h > index 2250721..10f05c9 100644 > --- a/arch/arm/include/asm/arch-am33xx/omap.h > +++ b/arch/arm/include/asm/arch-am33xx/omap.h > @@ -27,5 +27,7 @@ > #define NON_SECURE_SRAM_START 0x402F0400 > #define NON_SECURE_SRAM_END 0x40340000 > #define SRAM_SCRATCH_SPACE_ADDR 0x4033C000 > +#define AM4372_BOARD_NAME_START SRAM_SCRATCH_SPACE_ADDR > +#define AM4372_BOARD_NAME_END SRAM_SCRATCH_SPACE_ADDR + 0xC > #endif > #endif > diff --git a/board/ti/am43xx/board.c b/board/ti/am43xx/board.c > index dcd8cbb..4fc1a40 100644 > --- a/board/ti/am43xx/board.c > +++ b/board/ti/am43xx/board.c > @@ -9,6 +9,8 @@ > */ > > #include <common.h> > +#include <i2c.h> > +#include <asm/errno.h> > #include <spl.h> > #include <asm/arch/clock.h> > #include <asm/arch/sys_proto.h> > @@ -17,6 +19,50 @@ > > DECLARE_GLOBAL_DATA_PTR; > > +/* > + * Read header information from EEPROM into global structure. > + */ > +static int read_eeprom(struct am43xx_board_id *header) > +{ > + /* Check if baseboard eeprom is available */ > + if (i2c_probe(CONFIG_SYS_I2C_EEPROM_ADDR)) { > + printf("Could not probe the EEPROM at 0x%x\n", > + CONFIG_SYS_I2C_EEPROM_ADDR); > + return -ENODEV; > + } > + > + /* read the eeprom using i2c */ > + if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, 2, (uchar *)header, > + sizeof(struct am43xx_board_id))) { > + printf("Could not read the EEPROM\n"); > + return -EIO; > + } > + > + if (header->magic != 0xEE3355AA) {
Why is the header the same as AM335x? Shouldn't it be something like 0xEE3344AA or whatever? > + /* > + * read the eeprom using i2c again, > + * but use only a 1 byte address > + */ > + if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, 1, (uchar > *)header, > + sizeof(struct am43xx_board_id))) { > + printf("Could not read the EEPROM at 0x%x\n", > + CONFIG_SYS_I2C_EEPROM_ADDR); > + return -EIO; > + } > + > + if (header->magic != 0xEE3355AA) { Same here. Regards, Vaibhav _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot