
On Wed, Nov 6, 2013 at 8:25 AM, Lokesh Vutla lokeshvutla@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 lokeshvutla@ti.com wrote:
From: Sekhar Nori nsekhar@ti.com
Add support for reading onboard EEPROM to enable board detection.
Signed-off-by: Sekhar Nori nsekhar@ti.com Signed-off-by: Lokesh Vutla lokeshvutla@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.