[EMAIL PROTECTED] wrote: > In message > <[EMAIL PROTECTED]> you > wrote: >> ARM: This patch adds support for the Lyrtech SFF-SDR >> board, based on the TI DaVinci architecture (ARM926EJS). > ... >> +int read_mac_address(uint8_t *buf) >> +{ >> + u_int32_t value, mac[2], address; >> + >> + /* Read Integrity data structure checkword. */ >> + if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET, >> + CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4)) { >> + printf("Read from EEPROM @ 0x%02x failed\n", >> + CFG_I2C_EEPROM_ADDR); >> + return 1; > > # 1 > # 2 > # 3 > # 4 > # 5 > Instead of repeating the same code 5 times, replace it by a "goto > err;" > and add here: > > err: > printf("Read from EEPROM @ 0x%02x failed\n", CFG_I2C_EEPROM_ADDR); > return 1; Fixed. >> + /* Configure I2C switch (PCA9543) to enable channel 0. */ >> + tmp[0] = CFG_I2C_PCA9543_ENABLE_CH0; >> + if (i2c_write(CFG_I2C_PCA9543_ADDR, 0, >> + CFG_I2C_PCA9543_ADDR_LEN, tmp, 1)) >> + printf("Write to MUX @ 0x%02x failed\n", CFG_I2C_PCA9543_ADDR); > > And this is not an error that needs to be handled? Fixed.
>> + /* Set Ethernet MAC address from EEPROM if available. */ >> + if (read_mac_address(buf) == 0) { >> + if ((buf[0] != 0xff) && (getenv("ethaddr") == NULL)) { >> + sprintf((char *)&tmp[0], + >> "%02x:%02x:%02x:%02x:%02x:%02x", >> + buf[0], buf[1], buf[2], buf[3], >> + buf[4], buf[5]); >> + setenv("ethaddr", (char *)&tmp[0]); >> + } >> + } > > Hm. I always thought this was documented somewhere (probably it's in > the > CHANGELOG ?), but I didn't find it right now. The intended "standard" > behaviour should be: > > If there is a MAC address in the environment, and if it is not > identical to the MAC address in the ROM, then a warning shall be > printed, and the MAC address from the environment be used. > > If there is no MAC address in the environment, then it shall be > initialized (silently) from the value in the ROM. > > See for example drivers/net/cs8900.c (which is the first driver where > we implemented this, IIRC). Fixed. I used the exact same code found in drivers/net/cs8900.c. >> + /* For most DaVinci boards, U-Boot is copied in RAM by the UBL, >> + * so we are always in the relocated state. This is >> + * necessary for command history to work. */ >> + gd->flags |= GD_FLG_RELOC; > > "most" != "all". What happens for the N (N = all - most) remaining > boards? Fixed. Hugo Villeneuve Hardware developer | Concepteur matériel Lyrtech Phone/Tél. : (1) (418) 877-4644 #2395 Toll-free/Sans frais - Canada & USA : (1) (888) 922-4644 #2395 Fax/Téléc. : (1) (418) 877-7710 www.lyrtech.com Infinite possibilities...TM ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users