Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jul 2004 01:41:58 GMT
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 57812 for review
Message-ID:  <200407210141.i6L1fw8K026457@repoman.freebsd.org>

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

Change 57812 by peter@peter_melody on 2004/07/21 01:41:36

	Integ -I -b i386_hammer to sync up with i386.

Affected files ...

.. //depot/projects/hammer/sys/amd64/acpica/acpi_wakeup.c#10 integrate
.. //depot/projects/hammer/sys/amd64/amd64/autoconf.c#15 integrate
.. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#29 integrate
.. //depot/projects/hammer/sys/amd64/amd64/db_interface.c#21 integrate
.. //depot/projects/hammer/sys/amd64/amd64/db_trace.c#16 integrate
.. //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#25 integrate
.. //depot/projects/hammer/sys/amd64/amd64/local_apic.c#38 integrate
.. //depot/projects/hammer/sys/amd64/amd64/locore.S#11 integrate
.. //depot/projects/hammer/sys/amd64/amd64/machdep.c#95 integrate
.. //depot/projects/hammer/sys/amd64/amd64/pmap.c#95 integrate
.. //depot/projects/hammer/sys/amd64/amd64/trap.c#49 integrate
.. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#46 integrate
.. //depot/projects/hammer/sys/amd64/conf/GENERIC#47 integrate
.. //depot/projects/hammer/sys/amd64/conf/NOTES#36 integrate
.. //depot/projects/hammer/sys/amd64/include/db_machdep.h#9 integrate
.. //depot/projects/hammer/sys/amd64/include/float.h#12 integrate
.. //depot/projects/hammer/sys/amd64/include/frame.h#14 integrate
.. //depot/projects/hammer/sys/amd64/include/pcb.h#21 integrate
.. //depot/projects/hammer/sys/amd64/include/pmap.h#44 integrate
.. //depot/projects/hammer/sys/amd64/isa/clock.c#28 integrate
.. //depot/projects/hammer/sys/amd64/isa/isa.h#9 integrate
.. //depot/projects/hammer/sys/amd64/isa/isa_dma.c#12 integrate

Differences ...

==== //depot/projects/hammer/sys/amd64/acpica/acpi_wakeup.c#10 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/amd64/autoconf.c#15 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#29 (text+ko) ====

@@ -53,7 +53,7 @@
 /*
  * cpu_throw()
  *
- * This is the second half of cpu_swtch(). It is used when the current
+ * This is the second half of cpu_switch(). It is used when the current
  * thread is either a dummy or slated to die, and we no longer care
  * about its state.  This is only a slight optimization and is probably
  * not worth it anymore.  Note that we need to clear the pm_active bits so

==== //depot/projects/hammer/sys/amd64/amd64/db_interface.c#21 (text+ko) ====

@@ -33,11 +33,9 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kdb.h>
-#include <sys/reboot.h>
 #include <sys/cons.h>
 #include <sys/pcpu.h>
 #include <sys/proc.h>
-#include <sys/smp.h>
 
 #include <machine/cpu.h>
 

==== //depot/projects/hammer/sys/amd64/amd64/db_trace.c#16 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#25 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/amd64/local_apic.c#38 (text+ko) ====

@@ -194,7 +194,7 @@
 {
 	int i;
 
-	if (apic_id > MAX_APICID) {
+	if (apic_id >= MAX_APICID) {
 		printf("APIC: Ignoring local APIC with ID %d\n", apic_id);
 		if (boot_cpu)
 			panic("Can't ignore BSP");

==== //depot/projects/hammer/sys/amd64/amd64/locore.S#11 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#95 (text+ko) ====

@@ -94,6 +94,11 @@
 #include <sys/exec.h>
 #include <sys/cons.h>
 
+#ifdef DDB
+#ifndef KDB
+#error KDB must be enabled in order for DDB to work!
+#endif
+#endif
 #include <ddb/ddb.h>
 
 #include <net/netisr.h>

==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#95 (text+ko) ====

@@ -1058,7 +1058,6 @@
 
 	if (va >= VM_MAXUSER_ADDRESS)
 		return 0;
-/* XXX this should be an error, all cases should be caught now */
 	if (ptepde == 0)
 		ptepde = *pmap_pde(pmap, va);
 	mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME);
@@ -1511,6 +1510,7 @@
 	pt_entry_t oldpte;
 	vm_page_t m;
 
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
 	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
 	oldpte = pte_load_clear(ptq);
 	if (oldpte & PG_W)
@@ -1552,6 +1552,7 @@
 	pd_entry_t ptepde;
 	pt_entry_t *pte;
 
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
 	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
 	pte = pmap_pte_pde(pmap, va, &ptepde);
 	if (pte == NULL || (*pte & PG_V) == 0)

==== //depot/projects/hammer/sys/amd64/amd64/trap.c#49 (text+ko) ====

@@ -286,7 +286,7 @@
 				 */
 				if (kdb_on_nmi) {
 					printf ("NMI ... going to debugger\n");
-					kdb_trap (type, 0, &frame);
+					kdb_trap(type, 0, &frame);
 				}
 #endif /* KDB */
 				goto userout;

==== //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#46 (text+ko) ====

@@ -314,6 +314,7 @@
 	 * Set the trap frame to point at the beginning of the uts
 	 * function.
 	 */
+	td->td_frame->tf_rbp = 0; 
 	td->td_frame->tf_rsp =
 	    ((register_t)ku->ku_stack.ss_sp + ku->ku_stack.ss_size) & ~0x0f;
 	td->td_frame->tf_rsp -= 8;

==== //depot/projects/hammer/sys/amd64/conf/GENERIC#47 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/conf/NOTES#36 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# (XXX from i386:NOTES,v 1.1164)
+# (XXX from i386:NOTES,v 1.1165)
 # $FreeBSD: src/sys/amd64/conf/NOTES,v 1.14 2004/05/17 22:13:14 peter Exp $
 #
 

==== //depot/projects/hammer/sys/amd64/include/db_machdep.h#9 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/include/float.h#12 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/include/frame.h#14 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/include/pcb.h#21 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/include/pmap.h#44 (text+ko) ====


==== //depot/projects/hammer/sys/amd64/isa/clock.c#28 (text+ko) ====

@@ -212,6 +212,7 @@
 static void
 rtcintr(struct clockframe *frame)
 {
+
 	while (rtcin(RTC_INTR) & RTCIR_PERIOD) {
 		if (profprocs != 0) {
 			if (--pscnt == 0)
@@ -295,7 +296,7 @@
 	 * multiplications and divisions to scale the count take a while).
 	 *
 	 * However, if ddb is active then use a fake counter since reading
-	 * the i8254 counter involves acquiring a lock.  ddb must not go
+	 * the i8254 counter involves acquiring a lock.  ddb must not do
 	 * locking for many reasons, but it calls here for at least atkbd
 	 * input.
 	 */

==== //depot/projects/hammer/sys/amd64/isa/isa.h#9 (text+ko) ====

@@ -64,69 +64,9 @@
 #define	IO_NPX		0x0F0		/* Numeric Coprocessor */
 
 		/* Cards */
-					/* 0x100 - 0x16F Open */
-
-#define	IO_WD2		0x170		/* Secondary Fixed Disk Controller */
-
-#define	IO_PMP2		0x178		/* 82347 Power Management Peripheral */
-
-					/* 0x17A - 0x1EF Open */
-
-#define	IO_WD1		0x1F0		/* Primary Fixed Disk Controller */
-#define	IO_GAME		0x201		/* Game Controller */
-
-					/* 0x202 - 0x22A Open */
-
-#define	IO_ASC2		0x22B		/* AmiScan addr.grp. 2 */
-
-					/* 0x230 - 0x26A Open */
-
-#define	IO_ASC3		0x26B		/* AmiScan addr.grp. 3 */
-#define	IO_GSC1		0x270 /* -- 0x27B! GeniScan GS-4500 addr.grp. 1 */
-#define	IO_LPT2		0x278		/* Parallel Port #2 */
-
-					/* 0x280 - 0x2AA Open */
-
-#define	IO_ASC4		0x2AB		/* AmiScan addr.grp. 4 */
-
-					/* 0x2B0 - 0x2DF Open */
-
-#define	IO_GSC2		0x2E0		/* GeniScan GS-4500 addr.grp. 2 */
-#define	IO_COM4		0x2E8		/* COM4 i/o address */
-#define	IO_ASC5		0x2EB		/* AmiScan addr.grp. 5 */
-
-					/* 0x2F0 - 0x2F7 Open */
-
-#define	IO_COM2		0x2F8		/* COM2 i/o address */
-
-					/* 0x300 - 0x32A Open */
-
-#define	IO_ASC6		0x32B		/* AmiScan addr.grp. 6 */
-#define	IO_AHA0		0x330		/* adaptec 1542 default addr. */
-#define	IO_BT0		0x330		/* bustek 742a default addr. */
-#define	IO_UHA0		0x330		/* ultrastore 14f default addr. */
-#define	IO_AHA1		0x334		/* adaptec 1542 default addr. */
-#define	IO_BT1		0x334		/* bustek 742a default addr. */
-
-					/* 0x340 - 0x36A Open */
-
-#define	IO_ASC7		0x36B		/* AmiScan addr.grp. 7 */
-#define	IO_GSC3		0x370		/* GeniScan GS-4500 addr.grp. 3 */
-#define	IO_FD2		0x370		/* secondary base i/o address */
-#define	IO_LPT1		0x378		/* Parallel Port #1 */
-
-					/* 0x380 - 0x3AA Open */
-
-#define	IO_ASC8		0x3AB		/* AmiScan addr.grp. 8 */
-#define	IO_MDA		0x3B0		/* Monochome Adapter */
-#define	IO_LPT3		0x3BC		/* Monochome Adapter Printer Port */
 #define	IO_VGA		0x3C0		/* E/VGA Ports */
 #define	IO_CGA		0x3D0		/* CGA Ports */
-#define	IO_GSC4		0x3E0		/* GeniScan GS-4500 addr.grp. 4 */
-#define	IO_COM3		0x3E8		/* COM3 i/o address */
-#define	IO_ASC1		0x3EB		/* AmiScan addr.grp. 1 */
-#define	IO_FD1		0x3F0		/* primary base i/o address */
-#define	IO_COM1		0x3F8		/* COM1 i/o address */
+#define	IO_MDA		0x3B0		/* Monochome Adapter */
 
 #define	IO_ISAEND	0x3FF		/* End (actually Max) of I/O Regs */
 #endif /* !IO_ISABEGIN */
@@ -138,25 +78,10 @@
 #ifndef	IO_ISASIZES
 #define	IO_ISASIZES
 
-#define	IO_ASCSIZE	5		/* AmiScan GI1904-based hand scanner */
 #define	IO_CGASIZE	12		/* CGA controllers */
-#define	IO_COMSIZE	8		/* 8250, 16x50 com controllers */
-#define	IO_DMASIZE	16		/* 8237 DMA controllers */
-#define	IO_DPGSIZE	32		/* 74LS612 DMA page registers */
-#define	IO_FDCSIZE	8		/* Nec765 floppy controllers */
-#define	IO_GAMSIZE	16		/* AT compatible game controllers */
-#define	IO_GSCSIZE	8		/* GeniScan GS-4500G hand scanner */
-#define	IO_ICUSIZE	16		/* 8259A interrupt controllers */
-#define	IO_KBDSIZE	16		/* 8042 Keyboard controllers */
-#define	IO_LPTSIZE	8		/* LPT controllers, some use only 4 */
 #define	IO_MDASIZE	12		/* Monochrome display controllers */
 #define	IO_NPXSIZE	16		/* 80387/80487 NPX registers */
-#define	IO_PMPSIZE	2		/* 82347 power management peripheral */
-#define	IO_PSMSIZE	5		/* 8042 Keyboard controllers */
-#define	IO_RTCSIZE	16		/* CMOS real time clock, NMI control */
-#define	IO_TMRSIZE	16		/* 8253 programmable timers */
 #define	IO_VGASIZE	16		/* VGA controllers */
-#define	IO_WDCSIZE	8		/* WD compatible disk controllers */
 
 #endif /* !IO_ISASIZES */
 

==== //depot/projects/hammer/sys/amd64/isa/isa_dma.c#12 (text+ko) ====

@@ -103,12 +103,20 @@
 {
 	void *buf;
 
+	/*
+	 * If a DMA channel is shared, both drivers have to call isa_dmainit
+	 * since they don't know that the other driver will do it.
+	 * Just return if we're already set up good.
+	 * XXX: this only works if they agree on the bouncebuf size.  This
+	 * XXX: is typically the case since they are multiple instances of
+	 * XXX: the same driver.
+	 */
+	if (dma_bouncebuf[chan] != NULL)
+		return;
+
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
 		panic("isa_dmainit: channel out of range");
-
-	if (dma_bouncebuf[chan] != NULL)
-		panic("isa_dmainit: impossible request"); 
 #endif
 
 	dma_bouncebufsize[chan] = bouncebufsize;



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