The code was enabling interrupts for the serial port, possibly causing random hangs on boot. I have replaced the 8250 initialisation code with that in uart8250.c
Signed-off-by: Ben Hewson ben@hewson-venieri.com
----------------------------------------------------------------------------------------------------------------------
Doh !
This seems to work ok for me, but I can't say for sure if it has stopped the random boot hangs, as they were/are a bit random.
On Mon, May 21, 2007 at 08:51:17PM +0100, Ben Hewson wrote:
- /* enable fifo's */
- outb(0x01, TTYS0_BASE + UART_FCR);
- /* assert DTR and RTS so the other end is happy */
- outb(0x03, TTYS0_BASE + UART_MCR);
- /* Set Baud Rate Divisor to 1 ==> 115200 Baud */
- outb(0x80 | TTYS0_LCS, TTYS0_BASE + UART_LCR);
No defines for all these "magic" values?
- outb(TTYS0_LCS, TTYS0_BASE + UART_LCR);
TTYS0_LCS is not very clear as to what it does, but at least it's a define. :)
//Peter
Ben Hewson wrote:
The code was enabling interrupts for the serial port, possibly causing random hangs on boot. I have replaced the 8250 initialisation code with that in uart8250.c
Signed-off-by: Ben Hewson ben@hewson-venieri.com
Doh !
This seems to work ok for me, but I can't say for sure if it has stopped the random boot hangs, as they were/are a bit random.
forget the patch. I have removed the uart init code from vt8231_early_serial.c and as expected everything still works as before. I will redo the patch tomorrow to remove the relevant lines.
on the down side I am still experiencing the odd random hang and power off still does not work with ACPI only compiled into the kernel.
On Mon, May 21, 2007 at 10:41:16PM +0100, Ben Hewson wrote:
on the down side I am still experiencing the odd random hang
After power off/power on or after reset?
Did disabling UART interrupts eliminate the hangs?
and power off still does not work with ACPI only compiled into the kernel.
Which board do you have again?
Can you compare ACPI tables between factory BIOS and LinuxBIOS?
//Peter
Peter Stuge wrote:
On Mon, May 21, 2007 at 10:41:16PM +0100, Ben Hewson wrote:
on the down side I am still experiencing the odd random hang
After power off/power on or after reset?
I mostly notice it after a power on as I usually power off after reflashing the ROM. Once it hangs a reset will sometimes start it. Other times I can sit there reseting it for quite a few attempts without luck, at which point I usually reboot with the original BIOS.
From the output it appears to be sticking in ram initialisation, possibly reading the SPD info, however all of the SMBus functions appear to have timeouts so I don't think it should hang, unless they are not working properly. Of course the hang may just be coincidental with the SPD stuff and have nothing at all to do with it.
Did disabling UART interrupts eliminate the hangs?
It didn't appear to. I did still get some hangs. Often just changing a single line of code may make things better or worse, however the hang always seems to happen at 1 of 2 points.
Does ROMCC warn if it runs out of registers ?
and power off still does not work with ACPI only compiled into the kernel.
Which board do you have again?
I have the standard EPIA vt8601 NB, vt8623 SB.
Can you compare ACPI tables between factory BIOS and LinuxBIOS?
How do I go about getting that info ?
Ben