PERFORCE change 95516 for review
Marcel Moolenaar
marcel at FreeBSD.org
Tue Apr 18 19:30:31 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=95516
Change 95516 by marcel at marcel_nfs on 2006/04/18 19:29:31
IFC @95511
Affected files ...
.. //depot/projects/uart/alpha/alpha/pmap.c#19 integrate
.. //depot/projects/uart/amd64/amd64/pmap.c#31 integrate
.. //depot/projects/uart/amd64/conf/GENERIC#16 integrate
.. //depot/projects/uart/arm/include/asmacros.h#4 integrate
.. //depot/projects/uart/arm/include/atomic.h#8 integrate
.. //depot/projects/uart/arm/xscale/i80321/i80321_pci.c#6 integrate
.. //depot/projects/uart/boot/arm/at91/boot0/Makefile#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/README#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/arm_init.s#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/at91rm9200_lowlevel.c#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/at91rm9200_lowlevel.h#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/lib.c#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/lib.h#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/linker.cfg#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/main.c#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/xmodem.c#1 branch
.. //depot/projects/uart/boot/arm/at91/boot0/xmodem.h#1 branch
.. //depot/projects/uart/boot/arm/at91/inc/AT91RM9200.h#1 branch
.. //depot/projects/uart/boot/i386/boot2/boot1.S#2 integrate
.. //depot/projects/uart/boot/i386/cdboot/cdboot.s#3 integrate
.. //depot/projects/uart/boot/i386/libi386/Makefile#8 integrate
.. //depot/projects/uart/boot/i386/libi386/gatea20.c#3 delete
.. //depot/projects/uart/boot/i386/libi386/libi386.h#8 integrate
.. //depot/projects/uart/boot/i386/pxeldr/pxeldr.S#2 integrate
.. //depot/projects/uart/boot/pc98/libpc98/Makefile#6 integrate
.. //depot/projects/uart/boot/pc98/libpc98/gatea20.c#4 delete
.. //depot/projects/uart/cam/scsi/scsi_cd.c#12 integrate
.. //depot/projects/uart/conf/files#59 integrate
.. //depot/projects/uart/conf/options#28 integrate
.. //depot/projects/uart/contrib/ipfilter/netinet/fil.c#8 integrate
.. //depot/projects/uart/crypto/via/padlock.c#2 integrate
.. //depot/projects/uart/dev/acpica/acpi.c#20 integrate
.. //depot/projects/uart/dev/acpica/acpi_cmbat.c#11 integrate
.. //depot/projects/uart/dev/acpica/acpi_dock.c#1 branch
.. //depot/projects/uart/dev/amr/amr_linux.c#3 integrate
.. //depot/projects/uart/dev/ata/ata-all.c#21 integrate
.. //depot/projects/uart/dev/ata/ata-queue.c#18 integrate
.. //depot/projects/uart/dev/ata/ata-raid.c#12 integrate
.. //depot/projects/uart/dev/ath/if_ath.c#26 integrate
.. //depot/projects/uart/dev/bce/if_bce.c#1 branch
.. //depot/projects/uart/dev/bce/if_bcefw.h#1 branch
.. //depot/projects/uart/dev/bce/if_bcereg.h#1 branch
.. //depot/projects/uart/dev/bge/if_bge.c#24 integrate
.. //depot/projects/uart/dev/bge/if_bgereg.h#16 integrate
.. //depot/projects/uart/dev/drm/drmP.h#9 integrate
.. //depot/projects/uart/dev/drm/radeon_state.c#11 integrate
.. //depot/projects/uart/dev/em/if_em_hw.c#8 integrate
.. //depot/projects/uart/dev/fxp/if_fxp.c#22 integrate
.. //depot/projects/uart/dev/hwpmc/hwpmc_mod.c#7 integrate
.. //depot/projects/uart/dev/iicbus/iicbus.c#4 integrate
.. //depot/projects/uart/dev/mii/brgphy.c#13 integrate
.. //depot/projects/uart/dev/mii/miidevs#8 integrate
.. //depot/projects/uart/dev/mpt/mpt.c#14 integrate
.. //depot/projects/uart/dev/mpt/mpt.h#10 integrate
.. //depot/projects/uart/dev/mpt/mpt_cam.c#10 integrate
.. //depot/projects/uart/dev/mpt/mpt_pci.c#16 integrate
.. //depot/projects/uart/dev/mpt/mpt_raid.c#4 integrate
.. //depot/projects/uart/dev/pccbb/pccbb.c#17 integrate
.. //depot/projects/uart/dev/ppbus/lpt.c#8 integrate
.. //depot/projects/uart/dev/ppbus/ppbconf.c#3 integrate
.. //depot/projects/uart/dev/ppc/ppc.c#8 integrate
.. //depot/projects/uart/dev/ppc/ppcvar.h#3 integrate
.. //depot/projects/uart/dev/random/randomdev_soft.c#8 integrate
.. //depot/projects/uart/dev/safe/safe.c#7 integrate
.. //depot/projects/uart/dev/ubsec/ubsec.c#9 integrate
.. //depot/projects/uart/dev/usb/usbdevs#21 integrate
.. //depot/projects/uart/dev/usb/uscanner.c#13 integrate
.. //depot/projects/uart/dev/xe/if_xe.c#8 integrate
.. //depot/projects/uart/fs/devfs/devfs.h#6 integrate
.. //depot/projects/uart/geom/eli/g_eli.c#6 integrate
.. //depot/projects/uart/geom/geom_ccd.c#7 integrate
.. //depot/projects/uart/geom/raid3/g_raid3.c#16 integrate
.. //depot/projects/uart/gnu/fs/ext2fs/ext2_bitops.h#2 integrate
.. //depot/projects/uart/i386/conf/GENERIC#15 integrate
.. //depot/projects/uart/i386/conf/NOTES#17 integrate
.. //depot/projects/uart/i386/i386/pmap.c#33 integrate
.. //depot/projects/uart/ia64/ia64/pmap.c#21 integrate
.. //depot/projects/uart/kern/kern_clock.c#10 integrate
.. //depot/projects/uart/kern/kern_event.c#12 integrate
.. //depot/projects/uart/kern/kern_intr.c#11 integrate
.. //depot/projects/uart/kern/kern_module.c#5 integrate
.. //depot/projects/uart/kern/kern_mutex.c#11 integrate
.. //depot/projects/uart/kern/kern_poll.c#7 integrate
.. //depot/projects/uart/kern/kern_rwlock.c#3 integrate
.. //depot/projects/uart/kern/kern_synch.c#15 integrate
.. //depot/projects/uart/kern/kern_thr.c#12 integrate
.. //depot/projects/uart/kern/kern_umtx.c#12 integrate
.. //depot/projects/uart/kern/sched_4bsd.c#9 integrate
.. //depot/projects/uart/kern/subr_sleepqueue.c#10 integrate
.. //depot/projects/uart/kern/subr_taskqueue.c#9 integrate
.. //depot/projects/uart/kern/subr_turnstile.c#7 integrate
.. //depot/projects/uart/kern/uipc_mqueue.c#5 integrate
.. //depot/projects/uart/kern/vfs_cache.c#10 integrate
.. //depot/projects/uart/kern/vfs_hash.c#4 integrate
.. //depot/projects/uart/modules/acpi/Makefile#12 integrate
.. //depot/projects/uart/modules/acpi/acpi_dock/Makefile#1 branch
.. //depot/projects/uart/modules/bce/Makefile#1 branch
.. //depot/projects/uart/net/if_arc.h#5 integrate
.. //depot/projects/uart/net/if_arcsubr.c#7 integrate
.. //depot/projects/uart/netinet/ip_fastfwd.c#10 integrate
.. //depot/projects/uart/netinet6/frag6.c#6 integrate
.. //depot/projects/uart/netinet6/in6_pcb.c#11 integrate
.. //depot/projects/uart/netinet6/raw_ip6.c#11 integrate
.. //depot/projects/uart/netinet6/udp6_output.c#6 integrate
.. //depot/projects/uart/netinet6/udp6_usrreq.c#11 integrate
.. //depot/projects/uart/netipx/ipx_usrreq.c#8 integrate
.. //depot/projects/uart/opencrypto/crypto.c#6 integrate
.. //depot/projects/uart/opencrypto/cryptosoft.c#6 integrate
.. //depot/projects/uart/sparc64/sparc64/exception.S#7 integrate
.. //depot/projects/uart/sparc64/sparc64/interrupt.S#4 integrate
.. //depot/projects/uart/sys/lock.h#8 integrate
.. //depot/projects/uart/sys/module.h#3 integrate
.. //depot/projects/uart/sys/turnstile.h#4 integrate
.. //depot/projects/uart/sys/vnode.h#18 integrate
.. //depot/projects/uart/ufs/ffs/ffs_softdep.c#18 integrate
.. //depot/projects/uart/vm/vm_zeroidle.c#9 integrate
Differences ...
==== //depot/projects/uart/alpha/alpha/pmap.c#19 (text+ko) ====
@@ -148,7 +148,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.188 2006/04/03 21:16:07 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.189 2006/04/12 04:22:50 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -696,22 +696,7 @@
* Low level helper routines.....
***************************************************/
-
-
/*
- * this routine defines the region(s) of memory that should
- * not be tested for the modified bit.
- */
-static PMAP_INLINE int
-pmap_track_modified(vm_offset_t va)
-{
- if ((va < kmi.clean_sva) || (va >= kmi.clean_eva))
- return 1;
- else
- return 0;
-}
-
-/*
* Routine: pmap_extract
* Function:
* Extract the physical page address associated
@@ -1346,10 +1331,8 @@
("get_pv_entry: wired pte %#lx", tpte));
if ((tpte & PG_FOR) == 0)
vm_page_flag_set(m, PG_REFERENCED);
- if ((tpte & PG_FOW) == 0) {
- if (pmap_track_modified(va))
- vm_page_dirty(m);
- }
+ if ((tpte & PG_FOW) == 0)
+ vm_page_dirty(m);
pmap_invalidate_page(pmap, va);
TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist);
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
@@ -1449,10 +1432,8 @@
pmap->pm_stats.resident_count -= 1;
if (oldpte & PG_MANAGED) {
m = PHYS_TO_VM_PAGE(pmap_pte_pa(&oldpte));
- if ((oldpte & PG_FOW) == 0) {
- if (pmap_track_modified(va))
- vm_page_dirty(m);
- }
+ if ((oldpte & PG_FOW) == 0)
+ vm_page_dirty(m);
if ((oldpte & PG_FOR) == 0)
vm_page_flag_set(m, PG_REFERENCED);
return pmap_remove_entry(pmap, m, va);
@@ -1581,10 +1562,8 @@
/*
* Update the vm_page_t clean and reference bits.
*/
- if ((tpte & PG_FOW) == 0) {
- if (pmap_track_modified(pv->pv_va))
- vm_page_dirty(m);
- }
+ if ((tpte & PG_FOW) == 0)
+ vm_page_dirty(m);
if ((tpte & PG_FOR) == 0)
vm_page_flag_set(m, PG_REFERENCED);
@@ -1666,8 +1645,7 @@
if ((oldpte & PG_FOW) == 0) {
if (m == NULL)
m = PHYS_TO_VM_PAGE(pmap_pte_pa(pte));
- if (pmap_track_modified(sva))
- vm_page_dirty(m);
+ vm_page_dirty(m);
oldpte |= PG_FOW;
}
oldpte = (oldpte & ~PG_PROT) | newprot;
@@ -1763,8 +1741,7 @@
* so we go ahead and sense modify status.
*/
if (origpte & PG_MANAGED) {
- if ((origpte & PG_FOW) != PG_FOW
- && pmap_track_modified(va))
+ if ((origpte & PG_FOW) != PG_FOW)
vm_page_dirty(m);
}
@@ -1788,6 +1765,8 @@
* called at interrupt time.
*/
if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0) {
+ KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva,
+ ("pmap_enter: managed mapping within the clean submap"));
pmap_insert_entry(pmap, va, mpte, m);
managed |= PG_MANAGED;
}
@@ -1850,6 +1829,9 @@
register pt_entry_t *pte;
int managed;
+ KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva ||
+ (m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0,
+ ("pmap_enter_quick: managed mapping within the clean submap"));
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
PMAP_LOCK(pmap);
@@ -2168,8 +2150,7 @@
pmap->pm_stats.resident_count--;
if ((tpte & PG_FOW) == 0)
- if (pmap_track_modified(pv->pv_va))
- vm_page_dirty(m);
+ vm_page_dirty(m);
npv = TAILQ_NEXT(pv, pv_plist);
TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist);
@@ -2209,14 +2190,6 @@
* setting RO do we need to clear the VAC?
*/
TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
- /*
- * don't write protect pager mappings
- */
- if (!setem && bit == (PG_UWE|PG_KWE)) {
- if (!pmap_track_modified(pv->pv_va))
- continue;
- }
-
PMAP_LOCK(pv->pv_pmap);
pte = pmap_lev3pte(pv->pv_pmap, pv->pv_va);
==== //depot/projects/uart/amd64/amd64/pmap.c#31 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.543 2006/04/04 20:17:35 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.545 2006/04/13 03:31:48 alc Exp $");
/*
* Manages physical address maps.
@@ -106,6 +106,7 @@
*/
#include "opt_msgbuf.h"
+#include "opt_pmap.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -619,20 +620,6 @@
* Low level helper routines.....
***************************************************/
-
-/*
- * this routine defines the region(s) of memory that should
- * not be tested for the modified bit.
- */
-static PMAP_INLINE int
-pmap_track_modified(vm_offset_t va)
-{
- if ((va < kmi.clean_sva) || (va >= kmi.clean_eva))
- return 1;
- else
- return 0;
-}
-
#ifdef SMP
/*
* For SMP, these functions have to use the IPI mechanism for coherence.
@@ -1532,8 +1519,7 @@
KASSERT((tpte & PG_RW),
("pmap_collect: modified page not writable: va: %#lx, pte: %#lx",
va, tpte));
- if (pmap_track_modified(va))
- vm_page_dirty(m);
+ vm_page_dirty(m);
}
pmap_invalidate_page(pmap, va);
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
@@ -1751,8 +1737,7 @@
KASSERT((oldpte & PG_RW),
("pmap_remove_pte: modified page not writable: va: %#lx, pte: %#lx",
va, oldpte));
- if (pmap_track_modified(va))
- vm_page_dirty(m);
+ vm_page_dirty(m);
}
if (oldpte & PG_A)
vm_page_flag_set(m, PG_REFERENCED);
@@ -1940,8 +1925,7 @@
KASSERT((tpte & PG_RW),
("pmap_remove_all: modified page not writable: va: %#lx, pte: %#lx",
pv->pv_va, tpte));
- if (pmap_track_modified(pv->pv_va))
- vm_page_dirty(m);
+ vm_page_dirty(m);
}
pmap_invalidate_page(pmap, pv->pv_va);
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
@@ -2030,8 +2014,7 @@
vm_page_flag_set(m, PG_REFERENCED);
pbits &= ~PG_A;
}
- if ((pbits & PG_M) != 0 &&
- pmap_track_modified(sva)) {
+ if ((pbits & PG_M) != 0) {
if (m == NULL)
m = PHYS_TO_VM_PAGE(pbits &
PG_FRAME);
@@ -2182,6 +2165,8 @@
* Enter on the PV list if part of our managed memory.
*/
if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0) {
+ KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva,
+ ("pmap_enter: managed mapping within the clean submap"));
pmap_insert_entry(pmap, va, m);
pa |= PG_MANAGED;
}
@@ -2227,8 +2212,7 @@
KASSERT((origpte & PG_RW),
("pmap_enter: modified page not writable: va: %#lx, pte: %#lx",
va, origpte));
- if ((origpte & PG_MANAGED) &&
- pmap_track_modified(va))
+ if ((origpte & PG_MANAGED) != 0)
vm_page_dirty(om);
if ((newpte & PG_RW) == 0)
invlva = TRUE;
@@ -2258,6 +2242,9 @@
pt_entry_t *pte;
vm_paddr_t pa;
+ KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva ||
+ (m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0,
+ ("pmap_enter_quick: managed mapping within the clean submap"));
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
PMAP_LOCK(pmap);
@@ -2836,13 +2823,6 @@
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
- /*
- * if the bit being tested is the modified bit, then
- * mark clean_map and ptes as never
- * modified.
- */
- if (!pmap_track_modified(pv->pv_va))
- continue;
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte(pmap, pv->pv_va);
@@ -2898,14 +2878,6 @@
* setting RO do we need to clear the VAC?
*/
TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
- /*
- * don't write protect pager mappings
- */
- if (bit == PG_RW) {
- if (!pmap_track_modified(pv->pv_va))
- continue;
- }
-
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte(pmap, pv->pv_va);
@@ -2983,9 +2955,6 @@
TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list);
- if (!pmap_track_modified(pv->pv_va))
- continue;
-
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
pte = pmap_pte(pmap, pv->pv_va);
==== //depot/projects/uart/amd64/conf/GENERIC#16 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.451 2006/03/31 23:04:48 emax Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.452 2006/04/10 20:04:22 ps Exp $
cpu HAMMER
ident GENERIC
@@ -192,6 +192,7 @@
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
+device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
==== //depot/projects/uart/arm/include/asmacros.h#4 (text+ko) ====
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/asmacros.h,v 1.4 2005/04/07 22:03:04 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/asmacros.h,v 1.5 2006/04/13 14:25:28 cognet Exp $
*/
#ifndef _MACHINE_ASMACROS_H_
@@ -159,12 +159,12 @@
#define DO_AST \
ldr r0, [sp] /* Get the SPSR from stack */ ;\
mrs r4, cpsr /* save CPSR */ ;\
- orr r1, r4, #(I32_bit) ;\
+ orr r1, r4, #(I32_bit|F32_bit) ;\
msr cpsr_c, r1 /* Disable interrupts */ ;\
and r0, r0, #(PSR_MODE) /* Returning to USR mode? */ ;\
teq r0, #(PSR_USR32_MODE) ;\
bne 2f /* Nope, get out now */ ;\
- bic r4, r4, #(I32_bit) ;\
+ bic r4, r4, #(I32_bit|F32_bit) ;\
1: ldr r5, .Lcurthread ;\
ldr r5, [r5] ;\
ldr r1, [r5, #(TD_FLAGS)] ;\
@@ -174,7 +174,7 @@
msr cpsr_c, r4 /* Restore interrupts */ ;\
mov r0, sp ;\
bl _C_LABEL(ast) /* ast(frame) */ ;\
- orr r0, r4, #(I32_bit) ;\
+ orr r0, r4, #(I32_bit|F32_bit) ;\
msr cpsr_c, r0 ;\
b 1b ;\
2:
==== //depot/projects/uart/arm/include/atomic.h#8 (text+ko) ====
@@ -33,7 +33,7 @@
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/atomic.h,v 1.17 2006/02/06 18:29:05 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/atomic.h,v 1.18 2006/04/13 14:25:28 cognet Exp $
*/
#ifndef _MACHINE_ATOMIC_H_
@@ -61,7 +61,7 @@
"orr %1, %0, %2;" \
"msr cpsr_all, %1;" \
: "=r" (cpsr_save), "=r" (tmp) \
- : "I" (I32_bit) \
+ : "I" (I32_bit | F32_bit) \
: "cc" ); \
(expr); \
__asm __volatile( \
==== //depot/projects/uart/arm/xscale/i80321/i80321_pci.c#6 (text+ko) ====
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.6 2006/01/23 14:03:14 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_pci.c,v 1.7 2006/04/13 15:07:59 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -381,7 +381,8 @@
if (rv == NULL)
return (NULL);
if (type != SYS_RES_IRQ) {
- bh += (rman_get_start(rv));
+ if (type == SYS_RES_MEMORY)
+ bh += (rman_get_start(rv));
rman_set_bustag(rv, bt);
rman_set_bushandle(rv, bh);
if (flags & RF_ACTIVE) {
==== //depot/projects/uart/boot/i386/boot2/boot1.S#2 (text+ko) ====
@@ -12,7 +12,7 @@
* warranties of merchantability and fitness for a particular
* purpose.
*
- * $FreeBSD: src/sys/boot/i386/boot2/boot1.S,v 1.30 2004/08/28 08:32:23 yar Exp $
+ * $FreeBSD: src/sys/boot/i386/boot2/boot1.S,v 1.31 2006/04/11 20:09:42 jhb Exp $
*/
/* Memory Locations */
@@ -212,8 +212,7 @@
jnz seta20.2 # Yes
movb $0xdf,%al # Enable
outb %al,$0x60 # A20
-seta20.3:
- sti # Enable interrupts
+seta20.3: sti # Enable interrupts
jmp start+MEM_JMP-MEM_ORG # Start BTX
==== //depot/projects/uart/boot/i386/cdboot/cdboot.s#3 (text+ko) ====
@@ -27,7 +27,7 @@
# SUCH DAMAGE.
#
-# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.13 2004/06/22 21:55:22 jhb Exp $
+# $FreeBSD: src/sys/boot/i386/cdboot/cdboot.s,v 1.16 2006/04/11 17:36:08 jhb Exp $
#
# This program is a freestanding boot program to load an a.out binary
@@ -400,7 +400,7 @@
ff.checkname: lea DIR_NAME(%bx),%di # Address name in record
push %si # Save
repe cmpsb # Compare name
- jcxz ff.match # We have a winner!
+ je ff.match # We have a winner!
pop %si # Restore
jmp ff.nextrec # Keep looking.
ff.match: add $2,%sp # Discard saved %si
@@ -485,10 +485,17 @@
ret
#
-# Enable A20
+# Enable A20. Put an upper limit on the amount of time we wait for the
+# keyboard controller to get ready (65K x ISA access time). If
+# we wait more than that amount, the hardware is probably
+# legacy-free and simply doesn't have a keyboard controller.
+# Thus, the A20 line is already enabled.
#
seta20: cli # Disable interrupts
-seta20.1: in $0x64,%al # Get status
+ xor %cx,%cx # Clear
+seta20.1: inc %cx # Increment, overflow?
+ jz seta20.3 # Yes
+ in $0x64,%al # Get status
test $0x2,%al # Busy?
jnz seta20.1 # Yes
mov $0xd1,%al # Command: Write
@@ -498,7 +505,7 @@
jnz seta20.2 # Yes
mov $0xdf,%al # Enable
out %al,$0x60 # A20
- sti # Enable interrupts
+seta20.3: sti # Enable interrupts
ret # To caller
#
==== //depot/projects/uart/boot/i386/libi386/Makefile#8 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.41 2006/03/14 19:02:00 jkim Exp $
+# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.42 2006/04/11 20:11:30 jhb Exp $
#
LIB= i386
INTERNALLIB=
@@ -6,7 +6,7 @@
SRCS= biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \
comconsole.c devicename.c elf32_freebsd.c \
- elf64_freebsd.c gatea20.c \
+ elf64_freebsd.c \
i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
smbios.c time.c vidconsole.c amd64_tramp.S
==== //depot/projects/uart/boot/i386/libi386/libi386.h#8 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.24 2006/03/09 22:49:44 jkim Exp $
+ * $FreeBSD: src/sys/boot/i386/libi386/libi386.h,v 1.25 2006/04/11 20:11:30 jhb Exp $
*/
@@ -104,8 +104,6 @@
void smbios_detect(void);
-void gateA20(void);
-
int i386_autoload(void);
int bi_getboothowto(char *kargs);
==== //depot/projects/uart/boot/i386/pxeldr/pxeldr.S#2 (text+ko) ====
@@ -12,7 +12,7 @@
* warranties of merchantability and fitness for a particular
* purpose.
*
- * $FreeBSD: src/sys/boot/i386/pxeldr/pxeldr.S,v 1.13 2004/05/14 20:29:30 ru Exp $
+ * $FreeBSD: src/sys/boot/i386/pxeldr/pxeldr.S,v 1.14 2006/04/11 20:53:49 sobomax Exp $
*/
/*
@@ -227,10 +227,17 @@
jmp putstr # keep looping
/*
- * Enable A20
+ * Enable A20. Put an upper limit on the amount of time we wait for the
+ * keyboard controller to get ready (65K x ISA access time). If
+ * we wait more than that amount, the hardware is probably
+ * legacy-free and simply doesn't have a keyboard controller.
+ * Thus, the A20 line is already enabled.
*/
seta20: cli # Disable interrupts
-seta20.1: inb $0x64,%al # Get status
+ xor %cx,%cx # Clear
+seta20.1: inc %cx # Increment, overflow?
+ jz seta20.3 # Yes
+ inb $0x64,%al # Get status
testb $0x2,%al # Busy?
jnz seta20.1 # Yes
movb $0xd1,%al # Command: Write
@@ -240,7 +247,7 @@
jnz seta20.2 # Yes
movb $0xdf,%al # Enable
outb %al,$0x60 # A20
- sti # Enable interrupts
+seta20.3: sti # Enable interrupts
retw # To caller
/*
==== //depot/projects/uart/boot/pc98/libpc98/Makefile#6 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.23 2005/12/20 08:54:30 sobomax Exp $
+# $FreeBSD: src/sys/boot/pc98/libpc98/Makefile,v 1.24 2006/04/11 20:11:30 jhb Exp $
#
LIB= pc98
INTERNALLIB=
@@ -7,7 +7,7 @@
SRCS= bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c biossmap.c \
bootinfo.c bootinfo32.c comconsole.c devicename.c elf32_freebsd.c \
- gatea20.c i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
+ i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
time.c vidconsole.c
BOOT_COMCONSOLE_PORT?= 0x238
==== //depot/projects/uart/cam/scsi/scsi_cd.c#12 (text+ko) ====
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.94 2005/11/18 02:43:49 jdp Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.95 2006/04/17 09:12:53 maxim Exp $");
#include "opt_cd.h"
@@ -1669,7 +1669,7 @@
if (softc->flags & CD_FLAG_CHANGER)
cdchangerschedule(softc);
- biofinish(bp, softc->disk->d_devstat, 0);
+ biofinish(bp, NULL, 0);
break;
}
case CD_CCB_PROBE:
==== //depot/projects/uart/conf/files#59 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1107 2006/03/30 21:39:36 marcel Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1109 2006/04/15 12:31:31 iwasaki Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -407,6 +407,7 @@
dev/acpica/acpi_throttle.c optional acpi
dev/acpica/acpi_timer.c optional acpi
dev/acpica/acpi_video.c optional acpi_video acpi
+dev/acpica/acpi_dock.c optional acpi_dock acpi
dev/adlink/adlink.c optional adlink
dev/advansys/adv_eisa.c optional adv eisa
dev/advansys/adv_pci.c optional adv pci
@@ -475,6 +476,7 @@
dev/awi/am79c930.c optional awi
dev/awi/awi.c optional awi
dev/awi/if_awi_pccard.c optional awi pccard
+dev/bce/if_bce.c optional bce
dev/bfe/if_bfe.c optional bfe
dev/bge/if_bge.c optional bge
dev/bktr/bktr_audio.c optional bktr pci
==== //depot/projects/uart/conf/options#28 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.533 2006/04/03 18:14:01 sam Exp $
+# $FreeBSD: src/sys/conf/options,v 1.534 2006/04/10 20:04:21 ps Exp $
#
# On the handling of kernel options
#
@@ -633,6 +633,9 @@
ED_3C503 opt_ed.h
ED_SIC opt_ed.h
+# bce driver
+BCE_DEBUG opt_bce.h
+
# bge driver
BGE_FAKE_AUTONEG opt_bge.h
==== //depot/projects/uart/contrib/ipfilter/netinet/fil.c#8 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.48 2005/12/30 11:32:22 guido Exp $ */
+/* $FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.49 2006/04/18 13:24:14 darrenr Exp $ */
/*
* Copyright (C) 1993-2003 by Darren Reed.
@@ -141,7 +141,7 @@
#if !defined(lint)
static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.48 2005/12/30 11:32:22 guido Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.49 2006/04/18 13:24:14 darrenr Exp $";
/* static const char rcsid[] = "@(#)Id: fil.c,v 2.243.2.57 2005/03/28 10:47:50 darrenr Exp"; */
#endif
@@ -6286,7 +6286,7 @@
int error;
fr_getstat(&fio);
- error = copyoutptr(&fio, data, sizeof(fio));
+ error = fr_outobj(data, &fio, IPFOBJ_IPFSTAT);
if (error)
return EFAULT;
==== //depot/projects/uart/crypto/via/padlock.c#2 (text+ko) ====
@@ -45,7 +45,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.1 2005/08/18 00:30:22 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.2 2006/04/12 12:13:34 pjd Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -179,11 +179,7 @@
#endif
padlock_sc = sc = malloc(sizeof(*padlock_sc), M_DEVBUF,
- M_NOWAIT | M_ZERO);
- if (padlock_sc == NULL) {
- printf("PADLOCK: Could not allocate memory.\n");
- return (ENOMEM);
- }
+ M_WAITOK | M_ZERO);
TAILQ_INIT(&sc->sc_sessions);
sc->sc_sid = 1;
==== //depot/projects/uart/dev/acpica/acpi.c#20 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.220 2006/03/29 06:30:47 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.221 2006/04/15 12:31:32 iwasaki Exp $");
#include "opt_acpi.h"
#include <sys/param.h>
@@ -1518,6 +1518,7 @@
acpi_probe_child(ACPI_HANDLE handle, UINT32 level, void *context, void **status)
{
ACPI_OBJECT_TYPE type;
+ ACPI_HANDLE h;
device_t bus, child;
int order, probe_now;
char *handle_str, **search;
@@ -1577,8 +1578,17 @@
* "functional" (i.e. if disabled). Go ahead and probe them
* anyway since we may enable them later.
*/
- if (type == ACPI_TYPE_DEVICE && !acpi_DeviceIsPresent(child) &&
- !acpi_MatchHid(handle, "PNP0C0F")) {
+ if (type == ACPI_TYPE_DEVICE && !acpi_DeviceIsPresent(child)) {
+ /* Never disable PCI link devices. */
+ if (acpi_MatchHid(handle, "PNP0C0F"))
+ break;
+ /*
+ * Docking stations should remain enabled since the system
+ * may be undocked at boot.
+ */
+ if (ACPI_SUCCESS(AcpiGetHandle(handle, "_DCK", &h)))
+ break;
+
device_disable(child);
break;
}
==== //depot/projects/uart/dev/acpica/acpi_cmbat.c#11 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.43 2005/11/26 07:36:53 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cmbat.c,v 1.45 2006/04/15 16:10:53 iwasaki Exp $");
#include "opt_acpi.h"
#include <sys/param.h>
@@ -157,7 +157,10 @@
static int
acpi_cmbat_detach(device_t dev)
{
+ ACPI_HANDLE handle;
+ handle = acpi_get_handle(dev);
+ AcpiRemoveNotifyHandler(handle, ACPI_ALL_NOTIFY, acpi_cmbat_notify_handler);
acpi_battery_remove(dev);
return (0);
}
@@ -435,6 +438,10 @@
* to wait a while.
*/
for (retry = 0; retry < ACPI_CMBAT_RETRY_MAX; retry++, AcpiOsSleep(10000)) {
+ /* batteries on DOCK can be ejected w/ DOCK during retrying */
+ if (!device_is_attached(dev))
+ return;
+
if (!acpi_BatteryIsPresent(dev))
continue;
==== //depot/projects/uart/dev/amr/amr_linux.c#3 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/amr/amr_linux.c,v 1.2 2006/02/23 18:05:38 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/amr/amr_linux.c,v 1.3 2006/04/14 16:13:28 ambrisko Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -53,8 +53,8 @@
#include <dev/amr/amrvar.h>
/* There are multiple ioctl number ranges that need to be handled */
-#define AMR_LINUX_IOCTL_MIN 0x00000
-#define AMR_LINUX_IOCTL_MAX 0x50000
+#define AMR_LINUX_IOCTL_MIN 0x6d00
+#define AMR_LINUX_IOCTL_MAX 0x6d01
static linux_ioctl_function_t amr_linux_ioctl;
static struct linux_ioctl_handler amr_linux_handler = {amr_linux_ioctl,
==== //depot/projects/uart/dev/ata/ata-all.c#21 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.271 2006/03/31 08:09:04 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.272 2006/04/14 16:25:42 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -277,8 +277,8 @@
if (!dev || !(ch = device_get_softc(dev)))
return ENXIO;
- /* wait for the channel to be IDLE before entering suspend mode */
- while (1) {
+ /* wait for the channel to be IDLE or detached before suspending */
+ while (ch->r_irq) {
mtx_lock(&ch->state_mtx);
if (ch->state == ATA_IDLE) {
ch->state = ATA_ACTIVE;
==== //depot/projects/uart/dev/ata/ata-queue.c#18 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.63 2006/03/31 08:09:05 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.64 2006/04/17 10:47:01 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -270,7 +270,7 @@
return;
}
if (request->flags & ATA_R_DANGER1)
- request->flags |= ATA_R_DANGER2
+ request->flags |= ATA_R_DANGER2;
ATA_DEBUG_RQ(request, "completed entered");
==== //depot/projects/uart/dev/ata/ata-raid.c#12 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.119 2006/03/09 08:34:44 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.120 2006/04/15 10:27:41 maxim Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -974,7 +974,7 @@
* metadata format from the disks (if we support it).
*/
printf("WARNING!! - not able to determine metadata format\n"
- "WARNING!! - Using FreeBSD PsuedoRAID metadata\n"
+ "WARNING!! - Using FreeBSD PseudoRAID metadata\n"
"If that is not what you want, use the BIOS to "
"create the array\n");
ctlr = AR_F_FREEBSD_RAID;
==== //depot/projects/uart/dev/ath/if_ath.c#26 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.138 2006/04/03 18:14:02 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.140 2006/04/16 18:24:27 sam Exp $");
/*
* Driver for the Atheros Wireless LAN controller.
@@ -1929,7 +1929,7 @@
const HAL_RATE_TABLE *rt;
u_int8_t rix, rate;
- DPRINTF(sc, ATH_DEBUG_BEACON, "%s: m %p len %u\n",
+ DPRINTF(sc, ATH_DEBUG_BEACON_PROC, "%s: m %p len %u\n",
__func__, m, m->m_len);
/* setup descriptors */
@@ -2021,7 +2021,7 @@
*/
if (ath_hal_numtxpending(ah, sc->sc_bhalq) != 0) {
sc->sc_bmisscount++;
- DPRINTF(sc, ATH_DEBUG_BEACON_PROC,
+ DPRINTF(sc, ATH_DEBUG_BEACON,
"%s: missed %u consecutive beacons\n",
__func__, sc->sc_bmisscount);
if (sc->sc_bmisscount > 3) /* NB: 3 is a guess */
@@ -2042,7 +2042,7 @@
* of the TIM bitmap).
*/
m = bf->bf_m;
- ncabq = ath_hal_numtxpending(ah, sc->sc_cabq->axq_qnum);
+ ncabq = sc->sc_cabq->axq_depth;
if (ieee80211_beacon_update(ic, bf->bf_node, &sc->sc_boff, m, ncabq)) {
/* XXX too conservative? */
bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
@@ -2102,7 +2102,7 @@
* Enable the CAB queue before the beacon queue to
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list