Module Name:    src
Committed By:   rin
Date:           Tue Dec  1 04:16:18 UTC 2020

Modified Files:
        src/sys/arch/arm/broadcom: bcm283x_platform.c

Log Message:
Data written to and read from bcm283x UART registers should be in little-endian.


To generate a diff of this commit:
cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/broadcom/bcm283x_platform.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/bcm283x_platform.c
diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.44 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.45
--- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.44	Tue Dec  1 04:14:31 2020
+++ src/sys/arch/arm/broadcom/bcm283x_platform.c	Tue Dec  1 04:16:18 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcm283x_platform.c,v 1.44 2020/12/01 04:14:31 rin Exp $	*/
+/*	$NetBSD: bcm283x_platform.c,v 1.45 2020/12/01 04:16:18 rin Exp $	*/
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.44 2020/12/01 04:14:31 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.45 2020/12/01 04:16:18 rin Exp $");
 
 #include "opt_arm_debug.h"
 #include "opt_bcm283x.h"
@@ -1347,12 +1347,12 @@ bcm283x_platform_early_putchar(vaddr_t v
 		(volatile uint32_t *)va :
 		(volatile uint32_t *)pa;
 
-	while ((uartaddr[PL01XCOM_FR / 4] & PL01X_FR_TXFF) != 0)
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
 		continue;
 
-	uartaddr[PL01XCOM_DR / 4] = c;
+	uartaddr[PL01XCOM_DR / 4] = htole32(c);
 
-	while ((uartaddr[PL01XCOM_FR / 4] & PL01X_FR_TXFE) == 0)
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
 		continue;
 }
 
@@ -1364,10 +1364,10 @@ bcm283x_aux_platform_early_putchar(vaddr
 		(volatile uint32_t *)va :
 		(volatile uint32_t *)pa;
 
-	while ((uartaddr[com_lsr] & LSR_TXRDY) == 0)
+	while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0)
 		continue;
 
-	uartaddr[com_data] = c;
+	uartaddr[com_data] = htole32(c);
 }
 
 void __noasan

Reply via email to