ref: 4bfa18a5d173dc3b9615153e54b95a6178150a49
parent: 678db0fbb1c201417047c7f4a33609549ab54ffe
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;