PERFORCE change 227823 for review

Brooks Davis brooks at FreeBSD.org
Wed Apr 17 22:24:39 UTC 2013


http://p4web.freebsd.org/@@227823?ac=10

Change 227823 by brooks at brooks_zenith on 2013/04/17 22:23:51

	IF beribsd.

Affected files ...

.. //depot/projects/ctsrd/cheribsd/src/lib/libstand/mips/_setjmp.S#4 integrate
.. //depot/projects/ctsrd/cheribsd/src/sys/boot/mips/Makefile#4 integrate
.. //depot/projects/ctsrd/cheribsd/src/sys/mips/beri/beri_pic.c#3 integrate
.. //depot/projects/ctsrd/cheribsd/src/sys/mips/include/cpufunc.h#6 edit
.. //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/bus_space_generic.c#7 edit

Differences ...

==== //depot/projects/ctsrd/cheribsd/src/lib/libstand/mips/_setjmp.S#4 (text+ko) ====

@@ -72,22 +72,6 @@
 	REG_S	s7, ((S7 + 3) * SZREG)(a0)
 	REG_S	sp, ((SP + 3) * SZREG)(a0)
 	REG_S	s8, ((S8 + 3) * SZREG)(a0)
-/* XXXRW: Don't try to save/restore FP in libstand. */
-#if 0
-	cfc1	v0, $31				# too bad cant check if FP used
-	FP_S	$f20, ((20 + 38) * SZREG)(a0)
-	FP_S	$f21, ((21 + 38) * SZREG)(a0)
-	FP_S	$f22, ((22 + 38) * SZREG)(a0)
-	FP_S	$f23, ((23 + 38) * SZREG)(a0)
-	FP_S	$f24, ((24 + 38) * SZREG)(a0)
-	FP_S	$f25, ((25 + 38) * SZREG)(a0)
-	FP_S	$f26, ((26 + 38) * SZREG)(a0)
-	FP_S	$f27, ((27 + 38) * SZREG)(a0)
-	FP_S	$f28, ((28 + 38) * SZREG)(a0)
-	FP_S	$f29, ((29 + 38) * SZREG)(a0)
-	FP_S	$f30, ((30 + 38) * SZREG)(a0)
-	FP_S	$f31, ((31 + 38) * SZREG)(a0)
-#endif
 	REG_S	v0, ((32 + 38) * SZREG)(a0)
 	j	ra
 	move	v0, zero
@@ -115,25 +99,6 @@
 	REG_L	v0, ((32 + 38) * SZREG)(a0)	# get fpu status
 	REG_L	sp, ((SP + 3) * SZREG)(a0)
 	REG_L	s8, ((S8 + 3) * SZREG)(a0)
-/* XXXRW: Don't try to save/restore FP in libstand. */
-#if 0
-/* Octeon does not have an FPU */
-#if !defined(_MIPS_ARCH_OCTEON)
-	ctc1	v0, $31
-	FP_L	$f20, ((20 + 38) * SZREG)(a0)
-	FP_L	$f21, ((21 + 38) * SZREG)(a0)
-	FP_L	$f22, ((22 + 38) * SZREG)(a0)
-	FP_L	$f23, ((23 + 38) * SZREG)(a0)
-	FP_L	$f24, ((24 + 38) * SZREG)(a0)
-	FP_L	$f25, ((25 + 38) * SZREG)(a0)
-	FP_L	$f26, ((26 + 38) * SZREG)(a0)
-	FP_L	$f27, ((27 + 38) * SZREG)(a0)
-	FP_L	$f28, ((28 + 38) * SZREG)(a0)
-	FP_L	$f29, ((29 + 38) * SZREG)(a0)
-	FP_L	$f30, ((30 + 38) * SZREG)(a0)
-	FP_L	$f31, ((31 + 38) * SZREG)(a0)
-#endif /*  _MIPS_ARCH_OCTEON */
-#endif
 
 	j	ra
 	move	v0, a1

==== //depot/projects/ctsrd/cheribsd/src/sys/boot/mips/Makefile#4 (text+ko) ====


==== //depot/projects/ctsrd/cheribsd/src/sys/mips/beri/beri_pic.c#3 (text+ko) ====

@@ -56,7 +56,6 @@
 static void	bp_write_cfg(struct beripic_softc *, int, uint64_t);
 static void	bp_detach_resources(device_t);
 static char	*bp_strconfig(uint64_t, char *, size_t);
-static void	bp_print_config(device_t);
 static void	bp_config_source(device_t, int, int, u_long, u_long);
 #ifdef __mips__
 static void	bp_set_counter_name(device_t, device_t, int);
@@ -217,29 +216,6 @@
 }
 
 static void
-bp_print_config(device_t dev)
-{
-	char configstr[64];
-	struct beripic_softc *sc;
-	int src;
-	uint64_t config;
-
-	sc = device_get_softc(dev);
-	
-	for (src = 0; src < sc->bp_nsrcs; src++) {
-		config = bp_read_cfg(sc, src);
-		if (config == 0)
-			continue;
-
-		device_printf(dev, "src %d: %s\n", src,
-		    bp_strconfig(config, configstr, sizeof(configstr)));
-		if (config & BP_CFG_RESERVED)
-			device_printf(dev, "reserved bits not 0: 0x%016jx\n",
-			    (uintmax_t) config);
-	}
-}
-
-static void
 bp_config_source(device_t ic, int src, int enable, u_long tid, u_long irq)
 {
 	char configstr[64];
@@ -292,11 +268,13 @@
 static int
 beripic_fdt_attach(device_t dev)
 {
+	char configstr[64];
 	struct beripic_softc *sc;
 	struct fdt_ic *fic;
 	pcell_t nhard, nsoft;
 	phandle_t ph;
-	int error, i;
+	int error, i, src;
+	uint64_t config;
 
 	sc = device_get_softc(dev);
 	sc->bp_dev = dev;
@@ -442,10 +420,22 @@
 	sc->bp_clear_bst = rman_get_bustag(sc->bp_clear_res);
 	sc->bp_clear_bsh = rman_get_bushandle(sc->bp_clear_res);
 
-	if (bootverbose)
-		bp_print_config(dev);
+	for (src = 0; src < sc->bp_nsrcs; src++) {
+		config = bp_read_cfg(sc, src);
+		if (config == 0)
+			continue;
+
+		if (bootverbose) {
+			device_printf(dev, "initial config: src %d: %s\n", src,
+			    bp_strconfig(config, configstr, sizeof(configstr)));
+			if (config & BP_CFG_RESERVED)
+				device_printf(dev,
+				    "reserved bits not 0: 0x%016jx\n",
+				    (uintmax_t) config);
+		}
 
-	/* XXX: ensure values match reset config */
+		bp_config_source(dev, src, 0, 0, 0);
+	}
 
 	fic = malloc(sizeof(*fic), M_BERIPIC, M_WAITOK|M_ZERO);
 	fic->iph = ph;

==== //depot/projects/ctsrd/cheribsd/src/sys/mips/include/cpufunc.h#6 (text+ko) ====

@@ -354,11 +354,15 @@
 #define	readb(va)	(*(volatile uint8_t *) (va))
 #define	readw(va)	(*(volatile uint16_t *) (va))
 #define	readl(va)	(*(volatile uint32_t *) (va))
-#define	readd(va)	mips3_ld(va)
+#if defined(__GNUC__) && !defined(__mips_o32)
+#define	readq(a)	(*(volatile uint64_t *)(a))
+#endif
  
 #define	writeb(va, d)	(*(volatile uint8_t *) (va) = (d))
 #define	writew(va, d)	(*(volatile uint16_t *) (va) = (d))
 #define	writel(va, d)	(*(volatile uint32_t *) (va) = (d))
-#define	writed(va, d)	mips3_sd((va), (d))
+#if defined(__GNUC__) && !defined(__mips_o32)
+#define	writeq(va, d)	(*(volatile uint64_t *) (va) = (d))
+#endif
 
 #endif /* !_MACHINE_CPUFUNC_H_ */

==== //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/bus_space_generic.c#7 (text+ko) ====

@@ -219,11 +219,15 @@
 #define rd8(a) readb(a)
 #define rd16(a) readw(a)
 #define rd32(a) readl(a)
-#define rd64(a)	readd(a)
+#ifdef readq
+#define rd64(a)	readq((a))
+#endif
 #define wr8(a, v) writeb(a, v)
 #define wr16(a, v) writew(a, v)
 #define wr32(a, v) writel(a, v)
-#define wr64(a, v) writed(a, v)
+#ifdef writeq
+#define wr64(a, v) writeq(a, v)
+#endif
 #endif
 
 /* generic bus_space tag */
@@ -441,7 +445,7 @@
     uint64_t value)
 {
 
-#ifdef rd64
+#ifdef wr64
 	wr64(bsh + offset, value);
 #else
 	panic("%s: not implemented", __func__);
@@ -486,7 +490,7 @@
 generic_bs_wm_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     const uint64_t *addr, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t baddr = bsh + offset;
 
 	while (count--)
@@ -540,7 +544,7 @@
 generic_bs_wr_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     const uint64_t *addr, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t baddr = bsh + offset;
 
 	while (count--) {
@@ -590,7 +594,7 @@
 generic_bs_sm_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     uint64_t value, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t addr = bsh + offset;
 
 	while (count--)
@@ -638,7 +642,7 @@
 generic_bs_sr_8(void *t, bus_space_handle_t bsh, bus_size_t offset,
     uint64_t value, size_t count)
 {
-#ifdef rd64
+#ifdef wr64
 	bus_addr_t addr = bsh + offset;
 
 	for (; count != 0; count--, addr += 8)
@@ -716,7 +720,7 @@
 generic_bs_c_8(void *t, bus_space_handle_t bsh1, bus_size_t off1,
     bus_space_handle_t bsh2, bus_size_t off2, size_t count)
 {
-#ifdef rd64
+#if defined(rd64) && defined(wr64)
 	bus_addr_t addr1 = bsh1 + off1;
 	bus_addr_t addr2 = bsh2 + off2;
 


More information about the p4-projects mailing list