diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_eeprom.c | 20 | ||||
-rw-r--r-- | common/console.c | 14 | ||||
-rw-r--r-- | common/main.c | 26 |
3 files changed, 52 insertions, 8 deletions
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index 32bab1a..3db0bca 100644 --- a/common/cmd_eeprom.c +++ b/common/cmd_eeprom.c @@ -327,6 +327,26 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn return rcode; } +#ifndef CONFIG_SPI +int +eeprom_probe (unsigned dev_addr, unsigned offset) +{ + unsigned char chip; + + /* Probe the chip address + */ +#if CFG_I2C_EEPROM_ADDR_LEN == 1 && !defined(CONFIG_SPI_X) + chip = offset >> 8; /* block number */ +#else + chip = offset >> 16; /* block number */ +#endif /* CFG_I2C_EEPROM_ADDR_LEN, CONFIG_SPI_X */ + + chip |= dev_addr; /* insert device address */ + + return (i2c_probe (chip)); +} +#endif + /*----------------------------------------------------------------------- * Set default values */ diff --git a/common/console.c b/common/console.c index 86ed584..8c94aa7 100644 --- a/common/console.c +++ b/common/console.c @@ -232,6 +232,20 @@ void printf (const char *fmt, ...) puts (printbuffer); } +void vprintf (const char *fmt, va_list args) +{ + uint i; + char printbuffer[CFG_PBSIZE]; + + /* For this to work, printbuffer must be larger than + * anything we ever want to print. + */ + i = vsprintf (printbuffer, fmt, args); + + /* Print the string */ + puts (printbuffer); +} + /* test if ctrl-c was pressed */ static int ctrlc_disabled = 0; /* see disable_ctrl() */ static int ctrlc_was_pressed = 0; diff --git a/common/main.c b/common/main.c index 6192dff..f538870 100644 --- a/common/main.c +++ b/common/main.c @@ -319,13 +319,7 @@ void main_loop (void) debug ("### main_loop entered: bootdelay=%d\n\n", bootdelay); # ifdef CONFIG_BOOT_RETRY_TIME - s = getenv ("bootretry"); - if (s != NULL) - retry_time = (int)simple_strtoul(s, NULL, 10); - else - retry_time = CONFIG_BOOT_RETRY_TIME; - if (retry_time >= 0 && retry_time < CONFIG_BOOT_RETRY_MIN) - retry_time = CONFIG_BOOT_RETRY_MIN; + init_cmd_timeout (); # endif /* CONFIG_BOOT_RETRY_TIME */ s = getenv ("bootcmd"); @@ -422,10 +416,26 @@ void main_loop (void) #endif /*CFG_HUSH_PARSER*/ } +#ifdef CONFIG_BOOT_RETRY_TIME +/*************************************************************************** + * initialise command line timeout + */ +void init_cmd_timeout(void) +{ + char *s = getenv ("bootretry"); + + if (s != NULL) + retry_time = (int)simple_strtoul(s, NULL, 10); + else + retry_time = CONFIG_BOOT_RETRY_TIME; + + if (retry_time >= 0 && retry_time < CONFIG_BOOT_RETRY_MIN) + retry_time = CONFIG_BOOT_RETRY_MIN; +} + /*************************************************************************** * reset command line timeout to retry_time seconds */ -#ifdef CONFIG_BOOT_RETRY_TIME void reset_cmd_timeout(void) { endtime = endtick(retry_time); |