Module Name:    src
Committed By:   matt
Date:           Fri Sep  7 11:52:30 UTC 2012

Modified Files:
        src/sys/arch/arm/broadcom: bcm53xx_board.c bcm53xx_reg.h

Log Message:
Include the PCI outbound windows in the BCM53XX IO space.
Call arml2cc_init from bcm53xx_bootstrap to fill in arm_cache info.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm53xx_board.c
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm53xx_reg.h

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/bcm53xx_board.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_board.c:1.1 src/sys/arch/arm/broadcom/bcm53xx_board.c:1.2
--- src/sys/arch/arm/broadcom/bcm53xx_board.c:1.1	Sat Sep  1 00:04:44 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_board.c	Fri Sep  7 11:52:30 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcm53xx_board.c,v 1.1 2012/09/01 00:04:44 matt Exp $	*/
+/*	$NetBSD: bcm53xx_board.c,v 1.2 2012/09/07 11:52:30 matt Exp $	*/
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.1 2012/09/01 00:04:44 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.2 2012/09/07 11:52:30 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -49,6 +49,7 @@ __KERNEL_RCSID(1, "$NetBSD: bcm53xx_boar
 #define ARMCORE_PRIVATE
 
 #include <arm/cortex/a9tmr_var.h>
+#include <arm/cortex/pl310_var.h>
 #include <arm/mainbus/mainbus.h>
 
 #include <arm/broadcom/bcm53xx_reg.h>
@@ -63,23 +64,20 @@ static struct cpu_softc cpu_softc;
 static struct bcm53xx_clock_info clk_info;
 
 struct arm32_bus_dma_tag bcm53xx_dma_tag = {
-	0,
-	0,
-	NULL,			/* _cookie */
-	_bus_dmamap_create,
-	_bus_dmamap_destroy,
-	_bus_dmamap_load,
-	_bus_dmamap_load_mbuf,
-	_bus_dmamap_load_uio,
-	_bus_dmamap_load_raw,
-	_bus_dmamap_unload,
-	_bus_dmamap_sync,
-	NULL,			/* sync_post */
-	_bus_dmamem_alloc,
-	_bus_dmamem_free,
-	_bus_dmamem_map,
-	_bus_dmamem_unmap,
-	_bus_dmamem_mmap
+	._dmamap_create = _bus_dmamap_create,
+	._dmamap_destroy = _bus_dmamap_destroy,
+	._dmamap_load = _bus_dmamap_load,
+	._dmamap_load_mbuf = _bus_dmamap_load_mbuf,
+	._dmamap_load_uio = _bus_dmamap_load_uio,
+	._dmamap_load_raw = _bus_dmamap_load_raw,
+	._dmamap_unload = _bus_dmamap_unload,
+	._dmamap_sync_pre = _bus_dmamap_sync,
+	._dmamap_sync_post = NULL,
+	._dmamem_alloc = _bus_dmamem_alloc,
+	._dmamem_free = _bus_dmamem_free,
+	._dmamem_map = _bus_dmamem_map,
+	._dmamem_unmap = _bus_dmamem_unmap,
+	._dmamem_mmap = _bus_dmamem_mmap
 };
 
 #ifdef BCM53XX_CONSOLE_EARLY
@@ -490,6 +488,8 @@ bcm53xx_bootstrap(vaddr_t iobase)
 	    bcs.bcs_armcore_clk_pllarmb, bcs.bcs_armcore_clk_policy);
 
 	curcpu()->ci_data.cpu_cc_freq = clk->clk_cpu;
+
+	arml2cc_init(bcm53xx_armcore_bst, bcm53xx_armcore_bsh, ARMCORE_L2C_BASE);
 }
 
 #ifdef MULTIPROCESSOR

Index: src/sys/arch/arm/broadcom/bcm53xx_reg.h
diff -u src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.2 src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.3
--- src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.2	Wed Sep  5 00:22:41 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_reg.h	Fri Sep  7 11:52:30 2012
@@ -45,6 +45,10 @@
  * 0xffff_0000..0xffff_043f	1088B	Internal SKU ROM Region
  * 0xffff_1000..0xffff_1fff	   4KB	Enumeration ROM Register Region
  */
+#define	BCM53XX_PCIE0_OWIN_PBASE 0x08000000
+#define	BCM53XX_PCIE0_OWIN_SIZE	0x04000000
+#define	BCM53XX_PCIE0_OWIN_MAX	0x08000000
+
 #define	BCM53XX_IOREG_PBASE	0x18000000
 #define	BCM53XX_IOREG_SIZE	0x00200000
 
@@ -57,7 +61,19 @@
 #define	BCM53XX_SPIFLASH_PBASE	0x1d000000
 #define	BCM53XX_SPIFLASH_SIZE	0x01000000
 
-#define	BCM53XX_IO_SIZE		(BCM53XX_IOREG_SIZE + BCM53XX_ARMCORE_SIZE)
+#define	BCM53XX_PCIE1_OWIN_PBASE 0x40000000
+#define	BCM53XX_PCIE1_OWIN_SIZE	0x04000000
+#define	BCM53XX_PCIE1_OWIN_MAX	0x08000000
+
+#define	BCM53XX_PCIE2_OWIN_PBASE 0x48000000
+#define	BCM53XX_PCIE2_OWIN_SIZE	0x04000000
+#define	BCM53XX_PCIE2_OWIN_MAX	0x08000000
+
+#define	BCM53XX_IO_SIZE		(BCM53XX_IOREG_SIZE		\
+				 + BCM53XX_ARMCORE_SIZE		\
+				 + BCM53XX_PCIE0_OWIN_SIZE	\
+				 + BCM53XX_PCIE1_OWIN_SIZE	\
+				 + BCM53XX_PCIE2_OWIN_SIZE)
 
 #define	BCM53XX_REF_CLK		(25*1000*1000)
 
@@ -437,11 +453,15 @@
 #define	PCIE_OARR_0		0xd20
 #define	PCIE_OARR_1		0xd28
 
+#define  PCIE_OARR_ADDR		__BITS(31,26)
+
 #define	PCIE_OMAP_0_LOWER	0xd40
 #define	PCIE_OMAP_0_UPPER	0xd44
 #define	PCIE_OMAP_1_LOWER	0xd48
 #define	PCIE_OMAP_1_UPPER	0xd4c
 
+#define  PCIE_OMAP_ADDRL	__BITS(31,26)
+
 #define	PCIE_FUNC1_IARR_1_SIZE	0xd58
 #define	PCIE_FUNC1_IARR_2_SIZE	0xd5c
 
@@ -517,6 +537,7 @@
 #endif /* PCIE_PRIVATE */
 
 #define	ARMCORE_SCU_BASE	0x20000		/* CBAR is 19020000 */
+#define	ARMCORE_L2C_BASE	0x22000
 
 #ifdef ARMCORE_PRIVATE
 

Reply via email to