mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-31 19:41:46 +00:00
board/BuR/common: add 'brdefaulip_setup' function
Many B&R boards are equipped with an I2C-EEPROM where various information can be stored. Today there is only a single byte for 'board_id' used. We write this 'board_id' into environment for later use during boot. If the value != 0xFF, meaning the byte is programmed, we modify the "brdefaultip" environment variable for setting an IP-Address based on board_id. Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
This commit is contained in:
parent
47656d98bd
commit
2fac7a8294
2 changed files with 36 additions and 0 deletions
|
@ -21,4 +21,6 @@ void enable_i2c_pin_mux(void);
|
|||
void enable_board_pin_mux(void);
|
||||
int board_eth_init(bd_t *bis);
|
||||
|
||||
int brdefaultip_setup(int bus, int chip);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -266,6 +266,40 @@ int ft_board_setup(void *blob, bd_t *bd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int brdefaultip_setup(int bus, int chip)
|
||||
{
|
||||
int rc;
|
||||
struct udevice *i2cdev;
|
||||
u8 u8buf = 0;
|
||||
char defip[256] = { 0 };
|
||||
|
||||
rc = i2c_get_chip_for_busnum(bus, chip, 2, &i2cdev);
|
||||
if (rc != 0) {
|
||||
printf("WARN: cannot probe baseboard EEPROM!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rc = dm_i2c_read(i2cdev, 0, &u8buf, 1);
|
||||
if (rc != 0) {
|
||||
printf("WARN: cannot read baseboard EEPROM!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (u8buf != 0xFF)
|
||||
snprintf(defip, sizeof(defip),
|
||||
"if test -r ${ipaddr}; then; else setenv ipaddr 192.168.60.%d; setenv serverip 192.168.60.254; setenv gatewayip 192.168.60.254; setenv netmask 255.255.255.0; fi;",
|
||||
u8buf);
|
||||
else
|
||||
strncpy(defip,
|
||||
"if test -r ${ipaddr}; then; else setenv ipaddr 192.168.60.1; setenv serverip 192.168.60.254; setenv gatewayip 192.168.60.254; setenv netmask 255.255.255.0; fi;",
|
||||
sizeof(defip));
|
||||
|
||||
env_set("brdefaultip", defip);
|
||||
env_set_hex("board_id", u8buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int overwrite_console(void)
|
||||
{
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue