From owner-p4-projects@FreeBSD.ORG Tue Oct 12 19:10:30 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AC73316A4D2; Tue, 12 Oct 2004 19:10:29 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 74F9D16A4D1 for ; Tue, 12 Oct 2004 19:10:19 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C4F1643D3F for ; Tue, 12 Oct 2004 19:10:18 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i9CJAIJW032630 for ; Tue, 12 Oct 2004 19:10:18 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i9CJAIO0032627 for perforce@freebsd.org; Tue, 12 Oct 2004 19:10:18 GMT (envelope-from jhb@freebsd.org) Date: Tue, 12 Oct 2004 19:10:18 GMT Message-Id: <200410121910.i9CJAIO0032627@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 63082 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Oct 2004 19:10:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=63082 Change 63082 by jhb@jhb_slimer on 2004/10/12 19:09:56 IFC @63081. Affected files ... .. //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#8 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#37 integrate .. //depot/projects/smpng/sys/amd64/include/acpica_machdep.h#5 integrate .. //depot/projects/smpng/sys/amd64/include/pmap.h#16 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_bus.c#10 integrate .. //depot/projects/smpng/sys/arm/conf/SIMICS#3 integrate .. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#5 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.h#2 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#12 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#11 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#11 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#11 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#11 integrate .. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#11 integrate .. //depot/projects/smpng/sys/compat/linux/linux_util.h#10 integrate .. //depot/projects/smpng/sys/conf/files#124 integrate .. //depot/projects/smpng/sys/conf/files.i386#68 integrate .. //depot/projects/smpng/sys/conf/files.sparc64#43 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#40 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#35 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdTable.c#8 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cmbat.c#23 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_cpu.c#28 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib_acpi.c#14 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_quirks#3 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_timer.c#19 integrate .. //depot/projects/smpng/sys/dev/acpica/acpivar.h#49 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#62 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#32 integrate .. //depot/projects/smpng/sys/dev/ata/ata-card.c#20 integrate .. //depot/projects/smpng/sys/dev/ata/ata-cbus.c#12 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#45 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#45 integrate .. //depot/projects/smpng/sys/dev/ata/ata-isa.c#18 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#50 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#25 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#20 integrate .. //depot/projects/smpng/sys/dev/auxio/auxio.c#1 branch .. //depot/projects/smpng/sys/dev/auxio/auxioreg.h#1 branch .. //depot/projects/smpng/sys/dev/bfe/if_bfe.c#11 integrate .. //depot/projects/smpng/sys/dev/digi/digi.c#26 integrate .. //depot/projects/smpng/sys/dev/digi/digi.h#9 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#37 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#11 integrate .. //depot/projects/smpng/sys/dev/fe/if_fe.c#15 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#19 integrate .. //depot/projects/smpng/sys/dev/md/md.c#57 integrate .. //depot/projects/smpng/sys/dev/pbio/pbio.c#1 branch .. //depot/projects/smpng/sys/dev/pbio/pbioio.h#1 branch .. //depot/projects/smpng/sys/dev/random/randomdev_soft.c#4 integrate .. //depot/projects/smpng/sys/dev/rc/rc.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ad1816.c#16 integrate .. //depot/projects/smpng/sys/dev/sound/isa/es1888.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ess.c#13 integrate .. //depot/projects/smpng/sys/dev/sound/isa/gusc.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/isa/mss.c#18 integrate .. //depot/projects/smpng/sys/dev/sound/isa/sbc.c#13 integrate .. //depot/projects/smpng/sys/dev/sx/sx.c#5 integrate .. //depot/projects/smpng/sys/dev/sx/sx.h#4 integrate .. //depot/projects/smpng/sys/dev/uart/uart_bus.h#5 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/ubser.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/ucycom.c#2 integrate .. //depot/projects/smpng/sys/dev/usb/ugen.c#29 integrate .. //depot/projects/smpng/sys/dev/usb/uhid.c#23 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#42 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#34 integrate .. //depot/projects/smpng/sys/geom/geom_pc98.c#25 integrate .. //depot/projects/smpng/sys/geom/geom_subr.c#44 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#9 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_machdep.c#19 integrate .. //depot/projects/smpng/sys/i386/conf/NOTES#90 integrate .. //depot/projects/smpng/sys/i386/i386/elan-mmcr.c#21 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#75 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_misc.c#16 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_socksys.c#11 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_sysi86.c#9 integrate .. //depot/projects/smpng/sys/i386/include/acpica_machdep.h#7 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#25 integrate .. //depot/projects/smpng/sys/i386/isa/pbio.c#1 branch .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#23 integrate .. //depot/projects/smpng/sys/i4b/driver/i4b_ipr.c#19 integrate .. //depot/projects/smpng/sys/i4b/driver/i4b_isppp.c#11 integrate .. //depot/projects/smpng/sys/ia64/acpica/acpi_machdep.c#5 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#87 integrate .. //depot/projects/smpng/sys/ia64/include/acpica_machdep.h#4 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#46 integrate .. //depot/projects/smpng/sys/kern/kern_condvar.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#78 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#86 integrate .. //depot/projects/smpng/sys/kern/kern_kse.c#12 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#87 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#68 integrate .. //depot/projects/smpng/sys/kern/kern_subr.c#35 integrate .. //depot/projects/smpng/sys/kern/kern_switch.c#47 integrate .. //depot/projects/smpng/sys/kern/kern_synch.c#83 integrate .. //depot/projects/smpng/sys/kern/kern_sysctl.c#42 integrate .. //depot/projects/smpng/sys/kern/kern_tc.c#30 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#21 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#70 integrate .. //depot/projects/smpng/sys/kern/kern_xxx.c#15 integrate .. //depot/projects/smpng/sys/kern/sched_4bsd.c#40 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#44 integrate .. //depot/projects/smpng/sys/kern/subr_sleepqueue.c#11 integrate .. //depot/projects/smpng/sys/kern/subr_turnstile.c#17 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#122 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#46 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#47 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf2.c#17 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#58 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#85 integrate .. //depot/projects/smpng/sys/modules/Makefile#84 integrate .. //depot/projects/smpng/sys/modules/auxio/Makefile#1 branch .. //depot/projects/smpng/sys/net/bpf.c#41 integrate .. //depot/projects/smpng/sys/net/bridge.c#31 integrate .. //depot/projects/smpng/sys/net/bridge.h#7 integrate .. //depot/projects/smpng/sys/net/ethernet.h#9 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#53 integrate .. //depot/projects/smpng/sys/net/if_tun.c#36 integrate .. //depot/projects/smpng/sys/net/net_osdep.c#6 delete .. //depot/projects/smpng/sys/net/net_osdep.h#10 integrate .. //depot/projects/smpng/sys/net/netisr.c#9 integrate .. //depot/projects/smpng/sys/net/pfil.c#7 integrate .. //depot/projects/smpng/sys/net/route.h#20 integrate .. //depot/projects/smpng/sys/net/rtsock.c#40 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#18 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#29 integrate .. //depot/projects/smpng/sys/netinet/ip_mroute.c#38 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#45 integrate .. //depot/projects/smpng/sys/netinet/tcp_output.c#31 integrate .. //depot/projects/smpng/sys/netinet6/in6_rmx.c#7 integrate .. //depot/projects/smpng/sys/netncp/ncp_ncp.c#11 integrate .. //depot/projects/smpng/sys/pci/if_sis.c#44 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#47 integrate .. //depot/projects/smpng/sys/sparc64/conf/NOTES#9 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#67 integrate .. //depot/projects/smpng/sys/sys/conf.h#34 integrate .. //depot/projects/smpng/sys/sys/kse.h#18 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#45 integrate .. //depot/projects/smpng/sys/sys/param.h#73 integrate .. //depot/projects/smpng/sys/sys/pbioio.h#1 branch .. //depot/projects/smpng/sys/sys/proc.h#131 integrate .. //depot/projects/smpng/sys/sys/random.h#4 integrate .. //depot/projects/smpng/sys/sys/runq.h#5 integrate .. //depot/projects/smpng/sys/sys/sleepqueue.h#5 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#40 integrate .. //depot/projects/smpng/sys/sys/syscall.h#46 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#46 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#12 integrate .. //depot/projects/smpng/sys/sys/sysctl.h#31 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#48 integrate .. //depot/projects/smpng/sys/sys/thr.h#4 integrate .. //depot/projects/smpng/sys/sys/ttydefaults.h#4 integrate .. //depot/projects/smpng/sys/sys/turnstile.h#4 integrate .. //depot/projects/smpng/sys/ufs/ffs/fs.h#16 integrate .. //depot/projects/smpng/sys/vm/uma_core.c#48 integrate .. //depot/projects/smpng/sys/vm/uma_dbg.c#10 integrate .. //depot/projects/smpng/sys/vm/vm_meter.c#20 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.15 2004/08/16 23:10:18 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.16 2004/10/11 05:39:14 njl Exp $"); #include #include @@ -61,3 +61,9 @@ { return (0); } + +void +acpi_cpu_c1() +{ + __asm __volatile("sti; hlt"); +} ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#37 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.507 2004/10/03 20:14:06 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.508 2004/10/08 08:23:42 alc Exp $"); /* * Manages physical address maps. @@ -1839,7 +1839,7 @@ vm_paddr_t opa; pd_entry_t ptepde; pt_entry_t origpte, newpte; - vm_page_t mpte; + vm_page_t mpte, om; va = trunc_page(va); #ifdef PMAP_DIAGNOSTIC @@ -1881,6 +1881,7 @@ panic("pmap_enter: invalid page directory va=%#lx\n", va); pa = VM_PAGE_TO_PHYS(m); + om = NULL; origpte = *pte; opa = origpte & PG_FRAME; @@ -1921,8 +1922,7 @@ * so we go ahead and sense modify status. */ if (origpte & PG_MANAGED) { - if ((origpte & PG_M) && pmap_track_modified(va)) - vm_page_dirty(m); + om = m; pa |= PG_MANAGED; } goto validate; @@ -1933,10 +1933,17 @@ */ if (opa) { int err; - err = pmap_remove_pte(pmap, pte, va, ptepde); + if (origpte & PG_W) + pmap->pm_stats.wired_count--; + if (origpte & PG_MANAGED) { + om = PHYS_TO_VM_PAGE(opa); + err = pmap_remove_entry(pmap, om, va, ptepde); + } else + err = pmap_unuse_pt(pmap, va, ptepde); if (err) panic("pmap_enter: pte vanished, va: 0x%lx", va); - } + } else + pmap->pm_stats.resident_count++; /* * Enter on the PV list if part of our managed memory. Note that we @@ -1952,7 +1959,6 @@ /* * Increment counters */ - pmap->pm_stats.resident_count++; if (wired) pmap->pm_stats.wired_count++; @@ -1977,7 +1983,14 @@ * to update the pte. */ if ((origpte & ~(PG_M|PG_A)) != newpte) { - pte_store(pte, newpte | PG_A); + if (origpte & PG_MANAGED) { + origpte = pte_load_store(pte, newpte | PG_A); + if ((origpte & PG_M) && pmap_track_modified(va)) + vm_page_dirty(om); + if (origpte & PG_A) + vm_page_flag_set(om, PG_REFERENCED); + } else + pte_store(pte, newpte | PG_A); if (origpte) { pmap_invalidate_page(pmap, va); } ==== //depot/projects/smpng/sys/amd64/include/acpica_machdep.h#5 (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/amd64/include/acpica_machdep.h,v 1.5 2004/05/05 20:04:14 njl Exp $ + * $FreeBSD: src/sys/amd64/include/acpica_machdep.h,v 1.6 2004/10/11 05:39:15 njl Exp $ */ /****************************************************************************** @@ -73,6 +73,7 @@ #define COMPILER_DEPENDENT_INT64 long #define COMPILER_DEPENDENT_UINT64 unsigned long -void acpi_SetDefaultIntrModel(int model); +void acpi_SetDefaultIntrModel(int model); +void acpi_cpu_c1(void); #endif /* __ACPICA_MACHDEP_H__ */ ==== //depot/projects/smpng/sys/amd64/include/pmap.h#16 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.124 2004/09/29 19:20:39 alc Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.125 2004/10/08 08:23:43 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -194,15 +194,25 @@ { pt_entry_t r; - r = *ptep; - *ptep = pte; + __asm __volatile( + "xchgq %0,%1" + : "=m" (*ptep), + "=r" (r) + : "1" (pte), + "m" (*ptep)); return (r); } #define pte_load_clear(pte) atomic_readandclear_long(pte) -#define pte_clear(ptep) pte_load_store((ptep), (pt_entry_t)0ULL) -#define pte_store(ptep, pte) pte_load_store((ptep), (pt_entry_t)pte) +static __inline void +pte_store(pt_entry_t *ptep, pt_entry_t pte) +{ + + *ptep = pte; +} + +#define pte_clear(ptep) pte_store((ptep), (pt_entry_t)0ULL) #define pde_store(pdep, pde) pte_store((pdep), (pde)) ==== //depot/projects/smpng/sys/amd64/pci/pci_bus.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.109 2004/06/03 05:58:30 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.110 2004/10/11 21:51:27 peter Exp $"); #include "opt_cpu.h" @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -42,6 +43,7 @@ #include #include #include +#include #include "pcib_if.h" @@ -81,8 +83,8 @@ static const char * legacy_pcib_is_host_bridge(int bus, int slot, int func, - u_int32_t id, u_int8_t class, u_int8_t subclass, - u_int8_t *busnum) + uint32_t id, uint8_t class, uint8_t subclass, + uint8_t *busnum) { const char *s = NULL; @@ -262,7 +264,38 @@ return ENOENT; } +SYSCTL_DECL(_hw_pci); +static int legacy_host_mem_start = 0x80000000; +/* No TUNABLE_ULONG :-( */ +TUNABLE_INT("hw.pci.host_mem_start", &legacy_host_mem_start); +SYSCTL_INT(_hw_pci, OID_AUTO, host_mem_start, CTLFLAG_RDTUN, + &legacy_host_mem_start, 0x80000000, + "Limit the host bridge memory to being above this address. Must be\n\ +set at boot via a tunable."); + +static struct resource * +legacy_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + /* + * If no memory preference is given, use upper 32MB slot most + * bioses use for their memory window. Typically other bridges + * before us get in the way to assert their preferences on memory. + * Hardcoding like this sucks, so a more MD/MI way needs to be + * found to do it. This is typically only used on older laptops + * that don't have pci busses behind pci bridge, so assuming > 32MB + * is liekly OK. + * + * However, this can cause problems for other chipsets, so we make + * this tunable by hw.pci.host_mem_start. + */ + if (type == SYS_RES_MEMORY && start == 0UL && end == ~0UL) + start = legacy_host_mem_start; + return (bus_generic_alloc_resource(dev, child, type, rid, start, end, + count, flags)); +} + static device_method_t legacy_pcib_methods[] = { /* Device interface */ DEVMETHOD(device_identify, legacy_pcib_identify), @@ -276,7 +309,7 @@ DEVMETHOD(bus_print_child, bus_generic_print_child), DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), + DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), ==== //depot/projects/smpng/sys/arm/conf/SIMICS#3 (text+ko) ==== @@ -15,7 +15,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/SIMICS,v 1.3 2004/09/23 22:53:50 cognet Exp $ +# $FreeBSD: src/sys/arm/conf/SIMICS,v 1.4 2004/10/11 14:42:06 cognet Exp $ machine arm ident SIMICS @@ -40,6 +40,7 @@ options UFS_ACL #Support for access control lists options UFS_DIRHASH #Improve performance on big directories options MD_ROOT #MD is a potential root device +options MD_ROOT_SIZE=65535 options ROOTDEVNAME=\"ufs:md0\" options NFSCLIENT #Network Filesystem Client options NFSSERVER #Network Filesystem Server ==== //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#5 (text+ko) ==== @@ -47,7 +47,9 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.4 2004/09/23 22:32:33 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.5 2004/10/11 14:41:38 cognet Exp $"); + +#include "opt_md.h" #define _ARM32_BUS_DMA_PRIVATE #include @@ -131,7 +133,9 @@ struct pcpu __pcpu; struct pcpu *pcpup = &__pcpu; -#define MDSIZE 8192 +#ifndef MD_ROOT_SIZE +#error SIMICS needs MD_ROOT and MD_ROOT_SIZE +#endif /* Physical and virtual addresses for some global pages */ vm_paddr_t phys_avail[10]; @@ -218,7 +222,7 @@ fake_preload[i++] = MDROOT_ADDR; fake_preload[i++] = MODINFO_SIZE; fake_preload[i++] = sizeof(uint32_t); - fake_preload[i++] = MDSIZE * 1024; + fake_preload[i++] = MD_ROOT_SIZE * 1024; fake_preload[i++] = 0; fake_preload[i] = 0; preload_metadata = (void *)fake_preload; @@ -236,7 +240,6 @@ kerneldatasize = (u_int32_t)&end - (u_int32_t)KERNEL_TEXT_BASE; symbolsize = 0; freemempos = (vm_offset_t)round_page(physical_freestart); - printf("freemempos %p\n", (void*)freemempos); memset((void *)freemempos, 0, 256*1024); /* Define a macro to simplify memory allocation */ #define valloc_pages(var, np) \ @@ -311,12 +314,10 @@ pmap_map_chunk(l1pagetable, KERNBASE, KERNBASE, (uint32_t)&end - KERNBASE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); /* Map the stack pages */ - printf("avant irq %p %p\n", (void*)irqstack.pv_va, (void*)irqstack.pv_pa); pmap_map_chunk(l1pagetable, irqstack.pv_va, irqstack.pv_pa, IRQ_STACK_SIZE * PAGE_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); - printf("apres irq\n"); pmap_map_chunk(l1pagetable, md_addr.pv_va, md_addr.pv_pa, - MDSIZE * 1024, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); + MD_ROOT_SIZE * 1024, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); pmap_map_chunk(l1pagetable, abtstack.pv_va, abtstack.pv_pa, ABT_STACK_SIZE * PAGE_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); pmap_map_chunk(l1pagetable, undstack.pv_va, undstack.pv_pa, @@ -365,7 +366,6 @@ * Since the ARM stacks use STMFD etc. we must set r13 to the top end * of the stack memory. */ - printf("init subsystems: stacks\n"); set_stackptr(PSR_IRQ32_MODE, irqstack.pv_va + IRQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_ABT32_MODE, ==== //depot/projects/smpng/sys/cam/scsi/scsi_da.h#2 (text+ko) ==== @@ -46,7 +46,7 @@ * * Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992 * - * $FreeBSD: src/sys/cam/scsi/scsi_da.h,v 1.5 2000/05/21 23:57:52 ken Exp $ + * $FreeBSD: src/sys/cam/scsi/scsi_da.h,v 1.6 2004/10/12 08:55:02 bms Exp $ */ #ifndef _SCSI_SCSI_DA_H @@ -151,6 +151,9 @@ #define REASSIGN_BLOCKS 0x07 #define MODE_SELECT 0x15 #define MODE_SENSE 0x1a +#define READ_FORMAT_CAPACITIES 0x23 +#define WRITE_AND_VERIFY 0x2e +#define VERIFY 0x2f #define READ_DEFECT_DATA_10 0x37 #define READ_DEFECT_DATA_12 0xb7 @@ -182,6 +185,82 @@ u_int8_t pat_length[2]; }; +struct scsi_read_format_capacities +{ + uint8_t opcode; /* READ_FORMAT_CAPACITIES */ + uint8_t byte2; /* top 3 bits contain LUN */ +#define SRFC_LUN_MASK 0xE0 + uint8_t reserved0[5]; + uint8_t alloc_length[2]; + uint8_t reserved1[3]; +}; + +struct scsi_verify +{ + uint8_t opcode; /* VERIFY */ + uint8_t lun; /* All other bits should be zero */ +#define SVFY_RELADR 0x01 +#define SVFY_BYTECHK 0x02 +#define SVFY_DPO 0x10 +#define SVFY_LUN_MASK 0xE0 /* Top 3 MSBs are LUN */ + uint8_t addr[4]; /* LBA to begin verification at */ + uint8_t reserved0[1]; + uint8_t len[2]; /* number of blocks to verify */ + uint8_t reserved1[3]; +}; + +struct scsi_write_and_verify +{ + uint8_t opcode; /* WRITE_AND_VERIFY */ + uint8_t byte2; /* top 3 bits are the LUN */ +#define SWVY_LUN_MASK 0xE0 +#define SWVY_RELADR 0x01 +#define SWVY_BYTECHK 0x02 +#define SWVY_DPO 0x10 + uint8_t addr[4]; /* LBA to begin verification at */ + uint8_t reserved0[1]; + uint8_t len[2]; /* number of blocks to write and verify */ + uint8_t reserved1[3]; +}; + +/* + * Replies to READ_FORMAT_CAPACITIES look like this: + * + * struct format_capacity_list_header + * struct format_capacity_descriptor[1..n] + * + * These are similar, but not totally identical to, the + * defect list used to format a rigid disk. + * + * The appropriate csio_decode() format string looks like this: + * "{} *i3 {Len} i1 {Blocks} i4 {} *b6 {Code} b2 {Blocklen} i3" + * + * If the capacity_list_length is greater than + * sizeof(struct format_capacity_descriptor), then there are + * additional format capacity descriptors available which + * denote which format(s) the drive can handle. + * + * (Source: USB Mass Storage UFI Specification) + */ + +struct format_capacity_list_header { + uint8_t unused[3]; + uint8_t capacity_list_length; +}; + +struct format_capacity_descriptor { + uint8_t nblocks[4]; /* total number of LBAs */ + uint8_t byte4; /* only present in max/cur descriptor */ +#define FCD_CODE_MASK 0x03 /* mask for code field above */ +#define FCD_UNFORMATTED 0x01 /* unformatted media present, + * maximum capacity returned */ +#define FCD_FORMATTED 0x02 /* formatted media present, + * current capacity returned */ +#define FCD_NOMEDIA 0x03 /* no media present, + * maximum device capacity returned */ + uint8_t block_length[3]; /* length of an LBA in bytes */ +}; + struct scsi_reassign_blocks_data { u_int8_t reserved[2]; ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.24 2004/10/05 18:51:10 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.25 2004/10/11 22:04:15 peter Exp $"); #include "opt_compat.h" @@ -1203,25 +1203,21 @@ if (uap->namelen > CTL_MAXNAME || uap->namelen < 2) return (EINVAL); - - error = copyin(uap->name, &name, uap->namelen * sizeof(int)); + error = copyin(uap->name, name, uap->namelen * sizeof(int)); if (error) return (error); - mtx_lock(&Giant); - if (uap->oldlenp) oldlen = fuword32(uap->oldlenp); else oldlen = 0; error = userland_sysctl(td, name, uap->namelen, uap->old, &oldlen, 1, - uap->new, uap->newlen, &j); + uap->new, uap->newlen, &j, SCTL_MASK32); if (error && error != ENOMEM) goto done2; - if (uap->oldlenp) { + if (uap->oldlenp) suword32(uap->oldlenp, j); - } done2: mtx_unlock(&Giant); return (error); ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#11 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.28 2004/07/14 00:03:51 peter Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.40 2004/07/14 00:03:30 peter Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.29 2004/10/06 14:23:00 mtm Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.41 2004/10/06 14:20:57 mtm Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#11 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.28 2004/07/14 00:03:51 peter Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.40 2004/07/14 00:03:30 peter Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.29 2004/10/06 14:23:00 mtm Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.41 2004/10/06 14:20:57 mtm Exp */ #define FREEBSD32_SYS_syscall 0 ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#11 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.19 2004/07/14 00:03:51 peter Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.40 2004/07/14 00:03:30 peter Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.20 2004/10/06 14:23:00 mtm Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.41 2004/10/06 14:20:57 mtm Exp */ const char *freebsd32_syscallnames[] = { ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#11 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.29 2004/07/14 00:03:51 peter Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.40 2004/07/14 00:03:30 peter Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.30 2004/10/06 14:23:00 mtm Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.41 2004/10/06 14:20:57 mtm Exp */ #include "opt_compat.h" @@ -456,7 +456,7 @@ { 0, (sy_call_t *)nosys }, /* 428 = __acl_aclcheck_link */ { 0, (sy_call_t *)nosys }, /* 429 = sigwait */ { SYF_MPSAFE | AS(thr_create_args), (sy_call_t *)thr_create }, /* 430 = thr_create */ - { SYF_MPSAFE | 0, (sy_call_t *)thr_exit }, /* 431 = thr_exit */ + { SYF_MPSAFE | AS(thr_exit_args), (sy_call_t *)thr_exit }, /* 431 = thr_exit */ { SYF_MPSAFE | AS(thr_self_args), (sy_call_t *)thr_self }, /* 432 = thr_self */ { SYF_MPSAFE | AS(thr_kill_args), (sy_call_t *)thr_kill }, /* 433 = thr_kill */ { SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock }, /* 434 = _umtx_lock */ ==== //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#11 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.40 2004/07/14 00:03:30 peter Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.41 2004/10/06 14:20:57 mtm Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -596,7 +596,7 @@ ; XXX implement 429 UNIMPL sigwait 430 MNOPROTO { int thr_create(ucontext_t *ctx, long *id, int flag s); } -431 MNOPROTO { void thr_exit(void); } +431 MNOPROTO { void thr_exit(long *state); } 432 MNOPROTO { int thr_self(long *id); } 433 MNOPROTO { int thr_kill(long id, int sig); } 434 MNOPROTO { int _umtx_lock(struct umtx *umtx); } ==== //depot/projects/smpng/sys/compat/linux/linux_util.h#10 (text+ko) ==== @@ -28,7 +28,7 @@ * * from: svr4_util.h,v 1.5 1994/11/18 02:54:31 christos Exp * from: linux_util.h,v 1.2 1995/03/05 23:23:50 fvdl Exp - * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.22 2004/08/15 11:52:45 tjr Exp $ + * $FreeBSD: src/sys/compat/linux/linux_util.h,v 1.23 2004/10/10 18:34:30 dwmalone Exp $ */ /* @@ -80,17 +80,17 @@ int linux_emul_convpath(struct thread *, char *, enum uio_seg, char **, int); int linux_emul_find(struct thread *, caddr_t *, char *, char **, int); -#define CHECKALT(p, sgp, path, i) \ +#define CHECKALT(td, sgp, path, i) \ do { \ int _error; \ \ - _error = linux_emul_find(p, sgp, path, &path, i); \ + _error = linux_emul_find(td, sgp, path, &path, i); \ if (_error == EFAULT) \ return (_error); \ } while (0) -#define CHECKALTEXIST(p, sgp, path) CHECKALT(p, sgp, path, 0) -#define CHECKALTCREAT(p, sgp, path) CHECKALT(p, sgp, path, 1) +#define CHECKALTEXIST(td, sgp, path) CHECKALT(td, sgp, path, 0) +#define CHECKALTCREAT(td, sgp, path) CHECKALT(td, sgp, path, 1) #define LCONVPATH(td, upath, pathp, i) \ do { \ @@ -108,9 +108,9 @@ #define DUMMY(s) \ int \ -linux_ ## s(struct thread *p, struct linux_ ## s ## _args *args) \ +linux_ ## s(struct thread *td, struct linux_ ## s ## _args *args) \ { \ - return (unimplemented_syscall(p, #s)); \ + return (unimplemented_syscall(td, #s)); \ } \ struct __hack ==== //depot/projects/smpng/sys/conf/files#124 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.955 2004/09/30 07:04:03 phk Exp $ +# $FreeBSD: src/sys/conf/files,v 1.956 2004/10/08 00:24:30 brooks Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1252,7 +1252,6 @@ net/if_tun.c optional tun net/if_tap.c optional tap net/if_vlan.c optional vlan -net/net_osdep.c standard net/netisr.c standard net/ppp_deflate.c optional ppp_deflate net/ppp_tty.c optional ppp ==== //depot/projects/smpng/sys/conf/files.i386#68 (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.504 2004/08/16 12:25:47 obrien Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.505 2004/10/07 16:21:03 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -282,6 +282,7 @@ i386/isa/mse.c optional mse i386/isa/nmi.c standard i386/isa/npx.c optional npx +i386/isa/pbio.c optional pbio i386/isa/pcf.c optional pcf i386/isa/pcvt/pcvt_drv.c optional vt i386/isa/pcvt/pcvt_ext.c optional vt ==== //depot/projects/smpng/sys/conf/files.sparc64#43 (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.sparc64,v 1.59 2004/08/15 22:59:34 marius Exp $ +# $FreeBSD: src/sys/conf/files.sparc64,v 1.60 2004/10/09 07:31:02 yongari Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -12,6 +12,8 @@ crypto/des/des_enc.c optional ipsec ipsec_esp crypto/blowfish/bf_enc.c optional crypto crypto/des/des_enc.c optional crypto +dev/auxio/auxio.c optional auxio sbus +dev/auxio/auxio.c optional auxio ebus dev/esp/esp_sbus.c optional esp sbus dev/esp/lsi64854.c optional esp sbus dev/fb/creator.c optional creator sc ==== //depot/projects/smpng/sys/conf/kern.pre.mk#40 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.57 2004/09/23 22:53:22 cognet Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.59 2004/10/07 20:36:56 kensmith Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. ==== //depot/projects/smpng/sys/conf/kmod.mk#35 (text+ko) ==== @@ -1,43 +1,43 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/sys/conf/kmod.mk,v 1.167 2004/08/29 02:00:50 iedowse Exp $ +# $FreeBSD: src/sys/conf/kmod.mk,v 1.171 2004/10/12 15:08:24 ru Exp $ # -# The include file handles installing Kernel Loadable Device -# drivers (KLD's). +# The include file handles building and installing loadable +# kernel modules. # # # +++ variables +++ # # CLEANFILES Additional files to remove for the clean and cleandir targets. # -# KMOD The name of the kernel module to build. +# EXPORT_SYMS A list of symbols that should be exported from the module, +# or the name of a file containing a list of symbols, or YES +# to export all symbols. If not defined, no symbols are +# exported. +# +# KMOD The name of the kernel module to build. # # KMODDIR Base path for kernel modules (see kld(4)). [/boot/kernel] # -# KMODOWN KLD owner. [${BINOWN}] +# KMODOWN Module file owner. [${BINOWN}] # -# KMODGRP KLD group. [${BINGRP}] +# KMODGRP Module file group. [${BINGRP}] # -# KMODMODE KLD mode. [${BINMODE}] +# KMODMODE Module file mode. [${BINMODE}] # # KMODLOAD Command to load a kernel module [/sbin/kldload] # # KMODUNLOAD Command to unload a kernel module [/sbin/kldunload] # -# PROG The name of the kernel module to build. -# If not supplied, ${KMOD}.o is used. +# MFILES Optionally a list of interfaces used by the module. +# This file contains a default list of interfaces. # -# SRCS List of source files +# PROG The name of the kernel module to build. +# If not supplied, ${KMOD}.ko is used. # -# DESTDIR Change the tree where the module gets installed. [not set] +# SRCS List of source files. # -# MFILES Optionally a list of interfaces used by the module. -# This file contains a default list of interfaces. +# DESTDIR The tree where the module gets installed. [not set] # -# EXPORT_SYMS A list of symbols that should be exported from the module, -# or the name of a file containing a list of symbols, or YES -# to export all symbols. If not defined, no symbols are -# exported. -# # +++ targets +++ # # install: @@ -48,14 +48,11 @@ # is executed. # # load: -# Load KLD. +# Load a module. # # unload: -# Unload KLD. +# Unload a module. # -# bsd.obj.mk: clean, cleandir and obj -# bsd.dep.mk: cleandepend, depend and tags -# AWK?= awk KMODLOAD?= /sbin/kldload @@ -63,7 +60,7 @@ OBJCOPY?= objcopy .if defined(KMODDEPS) -.error "Do not use KMODDEPS on 5.0+, use MODULE_VERSION/MODULE_DEPEND" +.error "Do not use KMODDEPS on 5.0+; use MODULE_VERSION/MODULE_DEPEND" .endif .include @@ -88,10 +85,10 @@ .endif CFLAGS+= ${NOSTDINC} -I- ${INCLMAGIC} ${_ICFLAGS} .if defined(KERNBUILDDIR) -CFLAGS+= -include ${KERNBUILDDIR}/opt_global.h +CFLAGS+= -include ${KERNBUILDDIR}/opt_global.h .endif -# Add -I paths for system headers. Individual KLD makefiles don't +# Add -I paths for system headers. Individual module makefiles don't # need any -I paths for this. Similar defaults for .PATH can't be # set because there are no standard paths for non-headers. CFLAGS+= -I. -I@ @@ -130,7 +127,7 @@ CFLAGS+= -fno-omit-frame-pointer .endif -OBJS+= ${SRCS:N*.h:R:S/$/.o/g} +OBJS+= ${SRCS:N*.h:R:S/$/.o/g} .if !defined(PROG) PROG= ${KMOD}.ko @@ -154,7 +151,7 @@ EXPORT_SYMS?= NO .if ${EXPORT_SYMS} != YES -CLEANFILES+= ${.OBJDIR}/export_syms +CLEANFILES+= export_syms .endif .if ${MACHINE_ARCH} != amd64 @@ -166,15 +163,14 @@ .if defined(EXPORT_SYMS) .if ${EXPORT_SYMS} != YES .if ${EXPORT_SYMS} == NO - touch ${.OBJDIR}/export_syms + touch export_syms .elif !exists(${.CURDIR}/${EXPORT_SYMS}) - echo ${EXPORT_SYMS} > ${.OBJDIR}/export_syms + echo ${EXPORT_SYMS} > export_syms .else - grep -v '^#' < ${EXPORT_SYMS} > ${.OBJDIR}/export_syms + grep -v '^#' < ${EXPORT_SYMS} > export_syms .endif awk -f ${SYSDIR}/conf/kmod_syms.awk ${.TARGET} \ - ${.OBJDIR}/export_syms | \ - xargs -J% ${OBJCOPY} % ${.TARGET} + export_syms | xargs -J% ${OBJCOPY} % ${.TARGET} .endif .endif .if !defined(DEBUG_FLAGS) && ${MACHINE_ARCH} == amd64 @@ -186,7 +182,6 @@ all: objwarn ${PROG} beforedepend: ${_ILINKS} - @rm -f .depend # Ensure that the links exist without depending on it when it exists which # causes all the modules to be rebuilt when the directory pointed to changes. @@ -217,7 +212,7 @@ ${ECHO} ${.TARGET} "->" $$path ; \ ln -s $$path ${.TARGET} >>> TRUNCATED FOR MAIL (1000 lines) <<<