PERFORCE change 158399 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Fri Feb 27 11:33:27 PST 2009
http://perforce.freebsd.org/chv.cgi?CH=158399
Change 158399 by hselasky at hselasky_laptop001 on 2009/02/27 19:32:38
IFC @ 158396
Affected files ...
.. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#17 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#16 integrate
.. //depot/projects/usb/src/sys/amd64/conf/USB2#5 delete
.. //depot/projects/usb/src/sys/arm/mv/files.mv#5 integrate
.. //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#7 integrate
.. //depot/projects/usb/src/sys/boot/i386/btx/btx/btx.S#5 integrate
.. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#16 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#9 integrate
.. //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#10 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_hal.c#2 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#13 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#10 integrate
.. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#5 integrate
.. //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#6 integrate
.. //depot/projects/usb/src/sys/conf/kern.pre.mk#15 integrate
.. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#8 integrate
.. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#10 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#8 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#13 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.c#13 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.h#10 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#11 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#8 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-usb.c#38 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#6 integrate
.. //depot/projects/usb/src/sys/dev/drm/drmP.h#8 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_bufs.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#7 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_irq.c#5 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_lock.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_dma.c#8 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_drv.c#4 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_drv.h#5 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_irq.c#5 integrate
.. //depot/projects/usb/src/sys/dev/drm/i915_reg.h#1 branch
.. //depot/projects/usb/src/sys/dev/drm/radeon_irq.c#4 integrate
.. //depot/projects/usb/src/sys/dev/mca/mca_bus.c#2 integrate
.. //depot/projects/usb/src/sys/dev/nsp/nsp.c#2 integrate
.. //depot/projects/usb/src/sys/dev/pci/pci.c#14 integrate
.. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#24 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#36 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.h#8 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio_pcm.c#11 integrate
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudioreg.h#9 integrate
.. //depot/projects/usb/src/sys/dev/stg/tmc18c30.c#2 integrate
.. //depot/projects/usb/src/sys/dev/syscons/scterm-teken.c#3 integrate
.. //depot/projects/usb/src/sys/dev/txp/3c990img.h#2 integrate
.. //depot/projects/usb/src/sys/dev/txp/if_txp.c#6 integrate
.. //depot/projects/usb/src/sys/dev/txp/if_txpreg.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/bluetooth/ubtbcmfw.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/image/uscanner.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/input/ums.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/misc/ufm.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb.h#37 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_bus.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_core.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_if.m#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_ioctl.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#44 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbhid.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#29 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.c#6 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.h#2 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci_atmelarm.c#2 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#35 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_ixp4xx.c#2 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_mbus.c#2 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#28 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#32 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#31 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_controller.h#14 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_pci.h#6 delete
.. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#25 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/README.TXT#9 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#38 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_dev.c#47 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#55 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.h#15 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_generic.c#45 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_handle_request.c#17 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hid.c#11 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hid.h#11 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#40 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.c#20 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.h#11 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#36 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.h#13 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#46 delete
.. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.h#17 delete
.. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kuefw.h#3 delete
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devid.h#30 delete
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devtable.h#30 delete
.. //depot/projects/usb/src/sys/dev/usb2/include/usb2_ioctl.h#32 delete
.. //depot/projects/usb/src/sys/dev/usb2/input/ums2.c#17 delete
.. //depot/projects/usb/src/sys/dev/usb2/quirk/usb2_quirk.c#16 delete
.. //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#14 delete
.. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2_reg.h#6 delete
.. //depot/projects/usb/src/sys/dev/usb2/serial/uslcom2.c#2 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rum2.c#42 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rumfw.h#3 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rumvar.h#10 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_ural2.c#41 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_uralvar.h#10 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zyd2.c#41 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zydreg.h#11 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/usb2_wlan.c#7 delete
.. //depot/projects/usb/src/sys/dev/usb2/wlan/usb2_wlan.h#9 delete
.. //depot/projects/usb/src/sys/fs/udf/udf.h#4 integrate
.. //depot/projects/usb/src/sys/fs/udf/udf_vfsops.c#11 integrate
.. //depot/projects/usb/src/sys/fs/udf/udf_vnops.c#13 integrate
.. //depot/projects/usb/src/sys/i386/conf/USB2#5 delete
.. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#14 integrate
.. //depot/projects/usb/src/sys/i386/i386/pmap.c#14 integrate
.. //depot/projects/usb/src/sys/i386/i386/vm86.c#3 integrate
.. //depot/projects/usb/src/sys/i386/isa/npx.c#8 integrate
.. //depot/projects/usb/src/sys/kern/kern_condvar.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_cons.c#2 integrate
.. //depot/projects/usb/src/sys/kern/kern_exec.c#14 integrate
.. //depot/projects/usb/src/sys/kern/kern_exit.c#13 integrate
.. //depot/projects/usb/src/sys/kern/kern_malloc.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_poll.c#9 integrate
.. //depot/projects/usb/src/sys/kern/kern_priv.c#5 integrate
.. //depot/projects/usb/src/sys/kern/kern_rwlock.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_sig.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_synch.c#16 integrate
.. //depot/projects/usb/src/sys/kern/kern_thr.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_time.c#8 integrate
.. //depot/projects/usb/src/sys/kern/kern_uuid.c#7 integrate
.. //depot/projects/usb/src/sys/kern/subr_prf.c#9 integrate
.. //depot/projects/usb/src/sys/kern/tty_info.c#4 integrate
.. //depot/projects/usb/src/sys/kern/tty_inq.c#3 integrate
.. //depot/projects/usb/src/sys/kern/tty_outq.c#3 integrate
.. //depot/projects/usb/src/sys/kern/tty_pty.c#9 integrate
.. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#4 integrate
.. //depot/projects/usb/src/sys/libkern/strtouq.c#2 integrate
.. //depot/projects/usb/src/sys/modules/usb/Makefile#14 integrate
.. //depot/projects/usb/src/sys/modules/usb2/controller_ehci/Makefile#7 delete
.. //depot/projects/usb/src/sys/modules/usb2/serial_slcom/Makefile#2 delete
.. //depot/projects/usb/src/sys/net/bridgestp.c#11 integrate
.. //depot/projects/usb/src/sys/net/if.c#18 integrate
.. //depot/projects/usb/src/sys/net/if_ef.c#6 integrate
.. //depot/projects/usb/src/sys/net/if_ethersubr.c#15 integrate
.. //depot/projects/usb/src/sys/net/if_loop.c#15 integrate
.. //depot/projects/usb/src/sys/net/if_mib.c#5 integrate
.. //depot/projects/usb/src/sys/net/if_vlan.c#12 integrate
.. //depot/projects/usb/src/sys/net/raw_cb.c#10 integrate
.. //depot/projects/usb/src/sys/net/raw_usrreq.c#9 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#4 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#11 integrate
.. //depot/projects/usb/src/sys/netgraph/atm/ng_atm.c#5 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_ether.c#8 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_gif.c#5 integrate
.. //depot/projects/usb/src/sys/netinet/if_ether.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.c#8 integrate
.. //depot/projects/usb/src/sys/netinet/in_mcast.c#8 integrate
.. //depot/projects/usb/src/sys/netinet/in_proto.c#9 integrate
.. //depot/projects/usb/src/sys/netinet/in_rmx.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw2.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/ip_input.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_output.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/raw_ip.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_input.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#13 integrate
.. //depot/projects/usb/src/sys/netinet6/icmp6.c#15 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#14 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_proto.c#12 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#12 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_input.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#11 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_output.c#11 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.c#14 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/scope6.c#9 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#10 integrate
.. //depot/projects/usb/src/sys/netipsec/key_debug.c#4 integrate
.. //depot/projects/usb/src/sys/netipsec/keysock.c#10 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#11 integrate
.. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#10 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_diskless.c#8 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/machdep.c#7 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/swtch.S#2 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/trap.c#3 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/trap_subr.S#4 integrate
.. //depot/projects/usb/src/sys/powerpc/include/frame.h#3 integrate
.. //depot/projects/usb/src/sys/powerpc/include/pcb.h#5 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/genassym.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_process.c#9 integrate
.. //depot/projects/usb/src/sys/sys/param.h#21 integrate
.. //depot/projects/usb/src/sys/vm/vm_fault.c#10 integrate
.. //depot/projects/usb/src/sys/vm/vm_kern.c#11 integrate
.. //depot/projects/usb/src/sys/vm/vm_map.c#13 integrate
.. //depot/projects/usb/src/sys/vm/vm_map.h#8 integrate
.. //depot/projects/usb/src/sys/vm/vm_mmap.c#15 integrate
.. //depot/projects/usb/src/sys/vm/vm_pager.c#3 integrate
.. //depot/projects/usb/src/sys/vm/vm_unix.c#3 integrate
Differences ...
==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#17 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.297 2009/02/03 09:01:45 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.299 2009/02/25 22:24:56 sobomax Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -151,6 +151,7 @@
int cpu_present:1;
int cpu_bsp:1;
int cpu_disabled:1;
+ int cpu_hyperthread:1;
} static cpu_info[MAX_APIC_ID + 1];
int cpu_apic_ids[MAXCPU];
int apic_cpuids[MAX_APIC_ID + 1];
@@ -353,11 +354,6 @@
cpu_apic_ids[0] = boot_cpu_id;
apic_cpuids[boot_cpu_id] = 0;
- assign_cpu_ids();
-
- /* Start each Application Processor */
- start_all_aps();
-
/* Setup the initial logical CPUs info. */
logical_cpus = logical_cpus_mask = 0;
if (cpu_feature & CPUID_HTT)
@@ -404,6 +400,11 @@
hyperthreading_cpus = logical_cpus;
}
+ assign_cpu_ids();
+
+ /* Start each Application Processor */
+ start_all_aps();
+
set_interrupt_apic_ids();
}
@@ -415,18 +416,26 @@
cpu_mp_announce(void)
{
int i, x;
+ const char *hyperthread;
/* List CPUs */
printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
for (i = 1, x = 0; x <= MAX_APIC_ID; x++) {
if (!cpu_info[x].cpu_present || cpu_info[x].cpu_bsp)
continue;
+ if (cpu_info[x].cpu_hyperthread) {
+ hyperthread = "/HT";
+ } else {
+ hyperthread = "";
+ }
if (cpu_info[x].cpu_disabled)
- printf(" cpu (AP): APIC ID: %2d (disabled)\n", x);
+ printf(" cpu (AP%s): APIC ID: %2d (disabled)\n",
+ hyperthread, x);
else {
KASSERT(i < mp_ncpus,
("mp_ncpus and actual cpus are out of whack"));
- printf(" cpu%d (AP): APIC ID: %2d\n", i++, x);
+ printf(" cpu%d (AP%s): APIC ID: %2d\n", i++,
+ hyperthread, x);
}
}
}
@@ -642,11 +651,28 @@
{
u_int i;
+ TUNABLE_INT_FETCH("machdep.hyperthreading_allowed",
+ &hyperthreading_allowed);
+
/* Check for explicitly disabled CPUs. */
for (i = 0; i <= MAX_APIC_ID; i++) {
if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp)
continue;
+ if (hyperthreading_cpus > 1 && i % hyperthreading_cpus != 0) {
+ cpu_info[i].cpu_hyperthread = 1;
+#if defined(SCHED_ULE)
+ /*
+ * Don't use HT CPU if it has been disabled by a
+ * tunable.
+ */
+ if (hyperthreading_allowed == 0) {
+ cpu_info[i].cpu_disabled = 1;
+ continue;
+ }
+#endif
+ }
+
/* Don't use this CPU if it has been disabled by a tunable. */
if (resource_disabled("lapic", i)) {
cpu_info[i].cpu_disabled = 1;
@@ -1198,6 +1224,16 @@
if (error || !req->newptr)
return (error);
+#ifdef SCHED_ULE
+ /*
+ * SCHED_ULE doesn't allow enabling/disabling HT cores at
+ * run time.
+ */
+ if (allowed != hyperthreading_allowed)
+ return (ENOTSUP);
+ return (error);
+#endif
+
if (allowed)
hlt_cpus_mask &= ~hyperthreading_cpus_mask;
else
@@ -1242,8 +1278,6 @@
* of hlt_logical_cpus.
*/
if (hyperthreading_cpus_mask) {
- TUNABLE_INT_FETCH("machdep.hyperthreading_allowed",
- &hyperthreading_allowed);
SYSCTL_ADD_PROC(&logical_cpu_clist,
SYSCTL_STATIC_CHILDREN(_machdep), OID_AUTO,
"hyperthreading_allowed", CTLTYPE_INT|CTLFLAG_RW,
==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#16 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.648 2009/02/23 06:00:24 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.649 2009/02/25 20:26:48 jkim Exp $");
/*
* Manages physical address maps.
@@ -594,7 +594,6 @@
if (!(cpu_feature & CPUID_PAT))
panic("no PAT??");
-#ifdef PAT_WORKS
/*
* Leave the indices 0-3 at the default of WB, WT, UC, and UC-.
* Program 4 and 5 as WP and WC.
@@ -604,23 +603,6 @@
pat_msr &= ~(PAT_MASK(4) | PAT_MASK(5));
pat_msr |= PAT_VALUE(4, PAT_WRITE_PROTECTED) |
PAT_VALUE(5, PAT_WRITE_COMBINING);
-#else
- /*
- * Due to some Intel errata, we can only safely use the lower 4
- * PAT entries. Thus, just replace PAT Index 2 with WC instead
- * of UC-.
- *
- * Intel Pentium III Processor Specification Update
- * Errata E.27 (Upper Four PAT Entries Not Usable With Mode B
- * or Mode C Paging)
- *
- * Intel Pentium IV Processor Specification Update
- * Errata N46 (PAT Index MSB May Be Calculated Incorrectly)
- */
- pat_msr = rdmsr(MSR_PAT);
- pat_msr &= ~PAT_MASK(2);
- pat_msr |= PAT_VALUE(2, PAT_WRITE_COMBINING);
-#endif
wrmsr(MSR_PAT, pat_msr);
}
@@ -783,10 +765,9 @@
break;
}
}
-
+
/* Map the caching mode to a PAT index. */
switch (mode) {
-#ifdef PAT_WORKS
case PAT_UNCACHEABLE:
pat_index = 3;
break;
@@ -805,25 +786,9 @@
case PAT_WRITE_PROTECTED:
pat_index = 4;
break;
-#else
- case PAT_UNCACHED:
- case PAT_UNCACHEABLE:
- case PAT_WRITE_PROTECTED:
- pat_index = 3;
- break;
- case PAT_WRITE_THROUGH:
- pat_index = 1;
- break;
- case PAT_WRITE_BACK:
- pat_index = 0;
- break;
- case PAT_WRITE_COMBINING:
- pat_index = 2;
- break;
-#endif
default:
panic("Unknown caching mode %d\n", mode);
- }
+ }
/* Map the 3-bit index value into the PAT, PCD, and PWT bits. */
cache_bits = 0;
==== //depot/projects/usb/src/sys/arm/mv/files.mv#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/arm/mv/files.mv,v 1.4 2009/02/16 21:42:41 marcel Exp $
+# $FreeBSD: src/sys/arm/mv/files.mv,v 1.5 2009/02/24 23:30:52 thompsa Exp $
#
# The Marvell CPU cores
# - Compliant with V5TE architecture
@@ -32,5 +32,4 @@
dev/uart/uart_bus_mbus.c optional uart
dev/uart/uart_cpu_mv.c optional uart
dev/uart/uart_dev_ns8250.c optional uart
-dev/usb/ehci_mbus.c optional ehci
-dev/usb2/controller/ehci2_mbus.c optional usb2_core usb2_controller usb2_controller_ehci
+dev/usb/controller/ehci_mbus.c optional ehci
==== //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#7 (text+ko) ====
@@ -1,4 +1,4 @@
-#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.8 2009/02/03 19:16:04 sam Exp $
+#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.9 2009/02/24 23:34:02 thompsa Exp $
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_xscale.S standard
arm/arm/irq_dispatch.S standard
@@ -46,4 +46,5 @@
#
arm/xscale/ixp425/ixp425_qmgr.c optional qmgr
#
-dev/usb/ehci_ixp4xx.c optional ehci
+dev/usb/controller/ehci_ixp4xx.c optional ehci usb
+legacy/dev/usb/ehci_ixp4xx.c optional ehci ousb
==== //depot/projects/usb/src/sys/boot/i386/btx/btx/btx.S#5 (text+ko) ====
@@ -12,7 +12,7 @@
* warranties of merchantability and fitness for a particular
* purpose.
*
- * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.47 2008/08/08 19:39:11 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.48 2009/02/24 23:11:15 jhb Exp $
*/
/*
@@ -36,6 +36,7 @@
/*
* Fields in %eflags.
*/
+ .set PSL_RESERVED_DEFAULT,0x00000002
.set PSL_T,0x00000100 # Trap flag
.set PSL_I,0x00000200 # Interrupt enable flag
.set PSL_VM,0x00020000 # Virtual 8086 mode flag
@@ -455,6 +456,18 @@
* -0x3c %fs
* -0x40 %ds
* -0x44 %es
+ * -0x48 zero %eax (hardware int only)
+ * -0x4c zero %ecx (hardware int only)
+ * -0x50 zero %edx (hardware int only)
+ * -0x54 zero %ebx (hardware int only)
+ * -0x58 zero %esp (hardware int only)
+ * -0x5c zero %ebp (hardware int only)
+ * -0x60 zero %esi (hardware int only)
+ * -0x64 zero %edi (hardware int only)
+ * -0x68 zero %gs (hardware int only)
+ * -0x6c zero %fs (hardware int only)
+ * -0x70 zero %ds (hardware int only)
+ * -0x74 zero %es (hardware int only)
*/
int_hw: cld # String ops inc
pusha # Save gp regs
@@ -467,12 +480,15 @@
pushl %ds # address
popl %es # data
leal 0x44(%esp,1),%esi # Base of frame
+ movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer
movl -0x14(%esi),%eax # Get Int no
cmpl $-1,%eax # Hardware interrupt?
- jne intusr.2 # Yes
+ jne intusr.1 # Yes
/*
- * v86 calls save the btx_v86 pointer on the real mode stack and read the
- * address and flags from the btx_v86 structure.
+ * v86 calls save the btx_v86 pointer on the real mode stack and read
+ * the address and flags from the btx_v86 structure. For interrupt
+ * handler invocations (VM86 INTx requests), disable interrupts,
+ * tracing, and alignment checking while the handler runs.
*/
movl $MEM_USR,%ebx # User base
movl %ebx,%edx # address
@@ -482,35 +498,36 @@
movl %edx,MEM_ESPR-0x08 # Save btx_v86 ptr
movl V86_ADDR(%edx),%eax # Get int no/address
movl V86_CTL(%edx),%edx # Get control flags
+ movl -0x08(%esi),%ebx # Save user flags in %ebx
+ testl $V86F_ADDR,%edx # Segment:offset?
+ jnz intusr.4 # Yes
+ andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing,
+ # and alignment checking for
+ # interrupt handler
jmp intusr.3 # Skip hardware interrupt
/*
- * Hardware interrupts store a NULL btx_v86 pointer and use the address
- * (interrupt number) from the stack with empty flags. Also, we clear
- * the segment registers for the interrupt handler.
+ * Hardware interrupts store a NULL btx_v86 pointer and use the
+ * address (interrupt number) from the stack with empty flags. Also,
+ * push a dummy frame of zeros onto the stack for all the general
+ * purpose and segment registers and clear %eflags. This gives the
+ * hardware interrupt handler a clean slate.
*/
-intusr.2: xorl %edx,%edx # Control flags
+intusr.1: xorl %edx,%edx # Control flags
movl %edx,MEM_ESPR-0x08 # NULL btx_v86 ptr
- movl %edx,-0x38(%esi) # Real mode %gs of 0
- movl %edx,-0x3c(%esi) # Real mode %fs of 0
- movl %edx,-0x40(%esi) # Real mode %ds of 0
- movl %edx,-0x44(%esi) # Real mode %es of 0
+ movl $12,%ecx # Frame is 12 dwords
+intusr.2: pushl $0x0 # Fill frame
+ loop intusr.2 # with zeros
+ movl $PSL_RESERVED_DEFAULT,%ebx # Set clean %eflags
/*
- * %eax now holds either the interrupt number or segment:offset of function.
- * %edx now holds the V86F_* flags.
- *
- * For interrupt handler invocations (either hardware interrupts or VM86
- * INTx requests) we also disable interrupts, tracing, and alignment checking
- * while the handler runs.
+ * Look up real mode IDT entry for hardware interrupts and VM86 INTx
+ * requests.
*/
-intusr.3: movl -0x08(%esi),%ebx # Save user flags in %ebx
- testl $V86F_ADDR,%edx # Segment:offset?
- jnz intusr.4 # Yes
- shll $0x2,%eax # Scale
+intusr.3: shll $0x2,%eax # Scale
movl (%eax),%eax # Load int vector
- andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing,
- # and alignment checking for
- # interrupt handler
jmp intusr.5 # Skip CALLF test
+/*
+ * Panic if V86F_CALLF isn't set with V86F_ADDR.
+ */
intusr.4: testl $V86F_CALLF,%edx # Far call?
jnz intusr.5 # Ok
movl %edx,0x30(%esp,1) # Place VM86 flags in int no
@@ -522,6 +539,11 @@
popl %gs
popal # Restore gp regs
jmp ex_noc # Panic
+/*
+ * %eax now holds the segment:offset of the function.
+ * %ebx now holds the %eflags to pass to real mode.
+ * %edx now holds the V86F_* flags.
+ */
intusr.5: movw %bx,MEM_ESPR-0x12 # Pass user flags to real mode
# target
/*
@@ -536,8 +558,7 @@
rep # from btx_v86
movsl # to kernel stack
popl %esi # Restore
-intusr.6: movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer
- movl -0x08(%esi),%ebx # Copy user flags to real
+intusr.6: movl -0x08(%esi),%ebx # Copy user flags to real
movl %ebx,MEM_ESPR-0x0c # mode return trampoline
movl $rret_tramp,%ebx # Set return trampoline
movl %ebx,MEM_ESPR-0x10 # CS:IP
@@ -611,9 +632,16 @@
movb $SEL_TSS,%cl # Set task
ltr %cx # register
/*
- * Now we are back in protected mode. Copy the registers off of the real
- * mode stack onto the kernel stack. Also, initialize all the seg regs on
- * the kernel stack.
+ * Now we are back in protected mode. The kernel stack frame set up
+ * before entering real mode is still intact. For hardware interrupts,
+ * leave the frame unchanged.
+ */
+ cmpl $0,MEM_ESPR-0x08 # Leave saved regs unchanged
+ jz rret_tramp.3 # for hardware ints
+/*
+ * For V86 calls, copy the registers off of the real mode stack onto
+ * the kernel stack as we want their updated values. Also, initialize
+ * the segment registers on the kernel stack.
*
* Note that the %esp in the kernel stack after this is garbage, but popa
* ignores it, so we don't have to fix it up.
@@ -624,20 +652,17 @@
movl $8,%ecx # Copy GP regs from
rep # real mode stack
movsl # to kernel stack
- popl %esi # Restore
movl $SEL_UDATA,%eax # Selector for data seg regs
movl $4,%ecx # Initialize %ds,
rep # %es, %fs, and
stosl # %gs
/*
- * If this was a V86 call, copy the saved seg regs on the real mode stack
- * back over to the btx_v86 structure. Also, conditionally update the saved
- * eflags on the kernel stack based on the flags from the user.
+ * For V86 calls, copy the saved seg regs on the real mode stack back
+ * over to the btx_v86 structure. Also, conditionally update the
+ * saved eflags on the kernel stack based on the flags from the user.
*/
movl MEM_ESPR-0x08,%ecx # Get btx_v86 ptr
- jecxz rret_tramp.3 # Skip for hardware ints
leal V86_GS(%ecx),%edi # %edi => btx_v86 seg regs
- pushl %esi # Save
leal MEM_ESPR-0x2c,%esi # %esi => real mode seg regs
xchgl %ecx,%edx # Save btx_v86 ptr
movl $4,%ecx # Copy seg regs
==== //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#16 (text+ko) ====
@@ -39,10 +39,11 @@
* @(#)procfs_status.c 8.4 (Berkeley) 6/15/94
*/
+#include "opt_route.h"
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.135 2009/02/13 15:32:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.136 2009/02/27 14:12:05 bz Exp $");
#include <sys/param.h>
#include <sys/queue.h>
@@ -76,6 +77,7 @@
#include <sys/vimage.h>
#include <net/if.h>
+#include <net/route.h>
#include <net/vnet.h>
#include <vm/vm.h>
==== //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#9 (text+ko) ====
@@ -26,10 +26,11 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "opt_route.h"
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.146 2008/12/02 21:37:28 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.147 2009/02/27 14:12:05 bz Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -63,6 +64,7 @@
#include <net/if.h>
#include <net/if_dl.h>
#include <net/if_types.h>
+#include <net/route.h>
#include <net/vnet.h>
#ifdef COMPAT_LINUX32
==== //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#10 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.100 2008/12/27 09:42:17 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.102 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -65,6 +65,9 @@
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_ioctl.h>
+#include <legacy/dev/usb/usb.h>
+#include <legacy/dev/usb/usbdi.h>
+
#include <compat/ndis/pe_var.h>
#include <compat/ndis/cfg_var.h>
#include <compat/ndis/resource_var.h>
@@ -255,10 +258,8 @@
}
static void
-ndis_resetdone_func(adapter, status, addressingreset)
- ndis_handle adapter;
- ndis_status status;
- uint8_t addressingreset;
+ndis_resetdone_func(ndis_handle adapter, ndis_status status,
+ uint8_t addressingreset)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
==== //depot/projects/usb/src/sys/compat/ndis/subr_hal.c#2 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.28 2006/05/16 14:37:57 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.29 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -142,18 +142,14 @@
}
static void
-WRITE_PORT_USHORT(port, val)
- uint16_t *port;
- uint16_t val;
+WRITE_PORT_USHORT(uint16_t *port, uint16_t val)
{
bus_space_write_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
return;
}
static void
-WRITE_PORT_UCHAR(port, val)
- uint8_t *port;
- uint8_t val;
+WRITE_PORT_UCHAR(uint8_t *port, uint8_t val)
{
bus_space_write_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
return;
@@ -378,9 +374,7 @@
}
void
-KfReleaseSpinLock(lock, newirql)
- kspin_lock *lock;
- uint8_t newirql;
+KfReleaseSpinLock(kspin_lock *lock, uint8_t newirql)
{
KeReleaseSpinLockFromDpcLevel(lock);
KeLowerIrql(newirql);
@@ -407,8 +401,7 @@
}
uint8_t
-KfRaiseIrql(irql)
- uint8_t irql;
+KfRaiseIrql(uint8_t irql)
{
uint8_t oldirql;
@@ -428,8 +421,7 @@
}
void
-KfLowerIrql(oldirql)
- uint8_t oldirql;
+KfLowerIrql(uint8_t oldirql)
{
if (oldirql == DISPATCH_LEVEL)
return;
@@ -453,8 +445,7 @@
}
static void
-_KeLowerIrql(oldirql)
- uint8_t oldirql;
+_KeLowerIrql(uint8_t oldirql)
{
KeLowerIrql(oldirql);
return;
==== //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#13 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.115 2008/12/27 08:03:32 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.117 2009/02/24 18:09:31 rdivacky Exp $");
/*
* This file implements a translation layer between the BSD networking
@@ -95,6 +95,8 @@
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
+#include <legacy/dev/usb/usb.h>
+#include <legacy/dev/usb/usbdi.h>
#include <compat/ndis/pe_var.h>
#include <compat/ndis/cfg_var.h>
@@ -903,10 +905,8 @@
}
static void
-NdisAcquireReadWriteLock(lock, writeacc, state)
- ndis_rw_lock *lock;
- uint8_t writeacc;
- ndis_lock_state *state;
+NdisAcquireReadWriteLock(ndis_rw_lock *lock, uint8_t writeacc,
+ ndis_lock_state *state)
{
if (writeacc == TRUE) {
KeAcquireSpinLock(&lock->nrl_spinlock, &state->nls_oldirql);
@@ -1089,13 +1089,9 @@
}
static void
-NdisMStartBufferPhysicalMapping(adapter, buf, mapreg, writedev, addrarray, arraysize)
- ndis_handle adapter;
- ndis_buffer *buf;
- uint32_t mapreg;
- uint8_t writedev;
- ndis_paddr_unit *addrarray;
- uint32_t *arraysize;
+NdisMStartBufferPhysicalMapping(ndis_handle adapter, ndis_buffer *buf,
+ uint32_t mapreg, uint8_t writedev, ndis_paddr_unit *addrarray,
+ uint32_t *arraysize)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1472,12 +1468,8 @@
}
static ndis_status
-NdisMAllocateMapRegisters(adapter, dmachannel, dmasize, physmapneeded, maxmap)
- ndis_handle adapter;
- uint32_t dmachannel;
- uint8_t dmasize;
- uint32_t physmapneeded;
- uint32_t maxmap;
+NdisMAllocateMapRegisters(ndis_handle adapter, uint32_t dmachannel,
+ uint8_t dmasize, uint32_t physmapneeded, uint32_t maxmap)
{
struct ndis_softc *sc;
ndis_miniport_block *block;
@@ -1555,12 +1547,8 @@
*/
static void
-NdisMAllocateSharedMemory(adapter, len, cached, vaddr, paddr)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void **vaddr;
- ndis_physaddr *paddr;
+NdisMAllocateSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+ void **vaddr, ndis_physaddr *paddr)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1678,11 +1666,8 @@
}
static ndis_status
-NdisMAllocateSharedMemoryAsync(adapter, len, cached, ctx)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void *ctx;
+NdisMAllocateSharedMemoryAsync(ndis_handle adapter, uint32_t len,
+ uint8_t cached, void *ctx)
{
ndis_miniport_block *block;
struct ndis_allocwork *w;
@@ -1715,12 +1700,8 @@
}
static void
-NdisMFreeSharedMemory(adapter, len, cached, vaddr, paddr)
- ndis_handle adapter;
- uint32_t len;
- uint8_t cached;
- void *vaddr;
- ndis_physaddr paddr;
+NdisMFreeSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+ void *vaddr, ndis_physaddr paddr)
{
ndis_miniport_block *block;
struct ndis_softc *sc;
@@ -1827,10 +1808,8 @@
*/
static ndis_status
-NdisMInitializeScatterGatherDma(adapter, is64, maxphysmap)
- ndis_handle adapter;
- uint8_t is64;
- uint32_t maxphysmap;
+NdisMInitializeScatterGatherDma(ndis_handle adapter, uint8_t is64,
+ uint32_t maxphysmap)
{
struct ndis_softc *sc;
ndis_miniport_block *block;
@@ -2431,14 +2410,9 @@
}
static ndis_status
-NdisMRegisterInterrupt(intr, adapter, ivec, ilevel, reqisr, shared, imode)
- ndis_miniport_interrupt *intr;
- ndis_handle adapter;
- uint32_t ivec;
- uint32_t ilevel;
- uint8_t reqisr;
- uint8_t shared;
- ndis_interrupt_mode imode;
+NdisMRegisterInterrupt(ndis_miniport_interrupt *intr, ndis_handle adapter,
+ uint32_t ivec, uint32_t ilevel, uint8_t reqisr, uint8_t shared,
+ ndis_interrupt_mode imode)
{
ndis_miniport_block *block;
ndis_miniport_characteristics *ch;
==== //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#10 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.97 2008/12/27 08:03:32 weongyo Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.98 2009/02/24 18:09:31 rdivacky Exp $");
#include <sys/ctype.h>
#include <sys/unistd.h>
@@ -446,10 +446,7 @@
}
static void *
-ntoskrnl_memchr(buf, ch, len)
- void *buf;
- unsigned char ch;
- size_t len;
+ntoskrnl_memchr(void *buf, unsigned char ch, size_t len)
{
if (len != 0) {
unsigned char *p = buf;
@@ -520,10 +517,8 @@
}
static uint8_t
-RtlEqualUnicodeString(str1, str2, caseinsensitive)
- unicode_string *str1;
- unicode_string *str2;
- uint8_t caseinsensitive;
+RtlEqualUnicodeString(unicode_string *str1, unicode_string *str2,
+ uint8_t caseinsensitive)
{
int i;
@@ -595,10 +590,7 @@
}
uint32_t
-RtlUnicodeStringToAnsiString(dest, src, allocate)
- ansi_string *dest;
- unicode_string *src;
- uint8_t allocate;
+RtlUnicodeStringToAnsiString(ansi_string *dest, unicode_string *src, uint8_t allocate)
{
if (dest == NULL || src == NULL)
return(STATUS_INVALID_PARAMETER);
@@ -626,10 +618,8 @@
}
uint32_t
-RtlAnsiStringToUnicodeString(dest, src, allocate)
- unicode_string *dest;
- ansi_string *src;
- uint8_t allocate;
+RtlAnsiStringToUnicodeString(unicode_string *dest, ansi_string *src,
+ uint8_t allocate)
{
if (dest == NULL || src == NULL)
return(STATUS_INVALID_PARAMETER);
@@ -727,14 +717,9 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list