Dear Kyle Moffett, In message <1324001741-15282-1-git-send-email-kyle.d.moff...@boeing.com> you wrote: > A board with CONFIG_SPI and CONFIG_ENV_EEPROM_IS_ON_I2C will get: > #define CONFIG_SYS_DEF_EEPROM_ADDR 0 > > Instead of the expected: > #define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR > > As a result, the "eeprom" command is unusable because it calls > i2c_read() and i2c_write() but always uses an address of 0x00. ... > -#if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) > +#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) > +# define CONFIG_SYS_DEF_EEPROM_ADDR 0
That should probably rather be # define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_SPI_EEPROM_ADDR instead? > +#elif !defined(CONFIG_SYS_I2C_EEPROM_ADDR) > # define CONFIG_SYS_DEF_EEPROM_ADDR 0 > #else > -#if !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) > # define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR > #endif > -#endif /* CONFIG_SPI || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) */ All this code should be moved out of common.h. Actually all users of CONFIG_SYS_DEF_EEPROM_ADDR (if they don't even define this variable directly in their private code) only use I2C, so they should probably rather use CONFIG_SYS_I2C_EEPROM_ADDR instead (board/w7o/w7o.c, board/w7o/cmd_vpd.c, board/w7o/vpd.c, board/mpl/common/common_util.c) Only common/cmd_eeprom.c, common/env_eeprom.c appear to support both I2C and SPI. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de "Do we define evil as the absence of goodness? It seems only logical that shit happens--we discover this by the process of elimination." -- Larry Wall _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot