[U-Boot] [PATCH] Fix logic for selection of CONFIG_SYS_DEF_EEPROM_ADDR

Wolfgang Denk wd at denx.de
Thu Jan 5 20:55:53 CET 2012


Dear Kyle Moffett,

In message <1324001741-15282-1-git-send-email-Kyle.D.Moffett at 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: wd at 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


More information about the U-Boot mailing list