shithub: riscv

Download patch

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;