This ensures that the ESCC software reset sequence is sent to each port before being used by the guest OS. This fixes a bug in OpenBSD SPARC32 which doesn't explicitly reset the keyboard/mouse serial ports causing it to hang when trying to access these devices during boot.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk --- drivers/escc.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/escc.c b/drivers/escc.c index e2d94ae..6b3b7d7 100644 --- a/drivers/escc.c +++ b/drivers/escc.c @@ -248,6 +248,8 @@ static volatile unsigned char *kbd_dev; void kbd_init(phys_addr_t base, unsigned long speed) { kbd_dev = (unsigned char *)ofmem_map_io(base, 2 * 4); + uart_init_line(kbd_dev, speed, 1); + uart_init_line(kbd_dev, speed, 0); kbd_dev += 4; }