Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Feb 2006 02:31:28 GMT
From:      Olivier Houchard <cognet@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 91781 for review
Message-ID:  <200602150231.k1F2VSUK063929@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=91781

Change 91781 by cognet@cognet on 2006/02/15 02:31:05

	Implement a dummy barrier function. 
	XXX: stubs should be provided elsewhere for this kind of things.
	Handle USB memory at rman level.

Affected files ...

.. //depot/projects/arm/src/sys/arm/at91/at91.c#6 edit
.. //depot/projects/arm/src/sys/arm/at91/at91var.h#3 edit

Differences ...

==== //depot/projects/arm/src/sys/arm/at91/at91.c#6 (text+ko) ====

@@ -84,6 +84,12 @@
 	return (0);
 }
 
+static void
+at91_barrier(void *t, bus_space_handle_t bsh, bus_size_t size, bus_size_t b, 
+    int a)
+{
+}
+
 bs_protos(generic);
 bs_protos(generic_armv4);
 
@@ -101,7 +107,7 @@
 	NULL,
 
 	/* barrier */
-	NULL,
+	at91_barrier,
 
 	/* read (single) */
 	generic_bs_r_1,
@@ -228,6 +234,8 @@
 	sc->sc_irq_rman.rm_descr = "AT91RM92 IRQs";
 	sc->sc_mem_rman.rm_type = RMAN_ARRAY;
 	sc->sc_mem_rman.rm_descr = "AT91RM92 Memory";
+	sc->sc_usbmem_rman.rm_type = RMAN_ARRAY;
+	sc->sc_usbmem_rman.rm_descr = "AT91RM92 USB Memory-mapped regs";
 	if (rman_init(&sc->sc_irq_rman) != 0 ||
 	    rman_manage_region(&sc->sc_irq_rman, 1, 31) != 0)
 		panic("at91_attach: failed to set up IRQ rman");
@@ -235,6 +243,10 @@
 	    rman_manage_region(&sc->sc_mem_rman, 0xfff00000ul,
 		0xfffffffful) != 0)
 		panic("at91_attach: failed to set up memory rman");
+	if (rman_init(&sc->sc_usbmem_rman) != 0 ||
+	    rman_manage_region(&sc->sc_usbmem_rman, 0x00300000,
+	    0x003fffff) != 0)
+		panic("at91_attach: failed to set up USB memory rman");
 
 	for (i = 0; i < 32; i++) {
 		bus_space_write_4(sc->sc_st, sc->sc_sys_sh, IC_SVR + 
@@ -340,8 +352,12 @@
 		    start, end, count, flags, child);
 		break;
 	case SYS_RES_MEMORY:
-		rle->res = rman_reserve_resource(&sc->sc_mem_rman,
-		    start, end, count, flags, child);
+		if (start >= 0x00300000 && start <= 0x003fffff)
+			rle->res = rman_reserve_resource(&sc->sc_usbmem_rman,
+			    start, end, count, flags, child);
+		else
+			rle->res = rman_reserve_resource(&sc->sc_mem_rman,
+			    start, end, count, flags, child);
 		rman_set_bustag(rle->res, &at91_bs_tag);
 		rman_set_bushandle(rle->res, start);
 		break;

==== //depot/projects/arm/src/sys/arm/at91/at91var.h#3 (text+ko) ====

@@ -36,6 +36,7 @@
 	bus_space_handle_t sc_sys_sh;
 	struct rman sc_irq_rman;
 	struct rman sc_mem_rman;
+	struct rman sc_usbmem_rman;
 };
 
 struct at91_ivar {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602150231.k1F2VSUK063929>