PERFORCE change 63082 for review
John Baldwin
jhb at FreeBSD.org
Tue Oct 12 12:10:30 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=63082
Change 63082 by jhb at 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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/bus.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/cdefs.h>
-__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 <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/module.h>
+#include <sys/sysctl.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
@@ -42,6 +43,7 @@
#include <isa/isavar.h>
#include <machine/legacyvar.h>
#include <machine/pci_cfgreg.h>
+#include <machine/resource.h>
#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 <sys/cdefs.h>
-__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 <sys/param.h>
@@ -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 at 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 <sys/cdefs.h>
-__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 <bsd.kmod.mk> handles installing Kernel Loadable Device
-# drivers (KLD's).
+# The include file <bsd.kmod.mk> 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 <bsd.init.mk>
@@ -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) <<<
More information about the p4-projects
mailing list