Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch fill in vexpress_platform_early_putchar(); make com...



details:   https://anonhg.NetBSD.org/src/rev/33544e66f1bb
branches:  trunk
changeset: 323343:33544e66f1bb
user:      jakllsch <jakllsch%NetBSD.org@localhost>
date:      Mon Jun 11 19:49:18 2018 +0000

description:
fill in vexpress_platform_early_putchar(); make comment about CONSADDR

diffstat:

 sys/arch/arm/vexpress/vexpress_platform.c |  21 ++++++++++++++++++---
 sys/arch/evbarm/conf/VEXPRESS_A15         |   3 ++-
 2 files changed, 20 insertions(+), 4 deletions(-)

diffs (67 lines):

diff -r f22058b09771 -r 33544e66f1bb sys/arch/arm/vexpress/vexpress_platform.c
--- a/sys/arch/arm/vexpress/vexpress_platform.c Mon Jun 11 19:42:22 2018 +0000
+++ b/sys/arch/arm/vexpress/vexpress_platform.c Mon Jun 11 19:49:18 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: vexpress_platform.c,v 1.7 2018/03/17 18:34:09 ryo Exp $ */
+/* $NetBSD: vexpress_platform.c,v 1.8 2018/06/11 19:49:18 jakllsch Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <jmcneill%invisible.ca@localhost>
@@ -30,7 +30,7 @@
 #include "opt_fdt_arm.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vexpress_platform.c,v 1.7 2018/03/17 18:34:09 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vexpress_platform.c,v 1.8 2018/06/11 19:49:18 jakllsch Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -51,7 +51,7 @@
 
 #include <arm/cortex/gic_reg.h>
 
-#include <evbarm/dev/plcomvar.h>
+#include <evbarm/dev/plcomreg.h>
 
 #include <arm/vexpress/vexpress_platform.h>
 
@@ -178,6 +178,21 @@
 static void
 vexpress_platform_early_putchar(char c)
 {
+#ifdef CONSADDR
+#define CONSADDR_VA ((CONSADDR - VEXPRESS_CORE_PBASE) + VEXPRESS_CORE_VBASE)
+       volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
+           (volatile uint32_t *)CONSADDR_VA :
+           (volatile uint32_t *)CONSADDR;
+
+       while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
+               continue;
+
+       uartaddr[PL01XCOM_DR / 4] = htole32(c);
+       arm_dsb();
+
+       while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
+               continue;
+#endif
 }
 
 static void
diff -r f22058b09771 -r 33544e66f1bb sys/arch/evbarm/conf/VEXPRESS_A15
--- a/sys/arch/evbarm/conf/VEXPRESS_A15 Mon Jun 11 19:42:22 2018 +0000
+++ b/sys/arch/evbarm/conf/VEXPRESS_A15 Mon Jun 11 19:49:18 2018 +0000
@@ -1,5 +1,5 @@
 #
-#      $NetBSD: VEXPRESS_A15,v 1.18 2018/06/06 20:38:00 jakllsch Exp $
+#      $NetBSD: VEXPRESS_A15,v 1.19 2018/06/11 19:49:18 jakllsch Exp $
 #
 #      ARM Versatile Express A15
 #
@@ -20,6 +20,7 @@
 #options       PMAP_DEBUG      # Enable pmap_debug_level code
 #options       IPKDB           # remote kernel debugging
 #options       VERBOSE_INIT_ARM # verbose bootstrapping messages
+#options       CONSADDR=0x1c090000
 
 makeoptions    DEBUG="-g"      # compile full symbol table
 makeoptions    COPY_SYMTAB=1



Home | Main Index | Thread Index | Old Index