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