PERFORCE change 87047 for review
Olivier Houchard
cognet at FreeBSD.org
Mon Nov 21 13:08:00 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=87047
Change 87047 by cognet at cognet on 2005/11/21 21:07:11
IFC to get back arm9 changes
Affected files ...
.. //depot/projects/arm/src/sys/alpha/alpha/clock.c#3 integrate
.. //depot/projects/arm/src/sys/alpha/alpha/pmap.c#3 integrate
.. //depot/projects/arm/src/sys/alpha/conf/DEFAULTS#1 branch
.. //depot/projects/arm/src/sys/alpha/conf/GENERIC#3 integrate
.. //depot/projects/arm/src/sys/amd64/amd64/identcpu.c#3 integrate
.. //depot/projects/arm/src/sys/amd64/amd64/machdep.c#5 integrate
.. //depot/projects/arm/src/sys/amd64/amd64/pmap.c#3 integrate
.. //depot/projects/arm/src/sys/amd64/amd64/trap.c#3 integrate
.. //depot/projects/arm/src/sys/amd64/conf/DEFAULTS#2 integrate
.. //depot/projects/arm/src/sys/arm/arm/identcpu.c#3 integrate
.. //depot/projects/arm/src/sys/arm/arm/pmap.c#8 integrate
.. //depot/projects/arm/src/sys/arm/include/armreg.h#2 integrate
.. //depot/projects/arm/src/sys/arm/include/pmap.h#4 integrate
.. //depot/projects/arm/src/sys/boot/forth/loader.conf.5#3 integrate
.. //depot/projects/arm/src/sys/cam/scsi/scsi_cd.c#3 integrate
.. //depot/projects/arm/src/sys/cam/scsi/scsi_da.c#3 integrate
.. //depot/projects/arm/src/sys/compat/ndis/subr_ndis.c#4 integrate
.. //depot/projects/arm/src/sys/compat/ndis/subr_ntoskrnl.c#5 integrate
.. //depot/projects/arm/src/sys/conf/Makefile.arm#3 integrate
.. //depot/projects/arm/src/sys/conf/files#5 integrate
.. //depot/projects/arm/src/sys/conf/files.i386#6 integrate
.. //depot/projects/arm/src/sys/dev/aic7xxx/aicasm/Makefile#3 integrate
.. //depot/projects/arm/src/sys/dev/em/if_em.c#4 integrate
.. //depot/projects/arm/src/sys/dev/em/if_em.h#3 integrate
.. //depot/projects/arm/src/sys/dev/em/if_em_hw.h#3 integrate
.. //depot/projects/arm/src/sys/dev/fe/if_fe_pccard.c#4 integrate
.. //depot/projects/arm/src/sys/dev/hwpmc/hwpmc_x86.c#2 integrate
.. //depot/projects/arm/src/sys/dev/ipw/if_ipw.c#2 integrate
.. //depot/projects/arm/src/sys/dev/iwi/if_iwi.c#2 integrate
.. //depot/projects/arm/src/sys/dev/iwi/if_iwireg.h#2 integrate
.. //depot/projects/arm/src/sys/dev/iwi/if_iwivar.h#2 integrate
.. //depot/projects/arm/src/sys/dev/puc/puc.c#5 integrate
.. //depot/projects/arm/src/sys/dev/sound/pci/ich.c#4 integrate
.. //depot/projects/arm/src/sys/dev/usb/if_ural.c#2 integrate
.. //depot/projects/arm/src/sys/dev/usb/if_uralvar.h#2 integrate
.. //depot/projects/arm/src/sys/fs/msdosfs/msdosfs_vfsops.c#6 integrate
.. //depot/projects/arm/src/sys/geom/geom_disk.c#3 integrate
.. //depot/projects/arm/src/sys/geom/geom_disk.h#3 integrate
.. //depot/projects/arm/src/sys/geom/geom_subr.c#3 integrate
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum.c#4 integrate
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum.h#2 integrate
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_drive.c#4 integrate
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_move.c#1 branch
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_rename.c#1 branch
.. //depot/projects/arm/src/sys/geom/vinum/geom_vinum_rm.c#3 integrate
.. //depot/projects/arm/src/sys/i386/conf/DEFAULTS#2 integrate
.. //depot/projects/arm/src/sys/i386/i386/identcpu.c#4 integrate
.. //depot/projects/arm/src/sys/i386/i386/pmap.c#3 integrate
.. //depot/projects/arm/src/sys/i386/i386/trap.c#3 integrate
.. //depot/projects/arm/src/sys/ia64/conf/DEFAULTS#1 branch
.. //depot/projects/arm/src/sys/ia64/conf/GENERIC#3 integrate
.. //depot/projects/arm/src/sys/ia64/ia64/pmap.c#3 integrate
.. //depot/projects/arm/src/sys/kern/kern_time.c#3 integrate
.. //depot/projects/arm/src/sys/kern/subr_rman.c#5 integrate
.. //depot/projects/arm/src/sys/kern/vfs_mount.c#4 integrate
.. //depot/projects/arm/src/sys/modules/Makefile#4 integrate
.. //depot/projects/arm/src/sys/modules/geom/geom_vinum/Makefile#3 integrate
.. //depot/projects/arm/src/sys/modules/iwi/Makefile#2 integrate
.. //depot/projects/arm/src/sys/modules/oldcard/Makefile#2 delete
.. //depot/projects/arm/src/sys/net/if_ethersubr.c#5 integrate
.. //depot/projects/arm/src/sys/netinet/igmp.c#3 integrate
.. //depot/projects/arm/src/sys/netinet/ip_carp.c#4 integrate
.. //depot/projects/arm/src/sys/netinet/ip_fastfwd.c#3 integrate
.. //depot/projects/arm/src/sys/netinet/ip_icmp.c#3 integrate
.. //depot/projects/arm/src/sys/netinet/ip_input.c#5 integrate
.. //depot/projects/arm/src/sys/netinet/ip_mroute.c#4 integrate
.. //depot/projects/arm/src/sys/netinet/ip_options.c#1 branch
.. //depot/projects/arm/src/sys/netinet/ip_options.h#1 branch
.. //depot/projects/arm/src/sys/netinet/ip_output.c#4 integrate
.. //depot/projects/arm/src/sys/netinet/ip_var.h#3 integrate
.. //depot/projects/arm/src/sys/netinet/tcp_input.c#3 integrate
.. //depot/projects/arm/src/sys/netinet/tcp_output.c#3 integrate
.. //depot/projects/arm/src/sys/netinet/tcp_sack.c#5 integrate
.. //depot/projects/arm/src/sys/netinet/tcp_syncache.c#4 integrate
.. //depot/projects/arm/src/sys/netinet/udp_usrreq.c#4 integrate
.. //depot/projects/arm/src/sys/netipx/ipx_ip.c#3 integrate
.. //depot/projects/arm/src/sys/nfsclient/nfs_bio.c#4 integrate
.. //depot/projects/arm/src/sys/nfsclient/nfs_socket.c#4 integrate
.. //depot/projects/arm/src/sys/nfsclient/nfs_subs.c#4 integrate
.. //depot/projects/arm/src/sys/nfsclient/nfs_vnops.c#5 integrate
.. //depot/projects/arm/src/sys/nfsclient/nfsm_subs.h#2 integrate
.. //depot/projects/arm/src/sys/pc98/conf/DEFAULTS#2 integrate
.. //depot/projects/arm/src/sys/powerpc/conf/DEFAULTS#1 branch
.. //depot/projects/arm/src/sys/powerpc/conf/GENERIC#3 integrate
.. //depot/projects/arm/src/sys/powerpc/powerpc/mmu_if.m#2 integrate
.. //depot/projects/arm/src/sys/powerpc/powerpc/pmap_dispatch.c#2 integrate
.. //depot/projects/arm/src/sys/sparc64/conf/DEFAULTS#1 branch
.. //depot/projects/arm/src/sys/sparc64/conf/GENERIC#5 integrate
.. //depot/projects/arm/src/sys/sparc64/sparc64/pmap.c#4 integrate
.. //depot/projects/arm/src/sys/sys/mbuf.h#5 integrate
.. //depot/projects/arm/src/sys/sys/queue.h#4 integrate
.. //depot/projects/arm/src/sys/sys/time.h#3 integrate
.. //depot/projects/arm/src/sys/ufs/ffs/ffs_vfsops.c#6 integrate
.. //depot/projects/arm/src/sys/vm/pmap.h#3 integrate
.. //depot/projects/arm/src/sys/vm/vm_map.c#3 integrate
Differences ...
==== //depot/projects/arm/src/sys/alpha/alpha/clock.c#3 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.39 2005/05/14 09:10:00 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/clock.c,v 1.40 2005/11/20 01:31:29 marcel Exp $");
#include "opt_clock.h"
@@ -475,31 +475,20 @@
* and the time of year clock (if any) provides the rest.
*/
void
-inittodr(base)
- time_t base;
+inittodr(time_t base)
{
- register int days, yr;
struct clocktime ct;
- time_t deltat;
- int badbase, clock_compat_osf1;
- int s;
struct timespec ts;
-
- if (base < 5*SECYR) {
- printf("WARNING: preposterous time in filesystem");
- /* read the system clock anyway */
- base = 6*SECYR + 186*SECDAY + SECDAY/2;
- badbase = 1;
- } else
- badbase = 0;
+ int clock_compat_osf1, todr_unreliable;
+ int days, yr;
if (getenv_int("clock_compat_osf1", &clock_compat_osf1)) {
if (clock_compat_osf1)
clock_year_offset = UNIX_YEAR_OFFSET;
}
+ todr_unreliable = 0;
CLOCK_GET(clockdev, base, &ct);
- clockinitted = 1;
#ifdef DEBUG
printf("readclock: %d/%d/%d/%d/%d/%d\n", ct.year, ct.mon, ct.day,
@@ -508,7 +497,7 @@
ct.year += clock_year_offset;
if (ct.year < 70)
ct.year += 100;
-
+
/* simple sanity checks */
if (ct.year < 70 || ct.mon < 1 || ct.mon > 12 || ct.day < 1 ||
ct.day > 31 || ct.hour > 23 || ct.min > 59 || ct.sec > 59) {
@@ -516,48 +505,47 @@
* Believe the time in the filesystem for lack of
* anything better, resetting the TODR.
*/
- s = splclock();
ts.tv_sec = base;
- ts.tv_nsec = 0;
- tc_setclock(&ts);
- splx(s);
- if (!badbase) {
- printf("WARNING: preposterous clock chip time\n");
- resettodr();
- }
- goto bad;
+ printf("WARNING: preposterous real-time clock");
+ todr_unreliable = 1;
+ } else {
+ days = 0;
+ for (yr = 70; yr < ct.year; yr++)
+ days += LEAPYEAR(yr) ? 366 : 365;
+ days += dayyr[ct.mon - 1] + ct.day - 1;
+ if (LEAPYEAR(yr) && ct.mon > 2)
+ days++;
+ /* now have days since Jan 1, 1970; the rest is easy... */
+ ts.tv_sec = days * SECDAY + ct.hour * SECHOUR +
+ ct.min * SECMIN + ct.sec;
+ if (wall_cmos_clock)
+ ts.tv_sec += adjkerntz;
+ /*
+ * The time base comes from a saved time, whereas the real-
+ * time clock is supposed to represent the current time.
+ * It is logically not possible for a saved time to be
+ * larger than the current time, so if that happens, assume
+ * the real-time clock is off. Warn when the real-time
+ * clock is off by two or more days.
+ */
+ if (ts.tv_sec < base) {
+ ts.tv_sec = base;
+ days = (base - ts.tv_sec) / (60L * 60L * 24L);
+ if (days >= 2) {
+ printf("WARNING: real-time clock lost %d days",
+ days);
+ todr_unreliable = 1;
+ }
+ }
}
- days = 0;
- for (yr = 70; yr < ct.year; yr++)
- days += LEAPYEAR(yr) ? 366 : 365;
- days += dayyr[ct.mon - 1] + ct.day - 1;
- if (LEAPYEAR(yr) && ct.mon > 2)
- days++;
- /* now have days since Jan 1, 1970; the rest is easy... */
- s = splclock();
- ts.tv_sec =
- days * SECDAY + ct.hour * SECHOUR + ct.min * SECMIN + ct.sec;
- if (wall_cmos_clock)
- ts.tv_sec += adjkerntz;
ts.tv_nsec = 0;
tc_setclock(&ts);
- splx(s);
+ clockinitted = 1;
- if (!badbase) {
- /*
- * See if we gained/lost two or more days;
- * if so, assume something is amiss.
- */
- deltat = ts.tv_sec - base;
- if (deltat < 0)
- deltat = -deltat;
- if (deltat < 2 * SECDAY)
- return;
- printf("WARNING: clock %s %d days",
- ts.tv_sec < base ? "lost" : "gained", deltat / SECDAY);
+ if (todr_unreliable) {
+ printf(" -- CHECK AND RESET THE DATE!\n");
+ resettodr();
}
-bad:
- printf(" -- CHECK AND RESET THE DATE!\n");
}
/*
==== //depot/projects/arm/src/sys/alpha/alpha/pmap.c#3 (text+ko) ====
@@ -148,7 +148,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.185 2005/11/13 02:17:04 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.186 2005/11/20 06:09:47 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -583,11 +583,6 @@
pv_entry_high_water = 9 * (pv_entry_max / 10);
}
-void
-pmap_init2()
-{
-}
-
/***************************************************
* Manipulate TLBs for a pmap
==== //depot/projects/arm/src/sys/alpha/conf/GENERIC#3 (text+ko) ====
@@ -18,7 +18,7 @@
#
# For hardware specific information check HARDWARE.TXT
#
-# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.189 2005/11/05 19:48:53 marcel Exp $
+# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.190 2005/11/21 20:17:45 jhb Exp $
machine alpha
cpu EV4
@@ -183,7 +183,6 @@
# Pseudo devices.
device loop # Network loopback
-device mem # Memory and kernel memory devices
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
==== //depot/projects/arm/src/sys/amd64/amd64/identcpu.c#3 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.140 2005/10/17 23:23:20 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.141 2005/11/17 02:32:39 obrien Exp $");
#include "opt_cpu.h"
@@ -339,7 +339,7 @@
cpu_feature &= ~CPUID_HTT;
if (bootverbose)
printf("\nHTT bit cleared - FreeBSD"
- " does not have licenseing issues"
+ " does not have licensing issues"
" requiring it.\n");
}
==== //depot/projects/arm/src/sys/amd64/amd64/machdep.c#5 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.643 2005/10/26 22:16:52 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.644 2005/11/21 18:39:17 jhb Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -124,7 +124,9 @@
#include <machine/smp.h>
#endif
+#include <dev/ic/i8259.h>
#include <amd64/isa/icu.h>
+#include <machine/apicvar.h>
#include <isa/isareg.h>
#include <isa/rtc.h>
@@ -1125,14 +1127,6 @@
u_int64_t msr;
char *env;
-#ifdef DEV_ISA
- /* Preemptively mask the atpics and leave them shut down */
- outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
- outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);
-#else
-#error "have you forgotten the isa device?";
-#endif
-
thread0.td_kstack = physfree + KERNBASE;
bzero((void *)thread0.td_kstack, KSTACK_PAGES * PAGE_SIZE);
physfree += KSTACK_PAGES * PAGE_SIZE;
@@ -1231,9 +1225,35 @@
*/
cninit();
+#ifdef DEV_ISA
#ifdef DEV_ATPIC
elcr_probe();
atpic_startup();
+#else
+ /* Reset and mask the atpics and leave them shut down. */
+ outb(IO_ICU1, ICW1_RESET | ICW1_IC4);
+ outb(IO_ICU1 + ICU_IMR_OFFSET, IDT_IO_INTS);
+ outb(IO_ICU1 + ICU_IMR_OFFSET, 1 << 2);
+ outb(IO_ICU1 + ICU_IMR_OFFSET, ICW4_8086);
+ outb(IO_ICU1 + ICU_IMR_OFFSET, 0xff);
+ outb(IO_ICU1, OCW3_SEL | OCW3_RR);
+
+ outb(IO_ICU2, ICW1_RESET | ICW1_IC4);
+ outb(IO_ICU2 + ICU_IMR_OFFSET, IDT_IO_INTS + 8);
+ outb(IO_ICU2 + ICU_IMR_OFFSET, 2);
+ outb(IO_ICU2 + ICU_IMR_OFFSET, ICW4_8086);
+ outb(IO_ICU2 + ICU_IMR_OFFSET, 0xff);
+ outb(IO_ICU2, OCW3_SEL | OCW3_RR);
+
+ /*
+ * Point the ICU spurious interrupt vectors at the APIC spurious
+ * interrupt handler.
+ */
+ setidt(IDT_IO_INTS + 7, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0);
+ setidt(IDT_IO_INTS + 15, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0);
+#endif
+#else
+#error "have you forgotten the isa device?";
#endif
kdb_init();
==== //depot/projects/arm/src/sys/amd64/amd64/pmap.c#3 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.534 2005/11/13 02:17:04 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.535 2005/11/20 06:09:48 alc Exp $");
/*
* Manages physical address maps.
@@ -579,11 +579,6 @@
uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
}
-void
-pmap_init2()
-{
-}
-
/***************************************************
* Low level helper routines.....
==== //depot/projects/arm/src/sys/amd64/amd64/trap.c#3 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.296 2005/10/24 21:04:17 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.297 2005/11/18 19:26:46 jhb Exp $");
/*
* AMD64 Trap and System call handling
@@ -100,7 +100,7 @@
static void trap_fatal(struct trapframe *, vm_offset_t);
void dblfault_handler(void);
-#define MAX_TRAP_MSG 28
+#define MAX_TRAP_MSG 30
static char *trap_msg[] = {
"", /* 0 unused */
"privileged instruction fault", /* 1 T_PRIVINFLT */
@@ -131,6 +131,8 @@
"segment not present fault", /* 26 T_SEGNPFLT */
"stack fault", /* 27 T_STKFLT */
"machine check trap", /* 28 T_MCHK */
+ "SIMD floating-point exception", /* 29 T_XMMFLT */
+ "reserved (unknown) fault", /* 30 T_RESERVED */
};
#ifdef KDB
@@ -609,15 +611,18 @@
int code, type, ss;
long esp;
struct soft_segment_descriptor softseg;
+ char *msg;
code = frame->tf_err;
type = frame->tf_trapno;
sdtossd(&gdt[IDXSEL(frame->tf_cs & 0xffff)], &softseg);
if (type <= MAX_TRAP_MSG)
- printf("\n\nFatal trap %d: %s while in %s mode\n",
- type, trap_msg[type],
- ISPL(frame->tf_cs) == SEL_UPL ? "user" : "kernel");
+ msg = trap_msg[type];
+ else
+ msg = "UNKNOWN";
+ printf("\n\nFatal trap %d: %s while in %s mode\n", type, msg,
+ ISPL(frame->tf_cs) == SEL_UPL ? "user" : "kernel");
#ifdef SMP
/* two separate prints in case of a trap on an unmapped page */
printf("cpuid = %d; ", PCPU_GET(cpuid));
==== //depot/projects/arm/src/sys/amd64/conf/DEFAULTS#2 (text+ko) ====
@@ -1,7 +1,7 @@
#
# DEFAULTS -- Default kernel configuration file for FreeBSD/amd64
#
-# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.2 2005/10/27 18:54:43 peter Exp $
+# $FreeBSD: src/sys/amd64/conf/DEFAULTS,v 1.3 2005/11/21 20:22:34 jhb Exp $
# Not yet, this would break all existing configs
#machine amd64
@@ -12,3 +12,5 @@
# Pseudo devices.
device mem # Memory and kernel memory devices
device io # I/O device
+
+options PUC_FASTINTR
==== //depot/projects/arm/src/sys/arm/arm/identcpu.c#3 (text+ko) ====
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.4 2005/01/05 21:58:47 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.5 2005/11/21 19:06:25 cognet Exp $");
#include <sys/systm.h>
#include <sys/param.h>
#include <sys/malloc.h>
@@ -187,6 +187,8 @@
{ CPU_ID_ARM920T, CPU_CLASS_ARM9TDMI, "ARM920T",
generic_steppings },
+ { CPU_ID_ARM920T_ALT, CPU_CLASS_ARM9TDMI, "ARM920T",
+ generic_steppings },
{ CPU_ID_ARM922T, CPU_CLASS_ARM9TDMI, "ARM922T",
generic_steppings },
{ CPU_ID_ARM940T, CPU_CLASS_ARM9TDMI, "ARM940T",
==== //depot/projects/arm/src/sys/arm/arm/pmap.c#8 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.40 2005/11/06 16:10:28 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.41 2005/11/20 06:09:48 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -2199,11 +2199,6 @@
}
void
-pmap_init2(void)
-{
-}
-
-void
pmap_postinit(void)
{
struct l2_bucket *l2b;
==== //depot/projects/arm/src/sys/arm/include/armreg.h#2 (text+ko) ====
@@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/armreg.h,v 1.2 2005/01/05 21:58:48 imp Exp $
+ * $FreeBSD: src/sys/arm/include/armreg.h,v 1.3 2005/11/21 19:06:25 cognet Exp $
*/
#ifndef MACHINE_ARMREG_H
@@ -129,6 +129,7 @@
/* Post-ARM7 CPUs */
#define CPU_ID_ARM810 0x41018100
#define CPU_ID_ARM920T 0x41129200
+#define CPU_ID_ARM920T_ALT 0x41009200
#define CPU_ID_ARM922T 0x41029220
#define CPU_ID_ARM940T 0x41029400 /* XXX no MMU */
#define CPU_ID_ARM946ES 0x41049460 /* XXX no MMU */
==== //depot/projects/arm/src/sys/arm/include/pmap.h#4 (text+ko) ====
@@ -44,7 +44,7 @@
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
* from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30
*
- * $FreeBSD: src/sys/arm/include/pmap.h,v 1.13 2005/11/06 16:10:27 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/pmap.h,v 1.14 2005/11/21 19:10:44 cognet Exp $
*/
#ifndef _MACHINE_PMAP_H_
@@ -335,8 +335,13 @@
#define PMAP_NEEDS_PTE_SYNC 1
#define PMAP_INCLUDE_PTE_SYNC
#elif (ARM_MMU_SA1 == 0)
+#if defined(CPU_ARM9) && !defined(ARM9_CACHE_WRITE_THROUGH)
+#define PMAP_NEEDS_PTE_SYNC 1
+#define PMAP_INCLUDE_PTE_SYNC
+#else
#define PMAP_NEEDS_PTE_SYNC 0
#endif
+#endif
/*
* These macros return various bits based on kernel/user and protection.
==== //depot/projects/arm/src/sys/boot/forth/loader.conf.5#3 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.25 2005/11/15 21:26:49 ru Exp $
+.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.26 2005/11/18 10:34:24 ru Exp $
.Dd November 15, 2005
.Dt LOADER.CONF 5
.Os
@@ -165,13 +165,12 @@
Name of the bitmap to be loaded.
Any other name can be used.
.It Va comconsole_speed
-.Po Dq 9600
+.Dq ( 9600
or the value of the
.Va BOOT_COMCONSOLE_SPEED
variable when
.Xr loader 8
-was compiled
-.Pc .
+was compiled).
Sets the speed of the serial console.
If the previous boot loader stage specified that a serial console
is in use then the default speed is determined from the current
==== //depot/projects/arm/src/sys/cam/scsi/scsi_cd.c#3 (text+ko) ====
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.93 2005/03/26 06:05:06 ken Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.94 2005/11/18 02:43:49 jdp Exp $");
#include "opt_cd.h"
@@ -407,6 +407,7 @@
&& (softc->pinfo.index != CAM_UNQUEUED_INDEX))
camq_remove(&softc->changer->devq, softc->pinfo.index);
+ disk_gone(softc->disk);
xpt_print_path(periph->path);
printf("lost device\n");
}
==== //depot/projects/arm/src/sys/cam/scsi/scsi_da.c#3 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.180 2005/06/09 17:35:04 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.181 2005/11/18 02:43:49 jdp Exp $");
#include <sys/param.h>
@@ -801,6 +801,7 @@
SLIST_REMOVE(&softc_list, softc, da_softc, links);
+ disk_gone(softc->disk);
xpt_print_path(periph->path);
printf("lost device\n");
}
==== //depot/projects/arm/src/sys/compat/ndis/subr_ndis.c#4 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.102 2005/11/14 18:19:57 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.103 2005/11/20 01:29:29 wpaul Exp $");
/*
* This file implements a translation layer between the BSD networking
@@ -275,7 +275,7 @@
static void NdisMIndicateStatusComplete(ndis_handle);
static void NdisMIndicateStatus(ndis_handle, ndis_status,
void *, uint32_t);
-static void ndis_intr(void *);
+static uint8_t ndis_intr(kinterrupt *, void *);
static void ndis_intrhand(kdpc *, ndis_miniport_interrupt *, void *, void *);
static funcptr ndis_findwrap(funcptr);
static void NdisCopyFromPacketToPacket(ndis_packet *,
@@ -2326,22 +2326,21 @@
return (NDIS_STATUS_SUCCESS);
}
-static void
-ndis_intr(arg)
+static uint8_t
+ndis_intr(iobj, arg)
+ kinterrupt *iobj;
void *arg;
{
struct ndis_softc *sc;
- struct ifnet *ifp;
- int is_our_intr = 0;
+ uint8_t is_our_intr = FALSE;
int call_isr = 0;
ndis_miniport_interrupt *intr;
sc = arg;
- ifp = sc->ifp;
intr = sc->ndis_block->nmb_interrupt;
if (intr == NULL || sc->ndis_block->nmb_miniportadapterctx == NULL)
- return;
+ return(FALSE);
if (sc->ndis_block->nmb_interrupt->ni_isrreq == TRUE)
MSCALL3(intr->ni_isrfunc, &is_our_intr, &call_isr,
@@ -2352,10 +2351,10 @@
call_isr = 1;
}
- if ((is_our_intr || call_isr))
+ if (call_isr)
IoRequestDpc(sc->ndis_block->nmb_deviceobj, NULL, sc);
- return;
+ return(is_our_intr);
}
static void
@@ -3517,7 +3516,7 @@
IMPORT_SFUNC(NdisMRegisterUnloadHandler, 2),
IMPORT_SFUNC(ndis_timercall, 4),
IMPORT_SFUNC(ndis_asyncmem_complete, 2),
- IMPORT_SFUNC(ndis_intr, 1),
+ IMPORT_SFUNC(ndis_intr, 2),
IMPORT_SFUNC(ndis_intrhand, 4),
/*
==== //depot/projects/arm/src/sys/compat/ndis/subr_ntoskrnl.c#5 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.83 2005/11/10 02:22:55 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.84 2005/11/20 01:29:29 wpaul Exp $");
#include <sys/ctype.h>
#include <sys/unistd.h>
@@ -1204,13 +1204,16 @@
{
kinterrupt *iobj;
uint8_t irql;
+ uint8_t claimed;
list_entry *l;
KeAcquireSpinLock(&ntoskrnl_intlock, &irql);
l = ntoskrnl_intlist.nle_flink;
while (l != &ntoskrnl_intlist) {
iobj = CONTAINING_RECORD(l, kinterrupt, ki_list);
- MSCALL1(iobj->ki_svcfunc, iobj->ki_svcctx);
+ claimed = MSCALL2(iobj->ki_svcfunc, iobj, iobj->ki_svcctx);
+ if (claimed == TRUE)
+ break;
l = l->nle_flink;
}
KeReleaseSpinLock(&ntoskrnl_intlock, irql);
==== //depot/projects/arm/src/sys/conf/Makefile.arm#3 (text+ko) ====
@@ -1,7 +1,7 @@
# Makefile.arm -- with config changes.
# Copyright 1990 W. Jolitz
# from: @(#)Makefile.i386 7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.arm,v 1.16 2005/11/04 04:14:49 imp Exp $
+# $FreeBSD: src/sys/conf/Makefile.arm,v 1.17 2005/11/17 01:32:01 cognet Exp $
#
# Makefile for FreeBSD
#
@@ -49,11 +49,13 @@
DDB_ENABLED!= grep DDB opt_ddb.h || true
.if ${DDB_ENABLED} != ""
-SYSTEM_LD_TAIL += ;echo "\#define KERNNAME \"${KERNEL_KO}\"" >opt_kernname.h ; \
+SYSTEM_LD_TAIL += ;echo "\#define KERNNAME \"${KERNEL_KO}.tmp\"" \
+ >opt_kernname.h ;\
${OBJCOPY} --strip-symbol '$$d' --strip-symbol '$$a' \
- --strip-symbol '$$t' ${KERNEL_KO} ;\
+ -g --strip-symbol '$$t' ${FULLKERNEL} ${KERNEL_KO}.tmp;\
${CC} -O -nostdlib -I. -Xlinker -T -Xlinker ldscript.arm \
- $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S -o ${KERNEL_KO}.tramp
+ $S/$M/$M/elf_trampoline.c $S/$M/$M/inckern.S -o ${KERNEL_KO}.tramp;\
+ rm ${KERNEL_KO}.tmp
.endif
%BEFORE_DEPEND
==== //depot/projects/arm/src/sys/conf/files#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1064 2005/11/08 22:51:42 vkashyap Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1065 2005/11/18 20:12:40 andre Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -1678,6 +1678,7 @@
netinet/ip_icmp.c optional inet
netinet/ip_input.c optional inet
netinet/ip_mroute.c optional mrouting
+netinet/ip_options.c optional inet
netinet/ip_output.c optional inet
netinet/raw_ip.c optional inet
netinet/tcp_debug.c optional tcpdebug
==== //depot/projects/arm/src/sys/conf/files.i386#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.i386,v 1.544 2005/11/11 09:57:30 ru Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.545 2005/11/21 20:11:39 ru Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -232,7 +232,7 @@
i386/acpica/acpi_machdep.c optional acpi
i386/acpica/acpi_wakeup.c optional acpi
acpi_wakecode.h optional acpi \
- dependency "$S/i386/acpica/acpi_wakecode.S" \
+ dependency "$S/i386/acpica/acpi_wakecode.S assym.s" \
compile-with "${MAKE} -f $S/i386/acpica/Makefile MAKESRCPATH=$S/i386/acpica" \
no-obj no-implicit-rule before-depend \
clean "acpi_wakecode.h acpi_wakecode.o acpi_wakecode.bin"
==== //depot/projects/arm/src/sys/dev/aic7xxx/aicasm/Makefile#3 (text+ko) ====
@@ -1,7 +1,7 @@
#
# $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aicasm/Makefile#2 $
#
-# $FreeBSD: src/sys/dev/aic7xxx/aicasm/Makefile,v 1.22 2005/08/03 00:47:33 rwatson Exp $
+# $FreeBSD: src/sys/dev/aic7xxx/aicasm/Makefile,v 1.23 2005/11/21 14:41:10 ru Exp $
PROG= aicasm
@@ -20,7 +20,7 @@
# Don't rely on the kernel's .depend file
.ifdef MAKESRCPATH
.PATH: ${MAKESRCPATH}
-DEPENDFILE=
+DEPENDFILE= .depend_aicasm
.endif
.if ${CC} == "icc"
==== //depot/projects/arm/src/sys/dev/em/if_em.c#4 (text+ko) ====
@@ -31,7 +31,7 @@
***************************************************************************/
-/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.86 2005/11/11 16:04:51 ru Exp $*/
+/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.88 2005/11/21 04:17:43 yongari Exp $*/
#ifdef HAVE_KERNEL_OPTION_HEADERS
#include "opt_device_polling.h"
@@ -231,11 +231,15 @@
static int em_rx_int_delay_dflt = E1000_TICKS_TO_USECS(EM_RDTR);
static int em_tx_abs_int_delay_dflt = E1000_TICKS_TO_USECS(EM_TADV);
static int em_rx_abs_int_delay_dflt = E1000_TICKS_TO_USECS(EM_RADV);
+static int em_rxd = EM_DEFAULT_RXD;
+static int em_txd = EM_DEFAULT_TXD;
TUNABLE_INT("hw.em.tx_int_delay", &em_tx_int_delay_dflt);
TUNABLE_INT("hw.em.rx_int_delay", &em_rx_int_delay_dflt);
TUNABLE_INT("hw.em.tx_abs_int_delay", &em_tx_abs_int_delay_dflt);
TUNABLE_INT("hw.em.rx_abs_int_delay", &em_rx_abs_int_delay_dflt);
+TUNABLE_INT("hw.em.rxd", &em_rxd);
+TUNABLE_INT("hw.em.txd", &em_txd);
/*********************************************************************
* Device identification routine
@@ -357,15 +361,31 @@
E1000_REG_OFFSET(&adapter->hw, TADV),
em_tx_abs_int_delay_dflt);
}
-
- /* Parameters (to be read from user) */
- if (adapter->hw.mac_type >= em_82544) {
- adapter->num_tx_desc = EM_TXD_82544;
- adapter->num_rx_desc = EM_RXD_82544;
- } else {
- adapter->num_tx_desc = EM_TXD;
- adapter->num_rx_desc = EM_RXD;
- }
+
+ /*
+ * Validate number of transmit and receive descriptors. It
+ * must not exceed hardware maximum, and must be multiple
+ * of E1000_DBA_ALIGN.
+ */
+ if (((em_txd * sizeof(struct em_tx_desc)) % E1000_DBA_ALIGN) != 0 ||
+ (adapter->hw.mac_type >= em_82544 && em_txd > EM_MAX_TXD) ||
+ (adapter->hw.mac_type < em_82544 && em_txd > EM_MAX_TXD_82543) ||
+ (em_txd < EM_MIN_TXD)) {
+ printf("em%d: Using %d TX descriptors instead of %d!\n",
+ adapter->unit, EM_DEFAULT_TXD, em_txd);
+ adapter->num_tx_desc = EM_DEFAULT_TXD;
+ } else
+ adapter->num_tx_desc = em_txd;
+ if (((em_rxd * sizeof(struct em_rx_desc)) % E1000_DBA_ALIGN) != 0 ||
+ (adapter->hw.mac_type >= em_82544 && em_rxd > EM_MAX_RXD) ||
+ (adapter->hw.mac_type < em_82544 && em_rxd > EM_MAX_RXD_82543) ||
+ (em_rxd < EM_MIN_RXD)) {
+ printf("em%d: Using %d RX descriptors instead of %d!\n",
+ adapter->unit, EM_DEFAULT_RXD, em_rxd);
+ adapter->num_rx_desc = EM_DEFAULT_RXD;
+ } else
+ adapter->num_rx_desc = em_rxd;
+
adapter->hw.autoneg = DO_AUTO_NEG;
adapter->hw.wait_autoneg_complete = WAIT_FOR_AUTO_NEG_DEFAULT;
adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
@@ -418,8 +438,8 @@
/* Initialize eeprom parameters */
em_init_eeprom_params(&adapter->hw);
- tsize = EM_ROUNDUP(adapter->num_tx_desc *
- sizeof(struct em_tx_desc), 4096);
+ tsize = roundup2(adapter->num_tx_desc * sizeof(struct em_tx_desc),
+ E1000_DBA_ALIGN);
/* Allocate Transmit Descriptor ring */
if (em_dma_malloc(adapter, tsize, &adapter->txdma, BUS_DMA_NOWAIT)) {
@@ -430,8 +450,8 @@
}
adapter->tx_desc_base = (struct em_tx_desc *) adapter->txdma.dma_vaddr;
- rsize = EM_ROUNDUP(adapter->num_rx_desc *
- sizeof(struct em_rx_desc), 4096);
+ rsize = roundup2(adapter->num_rx_desc * sizeof(struct em_rx_desc),
+ E1000_DBA_ALIGN);
/* Allocate Receive Descriptor ring */
if (em_dma_malloc(adapter, rsize, &adapter->rxdma, BUS_DMA_NOWAIT)) {
@@ -1173,7 +1193,7 @@
{
u_int32_t txd_upper;
u_int32_t txd_lower, txd_used = 0, txd_saved = 0;
- int i, j, error;
+ int i, j, error = 0;
struct mbuf *m_head;
@@ -1183,9 +1203,8 @@
u_int32_t counter;
struct m_tag *mtag;
bus_dma_segment_t segs[EM_MAX_SCATTER];
- bus_dmamap_t map;
int nsegs;
- struct em_buffer *tx_buffer = NULL;
+ struct em_buffer *tx_buffer;
struct em_tx_desc *current_tx_desc = NULL;
struct ifnet *ifp = adapter->ifp;
@@ -1206,23 +1225,19 @@
/*
* Map the packet for DMA.
*/
- if (bus_dmamap_create(adapter->txtag, BUS_DMA_NOWAIT, &map)) {
- adapter->no_tx_map_avail++;
- return (ENOMEM);
- }
- error = bus_dmamap_load_mbuf_sg(adapter->txtag, map, m_head, segs,
- &nsegs, BUS_DMA_NOWAIT);
+ tx_buffer = &adapter->tx_buffer_area[adapter->next_avail_tx_desc];
+ error = bus_dmamap_load_mbuf_sg(adapter->txtag, tx_buffer->map, m_head,
+ segs, &nsegs, BUS_DMA_NOWAIT);
if (error != 0) {
adapter->no_tx_dma_setup++;
- bus_dmamap_destroy(adapter->txtag, map);
return (error);
}
KASSERT(nsegs != 0, ("em_encap: empty packet"));
if (nsegs > adapter->num_tx_desc_avail) {
adapter->no_tx_desc_avail2++;
- bus_dmamap_destroy(adapter->txtag, map);
- return (ENOBUFS);
+ error = ENOBUFS;
+ goto encap_fail;
}
@@ -1249,21 +1264,21 @@
m_head = m_pullup(m_head, sizeof(eh));
if (m_head == NULL) {
*m_headp = NULL;
- bus_dmamap_destroy(adapter->txtag, map);
- return (ENOBUFS);
+ error = ENOBUFS;
+ goto encap_fail;
}
eh = *mtod(m_head, struct ether_header *);
M_PREPEND(m_head, sizeof(*evl), M_DONTWAIT);
if (m_head == NULL) {
*m_headp = NULL;
- bus_dmamap_destroy(adapter->txtag, map);
- return (ENOBUFS);
+ error = ENOBUFS;
+ goto encap_fail;
}
m_head = m_pullup(m_head, sizeof(*evl));
if (m_head == NULL) {
*m_headp = NULL;
- bus_dmamap_destroy(adapter->txtag, map);
- return (ENOBUFS);
+ error = ENOBUFS;
+ goto encap_fail;
}
evl = mtod(m_head, struct ether_vlan_header *);
bcopy(&eh, evl, sizeof(*evl));
@@ -1290,11 +1305,11 @@
array_elements = em_fill_descriptors(segs[j].ds_addr,
segs[j].ds_len, &desc_array);
for (counter = 0; counter < array_elements; counter++) {
- if (txd_used == adapter->num_tx_desc_avail) {
- adapter->next_avail_tx_desc = txd_saved;
- adapter->no_tx_desc_avail2++;
- bus_dmamap_destroy(adapter->txtag, map);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list