PERFORCE change 162275 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Mon May 18 19:08:20 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=162275
Change 162275 by hselasky at hselasky_laptop001 on 2009/05/18 19:07:41
IFC @ 162272
Affected files ...
.. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#18 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/mca.c#1 branch
.. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#22 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#21 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/trap.c#14 integrate
.. //depot/projects/usb/src/sys/amd64/conf/GENERIC.hints#5 integrate
.. //depot/projects/usb/src/sys/amd64/include/mca.h#1 branch
.. //depot/projects/usb/src/sys/amd64/include/smp.h#9 integrate
.. //depot/projects/usb/src/sys/amd64/include/specialreg.h#14 integrate
.. //depot/projects/usb/src/sys/amd64/include/vmparam.h#10 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux.h#13 integrate
.. //depot/projects/usb/src/sys/arm/arm/machdep.c#9 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91.c#15 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91_spi.c#7 integrate
.. //depot/projects/usb/src/sys/arm/at91/if_ate.c#13 integrate
.. //depot/projects/usb/src/sys/boot/forth/loader.conf#18 integrate
.. //depot/projects/usb/src/sys/boot/i386/zfsboot/zfsboot.c#3 integrate
.. //depot/projects/usb/src/sys/boot/zfs/zfsimpl.c#4 integrate
.. //depot/projects/usb/src/sys/cddl/boot/zfs/README#2 integrate
.. //depot/projects/usb/src/sys/cddl/boot/zfs/zfsimpl.h#3 integrate
.. //depot/projects/usb/src/sys/cddl/boot/zfs/zfssubr.c#3 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/mutex.h#2 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/rwlock.h#2 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#3 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#9 integrate
.. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#11 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_socket.h#4 integrate
.. //depot/projects/usb/src/sys/compat/ndis/kern_windrv.c#8 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#16 integrate
.. //depot/projects/usb/src/sys/conf/files#62 integrate
.. //depot/projects/usb/src/sys/conf/files.amd64#21 integrate
.. //depot/projects/usb/src/sys/conf/files.i386#24 integrate
.. //depot/projects/usb/src/sys/conf/files.pc98#19 integrate
.. //depot/projects/usb/src/sys/conf/files.powerpc#22 integrate
.. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#9 integrate
.. //depot/projects/usb/src/sys/dev/aic/aic.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#19 integrate
.. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-acard.c#3 integrate
.. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-promise.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath_pci.c#11 integrate
.. //depot/projects/usb/src/sys/dev/bce/if_bce.c#19 integrate
.. //depot/projects/usb/src/sys/dev/bge/if_bge.c#17 integrate
.. //depot/projects/usb/src/sys/dev/bwi/bwiphy.c#2 integrate
.. //depot/projects/usb/src/sys/dev/bwi/if_bwi_pci.c#2 integrate
.. //depot/projects/usb/src/sys/dev/bwi/if_bwireg.h#2 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.c#6 integrate
.. //depot/projects/usb/src/sys/dev/ed/if_ed.c#8 integrate
.. //depot/projects/usb/src/sys/dev/ep/if_ep.c#4 integrate
.. //depot/projects/usb/src/sys/dev/flash/at45d.c#3 integrate
.. //depot/projects/usb/src/sys/dev/iir/iir_pci.c#5 integrate
.. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.c#5 integrate
.. //depot/projects/usb/src/sys/dev/lmc/if_lmc.c#11 integrate
.. //depot/projects/usb/src/sys/dev/malo/if_malo_pci.c#4 integrate
.. //depot/projects/usb/src/sys/dev/md/md.c#12 integrate
.. //depot/projects/usb/src/sys/dev/nge/if_nge.c#6 integrate
.. //depot/projects/usb/src/sys/dev/nge/if_ngereg.h#3 integrate
.. //depot/projects/usb/src/sys/dev/snp/snp.c#12 integrate
.. //depot/projects/usb/src/sys/dev/spibus/spibus.c#4 integrate
.. //depot/projects/usb/src/sys/dev/syscons/syscons.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#22 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/ustorage_fs.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_core.h#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#20 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#33 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#147 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#59 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#6 integrate
.. //depot/projects/usb/src/sys/dev/xen/console/console.c#7 integrate
.. //depot/projects/usb/src/sys/dev/xen/netfront/netfront.c#8 integrate
.. //depot/projects/usb/src/sys/fs/devfs/devfs_vnops.c#21 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfs.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfs_commonkrpc.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfs_var.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfsdport.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfsport.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfsproto.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs.h#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clbio.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clkrpc.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvfsops.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdkrpc.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdport.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdserv.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdsocket.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdstate.c#2 integrate
.. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdsubs.c#2 integrate
.. //depot/projects/usb/src/sys/fs/smbfs/smbfs_io.c#9 integrate
.. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/support/debug.h#3 integrate
.. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c#2 delete
.. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c#2 delete
.. //depot/projects/usb/src/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c#2 delete
.. //depot/projects/usb/src/sys/i386/conf/GENERIC.hints#5 integrate
.. //depot/projects/usb/src/sys/i386/i386/machdep.c#16 integrate
.. //depot/projects/usb/src/sys/i386/i386/mca.c#1 branch
.. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#18 integrate
.. //depot/projects/usb/src/sys/i386/i386/pmap.c#16 integrate
.. //depot/projects/usb/src/sys/i386/i386/trap.c#12 integrate
.. //depot/projects/usb/src/sys/i386/include/mca.h#1 branch
.. //depot/projects/usb/src/sys/i386/include/smp.h#9 integrate
.. //depot/projects/usb/src/sys/i386/include/specialreg.h#13 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux.h#12 integrate
.. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#9 integrate
.. //depot/projects/usb/src/sys/ia64/ia64/elf_machdep.c#8 integrate
.. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#10 integrate
.. //depot/projects/usb/src/sys/ia64/ia64/pmap.c#13 integrate
.. //depot/projects/usb/src/sys/ia64/include/md_var.h#5 integrate
.. //depot/projects/usb/src/sys/kern/kern_clock.c#9 integrate
.. //depot/projects/usb/src/sys/kern/kern_descrip.c#19 integrate
.. //depot/projects/usb/src/sys/kern/kern_intr.c#13 integrate
.. //depot/projects/usb/src/sys/kern/kern_sysctl.c#14 integrate
.. //depot/projects/usb/src/sys/kern/sys_generic.c#14 integrate
.. //depot/projects/usb/src/sys/kern/tty.c#21 integrate
.. //depot/projects/usb/src/sys/kern/tty_info.c#6 integrate
.. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#13 integrate
.. //depot/projects/usb/src/sys/kern/vfs_bio.c#19 integrate
.. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#20 integrate
.. //depot/projects/usb/src/sys/legacy/dev/usb/if_upgt.c#2 delete
.. //depot/projects/usb/src/sys/legacy/dev/usb/if_upgtvar.h#2 delete
.. //depot/projects/usb/src/sys/legacy/dev/usb/usb_ethersubr.c#2 delete
.. //depot/projects/usb/src/sys/legacy/dev/usb/usb_ethersubr.h#2 delete
.. //depot/projects/usb/src/sys/mips/mips/machdep.c#7 integrate
.. //depot/projects/usb/src/sys/mips/mips/pm_machdep.c#2 integrate
.. //depot/projects/usb/src/sys/modules/xfs/Makefile#3 integrate
.. //depot/projects/usb/src/sys/net/bpf.c#17 integrate
.. //depot/projects/usb/src/sys/net/netisr.c#7 integrate
.. //depot/projects/usb/src/sys/net/netisr.h#5 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#14 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#22 integrate
.. //depot/projects/usb/src/sys/netgraph/netflow/ng_netflow.c#6 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#23 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.h#19 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#15 integrate
.. //depot/projects/usb/src/sys/nfs/nfs_common.c#3 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_bio.c#12 integrate
.. //depot/projects/usb/src/sys/pc98/include/mca.h#1 branch
.. //depot/projects/usb/src/sys/pc98/pc98/machdep.c#13 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/clock.c#5 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/machdep.c#10 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea.c#7 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea64.c#2 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/mp_cpudep.c#4 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/ofw_machdep.c#5 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/platform_chrp.c#1 branch
.. //depot/projects/usb/src/sys/powerpc/aim/vm_machdep.c#5 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/clock.c#3 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/machdep.c#10 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/platform_bare.c#1 branch
.. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#10 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/vm_machdep.c#4 integrate
.. //depot/projects/usb/src/sys/powerpc/include/cpufunc.h#6 integrate
.. //depot/projects/usb/src/sys/powerpc/include/md_var.h#8 integrate
.. //depot/projects/usb/src/sys/powerpc/include/ofw_machdep.h#4 integrate
.. //depot/projects/usb/src/sys/powerpc/include/platform.h#1 branch
.. //depot/projects/usb/src/sys/powerpc/include/platformvar.h#1 branch
.. //depot/projects/usb/src/sys/powerpc/include/pmap.h#7 integrate
.. //depot/projects/usb/src/sys/powerpc/include/powerpc.h#2 delete
.. //depot/projects/usb/src/sys/powerpc/include/smp.h#5 integrate
.. //depot/projects/usb/src/sys/powerpc/include/spr.h#9 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/mp_machdep.c#6 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/platform.c#1 branch
.. //depot/projects/usb/src/sys/powerpc/powerpc/platform_if.m#1 branch
.. //depot/projects/usb/src/sys/powerpc/powerpc/pmap_dispatch.c#10 integrate
.. //depot/projects/usb/src/sys/sparc64/sparc64/machdep.c#14 integrate
.. //depot/projects/usb/src/sys/sun4v/sun4v/machdep.c#8 integrate
.. //depot/projects/usb/src/sys/sys/buf.h#7 integrate
.. //depot/projects/usb/src/sys/sys/eventhandler.h#7 integrate
.. //depot/projects/usb/src/sys/sys/filedesc.h#5 integrate
.. //depot/projects/usb/src/sys/sys/systm.h#16 integrate
.. //depot/projects/usb/src/sys/sys/vimage.h#10 integrate
.. //depot/projects/usb/src/sys/ufs/ffs/ffs_alloc.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_contig.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_page.c#14 integrate
.. //depot/projects/usb/src/sys/vm/vm_page.h#11 integrate
.. //depot/projects/usb/src/sys/vm/vm_pageout.c#15 integrate
.. //depot/projects/usb/src/sys/vm/vnode_pager.c#16 integrate
Differences ...
==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#18 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.699 2009/04/11 14:01:01 ed Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.701 2009/05/18 18:37:18 marcel Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -109,6 +109,7 @@
#include <machine/cpu.h>
#include <machine/cputypes.h>
#include <machine/intr_machdep.h>
+#include <machine/mca.h>
#include <machine/md_var.h>
#include <machine/metadata.h>
#include <machine/pc/bios.h>
@@ -274,6 +275,7 @@
vm_pager_bufferinit();
cpu_setregs();
+ mca_init();
}
/*
@@ -504,6 +506,16 @@
{
}
+/*
+ * Flush the D-cache for non-DMA I/O so that the I-cache can
+ * be made coherent later.
+ */
+void
+cpu_flush_dcache(void *ptr, size_t len)
+{
+ /* Not applicable */
+}
+
/* Get current clock frequency for the given cpu id. */
int
cpu_est_clockrate(int cpu_id, uint64_t *rate)
==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#22 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.306 2009/05/02 12:20:43 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.308 2009/05/14 17:43:00 attilio Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -60,6 +60,7 @@
#include <machine/clock.h>
#include <machine/cputypes.h>
#include <machine/cpufunc.h>
+#include <machine/mca.h>
#include <machine/md_var.h>
#include <machine/mp_watchdog.h>
#include <machine/pcb.h>
@@ -113,9 +114,9 @@
extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32);
#ifdef STOP_NMI
-volatile cpumask_t ipi_nmi_pending;
+static volatile cpumask_t ipi_nmi_pending;
-static void ipi_nmi_selected(u_int32_t cpus);
+static void ipi_nmi_selected(cpumask_t cpus);
#endif
/*
@@ -667,6 +668,8 @@
KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread"));
PCPU_SET(curthread, PCPU_GET(idlethread));
+ mca_init();
+
mtx_lock_spin(&ap_boot_mtx);
/* Init local apic for irq's */
@@ -1013,7 +1016,7 @@
}
static void
-smp_targeted_tlb_shootdown(u_int mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2)
+smp_targeted_tlb_shootdown(cpumask_t mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2)
{
int ncpu, othercpus;
@@ -1087,7 +1090,7 @@
}
void
-smp_masked_invltlb(u_int mask)
+smp_masked_invltlb(cpumask_t mask)
{
if (smp_started) {
@@ -1096,7 +1099,7 @@
}
void
-smp_masked_invlpg(u_int mask, vm_offset_t addr)
+smp_masked_invlpg(cpumask_t mask, vm_offset_t addr)
{
if (smp_started) {
@@ -1105,7 +1108,7 @@
}
void
-smp_masked_invlpg_range(u_int mask, vm_offset_t addr1, vm_offset_t addr2)
+smp_masked_invlpg_range(cpumask_t mask, vm_offset_t addr1, vm_offset_t addr2)
{
if (smp_started) {
@@ -1140,7 +1143,7 @@
* send an IPI to a set of cpus.
*/
void
-ipi_selected(u_int32_t cpus, u_int ipi)
+ipi_selected(cpumask_t cpus, u_int ipi)
{
int cpu;
u_int bitmap = 0;
@@ -1203,8 +1206,8 @@
#define BEFORE_SPIN 1000000
-void
-ipi_nmi_selected(u_int32_t cpus)
+static void
+ipi_nmi_selected(cpumask_t cpus)
{
int cpu;
register_t icrlo;
@@ -1328,7 +1331,7 @@
static int
sysctl_hlt_cpus(SYSCTL_HANDLER_ARGS)
{
- u_int mask;
+ cpumask_t mask;
int error;
mask = hlt_cpus_mask;
==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#21 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.657 2009/03/22 04:32:05 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.658 2009/05/13 07:42:53 alc Exp $");
/*
* Manages physical address maps.
@@ -3556,7 +3556,7 @@
dstmpte->wire_count++;
else if ((dstmpte = pmap_allocpte(dst_pmap,
addr, M_NOWAIT)) == NULL)
- break;
+ goto out;
dst_pte = (pt_entry_t *)
PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpte));
dst_pte = &dst_pte[pmap_pte_index(addr)];
@@ -3579,6 +3579,7 @@
addr);
pmap_free_zero_pages(free);
}
+ goto out;
}
if (dstmpte->wire_count >= srcmpte->wire_count)
break;
@@ -3587,6 +3588,7 @@
src_pte++;
}
}
+out:
vm_page_unlock_queues();
PMAP_UNLOCK(src_pmap);
PMAP_UNLOCK(dst_pmap);
==== //depot/projects/usb/src/sys/amd64/amd64/trap.c#14 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.331 2009/04/01 13:09:26 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.332 2009/05/13 17:53:04 jhb Exp $");
/*
* AMD64 Trap and System call handling
@@ -88,6 +88,7 @@
#include <machine/cpu.h>
#include <machine/intr_machdep.h>
+#include <machine/mca.h>
#include <machine/md_var.h>
#include <machine/pcb.h>
#ifdef SMP
@@ -266,6 +267,12 @@
goto out;
#endif
+ if (type == T_MCHK) {
+ if (!mca_intr())
+ trap_fatal(frame, 0);
+ goto out;
+ }
+
#ifdef KDTRACE_HOOKS
/*
* A trap can occur while DTrace executes a probe. Before
==== //depot/projects/usb/src/sys/amd64/conf/GENERIC.hints#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.19 2008/07/13 07:20:14 ed Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.20 2009/05/14 21:53:35 jhb Exp $
hint.fdc.0.at="isa"
hint.fdc.0.port="0x3F0"
hint.fdc.0.irq="6"
@@ -13,7 +13,6 @@
hint.atkbd.0.irq="1"
hint.psm.0.at="atkbdc"
hint.psm.0.irq="12"
-hint.vga.0.at="isa"
hint.sc.0.at="isa"
hint.sc.0.flags="0x100"
hint.uart.0.at="isa"
@@ -23,13 +22,5 @@
hint.uart.1.at="isa"
hint.uart.1.port="0x2F8"
hint.uart.1.irq="3"
-hint.uart.2.at="isa"
-hint.uart.2.disabled="1"
-hint.uart.2.port="0x3E8"
-hint.uart.2.irq="5"
-hint.uart.3.at="isa"
-hint.uart.3.disabled="1"
-hint.uart.3.port="0x2E8"
-hint.uart.3.irq="9"
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
==== //depot/projects/usb/src/sys/amd64/include/smp.h#9 (text+ko) ====
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $FreeBSD: src/sys/amd64/include/smp.h,v 1.95 2009/04/29 06:54:40 jeff Exp $
+ * $FreeBSD: src/sys/amd64/include/smp.h,v 1.96 2009/05/14 17:43:00 attilio Exp $
*
*/
@@ -52,19 +52,19 @@
void cpustop_handler(void);
void cpususpend_handler(void);
void init_secondary(void);
-void ipi_selected(u_int cpus, u_int ipi);
+void ipi_selected(cpumask_t cpus, u_int ipi);
void ipi_all_but_self(u_int ipi);
void ipi_bitmap_handler(struct trapframe frame);
u_int mp_bootaddress(u_int);
int mp_grab_cpu_hlt(void);
void smp_cache_flush(void);
void smp_invlpg(vm_offset_t addr);
-void smp_masked_invlpg(u_int mask, vm_offset_t addr);
+void smp_masked_invlpg(cpumask_t mask, vm_offset_t addr);
void smp_invlpg_range(vm_offset_t startva, vm_offset_t endva);
-void smp_masked_invlpg_range(u_int mask, vm_offset_t startva,
+void smp_masked_invlpg_range(cpumask_t mask, vm_offset_t startva,
vm_offset_t endva);
void smp_invltlb(void);
-void smp_masked_invltlb(u_int mask);
+void smp_masked_invltlb(cpumask_t mask);
#ifdef STOP_NMI
int ipi_nmi_handler(void);
==== //depot/projects/usb/src/sys/amd64/include/specialreg.h#14 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.54 2009/04/29 06:54:40 jeff Exp $
+ * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.55 2009/05/13 17:53:04 jhb Exp $
*/
#ifndef _MACHINE_SPECIALREG_H_
@@ -346,6 +346,34 @@
#define DIR1 0xff
/*
+ * Machine Check register constants.
+ */
+#define MCG_CAP_COUNT 0x000000ff
+#define MCG_CAP_CTL_P 0x00000100
+#define MCG_CAP_EXT_P 0x00000200
+#define MCG_CAP_TES_P 0x00000800
+#define MCG_CAP_EXT_CNT 0x00ff0000
+#define MCG_STATUS_RIPV 0x00000001
+#define MCG_STATUS_EIPV 0x00000002
+#define MCG_STATUS_MCIP 0x00000004
+#define MCG_CTL_ENABLE 0xffffffffffffffffUL
+#define MCG_CTL_DISABLE 0x0000000000000000UL
+#define MSR_MC_CTL(x) (MSR_MC0_CTL + (x) * 4)
+#define MSR_MC_STATUS(x) (MSR_MC0_STATUS + (x) * 4)
+#define MSR_MC_ADDR(x) (MSR_MC0_ADDR + (x) * 4)
+#define MSR_MC_MISC(x) (MSR_MC0_MISC + (x) * 4)
+#define MC_STATUS_MCA_ERROR 0x000000000000ffffUL
+#define MC_STATUS_MODEL_ERROR 0x00000000ffff0000UL
+#define MC_STATUS_OTHER_INFO 0x01ffffff00000000UL
+#define MC_STATUS_PCC 0x0200000000000000UL
+#define MC_STATUS_ADDRV 0x0400000000000000UL
+#define MC_STATUS_MISCV 0x0800000000000000UL
+#define MC_STATUS_EN 0x1000000000000000UL
+#define MC_STATUS_UC 0x2000000000000000UL
+#define MC_STATUS_OVER 0x4000000000000000UL
+#define MC_STATUS_VAL 0x8000000000000000UL
+
+/*
* The following four 3-byte registers control the non-cacheable regions.
* These registers must be written as three separate bytes.
*
==== //depot/projects/usb/src/sys/amd64/include/vmparam.h#10 (text+ko) ====
@@ -38,7 +38,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.56 2008/07/08 22:59:17 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.59 2009/05/16 22:08:00 kmacy Exp $
*/
@@ -154,8 +154,7 @@
* 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot)
* 0xffff804020101000 - 0xfffffeffffffffff unused
* 0xffffff0000000000 - 0xffffff7fffffffff 512GB direct map mappings
- * 0xffffff8000000000 - 0xfffffffe3fffffff unused (505GB)
- * 0xfffffffe40000000 - 0xffffffffffffffff 7GB kernel map
+ * 0xffffff8000000000 - 0xffffffffffffffff 512GB kernel map
*
* Within the kernel map:
*
@@ -163,7 +162,7 @@
*/
#define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NPDEPG-1, NPTEPG-1)
-#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-7, 0, 0)
+#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-512, 0, 0)
#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0)
#define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0)
==== //depot/projects/usb/src/sys/amd64/linux32/linux.h#13 (text+ko) ====
@@ -27,7 +27,7 @@
* (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: src/sys/amd64/linux32/linux.h,v 1.27 2009/05/11 13:50:42 dchagin Exp $
+ * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.28 2009/05/16 18:48:41 dchagin Exp $
*/
#ifndef _AMD64_LINUX_H_
@@ -571,6 +571,7 @@
#define LINUX_O_DIRECTORY 00200000 /* Must be a directory */
#define LINUX_O_NOFOLLOW 00400000 /* Do not follow links */
#define LINUX_O_NOATIME 01000000
+#define LINUX_O_CLOEXEC 02000000
#define LINUX_F_DUPFD 0
#define LINUX_F_GETFD 1
==== //depot/projects/usb/src/sys/arm/arm/machdep.c#9 (text+ko) ====
@@ -46,7 +46,7 @@
#include "opt_ddb.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.32 2009/02/12 22:55:39 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.33 2009/05/18 18:37:18 marcel Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -316,6 +316,18 @@
SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL);
+/*
+ * Flush the D-cache for non-DMA I/O so that the I-cache can
+ * be made coherent later.
+ */
+void
+cpu_flush_dcache(void *ptr, size_t len)
+{
+
+ cpu_dcache_wb_range((uintptr_t)ptr, len);
+ cpu_l2cache_wb_range((uintptr_t)ptr, len);
+}
+
/* Get current clock frequency for the given cpu id. */
int
cpu_est_clockrate(int cpu_id, uint64_t *rate)
==== //depot/projects/usb/src/sys/arm/at91/at91.c#15 (text) ====
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.23 2009/04/22 23:54:41 stas Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -409,7 +409,7 @@
AT91RM92_IRQ_SSC2
},
{
- "at91_spi", 0,
+ "spi", 0,
AT91RM92_BASE + AT91RM92_SPI_BASE, AT91RM92_SPI_SIZE,
AT91RM92_IRQ_SPI
},
==== //depot/projects/usb/src/sys/arm/at91/at91_spi.c#7 (text) ====
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.8 2008/11/25 00:13:26 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.9 2009/05/13 18:42:49 gonzo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -297,7 +297,7 @@
};
static driver_t at91_spi_driver = {
- "at91_spi",
+ "spi",
at91_spi_methods,
sizeof(struct at91_spi_softc),
};
==== //depot/projects/usb/src/sys/arm/at91/if_ate.c#13 (text) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.35 2009/05/12 21:28:41 stas Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.37 2009/05/13 21:01:10 stas Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -69,8 +69,8 @@
#include "miibus_if.h"
-#define ATE_MAX_TX_BUFFERS 2 /* We have ping-pong tx buffers */
-#define ATE_MAX_RX_BUFFERS 64
+#define ATE_MAX_TX_BUFFERS 2 /* We have ping-pong tx buffers */
+#define ATE_MAX_RX_BUFFERS 64
/*
* Driver-specific flags.
@@ -80,41 +80,43 @@
struct ate_softc
{
- struct ifnet *ifp; /* ifnet pointer */
- struct mtx sc_mtx; /* basically a perimeter lock */
- device_t dev; /* Myself */
- device_t miibus; /* My child miibus */
- void *intrhand; /* Interrupt handle */
- struct resource *irq_res; /* IRQ resource */
+ struct ifnet *ifp; /* ifnet pointer */
+ struct mtx sc_mtx; /* Basically a perimeter lock */
+ device_t dev; /* Myself */
+ device_t miibus; /* My child miibus */
+ struct resource *irq_res; /* IRQ resource */
struct resource *mem_res; /* Memory resource */
- struct callout tick_ch; /* Tick callout */
- bus_dma_tag_t mtag; /* bus dma tag for mbufs */
- bus_dmamap_t tx_map[ATE_MAX_TX_BUFFERS];
- struct mbuf *sent_mbuf[ATE_MAX_TX_BUFFERS]; /* Sent mbufs */
- bus_dma_tag_t rxtag;
- bus_dmamap_t rx_map[ATE_MAX_RX_BUFFERS];
- void *rx_buf[ATE_MAX_RX_BUFFERS]; /* RX buffer space */
- int rx_buf_ptr;
- bus_dma_tag_t rx_desc_tag;
- bus_dmamap_t rx_desc_map;
- int txcur; /* current tx map pointer */
- bus_addr_t rx_desc_phys;
- eth_rx_desc_t *rx_descs;
- int use_rmii;
- struct ifmib_iso_8802_3 mibdata; /* stuff for network mgmt */
- int flags;
- int if_flags;
+ struct callout tick_ch; /* Tick callout */
+ struct ifmib_iso_8802_3 mibdata; /* Stuff for network mgmt */
+ struct mbuf *sent_mbuf[ATE_MAX_TX_BUFFERS]; /* Sent mbufs */
+ bus_dma_tag_t mtag; /* bus dma tag for mbufs */
+ bus_dma_tag_t rxtag;
+ bus_dma_tag_t rx_desc_tag;
+ bus_dmamap_t rx_desc_map;
+ bus_dmamap_t rx_map[ATE_MAX_RX_BUFFERS];
+ bus_dmamap_t tx_map[ATE_MAX_TX_BUFFERS];
+ bus_addr_t rx_desc_phys;
+ eth_rx_desc_t *rx_descs;
+ void *rx_buf[ATE_MAX_RX_BUFFERS]; /* RX buffer space */
+ void *intrhand; /* Interrupt handle */
+ int flags;
+ int if_flags;
+ int rx_buf_ptr;
+ int txcur; /* Current TX map pointer */
+ int use_rmii;
};
static inline uint32_t
RD4(struct ate_softc *sc, bus_size_t off)
{
- return bus_read_4(sc->mem_res, off);
+
+ return (bus_read_4(sc->mem_res, off));
}
static inline void
WR4(struct ate_softc *sc, bus_size_t off, uint32_t val)
{
+
bus_write_4(sc->mem_res, off, val);
}
@@ -125,41 +127,45 @@
bus_barrier(sc->mem_res, off, len, flags);
}
-#define ATE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx)
+#define ATE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx)
#define ATE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx)
-#define ATE_LOCK_INIT(_sc) \
- mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \
+#define ATE_LOCK_INIT(_sc) \
+ mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \
MTX_NETWORK_LOCK, MTX_DEF)
-#define ATE_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx);
-#define ATE_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED);
-#define ATE_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);
+#define ATE_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx);
+#define ATE_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED);
+#define ATE_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);
static devclass_t ate_devclass;
-/* ifnet entry points */
+/*
+ * ifnet entry points.
+ */
+static void ateinit_locked(void *);
+static void atestart_locked(struct ifnet *);
-static void ateinit_locked(void *);
-static void atestart_locked(struct ifnet *);
+static void ateinit(void *);
+static void atestart(struct ifnet *);
+static void atestop(struct ate_softc *);
+static int ateioctl(struct ifnet * ifp, u_long, caddr_t);
-static void ateinit(void *);
-static void atestart(struct ifnet *);
-static void atestop(struct ate_softc *);
-static int ateioctl(struct ifnet * ifp, u_long, caddr_t);
+/*
+ * Bus entry points.
+ */
+static int ate_probe(device_t dev);
+static int ate_attach(device_t dev);
+static int ate_detach(device_t dev);
+static void ate_intr(void *);
-/* bus entry points */
-
-static int ate_probe(device_t dev);
-static int ate_attach(device_t dev);
-static int ate_detach(device_t dev);
-static void ate_intr(void *);
-
-/* helper routines */
-static int ate_activate(device_t dev);
-static void ate_deactivate(struct ate_softc *sc);
-static int ate_ifmedia_upd(struct ifnet *ifp);
-static void ate_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr);
-static int ate_get_mac(struct ate_softc *sc, u_char *eaddr);
-static void ate_set_mac(struct ate_softc *sc, u_char *eaddr);
+/*
+ * Helper routines.
+ */
+static int ate_activate(device_t dev);
+static void ate_deactivate(struct ate_softc *sc);
+static int ate_ifmedia_upd(struct ifnet *ifp);
+static void ate_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr);
+static int ate_get_mac(struct ate_softc *sc, u_char *eaddr);
+static void ate_set_mac(struct ate_softc *sc, u_char *eaddr);
static void ate_rxfilter(struct ate_softc *sc);
/*
@@ -171,6 +177,7 @@
static int
ate_probe(device_t dev)
{
+
device_set_desc(dev, "EMAC");
return (0);
}
@@ -178,7 +185,7 @@
static int
ate_attach(device_t dev)
{
- struct ate_softc *sc = device_get_softc(dev);
+ struct ate_softc *sc;
struct ifnet *ifp = NULL;
struct sysctl_ctx_list *sctx;
struct sysctl_oid *soid;
@@ -186,6 +193,7 @@
uint32_t rnd;
int rid, err;
+ sc = device_get_softc(dev);
sc->dev = dev;
ATE_LOCK_INIT(sc);
@@ -221,7 +229,7 @@
SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "rmii",
CTLFLAG_RD, &sc->use_rmii, 0, "rmii in use");
- /* calling atestop before ifp is set is OK */
+ /* Calling atestop before ifp is set is OK. */
ATE_LOCK(sc);
atestop(sc);
ATE_UNLOCK(sc);
@@ -248,7 +256,6 @@
eaddr[4] = (rnd >> 8) & 0xff;
eaddr[5] = rnd & 0xff;
}
- ate_set_mac(sc, eaddr);
sc->ifp = ifp = if_alloc(IFT_ETHER);
if (mii_phy_probe(dev, &sc->miibus, ate_ifmedia_upd, ate_ifmedia_sts)) {
@@ -261,7 +268,7 @@
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
ifp->if_capabilities |= IFCAP_VLAN_MTU;
- ifp->if_capenable |= IFCAP_VLAN_MTU; /* the hw bits already set */
+ ifp->if_capenable |= IFCAP_VLAN_MTU; /* The hw bits already set. */
ifp->if_start = atestart;
ifp->if_ioctl = ateioctl;
ifp->if_init = ateinit;
@@ -435,8 +442,9 @@
int err, i;
sc = device_get_softc(dev);
+
/*
- * Allocate DMA tags and maps
+ * Allocate DMA tags and maps.
*/
err = bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0,
BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES,
@@ -448,11 +456,7 @@
if (err != 0)
goto errout;
}
- /*
- * Allocate our Rx buffers. This chip has a rx structure that's filled
- * in
- */
-
+
/*
* Allocate DMA tags and maps for RX.
*/
@@ -462,7 +466,9 @@
if (err != 0)
goto errout;
- /* Dma TAG and MAP for the rx descriptors. */
+ /*
+ * DMA tag and map for the RX descriptors.
+ */
err = bus_dma_tag_create(bus_get_dma_tag(dev), sizeof(eth_rx_desc_t),
0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
ATE_MAX_RX_BUFFERS * sizeof(eth_rx_desc_t), 1,
@@ -477,6 +483,11 @@
sc->rx_descs, ATE_MAX_RX_BUFFERS * sizeof(eth_rx_desc_t),
ate_getaddr, sc, 0) != 0)
goto errout;
+
+ /*
+ * Allocate our RX buffers. This chip has a RX structure that's filled
+ * in.
+ */
for (i = 0; i < ATE_MAX_RX_BUFFERS; i++) {
sc->rx_buf_ptr = i;
if (bus_dmamem_alloc(sc->rxtag, (void **)&sc->rx_buf[i],
@@ -487,7 +498,7 @@
goto errout;
}
sc->rx_buf_ptr = 0;
- /* Flush the memory for the EMAC rx descriptor */
+ /* Flush the memory for the EMAC rx descriptor. */
bus_dmamap_sync(sc->rx_desc_tag, sc->rx_desc_map, BUS_DMASYNC_PREWRITE);
/* Write the descriptor queue address. */
WR4(sc, ETH_RBQP, sc->rx_desc_phys);
@@ -662,8 +673,9 @@
sc->mibdata.dot3StatsCarrierSenseErrors += RD4(sc, ETH_CSE);
sc->mibdata.dot3StatsFrameTooLongs += RD4(sc, ETH_ELR);
sc->mibdata.dot3StatsInternalMacReceiveErrors += RD4(sc, ETH_DRFC);
+
/*
- * not sure where to lump these, so count them against the errors
+ * Not sure where to lump these, so count them against the errors
* for the interface.
*/
sc->ifp->if_oerrors += RD4(sc, ETH_TUE);
@@ -679,6 +691,7 @@
static void
ate_set_mac(struct ate_softc *sc, u_char *eaddr)
{
+
WR4(sc, ETH_SA1L, (eaddr[3] << 24) | (eaddr[2] << 16) |
(eaddr[1] << 8) | eaddr[0]);
WR4(sc, ETH_SA1H, (eaddr[5] << 8) | (eaddr[4]));
@@ -819,7 +832,7 @@
}
/*
- * Reset and initialize the chip
+ * Reset and initialize the chip.
*/
static void
ateinit_locked(void *xsc)
@@ -827,6 +840,7 @@
struct ate_softc *sc = xsc;
struct ifnet *ifp = sc->ifp;
struct mii_data *mii;
+ uint8_t eaddr[ETHER_ADDR_LEN];
uint32_t reg;
ATE_ASSERT_LOCKED(sc);
@@ -856,24 +870,23 @@
ate_rxfilter(sc);
/*
+ * Set the chip MAC address.
+ */
+ bcopy(IF_LLADDR(ifp), eaddr, ETHER_ADDR_LEN);
+ ate_set_mac(sc, eaddr);
+
+ /*
* Turn on MACs and interrupt processing.
*/
WR4(sc, ETH_CTL, RD4(sc, ETH_CTL) | ETH_CTL_TE | ETH_CTL_RE);
WR4(sc, ETH_IER, ETH_ISR_RCOM | ETH_ISR_TCOM | ETH_ISR_RBNA);
- /*
- * Boot loader fills in MAC address. If that's not the case, then
- * we should set SA1L and SA1H here to the appropriate value. Note:
- * the byte order is big endian, not little endian, so we have some
- * swapping to do. Again, if we need it (which I don't think we do).
- */
-
- /* enable big packets */
+ /* Enable big packets. */
WR4(sc, ETH_CFG, RD4(sc, ETH_CFG) | ETH_CFG_BIG);
/*
* Set 'running' flag, and clear output active flag
- * and attempt to start the output
+ * and attempt to start the output.
*/
ifp->if_drv_flags |= IFF_DRV_RUNNING;
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
@@ -887,7 +900,7 @@
}
/*
- * dequeu packets and transmit
+ * Dequeue packets and transmit.
*/
static void
atestart_locked(struct ifnet *ifp)
@@ -903,7 +916,7 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list