summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Hermann <uwe@hermann-uwe.de>2008-11-11 14:26:03 +0000
committerUwe Hermann <uwe@hermann-uwe.de>2008-11-11 14:26:03 +0000
commit3b6c527322259d6ae7878411ca26ee6dd9374b3c (patch)
tree9e4b8603e0864aff57aa0642ca4e5e119191904f
parent779b3e312901d4ef533d5cc13f551bab2823de08 (diff)
downloadcoreboot-3b6c527322259d6ae7878411ca26ee6dd9374b3c.tar.xz
Always enable serial before SMBus (or as early as possible), as the SMBus
enable may do printk()s which result in a 2 minute delay on some boards. Fix this on all boards which currently do smbus_enable() before enabling the serial console. Thanks to Elia Yehuda <z4ziggy@gmail.com> for tracking this bug down. Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Peter Stuge <peter@stuge.se> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3742 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/mainboard/asus/mew-vm/auto.c4
-rw-r--r--src/mainboard/msi/ms6178/auto.c5
-rw-r--r--src/mainboard/rca/rm4100/auto.c4
-rw-r--r--src/mainboard/thomson/ip1000/auto.c4
-rw-r--r--src/mainboard/via/epia-m/auto.c4
5 files changed, 11 insertions, 10 deletions
diff --git a/src/mainboard/asus/mew-vm/auto.c b/src/mainboard/asus/mew-vm/auto.c
index b0874e2069..78f9f48254 100644
--- a/src/mainboard/asus/mew-vm/auto.c
+++ b/src/mainboard/asus/mew-vm/auto.c
@@ -66,12 +66,12 @@ static void main(unsigned long bist)
if (bist == 0)
early_mtrr_init();
- enable_smbus();
-
lpc47b272_enable_serial(SERIAL_DEV, TTYS0_BASE);
uart_init();
console_init();
+ enable_smbus();
+
/* Halt if there was a built in self test failure. */
report_bist_failure(bist);
diff --git a/src/mainboard/msi/ms6178/auto.c b/src/mainboard/msi/ms6178/auto.c
index 0ae4e0a1b8..d92aa6b53b 100644
--- a/src/mainboard/msi/ms6178/auto.c
+++ b/src/mainboard/msi/ms6178/auto.c
@@ -53,8 +53,6 @@ static void main(unsigned long bist)
if (bist == 0)
early_mtrr_init();
- enable_smbus();
-
/* FIXME */
outb(0x87, 0x2e);
outb(0x87, 0x2e);
@@ -64,6 +62,9 @@ static void main(unsigned long bist)
uart_init();
console_init();
+
+ enable_smbus();
+
report_bist_failure(bist);
/* dump_spd_registers(&memctrl[0]); */
sdram_initialize(ARRAY_SIZE(memctrl), memctrl);
diff --git a/src/mainboard/rca/rm4100/auto.c b/src/mainboard/rca/rm4100/auto.c
index 14c50cb78c..833f5ba3fd 100644
--- a/src/mainboard/rca/rm4100/auto.c
+++ b/src/mainboard/rca/rm4100/auto.c
@@ -101,13 +101,13 @@ static void main(unsigned long bist)
hard_reset();
}
- enable_smbus();
-
smscsuperio_enable_serial(SERIAL_DEV, TTYS0_BASE);
mb_gpio_init();
uart_init();
console_init();
+ enable_smbus();
+
/* Prevent the TCO timer from rebooting us */
i82801xx_halt_tco_timer();
diff --git a/src/mainboard/thomson/ip1000/auto.c b/src/mainboard/thomson/ip1000/auto.c
index 205d11b63e..8760f89d6f 100644
--- a/src/mainboard/thomson/ip1000/auto.c
+++ b/src/mainboard/thomson/ip1000/auto.c
@@ -101,13 +101,13 @@ static void main(unsigned long bist)
hard_reset();
}
- enable_smbus();
-
smscsuperio_enable_serial(SERIAL_DEV, TTYS0_BASE);
mb_gpio_init();
uart_init();
console_init();
+ enable_smbus();
+
/* Prevent the TCO timer from rebooting us */
i82801xx_halt_tco_timer();
diff --git a/src/mainboard/via/epia-m/auto.c b/src/mainboard/via/epia-m/auto.c
index ac50b96373..04ef1a74e7 100644
--- a/src/mainboard/via/epia-m/auto.c
+++ b/src/mainboard/via/epia-m/auto.c
@@ -108,12 +108,12 @@ static void main(unsigned long bist)
pci_write_config8(dev, 0x15, 0x1c);
}
- enable_smbus();
-
enable_vt8235_serial();
uart_init();
console_init();
+ enable_smbus();
+
print_spew("In auto.c:main()\r\n");
/* Halt if there was a built in self test failure */