ref: 3f31149d91b80a8de6cd8fad5f18f896f4883250
parent: c88b400a317f1660934bb8068d5948c556b22076
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Oct 30 16:13:44 EDT 2014
bcm: fix baudrate setting for serial console (thanks to aap and hiro) the uartmini enable function used to override the baud register so the effecive baudrate was always set to 115200 baud. now the default baudrate of 9600 is set correctly and can be changed in the console= boot parameter. thanks aap and hiro for debugging, pizza and beer :)
--- a/sys/src/9/bcm/uartmini.c
+++ b/sys/src/9/bcm/uartmini.c
@@ -165,9 +165,7 @@
gpiopulloff(RxPin);
ap[Enables] |= UartEn;
ap[MuIir] = 6;
- ap[MuLcr] = Bits8;
ap[MuCntl] = TxEn|RxEn;
- ap[MuBaud] = 250000000 / (115200 * 8) - 1;
if(ie){intrenable(IRQaux, interrupt, uart, 0, "uart");
ap[MuIer] = RxIen|TxIen;
@@ -372,11 +370,12 @@
break;
}
- if(!uart->enabled)
- (*uart->phys->enable)(uart, 0);
uartctl(uart, "b9600 l8 pn s1");
if(*cmd != '\0')
uartctl(uart, cmd);
+
+ if(!uart->enabled)
+ (*uart->phys->enable)(uart, 0);
consuart = uart;
uart->console = 1;
--
⑨