Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Nov 2005 21:07:54 GMT
From:      Olivier Houchard <cognet@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 87047 for review
Message-ID:  <200511212107.jALL7stH078547@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=87047

Change 87047 by cognet@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) <<<



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