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

2012-01-05 Thread Moffett, Kyle D
Any comments on this patch?

If not, could it please be applied/merged?  It fixes a definite
bug on the HWW-1U-1A board.

Cheers,
Kyle Moffett

--
Curious about my work on the Debian powerpcspe port?
I'm keeping a blog here: http://pureperl.blogspot.com/

On Dec 15, 2011, at 21:15, Kyle Moffett 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.
 
 This fixes the logic for that particular case, hopefully without
 breaking any other board configurations.
 
 Signed-off-by: Kyle Moffett kyle.d.moff...@boeing.com
 Cc: Heiko Schocher h...@denx.de
 ---
 include/common.h |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/include/common.h b/include/common.h
 index 5cfdd76..8a1b401 100644
 --- a/include/common.h
 +++ b/include/common.h
 @@ -402,13 +402,13 @@ 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_ENV_EEPROM_IS_ON_I2C)
 +# define CONFIG_SYS_DEF_EEPROM_ADDR 0
 +#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) */
 
 #if defined(CONFIG_SPI)
 extern void spi_init_f (void);
 -- 
 1.7.7.3
 

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2012-01-05 Thread Wolfgang Denk
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