On Wed, Nov 6, 2013 at 8:25 AM, Lokesh Vutla <lokeshvu...@ti.com> wrote: > On Wednesday 06 November 2013 06:08 PM, Vaibhav Bedia wrote: >> 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? > No, the header is still same. It is 0xEE3355AA. >
My question was why ;) What's the point of adding the same magic value for a different SoC? Unless there's a good reason for doing so i think this needs to be fixed in the EEPROM programmer. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot