PERFORCE change 141332 for review
Marius Strobl
marius at FreeBSD.org
Thu May 8 20:34:19 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=141332
Change 141332 by marius at flak on 2008/05/08 20:34:15
o IFC @141331.
o Changes to schizo(4):
- Catch up with using the result of device_get_nameunit(9) for
naming the IOMMU.
- Account for `jbusppm' devices sharing a subregion of a register
bank with the Tomatillo controller configuration registers.
- Setup the performance counter 0 in bus cycle counting mode as
timecounter. This was intended to fully solve the problems of
using the (s)tick counters which are not (fully) synchronized
between CPUs as timecounter but unfortunately counting bus
cycles seems to be broken in Tomatillos (not running full power
electro isn't the cause.)
- Use a macro for determining the DVMA size instead of hardcoding
values. Inspired by the NetBSD psycho(4) but this version is
in turn based on macros of iommureg.h.
- Use a macro for the VIS block size in schizo_dmasync().
Affected files ...
.. //depot/projects/usiii/amd64/conf/GENERIC#9 integrate
.. //depot/projects/usiii/amd64/conf/NOTES#6 integrate
.. //depot/projects/usiii/arm/at91/uart_dev_at91usart.c#3 integrate
.. //depot/projects/usiii/conf/NOTES#10 integrate
.. //depot/projects/usiii/conf/files#11 integrate
.. //depot/projects/usiii/conf/files.powerpc#6 integrate
.. //depot/projects/usiii/conf/files.sun4v#4 integrate
.. //depot/projects/usiii/conf/kern.mk#2 integrate
.. //depot/projects/usiii/conf/ldscript.mips#2 integrate
.. //depot/projects/usiii/conf/ldscript.mips.cfe#2 integrate
.. //depot/projects/usiii/conf/options#10 integrate
.. //depot/projects/usiii/contrib/dev/iwn/LICENSE#1 branch
.. //depot/projects/usiii/contrib/dev/iwn/iwlwifi-4965-4.44.17.fw.uu#1 branch
.. //depot/projects/usiii/contrib/rdma/core_priv.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_addr.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_cache.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_cm.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_fmr_pool.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_mad.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_marshall.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_pack.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_sa.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_smi.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_umem.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_user_cm.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_user_mad.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_user_sa.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_user_verbs.h#1 branch
.. //depot/projects/usiii/contrib/rdma/ib_verbs.h#1 branch
.. //depot/projects/usiii/contrib/rdma/iw_cm.h#1 branch
.. //depot/projects/usiii/contrib/rdma/krping/getopt.c#1 branch
.. //depot/projects/usiii/contrib/rdma/krping/getopt.h#1 branch
.. //depot/projects/usiii/contrib/rdma/krping/krping.c#1 branch
.. //depot/projects/usiii/contrib/rdma/krping/krping.h#1 branch
.. //depot/projects/usiii/contrib/rdma/krping/krping_dev.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_addr.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_cache.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_cm.h#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_cm_ib.h#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_cma.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_device.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_iwcm.c#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_user_cm.h#1 branch
.. //depot/projects/usiii/contrib/rdma/rdma_verbs.c#1 branch
.. //depot/projects/usiii/contrib/rdma/types.h#1 branch
.. //depot/projects/usiii/dev/ata/ata-disk.c#5 integrate
.. //depot/projects/usiii/dev/ata/ata-lowlevel.c#4 integrate
.. //depot/projects/usiii/dev/ata/atapi-cd.c#4 integrate
.. //depot/projects/usiii/dev/ata/atapi-fd.c#4 integrate
.. //depot/projects/usiii/dev/ata/atapi-tape.c#4 integrate
.. //depot/projects/usiii/dev/ath/if_ath.c#7 integrate
.. //depot/projects/usiii/dev/ath/if_athvar.h#3 integrate
.. //depot/projects/usiii/dev/bce/if_bce.c#5 integrate
.. //depot/projects/usiii/dev/bfe/if_bfe.c#4 integrate
.. //depot/projects/usiii/dev/bge/if_bge.c#10 integrate
.. //depot/projects/usiii/dev/bge/if_bgereg.h#4 integrate
.. //depot/projects/usiii/dev/cxgb/cxgb_config.h#3 integrate
.. //depot/projects/usiii/dev/cxgb/cxgb_main.c#7 integrate
.. //depot/projects/usiii/dev/cxgb/cxgb_offload.c#5 integrate
.. //depot/projects/usiii/dev/cxgb/cxgb_osdep.h#5 integrate
.. //depot/projects/usiii/dev/cxgb/t3cdev.h#3 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h#1 branch
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#5 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_ddp.c#4 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#2 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_toepcb.h#3 integrate
.. //depot/projects/usiii/dev/dcons/dcons_os.c#3 integrate
.. //depot/projects/usiii/dev/hme/if_hme_pci.c#3 integrate
.. //depot/projects/usiii/dev/hme/if_hme_sbus.c#3 integrate
.. //depot/projects/usiii/dev/if_ndis/if_ndis.c#5 integrate
.. //depot/projects/usiii/dev/ipw/if_ipw.c#5 integrate
.. //depot/projects/usiii/dev/iwi/if_iwi.c#5 integrate
.. //depot/projects/usiii/dev/iwn/if_iwn.c#1 branch
.. //depot/projects/usiii/dev/iwn/if_iwnreg.h#1 branch
.. //depot/projects/usiii/dev/iwn/if_iwnvar.h#1 branch
.. //depot/projects/usiii/dev/mii/brgphy.c#4 integrate
.. //depot/projects/usiii/dev/mii/brgphyreg.h#2 integrate
.. //depot/projects/usiii/dev/mii/ciphy.c#3 integrate
.. //depot/projects/usiii/dev/mii/miidevs#6 integrate
.. //depot/projects/usiii/dev/mpt/mpt.h#3 integrate
.. //depot/projects/usiii/dev/mpt/mpt_cam.c#3 integrate
.. //depot/projects/usiii/dev/mpt/mpt_raid.c#3 integrate
.. //depot/projects/usiii/dev/mpt/mpt_user.c#1 branch
.. //depot/projects/usiii/dev/ofw/ofw_console.c#4 integrate
.. //depot/projects/usiii/dev/pci/pcivar.h#5 integrate
.. //depot/projects/usiii/dev/ral/rt2560.c#7 integrate
.. //depot/projects/usiii/dev/ral/rt2661.c#7 integrate
.. //depot/projects/usiii/dev/scc/scc_bfe.h#3 integrate
.. //depot/projects/usiii/dev/scc/scc_bfe_ebus.c#2 integrate
.. //depot/projects/usiii/dev/scc/scc_bfe_macio.c#2 integrate
.. //depot/projects/usiii/dev/scc/scc_bfe_quicc.c#2 integrate
.. //depot/projects/usiii/dev/scc/scc_bfe_sbus.c#2 integrate
.. //depot/projects/usiii/dev/scc/scc_core.c#2 integrate
.. //depot/projects/usiii/dev/sio/sio.c#4 integrate
.. //depot/projects/usiii/dev/ti/if_ti.c#6 integrate
.. //depot/projects/usiii/dev/uart/uart_core.c#3 integrate
.. //depot/projects/usiii/dev/usb/if_rum.c#9 integrate
.. //depot/projects/usiii/dev/usb/if_zyd.c#8 integrate
.. //depot/projects/usiii/dev/usb/ums.c#4 integrate
.. //depot/projects/usiii/dev/usb/usbdevs#10 integrate
.. //depot/projects/usiii/dev/usb/uscanner.c#4 integrate
.. //depot/projects/usiii/dev/wi/if_wi.c#5 integrate
.. //depot/projects/usiii/dev/wpi/if_wpi.c#5 integrate
.. //depot/projects/usiii/fs/devfs/devfs_vnops.c#5 integrate
.. //depot/projects/usiii/fs/unionfs/union_subr.c#6 integrate
.. //depot/projects/usiii/i386/conf/GENERIC#9 integrate
.. //depot/projects/usiii/i386/conf/NOTES#6 integrate
.. //depot/projects/usiii/i386/cpufreq/est.c#6 integrate
.. //depot/projects/usiii/kern/kern_cpu.c#4 integrate
.. //depot/projects/usiii/kern/kern_descrip.c#8 integrate
.. //depot/projects/usiii/kern/kern_kthread.c#4 integrate
.. //depot/projects/usiii/kern/kern_thr.c#4 integrate
.. //depot/projects/usiii/kern/kern_umtx.c#5 integrate
.. //depot/projects/usiii/kern/subr_blist.c#2 integrate
.. //depot/projects/usiii/kern/subr_kdb.c#4 integrate
.. //depot/projects/usiii/kern/subr_witness.c#9 integrate
.. //depot/projects/usiii/kern/uipc_mbuf.c#5 integrate
.. //depot/projects/usiii/kern/uipc_syscalls.c#6 integrate
.. //depot/projects/usiii/kern/vfs_mount.c#8 integrate
.. //depot/projects/usiii/kern/vfs_subr.c#9 integrate
.. //depot/projects/usiii/mips/include/am29lv081b.h#2 delete
.. //depot/projects/usiii/mips/include/cp0.h#2 delete
.. //depot/projects/usiii/mips/include/float.h#2 integrate
.. //depot/projects/usiii/mips/include/pmap.h#2 integrate
.. //depot/projects/usiii/mips/mips/mips_subr.c#2 delete
.. //depot/projects/usiii/mips/mips/pmap.c#2 integrate
.. //depot/projects/usiii/modules/Makefile#10 integrate
.. //depot/projects/usiii/modules/cxgb/Makefile#5 integrate
.. //depot/projects/usiii/modules/cxgb/iw_cxgb/Makefile#1 branch
.. //depot/projects/usiii/modules/esp/Makefile#2 integrate
.. //depot/projects/usiii/modules/hfa/Makefile#2 integrate
.. //depot/projects/usiii/modules/hme/Makefile#2 integrate
.. //depot/projects/usiii/modules/isp/Makefile#2 integrate
.. //depot/projects/usiii/modules/ispfw/Makefile#2 integrate
.. //depot/projects/usiii/modules/iwn/Makefile#1 branch
.. //depot/projects/usiii/modules/iwnfw/Makefile#1 branch
.. //depot/projects/usiii/modules/le/Makefile#2 integrate
.. //depot/projects/usiii/modules/mpt/Makefile#2 integrate
.. //depot/projects/usiii/modules/rdma/Makefile#1 branch
.. //depot/projects/usiii/modules/rdma/addr/Makefile#1 branch
.. //depot/projects/usiii/modules/rdma/cma/Makefile#1 branch
.. //depot/projects/usiii/modules/rdma/core/Makefile#1 branch
.. //depot/projects/usiii/modules/rdma/iwcm/Makefile#1 branch
.. //depot/projects/usiii/modules/rdma/krping/Makefile#1 branch
.. //depot/projects/usiii/modules/scc/Makefile#2 integrate
.. //depot/projects/usiii/modules/sound/driver/Makefile#2 integrate
.. //depot/projects/usiii/modules/wlan/Makefile#3 integrate
.. //depot/projects/usiii/net/bpf.c#6 integrate
.. //depot/projects/usiii/net/if_ethersubr.c#6 integrate
.. //depot/projects/usiii/net80211/ieee80211.c#6 integrate
.. //depot/projects/usiii/net80211/ieee80211_node.c#6 integrate
.. //depot/projects/usiii/netinet/ip_fw.h#4 integrate
.. //depot/projects/usiii/netinet/libalias/alias.c#4 integrate
.. //depot/projects/usiii/netinet/tcp.h#4 integrate
.. //depot/projects/usiii/netinet/tcp_usrreq.c#7 integrate
.. //depot/projects/usiii/pc98/cbus/sio.c#5 integrate
.. //depot/projects/usiii/pc98/conf/GENERIC#8 integrate
.. //depot/projects/usiii/powerpc/aim/clock.c#4 integrate
.. //depot/projects/usiii/powerpc/aim/locore.S#5 integrate
.. //depot/projects/usiii/powerpc/aim/machdep.c#7 integrate
.. //depot/projects/usiii/powerpc/aim/mmu_oea.c#3 integrate
.. //depot/projects/usiii/powerpc/aim/mp_cpudep.c#1 branch
.. //depot/projects/usiii/powerpc/aim/swtch.S#3 integrate
.. //depot/projects/usiii/powerpc/aim/trap_subr.S#3 integrate
.. //depot/projects/usiii/powerpc/aim/vm_machdep.c#4 integrate
.. //depot/projects/usiii/powerpc/booke/pmap.c#2 integrate
.. //depot/projects/usiii/powerpc/booke/trap_subr.S#2 integrate
.. //depot/projects/usiii/powerpc/booke/vm_machdep.c#4 integrate
.. //depot/projects/usiii/powerpc/conf/MPC85XX#4 integrate
.. //depot/projects/usiii/powerpc/conf/NOTES#7 integrate
.. //depot/projects/usiii/powerpc/include/cpufunc.h#2 integrate
.. //depot/projects/usiii/powerpc/include/pcpu.h#3 integrate
.. //depot/projects/usiii/powerpc/include/smp.h#2 integrate
.. //depot/projects/usiii/powerpc/include/spr.h#4 integrate
.. //depot/projects/usiii/powerpc/mpc85xx/mpc85xx.c#1 branch
.. //depot/projects/usiii/powerpc/mpc85xx/ocpbus.c#3 integrate
.. //depot/projects/usiii/powerpc/mpc85xx/ocpbus.h#2 integrate
.. //depot/projects/usiii/powerpc/mpc85xx/pci_ocp.c#2 integrate
.. //depot/projects/usiii/powerpc/powermac/macio.c#3 integrate
.. //depot/projects/usiii/powerpc/powermac/maciovar.h#2 integrate
.. //depot/projects/usiii/powerpc/powerpc/intr_machdep.c#7 integrate
.. //depot/projects/usiii/powerpc/powerpc/mp_machdep.c#3 integrate
.. //depot/projects/usiii/powerpc/powerpc/openpic.c#4 integrate
.. //depot/projects/usiii/security/audit/audit.h#4 integrate
.. //depot/projects/usiii/sparc64/conf/GENERIC#8 integrate
.. //depot/projects/usiii/sparc64/include/bus_common.h#4 integrate
.. //depot/projects/usiii/sparc64/include/iommuvar.h#2 integrate
.. //depot/projects/usiii/sparc64/pci/ofw_pcibus.c#7 integrate
.. //depot/projects/usiii/sparc64/pci/psycho.c#10 integrate
.. //depot/projects/usiii/sparc64/pci/schizo.c#8 edit
.. //depot/projects/usiii/sparc64/pci/schizoreg.h#2 edit
.. //depot/projects/usiii/sparc64/sbus/sbus.c#5 integrate
.. //depot/projects/usiii/sparc64/sparc64/counter.c#2 integrate
.. //depot/projects/usiii/sparc64/sparc64/iommu.c#3 integrate
.. //depot/projects/usiii/sun4v/include/bus_common.h#2 delete
.. //depot/projects/usiii/sun4v/sun4v/hvcons.c#3 integrate
.. //depot/projects/usiii/sun4v/sun4v/nexus.c#2 integrate
.. //depot/projects/usiii/sun4v/sun4v/vnex.c#2 integrate
.. //depot/projects/usiii/sys/blist.h#2 integrate
.. //depot/projects/usiii/sys/kdb.h#3 integrate
.. //depot/projects/usiii/sys/mbuf.h#5 integrate
.. //depot/projects/usiii/sys/mount.h#4 integrate
.. //depot/projects/usiii/sys/mpt_ioctl.h#1 branch
.. //depot/projects/usiii/sys/umtx.h#4 integrate
.. //depot/projects/usiii/sys/user.h#6 integrate
.. //depot/projects/usiii/vm/swap_pager.c#4 integrate
.. //depot/projects/usiii/vm/vm_kern.c#5 integrate
.. //depot/projects/usiii/vm/vm_map.c#7 integrate
.. //depot/projects/usiii/vm/vm_map.h#4 integrate
.. //depot/projects/usiii/vm/vm_mmap.c#5 integrate
Differences ...
==== //depot/projects/usiii/amd64/conf/GENERIC#9 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.497 2008/04/20 20:35:34 sam Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.498 2008/05/03 17:05:38 sam Exp $
cpu HAMMER
ident GENERIC
@@ -235,6 +235,8 @@
# Wireless NIC cards
device wlan # 802.11 support
+options IEEE80211_DEBUG # enable debug msgs
+options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
==== //depot/projects/usiii/amd64/conf/NOTES#6 (text+ko) ====
@@ -4,7 +4,7 @@
# This file contains machine dependent kernel configuration notes. For
# machine independent notes, look in /sys/conf/NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.78 2008/04/12 14:20:22 rpaulo Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.79 2008/04/29 21:36:15 sam Exp $
#
#
@@ -302,6 +302,7 @@
# (requires miibus)
# ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter
# iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
+# iwn: Intel Wireless WiFi Link 4965AGN 802.11 network adapters
# nfe: nVidia nForce MCP on-board Ethernet Networking (BSD open source)
# nve: nVidia nForce MCP on-board Ethernet Networking
# ral: Ralink Technology IEEE 802.11 wireless adapter
@@ -313,6 +314,7 @@
options ED_HPP
options ED_SIC
device iwi
+device iwn
device ipw
device nfe # nVidia nForce MCP on-board Ethernet Networking
device nve # nVidia nForce MCP on-board Ethernet Networking
==== //depot/projects/usiii/arm/at91/uart_dev_at91usart.c#3 (text) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.13 2007/12/25 17:51:55 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.14 2008/05/04 23:29:37 peter Exp $");
#include "opt_comconsole.h"
@@ -506,9 +506,20 @@
at91_rx_put(struct uart_softc *sc, int key)
{
#if defined(KDB) && defined(ALT_BREAK_TO_DEBUGGER)
+ int kdb_brk;
+
if (sc->sc_sysdev != NULL && sc->sc_sysdev->type == UART_DEV_CONSOLE) {
- if (kdb_alt_break(key, &sc->sc_altbrk))
- kdb_enter(KDB_WHY_BREAK, "Break sequence to console");
+ if ((kdb_brk = kdb_alt_break(key, &sc->sc_altbrk)) != 0) {
+ case KDB_REQ_DEBUGGER:
+ kdb_enter(KDB_WHY_BREAK, "Break sequence on console");
+ break;
+ case KDB_REQ_PANIC:
+ kdb_panic("Panic sequence on console");
+ break;
+ case KDB_REQ_REBOOT:
+ kdb_reboot();
+ break;
+ }
}
#endif
uart_rx_put(sc, key);
==== //depot/projects/usiii/conf/NOTES#10 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1481 2008/04/20 20:35:35 sam Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1484 2008/05/06 22:41:23 julian Exp $
#
# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
#
@@ -762,6 +762,8 @@
device ether #Generic Ethernet
device vlan #VLAN support (needs miibus)
device wlan #802.11 support
+options IEEE80211_DEBUG #enable debugging msgs
+options IEEE80211_AMPDU_AGE #age frames in AMPDU reorder q's
device wlan_wep #802.11 WEP support
device wlan_ccmp #802.11 CCMP support
device wlan_tkip #802.11 TKIP support
@@ -868,7 +870,12 @@
# The MBUF_STRESS_TEST option enables options which create
# various random failures / extreme cases related to mbuf
# functions. See mbuf(9) for a list of available test cases.
+# MBUF_PROFILING enables code to profile the mbuf chains
+# exiting the system (via participating interfaces) and
+# return a logarithmic histogram of monitored parameters
+# (e.g. packet size, wasted space, number of mbufs in chain).
options MBUF_STRESS_TEST
+options MBUF_PROFILING
# Statically Link in accept filters
options ACCEPT_FILTER_DATA
==== //depot/projects/usiii/conf/files#11 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1295 2008/04/25 20:42:48 sam Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1297 2008/05/06 20:49:52 jhb Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -830,6 +830,21 @@
compile-with "uudecode -o ${.TARGET} $S/contrib/dev/iwi/ipw2200-sniffer.fw.uu" \
no-obj no-implicit-rule \
clean "iwi_monitor.fw"
+dev/iwn/if_iwn.c optional iwn
+iwnfw.c optional iwnfw \
+ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn.fw:iwnfw:44417 -lintel_iwn -miwn -c${.TARGET}" \
+ no-implicit-rule before-depend local \
+ clean "iwnfw.c"
+iwnfw.fwo optional iwnfw \
+ dependency "iwn.fw" \
+ compile-with "${LD} -b binary -d -warn-common -r -d -o ${.TARGET} iwn.fw" \
+ no-implicit-rule \
+ clean "iwn.fwo"
+iwn.fw optional iwnfw \
+ dependency ".PHONY" \
+ compile-with "uudecode -o ${.TARGET} $S/contrib/dev/iwn/iwlwifi-4965-4.44.17.fw.uu" \
+ no-obj no-implicit-rule \
+ clean "iwn.fw"
dev/ixgb/if_ixgb.c optional ixgb
dev/ixgb/ixgb_ee.c optional ixgb
dev/ixgb/ixgb_hw.c optional ixgb
@@ -916,6 +931,7 @@
dev/mpt/mpt_debug.c optional mpt
dev/mpt/mpt_pci.c optional mpt pci
dev/mpt/mpt_raid.c optional mpt
+dev/mpt/mpt_user.c optional mpt
dev/msk/if_msk.c optional msk
dev/mxge/if_mxge.c optional mxge pci
dev/mxge/mxge_lro.c optional mxge pci
==== //depot/projects/usiii/conf/files.powerpc#6 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.powerpc,v 1.74 2008/03/03 20:40:19 raj Exp $
+# $FreeBSD: src/sys/conf/files.powerpc,v 1.77 2008/04/30 00:50:50 marcel Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -68,6 +68,7 @@
powerpc/aim/locore.S optional aim no-obj
powerpc/aim/machdep.c optional aim
powerpc/aim/mmu_oea.c optional aim
+powerpc/aim/mp_cpudep.c optional aim smp
powerpc/aim/nexus.c optional aim
powerpc/aim/ofw_machdep.c optional aim
powerpc/aim/ofwmagic.S optional aim
@@ -96,6 +97,7 @@
powerpc/fpu/fpu_mul.c optional fpu_emu
powerpc/fpu/fpu_sqrt.c optional fpu_emu
powerpc/fpu/fpu_subr.c optional fpu_emu
+powerpc/mpc85xx/mpc85xx.c optional mpc85xx
powerpc/mpc85xx/nexus.c optional mpc85xx
powerpc/mpc85xx/ocpbus.c optional mpc85xx
powerpc/mpc85xx/opic.c optional mpc85xx
@@ -130,7 +132,7 @@
powerpc/powerpc/intr_machdep.c standard
powerpc/powerpc/mem.c optional mem
powerpc/powerpc/mmu_if.m standard
-powerpc/powerpc/mp_machdep.c optional smp aim
+powerpc/powerpc/mp_machdep.c optional smp
powerpc/powerpc/openpic.c standard
powerpc/powerpc/pic_if.m standard
powerpc/powerpc/pmap_dispatch.c standard
==== //depot/projects/usiii/conf/files.sun4v#4 (text+ko) ====
@@ -1,7 +1,7 @@
# This file tells config what files go into building a kernel,
# files marked standard are always included.
#
-# $FreeBSD: src/sys/conf/files.sun4v,v 1.14 2008/04/26 11:01:37 marius Exp $
+# $FreeBSD: src/sys/conf/files.sun4v,v 1.15 2008/05/02 17:41:52 marius Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -35,7 +35,6 @@
sparc64/sparc64/autoconf.c standard
sun4v/sun4v/bus_machdep.c standard
sparc64/sparc64/clock.c standard
-sparc64/sparc64/counter.c standard
sparc64/sparc64/db_disasm.c optional ddb
sun4v/sun4v/db_interface.c optional ddb
sun4v/sun4v/db_trace.c optional ddb
==== //depot/projects/usiii/conf/kern.mk#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.52 2007/05/24 21:53:42 obrien Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.53 2008/04/29 11:28:10 gonzo Exp $
#
# Warning flags for compiling the kernel and components of the kernel.
@@ -85,6 +85,15 @@
.endif
#
+# For MIPS we also tell gcc to use floating point emulation and
+# disable MIPS DSP ASE Instruction set.
+#
+.if ${MACHINE_ARCH} == "mips"
+CFLAGS+= -msoft-float -mno-dsp
+INLINE_LIMIT?= 15000
+.endif
+
+#
# GCC 3.0 and above like to do certain optimizations based on the
# assumption that the program is linked against libc. Stop this.
#
==== //depot/projects/usiii/conf/ldscript.mips#2 (text+ko) ====
@@ -1,5 +1,5 @@
-/* $FreeBSD: src/sys/conf/ldscript.mips,v 1.1 2008/04/13 06:25:43 imp Exp $ */
-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips")
+/* $FreeBSD: src/sys/conf/ldscript.mips,v 1.2 2008/04/30 12:44:58 gonzo Exp $ */
+OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/usr/lib);
==== //depot/projects/usiii/conf/ldscript.mips.cfe#2 (text+ko) ====
@@ -2,8 +2,8 @@
* This linker script is needed to build a kernel for use by Broadcom CFE.
*/
-/* $FreeBSD: src/sys/conf/ldscript.mips.cfe,v 1.1 2008/04/13 06:25:43 imp Exp $ */
-OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips")
+/* $FreeBSD: src/sys/conf/ldscript.mips.cfe,v 1.2 2008/04/30 12:44:58 gonzo Exp $ */
+OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
OUTPUT_ARCH(mips)
ENTRY(_start)
SEARCH_DIR(/usr/lib);
==== //depot/projects/usiii/conf/options#10 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.626 2008/04/20 20:35:35 sam Exp $
+# $FreeBSD: src/sys/conf/options,v 1.627 2008/04/29 21:23:21 julian Exp $
#
# On the handling of kernel options
#
@@ -388,6 +388,7 @@
LIBMCHAIN
LIBALIAS
MBUF_STRESS_TEST
+MBUF_PROFILING
NCP
NETATALK opt_atalk.h
PPP_BSDCOMP opt_ppp.h
==== //depot/projects/usiii/dev/ata/ata-disk.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.210 2008/04/17 12:29:35 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.211 2008/05/08 17:55:44 grehan Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -125,7 +125,7 @@
adp->disk->d_dump = ad_dump;
adp->disk->d_name = "ad";
adp->disk->d_drv1 = dev;
- adp->disk->d_maxsize = ch->dma.max_iosize;
+ adp->disk->d_maxsize = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS;
adp->disk->d_sectorsize = DEV_BSIZE;
adp->disk->d_mediasize = DEV_BSIZE * (off_t)adp->total_secs;
adp->disk->d_fwsectors = adp->sectors;
==== //depot/projects/usiii/dev/ata/ata-lowlevel.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.83 2008/04/17 12:29:35 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.84 2008/05/08 17:55:44 grehan Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -213,7 +213,9 @@
printf("ata_begin_transaction OOPS!!!\n");
begin_finished:
- ch->dma.unload(request);
+ if (ch->dma.unload) {
+ ch->dma.unload(request);
+ }
return ATA_OP_FINISHED;
begin_continue:
==== //depot/projects/usiii/dev/ata/atapi-cd.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.199 2008/04/17 12:29:35 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.200 2008/05/08 17:55:44 grehan Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -906,8 +906,11 @@
{
struct ata_channel *ch = device_get_softc(device_get_parent(dev));
struct acd_softc *cdp = device_get_ivars(dev);
+ uint32_t max_iosize;
- cdp->iomax = min(ch->dma.max_iosize, 65534);
+ max_iosize = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS;
+
+ cdp->iomax = min(max_iosize, 65534);
}
static void
==== //depot/projects/usiii/dev/ata/atapi-fd.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.114 2008/04/17 12:29:35 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.115 2008/05/08 17:55:44 grehan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -105,7 +105,7 @@
fdp->disk->d_ioctl = afd_ioctl;
fdp->disk->d_name = "afd";
fdp->disk->d_drv1 = dev;
- fdp->disk->d_maxsize = ch->dma.max_iosize;
+ fdp->disk->d_maxsize = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS;
fdp->disk->d_unit = device_get_unit(dev);
disk_create(fdp->disk, DISK_VERSION);
return 0;
==== //depot/projects/usiii/dev/ata/atapi-tape.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.107 2008/04/17 12:29:35 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.108 2008/05/08 17:55:44 grehan Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -142,7 +142,7 @@
UID_ROOT, GID_OPERATOR, 0640, "ast%d",
device_get_unit(dev));
device->si_drv1 = dev;
- device->si_iosize_max = ch->dma.max_iosize;
+ device->si_iosize_max = ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS;
stp->dev1 = device;
device = make_dev(&ast_cdevsw, 2 * device_get_unit(dev) + 1,
UID_ROOT, GID_OPERATOR, 0640, "nast%d",
==== //depot/projects/usiii/dev/ath/if_ath.c#7 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.180 2008/04/20 20:35:35 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.185 2008/05/03 21:55:02 sam Exp $");
/*
* Driver for the Atheros Wireless LAN controller.
@@ -85,6 +85,11 @@
#endif
/*
+ * We require a HAL w/ the changes for split tx/rx MIC.
+ */
+CTASSERT(HAL_ABI_VERSION > 0x06052200);
+
+/*
* ATH_BCBUF determines the number of vap's that can transmit
* beacons and also (currently) the number of vap's that can
* have unique mac addresses/bssid. When staggering beacons
@@ -2067,13 +2072,11 @@
printf(" %s ", sc->sc_splitmic ? "mic" : "rxmic");
for (i = 0; i < sizeof(hk->kv_mic); i++)
printf("%02x", hk->kv_mic[i]);
-#if HAL_ABI_VERSION > 0x06052200
if (!sc->sc_splitmic) {
printf(" txmic ");
for (i = 0; i < sizeof(hk->kv_txmic); i++)
printf("%02x", hk->kv_txmic[i]);
}
-#endif
}
printf("\n");
}
@@ -2116,18 +2119,19 @@
* will handle the rest.
*/
memcpy(hk->kv_mic, k->wk_rxmic, sizeof(hk->kv_mic));
-#if HAL_ABI_VERSION > 0x06052200
memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
-#endif
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
}
} else if (k->wk_flags & IEEE80211_KEY_XMIT) {
-#if HAL_ABI_VERSION > 0x06052200
- memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
-#else
- memcpy(hk->kv_mic, k->wk_mic, sizeof(hk->kv_mic));
-#endif
+ if (sc->sc_splitmic) {
+ /*
+ * NB: must pass MIC key in expected location when
+ * the keycache only holds one MIC key per entry.
+ */
+ memcpy(hk->kv_mic, k->wk_txmic, sizeof(hk->kv_txmic));
+ } else
+ memcpy(hk->kv_txmic, k->wk_txmic, sizeof(hk->kv_txmic));
KEYPRINTF(sc, k->wk_keyix, hk, mac);
return ath_hal_keyset(ah, k->wk_keyix, hk, mac);
} else if (k->wk_flags & IEEE80211_KEY_RECV) {
@@ -5920,7 +5924,12 @@
ath_hal_setregdomain(ah, 0);
/* XXX not quite right but close enough for now */
getchannels(sc, nchans, chans, CTRY_DEBUG, AH_TRUE, AH_FALSE);
+
+ /* NB: restore previous state */
ath_hal_setregdomain(ah, ord);
+ (void) getchannels(sc, NULL, NULL, ic->ic_regdomain.country,
+ ic->ic_regdomain.ecm ? AH_TRUE : AH_FALSE,
+ ic->ic_regdomain.location == 'O' ? AH_TRUE : AH_FALSE);
}
static int
@@ -5936,7 +5945,6 @@
struct ifnet *ifp = sc->sc_ifp;
struct ieee80211com *ic = ifp->if_l2com;
struct ath_hal *ah = sc->sc_ah;
- u_int32_t rd, cc;
int error;
/*
@@ -5944,19 +5952,19 @@
*/
error = getchannels(sc, &ic->ic_nchans, ic->ic_channels,
CTRY_DEFAULT, AH_TRUE, AH_FALSE);
- (void) ath_hal_getregdomain(ah, &rd);
- ath_hal_getcountrycode(ah, &cc); /* NB: cannot fail */
+ (void) ath_hal_getregdomain(ah, &sc->sc_eerd);
+ ath_hal_getcountrycode(ah, &sc->sc_eecc); /* NB: cannot fail */
if (error) {
if_printf(ifp, "%s: unable to collect channel list from hal, "
"error %d\n", __func__, error);
if (error == EINVAL) {
if_printf(ifp, "%s: regdomain likely %u country code %u\n",
- __func__, rd, cc);
+ __func__, sc->sc_eerd, sc->sc_eecc);
}
return error;
}
- ic->ic_regdomain.regdomain = ath_mapregdomain(sc, rd);
- ic->ic_regdomain.country = cc;
+ ic->ic_regdomain.regdomain = ath_mapregdomain(sc, sc->sc_eerd);
+ ic->ic_regdomain.country = sc->sc_eecc;
ic->ic_regdomain.ecm = 1;
ic->ic_regdomain.location = 'I';
ic->ic_regdomain.isocc[0] = ' '; /* XXX don't know */
@@ -6272,9 +6280,9 @@
struct ifreq *ifr = (struct ifreq *)data;
int error = 0;
- ATH_LOCK(sc);
switch (cmd) {
case SIOCSIFFLAGS:
+ ATH_LOCK(sc);
if (IS_RUNNING(ifp)) {
/*
* To avoid rescanning another access point,
@@ -6296,17 +6304,8 @@
ath_init(sc); /* XXX lose error */
} else
ath_stop_locked(ifp);
+ ATH_UNLOCK(sc);
break;
- case SIOCADDMULTI:
- case SIOCDELMULTI:
- /*
- * The upper layer has already installed/removed
- * the multicast address(es), just recalculate the
- * multicast filter for the card.
- */
- if (ifp->if_drv_flags & IFF_DRV_RUNNING)
- ath_mode_init(sc);
- break;
case SIOCGIFMEDIA:
case SIOCSIFMEDIA:
error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
@@ -6320,27 +6319,20 @@
&sc->sc_stats.ast_rx_noise);
#endif
sc->sc_stats.ast_tx_rate = sc->sc_hwmap[sc->sc_txrate].ieeerate;
- ATH_UNLOCK(sc);
- /*
- * NB: Drop the softc lock in case of a page fault;
- * we'll accept any potential inconsisentcy in the
- * statistics. The alternative is to copy the data
- * to a local structure.
- */
return copyout(&sc->sc_stats,
- ifr->ifr_data, sizeof (sc->sc_stats));
+ ifr->ifr_data, sizeof (sc->sc_stats));
#ifdef ATH_DIAGAPI
case SIOCGATHDIAG:
- ATH_UNLOCK(sc);
error = ath_ioctl_diag(sc, (struct ath_diag *) ifr);
- ATH_LOCK(sc);
break;
#endif
+ case SIOCGIFADDR:
+ error = ether_ioctl(ifp, cmd, data);
+ break;
default:
- error = ether_ioctl(ifp, cmd, data);
+ error = EINVAL;
break;
}
- ATH_UNLOCK(sc);
return error;
#undef IS_RUNNING
}
@@ -6596,6 +6588,12 @@
struct sysctl_oid *tree = device_get_sysctl_tree(sc->sc_dev);
struct ath_hal *ah = sc->sc_ah;
+ SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
+ "countrycode", CTLFLAG_RD, &sc->sc_eecc, 0,
+ "EEPROM country code");
+ SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
+ "regdomain", CTLFLAG_RD, &sc->sc_eerd, 0,
+ "EEPROM regdomain code");
#ifdef ATH_DEBUG
sc->sc_debug = ath_debug;
SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
==== //depot/projects/usiii/dev/ath/if_athvar.h#3 (text+ko) ====
@@ -26,7 +26,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGES.
*
- * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.63 2008/04/20 20:35:35 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/if_athvar.h,v 1.64 2008/05/03 21:52:05 sam Exp $
*/
/*
@@ -246,6 +246,8 @@
sc_swbmiss : 1,/* sta mode using sw bmiss */
sc_stagbeacons:1,/* use staggered beacons */
sc_wmetkipmic:1;/* can do WME+TKIP MIC */
+ uint32_t sc_eerd; /* regdomain from EEPROM */
+ uint32_t sc_eecc; /* country code from EEPROM */
/* rate tables */
#define IEEE80211_MODE_HALF (IEEE80211_MODE_MAX+0)
#define IEEE80211_MODE_QUARTER (IEEE80211_MODE_MAX+1)
==== //depot/projects/usiii/dev/bce/if_bce.c#5 (text) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.37 2008/04/11 23:10:40 davidch Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.39 2008/05/08 15:05:38 scottl Exp $");
/*
* The following controllers are supported by this driver:
@@ -502,7 +502,7 @@
/* Allocate PCI memory resources. */
rid = PCIR_BAR(0);
sc->bce_res_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
- &rid, RF_ACTIVE | PCI_RF_DENSE);
+ &rid, RF_ACTIVE);
if (sc->bce_res_mem == NULL) {
BCE_PRINTF("%s(%d): PCI memory allocation failed\n",
@@ -776,7 +776,11 @@
ifp->if_capenable = ifp->if_capabilities;
/* Use standard mbuf sizes for buffer allocation. */
+#ifdef BCE_USE_SPLIT_HEADER
sc->rx_bd_mbuf_alloc_size = MHLEN;
+#else
+ sc->rx_bd_mbuf_alloc_size = MCLBYTES;;
+#endif
sc->pg_bd_mbuf_alloc_size = MCLBYTES;
ifp->if_snd.ifq_drv_maxlen = USABLE_TX_BD;
@@ -3804,7 +3808,11 @@
goto bce_get_rx_buf_exit);
/* This is a new mbuf allocation. */
+#ifdef BCE_USE_SPLIT_HEADER
MGETHDR(m_new, M_DONTWAIT, MT_DATA);
+#else
+ m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+#endif
if (m_new == NULL) {
sc->mbuf_alloc_failed++;
rc = ENOBUFS;
==== //depot/projects/usiii/dev/bfe/if_bfe.c#4 (text+ko) ====
@@ -26,7 +26,7 @@
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bfe/if_bfe.c,v 1.44 2008/01/29 02:15:11 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bfe/if_bfe.c,v 1.45 2008/04/30 02:49:24 yongari Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -646,16 +646,18 @@
struct bfe_desc *d;
struct bfe_data *r;
u_int32_t ctrl;
- int error;
+ int allocated, error;
if ((c < 0) || (c >= BFE_RX_LIST_CNT))
return (EINVAL);
+ allocated = 0;
if(m == NULL) {
m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
if(m == NULL)
return (ENOBUFS);
m->m_len = m->m_pkthdr.len = MCLBYTES;
+ allocated++;
}
else
m->m_data = m->m_ext.ext_buf;
@@ -670,8 +672,14 @@
r = &sc->bfe_rx_ring[c];
error = bus_dmamap_load(sc->bfe_tag, r->bfe_map, mtod(m, void *),
MCLBYTES, bfe_dma_map_desc, d, BUS_DMA_NOWAIT);
- if (error)
- printf("Serious error: bfe failed to map RX buffer\n");
+ if (error != 0) {
+ if (allocated != 0)
+ m_free(m);
+ if (error != ENOMEM)
+ printf("bfe%d: failed to map RX buffer, error %d\n",
+ sc->bfe_unit, error);
+ return (ENOBUFS);
+ }
bus_dmamap_sync(sc->bfe_tag, r->bfe_map, BUS_DMASYNC_PREWRITE);
ctrl = ETHER_MAX_LEN + 32;
==== //depot/projects/usiii/dev/bge/if_bge.c#10 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.206 2008/04/26 10:54:17 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.210 2008/05/05 18:42:17 bz Exp $");
/*
* Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
@@ -196,6 +196,8 @@
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5901 },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5901A2 },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5903M },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5906 },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5906M },
{ SK_VENDORID, SK_DEVICEID_ALTIMA },
@@ -273,6 +275,8 @@
{ BGE_CHIPID_BCM5787_A0, "BCM5754/5787 A0" },
{ BGE_CHIPID_BCM5787_A1, "BCM5754/5787 A1" },
{ BGE_CHIPID_BCM5787_A2, "BCM5754/5787 A2" },
+ { BGE_CHIPID_BCM5906_A1, "BCM5906 A1" },
+ { BGE_CHIPID_BCM5906_A2, "BCM5906 A2" },
{ 0, NULL }
};
@@ -295,6 +299,7 @@
{ BGE_ASICREV_BCM5755, "unknown BCM5755" },
/* 5754 and 5787 share the same ASIC ID */
{ BGE_ASICREV_BCM5787, "unknown BCM5754/5787" },
+ { BGE_ASICREV_BCM5906, "unknown BCM5906" },
{ 0, NULL }
};
@@ -307,6 +312,9 @@
const struct bge_revision * bge_lookup_rev(uint32_t);
const struct bge_vendor * bge_lookup_vendor(uint16_t);
+
+typedef int (*bge_eaddr_fcn_t)(struct bge_softc *, uint8_t[]);
+
static int bge_probe(device_t);
static int bge_attach(device_t);
static int bge_detach(device_t);
@@ -317,6 +325,11 @@
static int bge_dma_alloc(device_t);
static void bge_dma_free(struct bge_softc *);
+static int bge_get_eaddr_mem(struct bge_softc *, uint8_t[]);
+static int bge_get_eaddr_nvram(struct bge_softc *, uint8_t[]);
+static int bge_get_eaddr_eeprom(struct bge_softc *, uint8_t[]);
+static int bge_get_eaddr(struct bge_softc *, uint8_t[]);
+
static void bge_txeof(struct bge_softc *);
static void bge_rxeof(struct bge_softc *);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list