From 6dd652fa4d8591a32e2707a91f4582ed13011b17 Mon Sep 17 00:00:00 2001 From: wdenk Date: Thu, 19 Jun 2003 23:40:20 +0000 Subject: Patches by Murray Jensen, 17 Jun 2003: - Hymod board database mods: add "who" field and new xilinx chip types - provide new "init_cmd_timeout()" function so code external to "common/main.c" can use the "reset_cmd_timeout()" function before entering the main loop - add DTT support for adm1021 (new file dtt/adm1021.c; config slightly different. see include/configs/hymod.h for an example (requires CONFIG_DTT_ADM1021, CONFIG_DTT_SENSORS, and CFG_DTT_ADM1021 defined) - add new "eeprom_probe()" function which has similar args and behaves in a similar way to "eeprom_read()" etc. - add 8260 FCC ethernet loopback code (new "eth_loopback_test()" function which is enabled by defining CONFIG_ETHER_LOOPBACK_TEST) - gdbtools copyright update - ensure that set_msr() executes the "sync" and "isync" instructions after the "mtmsr" instruction in cpu/mpc8260/interrupts.c - 8260 I/O ports fix: Open Drain should be set last when configuring - add SIU IRQ defines for 8260 - allow LDSCRIPT override and OBJCFLAGS initialization: change to config.mk to allow board configurations to override the GNU linker script, selected via the LDSCRIPT, make variable, and to give an initial value to the OBJCFLAGS make variable - 8260 i2c enhancement: o correctly extends the timeout depending on the size of all queued messages for both transmit and receive o will not continue with receive if transmit times out o ensures that the error callback is done for all queued tx and rx messages o correctly detects both tx and rx timeouts, only delivers one to the callback, and does not overwrite an earlier error o logic in i2c_probe now correct - add "vprintf()" function so that "panic()" function can be technically correct - many Hymod board changes --- common/cmd_eeprom.c | 20 ++++++++++++++++++++ common/console.c | 14 ++++++++++++++ common/main.c | 26 ++++++++++++++++++-------- 3 files changed, 52 insertions(+), 8 deletions(-) (limited to 'common') 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); -- cgit v1.1