Module Name: src Committed By: jakllsch Date: Fri Jun 15 14:37:35 UTC 2018
Modified Files: src/sys/arch/arm/virt: virt_platform.c src/sys/arch/evbarm/virt: virt_start.S Log Message: Big endian support for virt_platform_early_putchar and xputc. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/virt/virt_platform.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbarm/virt/virt_start.S 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/virt/virt_platform.c diff -u src/sys/arch/arm/virt/virt_platform.c:1.1 src/sys/arch/arm/virt/virt_platform.c:1.2 --- src/sys/arch/arm/virt/virt_platform.c:1.1 Thu Jun 14 10:56:39 2018 +++ src/sys/arch/arm/virt/virt_platform.c Fri Jun 15 14:37:35 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: virt_platform.c,v 1.1 2018/06/14 10:56:39 jmcneill Exp $ */ +/* $NetBSD: virt_platform.c,v 1.2 2018/06/15 14:37:35 jakllsch Exp $ */ /*- * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca> @@ -31,7 +31,7 @@ #include "opt_fdt_arm.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: virt_platform.c,v 1.1 2018/06/14 10:56:39 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: virt_platform.c,v 1.2 2018/06/15 14:37:35 jakllsch Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -96,12 +96,13 @@ virt_platform_early_putchar(char c) (volatile uint32_t *)VIRT_CORE_PTOV(VIRT_UART_BASE) : (volatile uint32_t *)VIRT_UART_BASE; - 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); + arm_dsb(); - while ((uartaddr[PL01XCOM_FR / 4] & PL01X_FR_TXFE) == 0) + while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0) continue; } Index: src/sys/arch/evbarm/virt/virt_start.S diff -u src/sys/arch/evbarm/virt/virt_start.S:1.2 src/sys/arch/evbarm/virt/virt_start.S:1.3 --- src/sys/arch/evbarm/virt/virt_start.S:1.2 Fri Jun 15 14:32:29 2018 +++ src/sys/arch/evbarm/virt/virt_start.S Fri Jun 15 14:37:35 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: virt_start.S,v 1.2 2018/06/15 14:32:29 jakllsch Exp $ */ +/* $NetBSD: virt_start.S,v 1.3 2018/06/15 14:37:35 jakllsch Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ #include <arm/virt/virt_platform.h> -RCSID("$NetBSD: virt_start.S,v 1.2 2018/06/15 14:32:29 jakllsch Exp $") +RCSID("$NetBSD: virt_start.S,v 1.3 2018/06/15 14:37:35 jakllsch Exp $") #ifdef VERBOSE_INIT_ARM #define XPUTC(n) mov r0, n; bl xputc @@ -139,6 +139,9 @@ _C_LABEL(virt_start): xputc: movw r2, #0x0000 movt r2, #0x0900 +#ifdef __ARMEB__ + lsl r0, r0, #24 +#endif str r0, [r2] bx lr