Module Name:    src
Committed By:   jmcneill
Date:           Sat Feb 22 00:17:54 UTC 2020

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

Log Message:
Translate bus addresses for SCB on BCM2711


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/broadcom/bcm2835reg.h
cvs rdiff -u -r1.35 -r1.36 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/bcm2835reg.h
diff -u src/sys/arch/arm/broadcom/bcm2835reg.h:1.29 src/sys/arch/arm/broadcom/bcm2835reg.h:1.30
--- src/sys/arch/arm/broadcom/bcm2835reg.h:1.29	Mon Dec 30 16:19:27 2019
+++ src/sys/arch/arm/broadcom/bcm2835reg.h	Sat Feb 22 00:17:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcm2835reg.h,v 1.29 2019/12/30 16:19:27 skrll Exp $	*/
+/*	$NetBSD: bcm2835reg.h,v 1.30 2020/02/22 00:17:54 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -124,6 +124,15 @@
 
 #define	BCM2835_INTC_BASE	(0x0)	/* Relative to BCM2835_ARMICU_BASE */
 
+#define	BCM2711_SCB_BASE	0xfc000000
+#define	BCM2711_SCB_SIZE	0x03800000
+#define	BCM2711_SCB_BASE_BUS	0x7c000000
+
+#define	BCM2711_SCB_PHYS_TO_BUS(a) \
+    ((a) - BCM2711_SCB_BASE + BCM2711_SCB_BASE_BUS)
+#define	BCM2711_SCB_BUS_TO_PHYS(a) \
+    ((a) - BCM2711_SCB_BASE_BUS + BCM2711_SCB_BASE)
+
 /* Interrupt controller */
 #define	BCM2835_INTC_IRQBPENDING	(BCM2835_INTC_BASE + 0x00)	/* IRQ Basic pending */
 #define	BCM2835_INTC_IRQ1PENDING	(BCM2835_INTC_BASE + 0x04)	/* IRQ pending 1 */

Index: src/sys/arch/arm/broadcom/bcm283x_platform.c
diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.35 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.36
--- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.35	Thu Feb 20 01:43:07 2020
+++ src/sys/arch/arm/broadcom/bcm283x_platform.c	Sat Feb 22 00:17:54 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcm283x_platform.c,v 1.35 2020/02/20 01:43:07 jmcneill Exp $	*/
+/*	$NetBSD: bcm283x_platform.c,v 1.36 2020/02/22 00:17:54 jmcneill 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.35 2020/02/20 01:43:07 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.36 2020/02/22 00:17:54 jmcneill Exp $");
 
 #include "opt_arm_debug.h"
 #include "opt_bcm283x.h"
@@ -187,6 +187,10 @@ bcm2711_bus_to_phys(bus_addr_t ba)
 	    ba < BCM283X_PERIPHERALS_BASE_BUS + BCM283X_PERIPHERALS_SIZE)
 		return BCM2711_PERIPHERALS_BUS_TO_PHYS(ba);
 
+	if (ba >= BCM2711_SCB_BASE_BUS &&
+	    ba < BCM2711_SCB_BASE_BUS + BCM2711_SCB_SIZE)
+		return BCM2711_SCB_BUS_TO_PHYS(ba);
+
 	if (ba >= BCM2711_ARM_LOCAL_BASE_BUS &&
 	    ba < BCM2711_ARM_LOCAL_BASE_BUS + BCM2711_ARM_LOCAL_SIZE)
 		return BCM2711_ARM_LOCAL_BUS_TO_PHYS(ba);

Reply via email to