Hello Wolfgang, I actually try to use Environment on an I2C EEprom with SPI enabled, and found in include/common.h the following defines @line 326ff:
/* * Set this up regardless of board * type, to prevent errors. */ #if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) # define CONFIG_SYS_DEF_EEPROM_ADDR 0 #else # define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR #endif /* CONFIG_SPI || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) */ So, it seems to me, that, if SPI is enabled, it is not possible to use an I2C EEprom with an address != 0, because in common/env_eeprom.c @line79 in env_init(): /* read old CRC */a eeprom_read (CONFIG_SYS_DEF_EEPROM_ADDR, CONFIG_ENV_OFFSET+offsetof(env_t,crc), (uchar *)&crc, sizeof(ulong)); CONFIG_SYS_DEF_EEPROM_ADDR is fix used ... I tried to use "git blame" to find out where this comes from, but this is in code since the "initial revision" ... so I ask here on the mailinglist, if somebody knows, if this is a feature or a bug? BTW, I think it should be: diff --git a/include/common.h b/include/common.h index 9e4b859..411563b 100644 --- a/include/common.h +++ b/include/common.h @@ -327,7 +327,7 @@ extern void pic_write (uchar reg, uchar val); * Set this up regardless of board * type, to prevent errors. */ -#if defined(CONFIG_SPI) || !defined(CONFIG_SYS_I2C_EEPROM_ADDR) +#if defined(CONFIG_SPI) && !defined(CONFIG_SYS_I2C_EEPROM_ADDR) # define CONFIG_SYS_DEF_EEPROM_ADDR 0 #else # define CONFIG_SYS_DEF_EEPROM_ADDR CONFIG_SYS_I2C_EEPROM_ADDR What do you think? thanks Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot