git: 9front

Download patch

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