Sat Jan 26 08:01:49 2013 UTC ()
Deal with bus addresses better. Switch the DMA bus address base to the
cache coherent range - not that anything uses it yet.


(skrll)
diff -r1.12 -r1.13 src/sys/arch/arm/broadcom/bcm2835_obio.c
diff -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm2835_space.c
diff -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835reg.h

cvs diff -r1.12 -r1.13 src/sys/arch/arm/broadcom/Attic/bcm2835_obio.c (expand / switch to unified diff)

--- src/sys/arch/arm/broadcom/Attic/bcm2835_obio.c 2013/01/25 00:04:06 1.12
+++ src/sys/arch/arm/broadcom/Attic/bcm2835_obio.c 2013/01/26 08:01:49 1.13
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: bcm2835_obio.c,v 1.12 2013/01/25 00:04:06 jmcneill Exp $ */ 1/* $NetBSD: bcm2835_obio.c,v 1.13 2013/01/26 08:01:49 skrll Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2012 The NetBSD Foundation, Inc. 4 * Copyright (c) 2012 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Nick Hudson 8 * by Nick Hudson
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -20,27 +20,27 @@ @@ -20,27 +20,27 @@
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__KERNEL_RCSID(0, "$NetBSD: bcm2835_obio.c,v 1.12 2013/01/25 00:04:06 jmcneill Exp $"); 33__KERNEL_RCSID(0, "$NetBSD: bcm2835_obio.c,v 1.13 2013/01/26 08:01:49 skrll Exp $");
34 34
35#include "locators.h" 35#include "locators.h"
36#include "obio.h" 36#include "obio.h"
37 37
38#include <sys/param.h> 38#include <sys/param.h>
39#include <sys/systm.h> 39#include <sys/systm.h>
40#include <sys/device.h> 40#include <sys/device.h>
41 41
42#include <sys/bus.h> 42#include <sys/bus.h>
43 43
44#include <arm/broadcom/bcm2835reg.h> 44#include <arm/broadcom/bcm2835reg.h>
45#include <arm/broadcom/bcm_amba.h> 45#include <arm/broadcom/bcm_amba.h>
46 46
@@ -171,27 +171,27 @@ obio_attach(device_t parent, device_t se @@ -171,27 +171,27 @@ obio_attach(device_t parent, device_t se
171 const struct ambadev_locators *ad = bcm2835_ambadev_locs; 171 const struct ambadev_locators *ad = bcm2835_ambadev_locs;
172 struct amba_attach_args aaa; 172 struct amba_attach_args aaa;
173 int locs[OBIOCF_NLOCS]; 173 int locs[OBIOCF_NLOCS];
174 174
175 if (obio_attached) 175 if (obio_attached)
176 return; 176 return;
177 177
178 obio_attached = true; 178 obio_attached = true;
179 179
180 sc->sc_dev = self; 180 sc->sc_dev = self;
181 sc->sc_dmat = &bcm2835_bus_dma_tag; 181 sc->sc_dmat = &bcm2835_bus_dma_tag;
182 182
183 sc->sc_dmarange.dr_sysbase = 0; 183 sc->sc_dmarange.dr_sysbase = 0;
184 sc->sc_dmarange.dr_busbase = 0xc0000000; /* 0x40000000 if L2 */ 184 sc->sc_dmarange.dr_busbase = BCM2835_BUSADDR_CACHE_COHERENT;
185 sc->sc_dmarange.dr_len = physmem * PAGE_SIZE; 185 sc->sc_dmarange.dr_len = physmem * PAGE_SIZE;
186 bcm2835_bus_dma_tag._ranges = &sc->sc_dmarange; 186 bcm2835_bus_dma_tag._ranges = &sc->sc_dmarange;
187 bcm2835_bus_dma_tag._nranges = 1; 187 bcm2835_bus_dma_tag._nranges = 1;
188 188
189 aprint_normal("\n"); 189 aprint_normal("\n");
190 190
191 /* Set up the attach args. */ 191 /* Set up the attach args. */
192 aaa.aaa_iot = &bcm2835_bs_tag; 192 aaa.aaa_iot = &bcm2835_bs_tag;
193 aaa.aaa_dmat = sc->sc_dmat; 193 aaa.aaa_dmat = sc->sc_dmat;
194 194
195 for (; ad->ad_name != NULL; ad++) { 195 for (; ad->ad_name != NULL; ad++) {
196 aprint_debug("dev=%s[%u], addr=%lx:+%lx\n", 196 aprint_debug("dev=%s[%u], addr=%lx:+%lx\n",
197 ad->ad_name, ad->ad_instance, ad->ad_addr, ad->ad_size); 197 ad->ad_name, ad->ad_instance, ad->ad_addr, ad->ad_size);

cvs diff -r1.4 -r1.5 src/sys/arch/arm/broadcom/Attic/bcm2835_space.c (expand / switch to unified diff)

--- src/sys/arch/arm/broadcom/Attic/bcm2835_space.c 2013/01/23 16:51:14 1.4
+++ src/sys/arch/arm/broadcom/Attic/bcm2835_space.c 2013/01/26 08:01:49 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: bcm2835_space.c,v 1.4 2013/01/23 16:51:14 macallan Exp $ */ 1/* $NetBSD: bcm2835_space.c,v 1.5 2013/01/26 08:01:49 skrll Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2012 The NetBSD Foundation, Inc. 4 * Copyright (c) 2012 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Nick Hudson 8 * by Nick Hudson
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -21,35 +21,37 @@ @@ -21,35 +21,37 @@
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 32
33#include <sys/cdefs.h> 33#include <sys/cdefs.h>
34__KERNEL_RCSID(0, "$NetBSD: bcm2835_space.c,v 1.4 2013/01/23 16:51:14 macallan Exp $"); 34__KERNEL_RCSID(0, "$NetBSD: bcm2835_space.c,v 1.5 2013/01/26 08:01:49 skrll Exp $");
35 35
36#include <sys/param.h> 36#include <sys/param.h>
37#include <sys/systm.h> 37#include <sys/systm.h>
38 38
39#include <uvm/uvm_extern.h> 39#include <uvm/uvm_extern.h>
40 40
41#include <sys/bus.h> 41#include <sys/bus.h>
42 42
 43#include <arm/broadcom/bcm2835reg.h>
 44
43/* Prototypes for all the bus_space structure functions */ 45/* Prototypes for all the bus_space structure functions */
44bs_protos(bcm2835); 46bs_protos(bcm2835);
45bs_protos(bcm2835_a4x); 47bs_protos(bcm2835_a4x);
46bs_protos(generic); 48bs_protos(generic);
47bs_protos(generic_armv4); 49bs_protos(generic_armv4);
48bs_protos(a4x); 50bs_protos(a4x);
49bs_protos(bs_notimpl); 51bs_protos(bs_notimpl);
50 52
51struct bus_space bcm2835_bs_tag = { 53struct bus_space bcm2835_bs_tag = {
52 /* cookie */ 54 /* cookie */
53 (void *) 0, 55 (void *) 0,
54 56
55 /* mapping/unmapping */ 57 /* mapping/unmapping */
@@ -270,51 +272,54 @@ struct bus_space bcm2835_a4x_bs_tag = { @@ -270,51 +272,54 @@ struct bus_space bcm2835_a4x_bs_tag = {
270 bs_notimpl_bs_wm_8, 272 bs_notimpl_bs_wm_8,
271 273
272 /* write region */ 274 /* write region */
273 generic_bs_wr_1, 275 generic_bs_wr_1,
274 generic_armv4_bs_wr_2, 276 generic_armv4_bs_wr_2,
275 generic_bs_wr_4, 277 generic_bs_wr_4,
276 bs_notimpl_bs_wr_8, 278 bs_notimpl_bs_wr_8,
277#endif 279#endif
278 280
279}; 281};
280 282
281 283
282int 284int
283bcm2835_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flag, 285bcm2835_bs_map(void *t, bus_addr_t ba, bus_size_t size, int flag,
284 bus_space_handle_t *bshp) 286 bus_space_handle_t *bshp)
285{ 287{
286 u_long startpa, endpa, pa; 288 u_long startpa, endpa, pa;
287 vaddr_t va; 289 vaddr_t va;
288 const struct pmap_devmap *pd; 290 const struct pmap_devmap *pd;
289 int pmap_flags; 291 int pmap_flags;
290 292
291 if ((pd = pmap_devmap_find_pa(bpa, size)) != NULL) { 293 pa = ba & ~BCM2835_BUSADDR_CACHE_MASK;
 294
 295 /* this does device addresses */
 296 if ((pd = pmap_devmap_find_pa(pa, size)) != NULL) {
292 /* Device was statically mapped. */ 297 /* Device was statically mapped. */
293 *bshp = pd->pd_va + (bpa - pd->pd_pa); 298 *bshp = pd->pd_va + (pa - pd->pd_pa);
294 return 0; 299 return 0;
295 } 300 }
296 301
297 startpa = trunc_page(bpa); 302 startpa = trunc_page(pa);
298 endpa = round_page(bpa + size); 303 endpa = round_page(pa + size);
299 304
300 /* XXX use extent manager to check duplicate mapping */ 305 /* XXX use extent manager to check duplicate mapping */
301 306
302 va = uvm_km_alloc(kernel_map, endpa - startpa, 0, 307 va = uvm_km_alloc(kernel_map, endpa - startpa, 0,
303 UVM_KMF_VAONLY | UVM_KMF_NOWAIT); 308 UVM_KMF_VAONLY | UVM_KMF_NOWAIT);
304 if (!va) 309 if (!va)
305 return ENOMEM; 310 return ENOMEM;
306 311
307 *bshp = (bus_space_handle_t)(va + (bpa - startpa)); 312 *bshp = (bus_space_handle_t)(va + (pa - startpa));
308 313
309 pmap_flags = (flag & BUS_SPACE_MAP_CACHEABLE) ? 0 : PMAP_NOCACHE; 314 pmap_flags = (flag & BUS_SPACE_MAP_CACHEABLE) ? 0 : PMAP_NOCACHE;
310 for (pa = startpa; pa < endpa; pa += PAGE_SIZE, va += PAGE_SIZE) { 315 for (pa = startpa; pa < endpa; pa += PAGE_SIZE, va += PAGE_SIZE) {
311 pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE, 316 pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE,
312 pmap_flags); 317 pmap_flags);
313 } 318 }
314 pmap_update(pmap_kernel()); 319 pmap_update(pmap_kernel());
315 320
316 return 0; 321 return 0;
317} 322}
318 323
319void 324void
320bcm2835_bs_unmap(void *t, bus_space_handle_t bsh, bus_size_t size) 325bcm2835_bs_unmap(void *t, bus_space_handle_t bsh, bus_size_t size)
@@ -358,34 +363,35 @@ bcm2835_bs_barrier(void *t, bus_space_ha @@ -358,34 +363,35 @@ bcm2835_bs_barrier(void *t, bus_space_ha
358 return; 363 return;
359 } 364 }
360 365
361} 366}
362 367
363void * 368void *
364bcm2835_bs_vaddr(void *t, bus_space_handle_t bsh) 369bcm2835_bs_vaddr(void *t, bus_space_handle_t bsh)
365{ 370{
366 371
367 return (void *)bsh; 372 return (void *)bsh;
368} 373}
369 374
370paddr_t 375paddr_t
371bcm2835_bs_mmap(void *t, bus_addr_t paddr, off_t offset, int prot, int flags) 376bcm2835_bs_mmap(void *t, bus_addr_t ba, off_t offset, int prot, int flags)
372{ 377{
 378 paddr_t pa = ba & ~BCM2835_BUSADDR_CACHE_MASK;
373 paddr_t bus_flags = 0; 379 paddr_t bus_flags = 0;
374 380
375 if (flags & BUS_SPACE_MAP_PREFETCHABLE) 381 if (flags & BUS_SPACE_MAP_PREFETCHABLE)
376 bus_flags |= ARM32_MMAP_WRITECOMBINE; 382 bus_flags |= ARM32_MMAP_WRITECOMBINE;
377 383
378 return (arm_btop(paddr + offset) | bus_flags); 384 return (arm_btop(pa + offset) | bus_flags);
379} 385}
380 386
381int 387int
382bcm2835_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend, 388bcm2835_bs_alloc(void *t, bus_addr_t rstart, bus_addr_t rend,
383 bus_size_t size, bus_size_t alignment, bus_size_t boundary, int flags, 389 bus_size_t size, bus_size_t alignment, bus_size_t boundary, int flags,
384 bus_addr_t *bpap, bus_space_handle_t *bshp) 390 bus_addr_t *bpap, bus_space_handle_t *bshp)
385{ 391{
386 392
387 panic("%s(): not implemented\n", __func__); 393 panic("%s(): not implemented\n", __func__);
388} 394}
389 395
390void 396void
391bcm2835_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size) 397bcm2835_bs_free(void *t, bus_space_handle_t bsh, bus_size_t size)

cvs diff -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835reg.h (expand / switch to unified diff)

--- src/sys/arch/arm/broadcom/bcm2835reg.h 2013/01/25 00:04:06 1.8
+++ src/sys/arch/arm/broadcom/bcm2835reg.h 2013/01/26 08:01:49 1.9
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: bcm2835reg.h,v 1.8 2013/01/25 00:04:06 jmcneill Exp $ */ 1/* $NetBSD: bcm2835reg.h,v 1.9 2013/01/26 08:01:49 skrll Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2012 The NetBSD Foundation, Inc. 4 * Copyright (c) 2012 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Nick Hudson 8 * by Nick Hudson
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -67,26 +67,32 @@ @@ -67,26 +67,32 @@
67#define BCM2835_GPIO_SIZE 0x1000 67#define BCM2835_GPIO_SIZE 0x1000
68#define BCM2835_UART0_SIZE 0x90 68#define BCM2835_UART0_SIZE 0x90
69#define BCM2835_PCM_SIZE 0x1000 69#define BCM2835_PCM_SIZE 0x1000
70#define BCM2835_SPI0_SIZE 0x1000 70#define BCM2835_SPI0_SIZE 0x1000
71#define BCM2835_BSC_SIZE 0x1000 71#define BCM2835_BSC_SIZE 0x1000
72#define BCM2835_AUX_SIZE 0x1000 72#define BCM2835_AUX_SIZE 0x1000
73#define BCM2835_EMMC_SIZE 0x1000 73#define BCM2835_EMMC_SIZE 0x1000
74#define BCM2835_USB_SIZE 0x20000 74#define BCM2835_USB_SIZE 0x20000
75#define BCM2835_DMA15_SIZE 0x100 75#define BCM2835_DMA15_SIZE 0x100
76 76
77#define BCM2835_IOPHYSTOVIRT(a) \ 77#define BCM2835_IOPHYSTOVIRT(a) \
78 ((0xf0000000 | (((a) & 0xf0000000) >> 4)) + ((a) & ~0xf0000000)) 78 ((0xf0000000 | (((a) & 0xf0000000) >> 4)) + ((a) & ~0xf0000000))
79 79
 80#define BCM2835_BUSADDR_CACHE_MASK 0xc0000000
 81#define BCM2835_BUSADDR_CACHE_COHERENT 0x40000000
 82#define BCM2835_BUSADDR_CACHE_L1L2 0x00000000
 83#define BCM2835_BUSADDR_CACHE_L2ONLY 0x80000000
 84#define BCM2835_BUSADDR_CACHE_DIRECT 0xc0000000
 85
80#define BCM2835_PERIPHERALS_VBASE \ 86#define BCM2835_PERIPHERALS_VBASE \
81 BCM2835_IOPHYSTOVIRT(BCM2835_PERIPHERALS_BASE) 87 BCM2835_IOPHYSTOVIRT(BCM2835_PERIPHERALS_BASE)
82#define BCM2835_STIMER_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_ST_BASE) 88#define BCM2835_STIMER_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_ST_BASE)
83#define BCM2835_PM_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_PM_BASE) 89#define BCM2835_PM_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_PM_BASE)
84#define BCM2835_UART0_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_UART0_BASE) 90#define BCM2835_UART0_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_UART0_BASE)
85#define BCM2835_EMMC_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_EMMC_BASE) 91#define BCM2835_EMMC_VBASE BCM2835_IOPHYSTOVIRT(BCM2835_EMMC_BASE)
86 92
87#define BCM2835_ARMICU_BASE (BCM2835_ARM_BASE + 0x0200) 93#define BCM2835_ARMICU_BASE (BCM2835_ARM_BASE + 0x0200)
88#define BCM2835_ARMICU_SIZE 0x200 94#define BCM2835_ARMICU_SIZE 0x200
89 95
90#define BCM2835_ARMMBOX_BASE (BCM2835_ARM_BASE + 0x0880) 96#define BCM2835_ARMMBOX_BASE (BCM2835_ARM_BASE + 0x0880)
91#define BCM2835_ARMMBOX_SIZE 0x40 97#define BCM2835_ARMMBOX_SIZE 0x40
92 98