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
This commit is contained in:
Uwe Hermann 2008-11-11 14:26:03 +00:00
parent 779b3e3129
commit 3b6c527322
5 changed files with 11 additions and 10 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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();

View File

@ -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 */