Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Apr 2014 07:48:34 +0000 (UTC)
From:      Mark Murray <markm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r265043 - in projects/random_number_generator: release release/amd64 share/misc sys/amd64/amd64 sys/arm/arm sys/arm/freescale/imx sys/arm/include sys/arm/ti/omap4 sys/boot/fdt/dts/arm s...
Message-ID:  <201404280748.s3S7mYgn007790@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markm
Date: Mon Apr 28 07:48:33 2014
New Revision: 265043
URL: http://svnweb.freebsd.org/changeset/base/265043

Log:
  MFC - tracking commit

Added:
  projects/random_number_generator/sys/boot/fdt/dts/arm/sun4i-a10.dtsi
     - copied unchanged from r265042, head/sys/boot/fdt/dts/arm/sun4i-a10.dtsi
  projects/random_number_generator/sys/boot/fdt/dts/arm/sun7i-a20.dtsi
     - copied unchanged from r265042, head/sys/boot/fdt/dts/arm/sun7i-a20.dtsi
Modified:
  projects/random_number_generator/release/Makefile
  projects/random_number_generator/release/amd64/make-uefi-memstick.sh
  projects/random_number_generator/share/misc/bsd-family-tree
  projects/random_number_generator/sys/amd64/amd64/machdep.c
  projects/random_number_generator/sys/arm/arm/cpufunc_asm_armv7.S
  projects/random_number_generator/sys/arm/arm/dump_machdep.c
  projects/random_number_generator/sys/arm/arm/minidump_machdep.c
  projects/random_number_generator/sys/arm/arm/mp_machdep.c
  projects/random_number_generator/sys/arm/arm/pl310.c
  projects/random_number_generator/sys/arm/freescale/imx/imx6_pl310.c
  projects/random_number_generator/sys/arm/include/kdb.h
  projects/random_number_generator/sys/arm/include/pl310.h
  projects/random_number_generator/sys/arm/include/smp.h
  projects/random_number_generator/sys/arm/ti/omap4/omap4_l2cache.c
  projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard.dts
  projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard2.dts
  projects/random_number_generator/sys/boot/fdt/dts/arm/rpi.dts
  projects/random_number_generator/sys/boot/forth/beastie.4th
  projects/random_number_generator/sys/boot/forth/beastie.4th.8
  projects/random_number_generator/sys/boot/forth/loader.conf.5
  projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
  projects/random_number_generator/sys/dev/ath/ath_hal/ah.c
  projects/random_number_generator/sys/dev/ath/ath_hal/ah.h
  projects/random_number_generator/sys/dev/ath/ath_hal/ah_internal.h
  projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c
  projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c
  projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
  projects/random_number_generator/sys/dev/gpio/gpiobusvar.h
  projects/random_number_generator/sys/dev/gpio/ofw_gpiobus.c
  projects/random_number_generator/sys/dev/ofw/ofw_bus.h
  projects/random_number_generator/sys/dev/ofw/ofw_bus_if.m
  projects/random_number_generator/sys/dev/usb/controller/xhci.c
  projects/random_number_generator/sys/dev/usb/controller/xhci.h
  projects/random_number_generator/sys/dev/usb/controller/xhci_pci.c
  projects/random_number_generator/sys/dev/usb/controller/xhcireg.h
  projects/random_number_generator/sys/dev/vt/hw/vga/vga.c
  projects/random_number_generator/sys/net/rtsock.c
  projects/random_number_generator/usr.sbin/bsdinstall/partedit/partedit_x86.c
Directory Properties:
  projects/random_number_generator/   (props changed)
  projects/random_number_generator/sys/   (props changed)
  projects/random_number_generator/sys/boot/   (props changed)

Modified: projects/random_number_generator/release/Makefile
==============================================================================
--- projects/random_number_generator/release/Makefile	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/release/Makefile	Mon Apr 28 07:48:33 2014	(r265043)
@@ -164,6 +164,7 @@ system: packagesystem
 	ln -fs /tmp/bsdinstall_etc/resolv.conf release/etc/resolv.conf
 	echo sendmail_enable=\"NONE\" > release/etc/rc.conf
 	echo hostid_enable=\"NO\" >> release/etc/rc.conf
+	echo debug.witness.trace=0 >> release/etc/sysctl.conf
 	cp ${.CURDIR}/rc.local release/etc
 	touch ${.TARGET}
 
@@ -188,6 +189,7 @@ bootonly: packagesystem
 	ln -fs /tmp/bsdinstall_etc/resolv.conf bootonly/etc/resolv.conf
 	echo sendmail_enable=\"NONE\" > bootonly/etc/rc.conf
 	echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf
+	echo debug.witness.trace=0 >> bootonly/etc/sysctl.conf
 	cp ${.CURDIR}/rc.local bootonly/etc
 
 dvd:
@@ -206,6 +208,7 @@ dvd:
 	ln -fs /tmp/bsdinstall_etc/resolv.conf ${.TARGET}/etc/resolv.conf
 	echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf
 	echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf
+	echo debug.witness.trace=0 >> ${.TARGET}/etc/sysctl.conf
 	cp ${.CURDIR}/rc.local ${.TARGET}/etc
 	touch ${.TARGET}
 

Modified: projects/random_number_generator/release/amd64/make-uefi-memstick.sh
==============================================================================
--- projects/random_number_generator/release/amd64/make-uefi-memstick.sh	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/release/amd64/make-uefi-memstick.sh	Mon Apr 28 07:48:33 2014	(r265043)
@@ -36,6 +36,6 @@ if [ $? -ne 0 ]; then
 fi
 rm ${1}/etc/fstab
 
-mkimg -s gpt -b ${1}/boot/pmbr -p freebsd-boot:=${1}/boot/gptboot -p efi:=${1}/boot/boot1.efifat -p freebsd-ufs:=${2}.part -o ${2}
+mkimg -s gpt -b ${1}/boot/pmbr -p efi:=${1}/boot/boot1.efifat -p freebsd-boot:=${1}/boot/gptboot -p freebsd-ufs:=${2}.part -p freebsd-swap::1M -o ${2}
 rm ${2}.part
 

Modified: projects/random_number_generator/share/misc/bsd-family-tree
==============================================================================
--- projects/random_number_generator/share/misc/bsd-family-tree	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/share/misc/bsd-family-tree	Mon Apr 28 07:48:33 2014	(r265043)
@@ -635,7 +635,7 @@ FreeBSD 10.0		2014-01-20 [FBD]
 NetBSD 6.0.4		2014-01-27 [NBD]
 NetBSD 6.1.3		2014-01-27 [NBD]
 DragonFly 3.6.1 	2014-02-22 [DFB]
-DragonFly 3.6.2		2014-03-27 [DFB]
+DragonFly 3.6.2		2014-04-10 [DFB]
 NetBSD 6.0.5		2014-04-19 [NDB]
 NetBSD 6.1.4		2014-04-19 [NDB]
 

Modified: projects/random_number_generator/sys/amd64/amd64/machdep.c
==============================================================================
--- projects/random_number_generator/sys/amd64/amd64/machdep.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/amd64/amd64/machdep.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -1526,6 +1526,10 @@ add_efi_map_entries(struct efi_map_heade
 	}
 }
 
+static char bootmethod[16] = "";
+SYSCTL_STRING(_machdep, OID_AUTO, bootmethod, CTLFLAG_RD, bootmethod, 0,
+    "System firmware boot method");
+
 static void
 native_parse_memmap(caddr_t kmdp, vm_paddr_t *physmap, int *physmap_idx)
 {
@@ -1550,9 +1554,11 @@ native_parse_memmap(caddr_t kmdp, vm_pad
 
 	if (efihdr != NULL) {
 		add_efi_map_entries(efihdr, physmap, physmap_idx);
+		strlcpy(bootmethod, "UEFI", sizeof(bootmethod));
 	} else {
 		size = *((u_int32_t *)smap - 1);
 		bios_add_smap_entries(smap, size, physmap, physmap_idx);
+		strlcpy(bootmethod, "BIOS", sizeof(bootmethod));
 	}
 }
 

Modified: projects/random_number_generator/sys/arm/arm/cpufunc_asm_armv7.S
==============================================================================
--- projects/random_number_generator/sys/arm/arm/cpufunc_asm_armv7.S	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/arm/cpufunc_asm_armv7.S	Mon Apr 28 07:48:33 2014	(r265043)
@@ -251,7 +251,11 @@ ENTRY(armv7_idcache_wbinv_range)
 END(armv7_idcache_wbinv_range)
 
 ENTRY_NP(armv7_icache_sync_all)
+#ifdef SMP
 	mcr	p15, 0, r0, c7, c1, 0	/* Invalidate all I cache to PoU Inner Shareable */
+#else
+	mcr	p15, 0, r0, c7, c5, 0	/* Invalidate all I cache to PoU (ICIALLU) */
+#endif
 	isb				/* instruction synchronization barrier */
 	dsb				/* data synchronization barrier */
 	RET

Modified: projects/random_number_generator/sys/arm/arm/dump_machdep.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/dump_machdep.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/arm/dump_machdep.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -174,8 +174,14 @@ cb_dumpdata(struct md_pa *mdp, int seqnr
 	printf("  chunk %d: %dMB (%d pages)", seqnr, pgs * PAGE_SIZE / (
 	    1024*1024), pgs);
 
-	/* Make sure we write coherent datas. */
+	/*
+	 * Make sure we write coherent data.  Note that in the SMP case this
+	 * only operates on the L1 cache of the current CPU, but all other CPUs
+	 * have already been stopped, and their flush/invalidate was done as
+	 * part of stopping.
+	 */
 	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 #ifdef __XSCALE__
 	xscale_cache_clean_minidata();
 #endif

Modified: projects/random_number_generator/sys/arm/arm/minidump_machdep.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/minidump_machdep.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/arm/minidump_machdep.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -210,7 +210,15 @@ minidumpsys(struct dumperinfo *di)
 	int i, k, bit, error;
 	char *addr;
 
-	/* Flush cache */
+	/*
+	 * Flush caches.  Note that in the SMP case this operates only on the
+	 * current CPU's L1 cache.  Before we reach this point, code in either
+	 * the system shutdown or kernel debugger has called stop_cpus() to stop
+	 * all cores other than this one.  Part of the ARM handling of
+	 * stop_cpus() is to call wbinv_all() on that core's local L1 cache.  So
+	 * by time we get to here, all that remains is to flush the L1 for the
+	 * current CPU, then the L2.
+	 */
 	cpu_idcache_wbinv_all();
 	cpu_l2cache_wbinv_all();
 

Modified: projects/random_number_generator/sys/arm/arm/mp_machdep.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/mp_machdep.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/arm/mp_machdep.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
 #include <vm/pmap.h>
 
 #include <machine/cpu.h>
+#include <machine/cpufunc.h>
 #include <machine/smp.h>
 #include <machine/pcb.h>
 #include <machine/pte.h>
@@ -278,7 +279,6 @@ ipi_handler(void *arg)
 			break;
 
 		case IPI_STOP:
-		case IPI_STOP_HARD:
 			/*
 			 * IPI_STOP_HARD is mapped to IPI_STOP so it is not
 			 * necessary to add it in the switch.
@@ -287,6 +287,19 @@ ipi_handler(void *arg)
 
 			savectx(&stoppcbs[cpu]);
 
+			/*
+			 * CPUs are stopped when entering the debugger and at
+			 * system shutdown, both events which can precede a
+			 * panic dump.  For the dump to be correct, all caches
+			 * must be flushed and invalidated, but on ARM there's
+			 * no way to broadcast a wbinv_all to other cores.
+			 * Instead, we have each core do the local wbinv_all as
+			 * part of stopping the core.  The core requesting the
+			 * stop will do the l2 cache flush after all other cores
+			 * have done their l1 flushes and stopped.
+			 */
+			cpu_idcache_wbinv_all();
+
 			/* Indicate we are stopped */
 			CPU_SET_ATOMIC(cpu, &stopped_cpus);
 

Modified: projects/random_number_generator/sys/arm/arm/pl310.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/pl310.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/arm/pl310.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -84,6 +84,47 @@ static uint32_t g_ways_assoc;
 
 static struct pl310_softc *pl310_softc;
 
+void
+pl310_print_config(struct pl310_softc *sc)
+{
+	uint32_t aux, prefetch;
+	const char *dis = "disabled";
+	const char *ena = "enabled";
+
+	aux = pl310_read4(sc, PL310_AUX_CTRL);
+	prefetch = pl310_read4(sc, PL310_PREFETCH_CTRL);
+
+	device_printf(sc->sc_dev, "Early BRESP response: %s\n",
+		(aux & AUX_CTRL_EARLY_BRESP) ? ena : dis);
+	device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
+		(aux & AUX_CTRL_INSTR_PREFETCH) ? ena : dis);
+	device_printf(sc->sc_dev, "Data prefetch: %s\n",
+		(aux & AUX_CTRL_DATA_PREFETCH) ? ena : dis);
+	device_printf(sc->sc_dev, "Non-secure interrupt control: %s\n",
+		(aux & AUX_CTRL_NS_INT_CTRL) ? ena : dis);
+	device_printf(sc->sc_dev, "Non-secure lockdown: %s\n",
+		(aux & AUX_CTRL_NS_LOCKDOWN) ? ena : dis);
+	device_printf(sc->sc_dev, "Share override: %s\n",
+		(aux & AUX_CTRL_SHARE_OVERRIDE) ? ena : dis);
+
+	device_printf(sc->sc_dev, "Double linefill: %s\n",
+		(prefetch & PREFETCH_CTRL_DL) ? ena : dis);
+	device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
+		(prefetch & PREFETCH_CTRL_INSTR_PREFETCH) ? ena : dis);
+	device_printf(sc->sc_dev, "Data prefetch: %s\n",
+		(prefetch & PREFETCH_CTRL_DATA_PREFETCH) ? ena : dis);
+	device_printf(sc->sc_dev, "Double linefill on WRAP request: %s\n",
+		(prefetch & PREFETCH_CTRL_DL_ON_WRAP) ? ena : dis);
+	device_printf(sc->sc_dev, "Prefetch drop: %s\n",
+		(prefetch & PREFETCH_CTRL_PREFETCH_DROP) ? ena : dis);
+	device_printf(sc->sc_dev, "Incr double Linefill: %s\n",
+		(prefetch & PREFETCH_CTRL_INCR_DL) ? ena : dis);
+	device_printf(sc->sc_dev, "Not same ID on exclusive sequence: %s\n",
+		(prefetch & PREFETCH_CTRL_NOTSAMEID) ? ena : dis);
+	device_printf(sc->sc_dev, "Prefetch offset: %d\n",
+		(prefetch & PREFETCH_CTRL_OFFSET_MASK));
+}
+
 static int
 pl310_filter(void *arg)
 {
@@ -351,6 +392,8 @@ pl310_attach(device_t dev)
 		/* Enable the L2 cache if disabled */
 		platform_pl310_write_ctrl(sc, CTRL_ENABLED);
 		device_printf(dev, "L2 Cache enabled\n");
+		if (bootverbose)
+			pl310_print_config(sc);
 	} 
 
 	if (!sc->sc_enabled && (ctrl_value & CTRL_ENABLED)) {

Modified: projects/random_number_generator/sys/arm/freescale/imx/imx6_pl310.c
==============================================================================
--- projects/random_number_generator/sys/arm/freescale/imx/imx6_pl310.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/freescale/imx/imx6_pl310.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -44,42 +44,6 @@ __FBSDID("$FreeBSD$");
 void
 platform_pl310_init(struct pl310_softc *sc)
 {
-	uint32_t aux, prefetch;
-
-	aux = pl310_read4(sc, PL310_AUX_CTRL);
-	prefetch = pl310_read4(sc, PL310_PREFETCH_CTRL);
-
-	if (bootverbose) {
-		device_printf(sc->sc_dev, "Early BRESP response: %s\n",
-			(aux & AUX_CTRL_EARLY_BRESP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
-			(aux & AUX_CTRL_INSTR_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Data prefetch: %s\n",
-			(aux & AUX_CTRL_DATA_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Non-secure interrupt control: %s\n",
-			(aux & AUX_CTRL_NS_INT_CTRL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Non-secure lockdown: %s\n",
-			(aux & AUX_CTRL_NS_LOCKDOWN) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Share override: %s\n",
-			(aux & AUX_CTRL_SHARE_OVERRIDE) ? "enabled" : "disabled");
-
-		device_printf(sc->sc_dev, "Double linefil: %s\n",
-			(prefetch & PREFETCH_CTRL_DL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
-			(prefetch & PREFETCH_CTRL_INSTR_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Data prefetch: %s\n",
-			(prefetch & PREFETCH_CTRL_DATA_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Double linefill on WRAP request: %s\n",
-			(prefetch & PREFETCH_CTRL_DL_ON_WRAP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Prefetch drop: %s\n",
-			(prefetch & PREFETCH_CTRL_PREFETCH_DROP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Incr double Linefill: %s\n",
-			(prefetch & PREFETCH_CTRL_INCR_DL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Not same ID on exclusive sequence: %s\n",
-			(prefetch & PREFETCH_CTRL_NOTSAMEID) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Prefetch offset: %d\n",
-			(prefetch & PREFETCH_CTRL_OFFSET_MASK));
-	}
 }
 
 void

Modified: projects/random_number_generator/sys/arm/include/kdb.h
==============================================================================
--- projects/random_number_generator/sys/arm/include/kdb.h	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/include/kdb.h	Mon Apr 28 07:48:33 2014	(r265043)
@@ -55,8 +55,6 @@ kdb_cpu_sync_icache(unsigned char *addr,
 static __inline void
 kdb_cpu_trap(int type, int code)
 {
-
-	cpu_idcache_wbinv_all();
 }
 
 #endif /* _MACHINE_KDB_H_ */

Modified: projects/random_number_generator/sys/arm/include/pl310.h
==============================================================================
--- projects/random_number_generator/sys/arm/include/pl310.h	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/include/pl310.h	Mon Apr 28 07:48:33 2014	(r265043)
@@ -161,6 +161,8 @@ pl310_write4(struct pl310_softc *sc, bus
 	bus_write_4(sc->sc_mem_res, off, val);
 }
 
+void pl310_print_config(struct pl310_softc *sc);
+
 void platform_pl310_init(struct pl310_softc *);
 void platform_pl310_write_ctrl(struct pl310_softc *, uint32_t);
 void platform_pl310_write_debug(struct pl310_softc *, uint32_t);

Modified: projects/random_number_generator/sys/arm/include/smp.h
==============================================================================
--- projects/random_number_generator/sys/arm/include/smp.h	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/include/smp.h	Mon Apr 28 07:48:33 2014	(r265043)
@@ -10,7 +10,7 @@
 #define IPI_PREEMPT	2
 #define IPI_RENDEZVOUS	3
 #define IPI_STOP	4
-#define IPI_STOP_HARD	5
+#define IPI_STOP_HARD	4
 #define IPI_HARDCLOCK	6
 #define IPI_TLB		7
 

Modified: projects/random_number_generator/sys/arm/ti/omap4/omap4_l2cache.c
==============================================================================
--- projects/random_number_generator/sys/arm/ti/omap4/omap4_l2cache.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/arm/ti/omap4/omap4_l2cache.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -45,38 +45,6 @@ platform_pl310_init(struct pl310_softc *
 	aux = pl310_read4(sc, PL310_AUX_CTRL);
 	prefetch = pl310_read4(sc, PL310_PREFETCH_CTRL);
 
-	if (bootverbose) {
-		device_printf(sc->sc_dev, "Early BRESP response: %s\n",
-			(aux & AUX_CTRL_EARLY_BRESP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
-			(aux & AUX_CTRL_INSTR_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Data prefetch: %s\n",
-			(aux & AUX_CTRL_DATA_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Non-secure interrupt control: %s\n",
-			(aux & AUX_CTRL_NS_INT_CTRL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Non-secure lockdown: %s\n",
-			(aux & AUX_CTRL_NS_LOCKDOWN) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Share override: %s\n",
-			(aux & AUX_CTRL_SHARE_OVERRIDE) ? "enabled" : "disabled");
-
-		device_printf(sc->sc_dev, "Double linefil: %s\n",
-			(prefetch & PREFETCH_CTRL_DL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Instruction prefetch: %s\n",
-			(prefetch & PREFETCH_CTRL_INSTR_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Data prefetch: %s\n",
-			(prefetch & PREFETCH_CTRL_DATA_PREFETCH) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Double linefill on WRAP request: %s\n",
-			(prefetch & PREFETCH_CTRL_DL_ON_WRAP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Prefetch drop: %s\n",
-			(prefetch & PREFETCH_CTRL_PREFETCH_DROP) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Incr double Linefill: %s\n",
-			(prefetch & PREFETCH_CTRL_INCR_DL) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Not same ID on exclusive sequence: %s\n",
-			(prefetch & PREFETCH_CTRL_NOTSAMEID) ? "enabled" : "disabled");
-		device_printf(sc->sc_dev, "Prefetch offset: %d\n",
-			(prefetch & PREFETCH_CTRL_OFFSET_MASK));
-	}
-
 	/*
 	 * Disable instruction prefetch
 	 */

Modified: projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard.dts
==============================================================================
--- projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard.dts	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard.dts	Mon Apr 28 07:48:33 2014	(r265043)
@@ -28,13 +28,10 @@
 
 /dts-v1/;
 
+/include/ "sun4i-a10.dtsi"
+
 / {
 	model = "Cubietech Cubieboard";
-	compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	interrupt-parent = <&AINTC>;
 
 	memory {
 		device_type = "memory";
@@ -47,96 +44,21 @@
 	};
 
 	SOC: a10 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "simple-bus";
-		ranges;
-		bus-frequency = <0>;
-
-		AINTC: interrupt-controller@01c20400 {
-			compatible = "allwinner,sun4i-ic";
-			interrupt-controller;
-			#address-cells = <0>;
-			#interrupt-cells = <1>;
-			reg =   < 0x01c20400 0x400 >;
-		};
-
-		sramc@01c00000 {
-			compatible = "allwinner,sun4i-sramc";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = < 0x01c00000 0x1000 >;
-		};
-
-		ccm@01c20000 {
-			compatible = "allwinner,sun4i-ccm";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = < 0x01c20000 0x400 >;
-		};
-
-		timer@01c20c00 {
-			compatible = "allwinner,sun4i-timer";
-			reg = <0x01c20c00 0x90>;
-			interrupts = < 22 >;
-			interrupt-parent = <&AINTC>;
-			clock-frequency = < 24000000 >;
-		};
-
-		watchdog@01c20c90 {
-			compatible = "allwinner,sun4i-wdt";
-			reg = <0x01c20c90 0x08>;
-		};
-
-
-		GPIO: gpio@01c20800 {
-			#gpio-cells = <3>;
-			compatible = "allwinner,sun4i-gpio";
-			gpio-controller;
-			reg =<  0x01c20800 0x400 >;
-			interrupts = < 28 >;
-			interrupt-parent = <&AINTC>;
-		};
 
 		usb1: usb@01c14000 {
-			compatible = "allwinner,usb-ehci", "usb-ehci";
-			reg = <0x01c14000 0x1000>;
-			interrupts = < 39 >;
-			interrupt-parent = <&AINTC>;
+			status = "okay";
 		};
 
 		usb2: usb@01c1c000 {
-			compatible = "allwinner,usb-ehci", "usb-ehci";
-			reg = <0x01c1c000 0x1000>;
-			interrupts = < 40 >;
-			interrupt-parent = <&AINTC>;
-		};
-
-		sata@01c18000 {
-			compatible = "allwinner,ahci";
-			reg = <0x01c18000 0x1000>;
-			interrupts = <56>;
-			interrupt-parent = <&AINTC>;
+			status = "okay";
 		};
 
 		UART0: serial@01c28000 {
 			status = "okay";
-			compatible = "ns16550";
-			reg = <0x01c28000 0x400>;
-			reg-shift = <2>;
-			interrupts = <1>;
-			interrupt-parent = <&AINTC>;
-			current-speed = <115200>;
-			clock-frequency = < 24000000 >;
-			busy-detect = <1>;
-			broken-txfifo = <1>;
 		};
 
 		emac@01c0b000 {
-			compatible = "allwinner,sun4i-emac";
-			reg = <0x01c0b000 0x1000>;
-			interrupts = <55>;
-			interrupt-parent = <&AINTC>;
+			status = "okay";
 		};
 	};
 

Modified: projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard2.dts
==============================================================================
--- projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard2.dts	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/fdt/dts/arm/cubieboard2.dts	Mon Apr 28 07:48:33 2014	(r265043)
@@ -28,13 +28,10 @@
 
 /dts-v1/;
 
+/include/ "sun7i-a20.dtsi"
+
 / {
 	model = "Cubietech Cubieboard2";
-	compatible = "cubietech,a20-cubieboard", "allwinner,sun7i-a20";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	interrupt-parent = <&GIC>;
 
 	memory {
 		device_type = "memory";
@@ -47,102 +44,21 @@
 	};
 
 	SOC: a20 {
-		#address-cells = <1>;
-		#size-cells = <1>;
-		compatible = "simple-bus";
-		ranges;
-		bus-frequency = <0>;
-
-		GIC: interrupt-controller@01c81000 {
-			compatible = "arm,gic";
-			reg = 	<0x01c81000 0x1000>,	/* Distributor Registers */
-				<0x01c82000 0x0100>;	/* CPU Interface Registers */
-			interrupt-controller;
-			#interrupt-cells = <1>;
-		};
-
-		sramc@01c00000 {
-			compatible = "allwinner,sun4i-sramc";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = < 0x01c00000 0x1000 >;
-		};
-
-		cpu-cfg@01c25c00 {
-			compatible = "allwinner,sun7i-cpu-cfg";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = < 0x01c25c00 0x400 >;
-		};
-
-		ccm@01c20000 {
-			compatible = "allwinner,sun4i-ccm";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			reg = < 0x01c20000 0x400 >;
-		};
-
-		timer@01c20c00 {
-			compatible = "allwinner,sun7i-timer";
-			reg = <0x01c20c00 0x90>;
-			interrupts = < 22 >;
-			interrupt-parent = <&GIC>;
-			clock-frequency = < 24000000 >;
-		};
-
-		watchdog@01c20c90 {
-			compatible = "allwinner,sun4i-wdt";
-			reg = <0x01c20c90 0x10>;
-		};
-
-		GPIO: gpio@01c20800 {
-			#gpio-cells = <3>;
-			compatible = "allwinner,sun4i-gpio";
-			gpio-controller;
-			reg =<  0x01c20800 0x400 >;
-			interrupts = < 28 >;
-			interrupt-parent = <&GIC>;
-		};
 
 		usb1: usb@01c14000 {
-			compatible = "allwinner,usb-ehci", "usb-ehci";
-			reg = <0x01c14000 0x1000>;
-			interrupts = < 39 >;
-			interrupt-parent = <&GIC>;
+			status = "okay";
 		};
 
 		usb2: usb@01c1c000 {
-			compatible = "allwinner,usb-ehci", "usb-ehci";
-			reg = <0x01c1c000 0x1000>;
-			interrupts = < 40 >;
-			interrupt-parent = <&GIC>;
-		};
-
-		sata@01c18000 {
-			compatible = "allwinner,ahci";
-			reg = <0x01c18000 0x1000>;
-			interrupts = <56>;
-			interrupt-parent = <&GIC>;
+			status = "okay";
 		};
 
 		UART0: serial@01c28000 {
 			status = "okay";
-			compatible = "ns16550";
-			reg = <0x01c28000 0x400>;
-			reg-shift = <2>;
-			interrupts = <1>;
-			interrupt-parent = <&GIC>;
-			current-speed = <115200>;
-			clock-frequency = < 24000000 >;
-			busy-detect = <1>;
-			broken-txfifo = <1>;
 		};
 
 		emac@01c0b000 {
-			compatible = "allwinner,sun4i-emac";
-			reg = <0x01c0b000 0x1000>;
-			interrupts = <55>;
-			interrupt-parent = <&GIC>;
+			status = "okay";
 		};
 	};
 

Modified: projects/random_number_generator/sys/boot/fdt/dts/arm/rpi.dts
==============================================================================
--- projects/random_number_generator/sys/boot/fdt/dts/arm/rpi.dts	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/fdt/dts/arm/rpi.dts	Mon Apr 28 07:48:33 2014	(r265043)
@@ -316,7 +316,7 @@
 
 		ok {
 			label = "ok";
-			gpios = <&gpio 16 2 0>;
+			gpios = <&gpio 16 1>;
 
 			/* Don't change this - it configures
 			 * how the led driver determines if

Copied: projects/random_number_generator/sys/boot/fdt/dts/arm/sun4i-a10.dtsi (from r265042, head/sys/boot/fdt/dts/arm/sun4i-a10.dtsi)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/random_number_generator/sys/boot/fdt/dts/arm/sun4i-a10.dtsi	Mon Apr 28 07:48:33 2014	(r265043, copy of r265042, head/sys/boot/fdt/dts/arm/sun4i-a10.dtsi)
@@ -0,0 +1,133 @@
+/*-
+ * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/ {
+	compatible = "allwinner,sun4i-a10";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	interrupt-parent = <&AINTC>;
+
+	aliases {
+		soc = &SOC;
+	};
+
+	SOC: a10 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+		bus-frequency = <0>;
+
+		AINTC: interrupt-controller@01c20400 {
+			compatible = "allwinner,sun4i-ic";
+			interrupt-controller;
+			#address-cells = <0>;
+			#interrupt-cells = <1>;
+			reg =   < 0x01c20400 0x400 >;
+		};
+
+		sramc@01c00000 {
+			compatible = "allwinner,sun4i-sramc";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = < 0x01c00000 0x1000 >;
+		};
+
+		ccm@01c20000 {
+			compatible = "allwinner,sun4i-ccm";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = < 0x01c20000 0x400 >;
+		};
+
+		timer@01c20c00 {
+			compatible = "allwinner,sun4i-timer";
+			reg = <0x01c20c00 0x90>;
+			interrupts = < 22 >;
+			interrupt-parent = <&AINTC>;
+			clock-frequency = < 24000000 >;
+		};
+
+		watchdog@01c20c90 {
+			compatible = "allwinner,sun4i-wdt";
+			reg = <0x01c20c90 0x08>;
+		};
+
+
+		GPIO: gpio@01c20800 {
+			#gpio-cells = <3>;
+			compatible = "allwinner,sun4i-gpio";
+			gpio-controller;
+			reg =<  0x01c20800 0x400 >;
+			interrupts = < 28 >;
+			interrupt-parent = <&AINTC>;
+		};
+
+		usb1: usb@01c14000 {
+			compatible = "allwinner,usb-ehci", "usb-ehci";
+			reg = <0x01c14000 0x1000>;
+			interrupts = < 39 >;
+			interrupt-parent = <&AINTC>;
+		};
+
+		usb2: usb@01c1c000 {
+			compatible = "allwinner,usb-ehci", "usb-ehci";
+			reg = <0x01c1c000 0x1000>;
+			interrupts = < 40 >;
+			interrupt-parent = <&AINTC>;
+		};
+
+		sata@01c18000 {
+			compatible = "allwinner,ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <56>;
+			interrupt-parent = <&AINTC>;
+		};
+
+		UART0: serial@01c28000 {
+			compatible = "ns16550";
+			reg = <0x01c28000 0x400>;
+			reg-shift = <2>;
+			interrupts = <1>;
+			interrupt-parent = <&AINTC>;
+			current-speed = <115200>;
+			clock-frequency = < 24000000 >;
+			busy-detect = <1>;
+			broken-txfifo = <1>;
+		};
+
+		emac@01c0b000 {
+			compatible = "allwinner,sun4i-emac";
+			reg = <0x01c0b000 0x1000>;
+			interrupts = <55>;
+			interrupt-parent = <&AINTC>;
+		};
+	};
+};
+

Copied: projects/random_number_generator/sys/boot/fdt/dts/arm/sun7i-a20.dtsi (from r265042, head/sys/boot/fdt/dts/arm/sun7i-a20.dtsi)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/random_number_generator/sys/boot/fdt/dts/arm/sun7i-a20.dtsi	Mon Apr 28 07:48:33 2014	(r265043, copy of r265042, head/sys/boot/fdt/dts/arm/sun7i-a20.dtsi)
@@ -0,0 +1,139 @@
+/*-
+ * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/ {
+	compatible = "allwinner,sun7i-a20";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	interrupt-parent = <&GIC>;
+
+	aliases {
+		soc = &SOC;
+	};
+
+	SOC: a20 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "simple-bus";
+		ranges;
+		bus-frequency = <0>;
+
+		GIC: interrupt-controller@01c81000 {
+			compatible = "arm,gic";
+			reg = 	<0x01c81000 0x1000>,	/* Distributor Registers */
+				<0x01c82000 0x0100>;	/* CPU Interface Registers */
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		sramc@01c00000 {
+			compatible = "allwinner,sun4i-sramc";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = < 0x01c00000 0x1000 >;
+		};
+
+		cpu-cfg@01c25c00 {
+			compatible = "allwinner,sun7i-cpu-cfg";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = < 0x01c25c00 0x400 >;
+		};
+
+		ccm@01c20000 {
+			compatible = "allwinner,sun4i-ccm";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			reg = < 0x01c20000 0x400 >;
+		};
+
+		timer@01c20c00 {
+			compatible = "allwinner,sun7i-timer";
+			reg = <0x01c20c00 0x90>;
+			interrupts = < 22 >;
+			interrupt-parent = <&GIC>;
+			clock-frequency = < 24000000 >;
+		};
+
+		watchdog@01c20c90 {
+			compatible = "allwinner,sun4i-wdt";
+			reg = <0x01c20c90 0x10>;
+		};
+
+		GPIO: gpio@01c20800 {
+			#gpio-cells = <3>;
+			compatible = "allwinner,sun4i-gpio";
+			gpio-controller;
+			reg =<  0x01c20800 0x400 >;
+			interrupts = < 28 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		usb1: usb@01c14000 {
+			compatible = "allwinner,usb-ehci", "usb-ehci";
+			reg = <0x01c14000 0x1000>;
+			interrupts = < 39 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		usb2: usb@01c1c000 {
+			compatible = "allwinner,usb-ehci", "usb-ehci";
+			reg = <0x01c1c000 0x1000>;
+			interrupts = < 40 >;
+			interrupt-parent = <&GIC>;
+		};
+
+		sata@01c18000 {
+			compatible = "allwinner,ahci";
+			reg = <0x01c18000 0x1000>;
+			interrupts = <56>;
+			interrupt-parent = <&GIC>;
+		};
+
+		UART0: serial@01c28000 {
+			compatible = "ns16550";
+			reg = <0x01c28000 0x400>;
+			reg-shift = <2>;
+			interrupts = <1>;
+			interrupt-parent = <&GIC>;
+			current-speed = <115200>;
+			clock-frequency = < 24000000 >;
+			busy-detect = <1>;
+			broken-txfifo = <1>;
+		};
+
+		emac@01c0b000 {
+			compatible = "allwinner,sun4i-emac";
+			reg = <0x01c0b000 0x1000>;
+			interrupts = <55>;
+			interrupt-parent = <&GIC>;
+		};
+	};
+};
+

Modified: projects/random_number_generator/sys/boot/forth/beastie.4th
==============================================================================
--- projects/random_number_generator/sys/boot/forth/beastie.4th	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/forth/beastie.4th	Mon Apr 28 07:48:33 2014	(r265043)
@@ -242,6 +242,11 @@ variable logoY
 ;
 
 : beastie-start ( -- ) \ starts the menu
+	s" console" getenv dup -1 <> if
+		s" efi" 2swap contains? if
+			s" set beastie_disable=YES" evaluate
+		then
+	else drop then
 	s" beastie_disable" getenv
 	dup -1 <> if
 		s" YES" compare-insensitive 0= if

Modified: projects/random_number_generator/sys/boot/forth/beastie.4th.8
==============================================================================
--- projects/random_number_generator/sys/boot/forth/beastie.4th.8	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/forth/beastie.4th.8	Mon Apr 28 07:48:33 2014	(r265043)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 16, 2011
+.Dd April 27, 2014
 .Dt BEASTIE.4TH 8
 .Os
 .Sh NAME
@@ -119,6 +119,8 @@ Sets the desired row position of the log
 If set to
 .Dq YES ,
 the beastie boot menu will be skipped.
+The beastie boot menu is always skipped if booting UEFI or running non-x86
+hardware.
 .It Va loader_delay
 If set to a number higher than zero, introduces a delay before starting the
 beastie boot menu. During the delay the user can press either Ctrl-C to skip

Modified: projects/random_number_generator/sys/boot/forth/loader.conf.5
==============================================================================
--- projects/random_number_generator/sys/boot/forth/loader.conf.5	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/boot/forth/loader.conf.5	Mon Apr 28 07:48:33 2014	(r265043)
@@ -23,7 +23,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\" $FreeBSD$
-.Dd October 18, 2013
+.Dd April 27, 2014
 .Dt LOADER.CONF 5
 .Os
 .Sh NAME
@@ -236,6 +236,8 @@ be displayed.
 If set to
 .Dq YES ,
 the beastie boot menu will be skipped.
+The beastie boot menu is always skipped if booting UEFI or running non-x86
+hardware.
 .It Va loader_logo Pq Dq Li orbbw
 Selects a desired logo in the beastie boot menu.
 Possible values are:

Modified: projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c
==============================================================================
--- projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -2934,6 +2934,10 @@ ar9300_fill_capability_info(struct ath_h
         p_cap->halRxUsingLnaMixing = AH_TRUE;
     }
 
+    /*
+     * AR5416 and later NICs support MYBEACON filtering.
+     */
+    p_cap->halRxDoMyBeacon = AH_TRUE;
 
 #if ATH_WOW_OFFLOAD
     if (AR_SREV_JUPITER_20_OR_LATER(ah) || AR_SREV_APHRODITE(ah)) {

Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- projects/random_number_generator/sys/dev/ath/ath_hal/ah.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/dev/ath/ath_hal/ah.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -786,6 +786,8 @@ ath_hal_getcapability(struct ath_hal *ah
 		return HAL_OK;
 	case HAL_CAP_RX_LNA_MIXING:	/* Hardware uses an RX LNA mixer to map 2 antennas to a 1 stream receiver */
 		return pCap->halRxUsingLnaMixing ? HAL_OK : HAL_ENOTSUPP;
+	case HAL_CAP_DO_MYBEACON:	/* Hardware supports filtering my-beacons */
+		return pCap->halRxDoMyBeacon ? HAL_OK : HAL_ENOTSUPP;
 	default:
 		return HAL_EINVAL;
 	}

Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- projects/random_number_generator/sys/dev/ath/ath_hal/ah.h	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/dev/ath/ath_hal/ah.h	Mon Apr 28 07:48:33 2014	(r265043)
@@ -199,6 +199,7 @@ typedef enum {
 	HAL_CAP_SERIALISE_WAR	= 245,	/* serialise register access on PCI */
 	HAL_CAP_ENFORCE_TXOP	= 246,	/* Enforce TXOP if supported */
 	HAL_CAP_RX_LNA_MIXING	= 247,	/* RX hardware uses LNA mixing */
+	HAL_CAP_DO_MYBEACON	= 248,	/* Supports HAL_RX_FILTER_MYBEACON */
 } HAL_CAPABILITY_TYPE;
 
 /* 
@@ -404,6 +405,7 @@ typedef enum {
 	HAL_RX_FILTER_PROM	= 0x00000020,	/* Promiscuous mode */
 	HAL_RX_FILTER_PROBEREQ	= 0x00000080,	/* Allow probe request frames */
 	HAL_RX_FILTER_PHYERR	= 0x00000100,	/* Allow phy errors */
+	HAL_RX_FILTER_MYBEACON  = 0x00000200,   /* Filter beacons other than mine */
 	HAL_RX_FILTER_COMPBAR	= 0x00000400,	/* Allow compressed BAR */
 	HAL_RX_FILTER_COMP_BA	= 0x00000800,	/* Allow compressed blockack */
 	HAL_RX_FILTER_PHYRADAR	= 0x00002000,	/* Allow phy radar errors */

Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ah_internal.h
==============================================================================
--- projects/random_number_generator/sys/dev/ath/ath_hal/ah_internal.h	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/dev/ath/ath_hal/ah_internal.h	Mon Apr 28 07:48:33 2014	(r265043)
@@ -280,7 +280,8 @@ typedef struct {
 			halAntDivCombSupportOrg		: 1,
 			halRadioRetentionSupport	: 1,
 			halSpectralScanSupport		: 1,
-			halRxUsingLnaMixing		: 1;
+			halRxUsingLnaMixing		: 1,
+			halRxDoMyBeacon			: 1;
 
 	uint32_t	halWirelessModes;
 	uint16_t	halTotalQueues;

Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -1059,6 +1059,11 @@ ar5416FillCapabilityInfo(struct ath_hal 
 	if (! AH_PRIVATE(ah)->ah_ispcie)
 		pCap->halSerialiseRegWar = 1;
 
+	/*
+	 * AR5416 and later NICs support MYBEACON filtering.
+	 */
+	pCap->halRxDoMyBeacon = AH_TRUE;
+
 	return AH_TRUE;
 }
 

Modified: projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c
==============================================================================
--- projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c	Mon Apr 28 06:24:37 2014	(r265042)
+++ projects/random_number_generator/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c	Mon Apr 28 07:48:33 2014	(r265043)
@@ -197,6 +197,25 @@ ar5416SetStaBeaconTimers(struct ath_hal 
 	 *   beacon jitter; cab timeout is max time to wait for cab
 	 *   after seeing the last DTIM or MORE CAB bit
 	 */
+
+/*

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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