Date: Fri, 1 Oct 2004 14:25:40 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 62507 for review Message-ID: <200410011425.i91EPeQE017705@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=62507 Change 62507 by jhb@jhb_slimer on 2004/10/01 14:25:19 IFC @62506. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/bios.c#1 branch .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#30 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#14 integrate .. //depot/projects/smpng/sys/amd64/amd64/mptable.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#35 integrate .. //depot/projects/smpng/sys/amd64/include/pc/bios.h#1 branch .. //depot/projects/smpng/sys/amd64/include/pmap.h#15 integrate .. //depot/projects/smpng/sys/arm/arm/bcopyinout.S#2 integrate .. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#4 integrate .. //depot/projects/smpng/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/smpng/sys/arm/arm/db_trace.c#6 integrate .. //depot/projects/smpng/sys/arm/arm/elf_machdep.c#4 integrate .. //depot/projects/smpng/sys/arm/arm/exception.S#3 integrate .. //depot/projects/smpng/sys/arm/arm/fusu.S#2 integrate .. //depot/projects/smpng/sys/arm/arm/genassym.c#2 integrate .. //depot/projects/smpng/sys/arm/arm/identcpu.c#2 integrate .. //depot/projects/smpng/sys/arm/arm/intr.c#3 integrate .. //depot/projects/smpng/sys/arm/arm/irq_dispatch.S#2 integrate .. //depot/projects/smpng/sys/arm/arm/locore.S#3 integrate .. //depot/projects/smpng/sys/arm/arm/machdep.c#5 integrate .. //depot/projects/smpng/sys/arm/arm/nexus_io.c#3 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#8 integrate .. //depot/projects/smpng/sys/arm/arm/support.S#4 integrate .. //depot/projects/smpng/sys/arm/arm/swtch.S#2 integrate .. //depot/projects/smpng/sys/arm/arm/sys_machdep.c#3 integrate .. //depot/projects/smpng/sys/arm/arm/trap.c#2 integrate .. //depot/projects/smpng/sys/arm/arm/uio_machdep.c#3 integrate .. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#4 integrate .. //depot/projects/smpng/sys/arm/conf/IQ31244#1 branch .. //depot/projects/smpng/sys/arm/conf/SIMICS#2 integrate .. //depot/projects/smpng/sys/arm/include/asm.h#2 integrate .. //depot/projects/smpng/sys/arm/include/asmacros.h#2 integrate .. //depot/projects/smpng/sys/arm/include/bus.h#3 integrate .. //depot/projects/smpng/sys/arm/include/intr.h#2 integrate .. //depot/projects/smpng/sys/arm/include/md_var.h#2 integrate .. //depot/projects/smpng/sys/arm/include/param.h#5 integrate .. //depot/projects/smpng/sys/arm/include/pcb.h#4 integrate .. //depot/projects/smpng/sys/arm/include/pmap.h#4 integrate .. //depot/projects/smpng/sys/arm/include/profile.h#5 integrate .. //depot/projects/smpng/sys/arm/include/pte.h#2 integrate .. //depot/projects/smpng/sys/arm/include/signal.h#5 integrate .. //depot/projects/smpng/sys/arm/include/sysarch.h#1 branch .. //depot/projects/smpng/sys/arm/include/vmparam.h#3 integrate .. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#4 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0.c#4 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_io.c#3 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_irq.S#2 integrate .. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_irqhandler.c#2 integrate .. //depot/projects/smpng/sys/arm/sa11x0/std.sa11x0#2 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/files.i80321#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/files.iq31244#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_intr.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_mcu.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_pci.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_space.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321reg.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321var.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321reg.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321var.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/obio.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/obio_space.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/obiovar.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/std.i80321#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/std.iq31244#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/uart_bus_i80321.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/i80321/uart_cpu_i80321.c#1 branch .. //depot/projects/smpng/sys/arm/xscale/xscalereg.h#1 branch .. //depot/projects/smpng/sys/arm/xscale/xscalevar.h#1 branch .. //depot/projects/smpng/sys/boot/common/commands.c#5 integrate .. //depot/projects/smpng/sys/boot/common/help.common#14 integrate .. //depot/projects/smpng/sys/boot/common/loader.8#30 integrate .. //depot/projects/smpng/sys/boot/forth/loader.4th.8#7 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#29 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf.5#8 integrate .. //depot/projects/smpng/sys/boot/i386/loader/help.i386#5 integrate .. //depot/projects/smpng/sys/boot/ia64/Makefile#3 integrate .. //depot/projects/smpng/sys/boot/ia64/libski/Makefile#8 delete .. //depot/projects/smpng/sys/boot/ia64/libski/acpi_stub.c#4 delete .. //depot/projects/smpng/sys/boot/ia64/libski/bootinfo.c#6 delete .. //depot/projects/smpng/sys/boot/ia64/libski/copy.c#4 delete .. //depot/projects/smpng/sys/boot/ia64/libski/delay.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/devicename.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/efi_stub.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/elf_freebsd.c#9 delete .. //depot/projects/smpng/sys/boot/ia64/libski/exit.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/libski.h#4 delete .. //depot/projects/smpng/sys/boot/ia64/libski/module.c#4 delete .. //depot/projects/smpng/sys/boot/ia64/libski/pal_stub.S#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/sal_stub.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/skiconsole.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/skifs.c#3 delete .. //depot/projects/smpng/sys/boot/ia64/libski/ssc.c#4 delete .. //depot/projects/smpng/sys/boot/ia64/libski/time.c#5 delete .. //depot/projects/smpng/sys/boot/ia64/ski/Makefile#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/acpi_stub.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/bootinfo.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/conf.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/copy.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/delay.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/devicename.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/efi_stub.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/elf_freebsd.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/exit.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/ldscript.ia64#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/libski.h#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/main.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/pal_stub.S#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/sal_stub.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/skiconsole.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/skifs.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/skiload.cmd#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/ssc.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/start.S#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/time.c#1 branch .. //depot/projects/smpng/sys/boot/ia64/ski/version#1 branch .. //depot/projects/smpng/sys/boot/ia64/skiload/Makefile#11 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/conf.c#4 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/ldscript.ia64#3 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/main.c#5 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/skiload.cmd#2 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/start.S#3 delete .. //depot/projects/smpng/sys/boot/ia64/skiload/version#3 delete .. //depot/projects/smpng/sys/boot/pc98/loader/help.pc98#2 integrate .. //depot/projects/smpng/sys/compat/linux/linux_stats.c#20 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#33 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#3 integrate .. //depot/projects/smpng/sys/conf/files#123 integrate .. //depot/projects/smpng/sys/conf/files.amd64#23 integrate .. //depot/projects/smpng/sys/conf/files.ia64#45 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#39 integrate .. //depot/projects/smpng/sys/conf/ldscript.arm#2 integrate .. //depot/projects/smpng/sys/conf/majors#41 integrate .. //depot/projects/smpng/sys/conf/options.arm#2 integrate .. //depot/projects/smpng/sys/contrib/ipfilter/netinet/ip_fil.c#17 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#10 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#10 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pfvar.h#6 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#22 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#61 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#31 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#44 integrate .. //depot/projects/smpng/sys/dev/ata/ata-disk.c#44 integrate .. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#20 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#49 integrate .. //depot/projects/smpng/sys/dev/ata/ata-queue.c#19 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#46 integrate .. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#24 integrate .. //depot/projects/smpng/sys/dev/dcons/dcons.c#6 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#36 integrate .. //depot/projects/smpng/sys/dev/em/if_em_hw.c#14 integrate .. //depot/projects/smpng/sys/dev/fb/vga.c#18 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#10 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_acpi.c#6 integrate .. //depot/projects/smpng/sys/dev/mii/brgphy.c#22 integrate .. //depot/projects/smpng/sys/dev/mii/miidevs#14 integrate .. //depot/projects/smpng/sys/dev/musycc/musycc.c#10 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#42 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#16 integrate .. //depot/projects/smpng/sys/dev/snp/snp.c#18 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#30 integrate .. //depot/projects/smpng/sys/dev/syscons/scvgarndr.c#6 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.c#43 integrate .. //depot/projects/smpng/sys/dev/usb/ucom.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/ucomvar.h#6 integrate .. //depot/projects/smpng/sys/dev/usb/ugen.c#27 integrate .. //depot/projects/smpng/sys/dev/usb/usb_port.h#21 integrate .. //depot/projects/smpng/sys/dev/usb/usb_subr.c#26 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_rule.c#9 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_dbregs.c#14 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_fpregs.c#14 integrate .. //depot/projects/smpng/sys/fs/procfs/procfs_regs.c#14 integrate .. //depot/projects/smpng/sys/fs/specfs/spec_vnops.c#39 integrate .. //depot/projects/smpng/sys/geom/geom_dev.c#37 integrate .. //depot/projects/smpng/sys/geom/geom_io.c#33 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#7 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.h#3 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.c#5 integrate .. //depot/projects/smpng/sys/geom/raid3/g_raid3.h#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#5 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_list.c#2 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_plex.c#7 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_raid5.c#5 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_raid5.h#4 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_var.h#3 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_extern.h#9 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_readwrite.c#8 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#36 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_vnops.c#24 integrate .. //depot/projects/smpng/sys/i386/i386/mptable.c#12 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#73 integrate .. //depot/projects/smpng/sys/i386/include/pmap.h#24 integrate .. //depot/projects/smpng/sys/i386/linux/linux_ptrace.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_trap.c#1 branch .. //depot/projects/smpng/sys/ia64/ia64/exception.S#9 integrate .. //depot/projects/smpng/sys/ia64/ia64/genassym.c#25 integrate .. //depot/projects/smpng/sys/ia64/ia64/trap.c#69 integrate .. //depot/projects/smpng/sys/ia64/include/md_var.h#17 integrate .. //depot/projects/smpng/sys/isa/psm.c#30 integrate .. //depot/projects/smpng/sys/isa/syscons_isa.c#9 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vfsops.c#31 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#40 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#32 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#85 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#85 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#31 integrate .. //depot/projects/smpng/sys/kern/kern_resource.c#51 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#97 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#68 integrate .. //depot/projects/smpng/sys/kern/subr_kdb.c#6 integrate .. //depot/projects/smpng/sys/kern/subr_unit.c#1 branch .. //depot/projects/smpng/sys/kern/tty.c#48 integrate .. //depot/projects/smpng/sys/kern/tty_cons.c#30 integrate .. //depot/projects/smpng/sys/kern/uipc_mbuf.c#31 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#51 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#69 integrate .. //depot/projects/smpng/sys/kern/vfs_cluster.c#33 integrate .. //depot/projects/smpng/sys/kern/vfs_default.c#28 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#34 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#84 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#51 integrate .. //depot/projects/smpng/sys/modules/mem/Makefile#2 integrate .. //depot/projects/smpng/sys/net/bridge.c#30 integrate .. //depot/projects/smpng/sys/net/pfil.c#6 integrate .. //depot/projects/smpng/sys/net/pfil.h#7 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#49 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#11 integrate .. //depot/projects/smpng/sys/netinet/ip_fw.h#23 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#41 integrate .. //depot/projects/smpng/sys/netinet/ip_fw_pfil.c#5 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#59 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#66 integrate .. //depot/projects/smpng/sys/netinet6/ip6_forward.c#12 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#36 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#35 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#9 integrate .. //depot/projects/smpng/sys/netipsec/key.c#13 integrate .. //depot/projects/smpng/sys/netipsec/key.h#3 integrate .. //depot/projects/smpng/sys/netkey/key.c#26 integrate .. //depot/projects/smpng/sys/nfs4client/nfs4_vnops.c#8 integrate .. //depot/projects/smpng/sys/nfsclient/nfs.h#20 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#32 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_subs.c#21 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#42 integrate .. //depot/projects/smpng/sys/nfsclient/nfsnode.h#9 integrate .. //depot/projects/smpng/sys/pci/if_dc.c#60 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#21 integrate .. //depot/projects/smpng/sys/pci/if_xl.c#50 integrate .. //depot/projects/smpng/sys/powerpc/powermac/uninorth.c#7 integrate .. //depot/projects/smpng/sys/powerpc/powermac/uninorthvar.h#3 integrate .. //depot/projects/smpng/sys/sparc64/include/smp.h#14 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/counter.c#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#66 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#23 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/rwindow.c#8 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#42 integrate .. //depot/projects/smpng/sys/sys/buf.h#30 integrate .. //depot/projects/smpng/sys/sys/conf.h#33 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#44 integrate .. //depot/projects/smpng/sys/sys/param.h#72 integrate .. //depot/projects/smpng/sys/sys/proc.h#129 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#10 integrate .. //depot/projects/smpng/sys/sys/systm.h#56 integrate .. //depot/projects/smpng/sys/sys/tty.h#17 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_extern.h#14 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#59 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#33 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_extern.h#14 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#40 integrate .. //depot/projects/smpng/sys/vm/device_pager.c#18 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#49 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#49 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#30 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.620 2004/09/05 02:09:52 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.621 2004/09/24 01:11:11 peter Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -111,6 +111,7 @@ #include <machine/specialreg.h> #include <machine/intr_machdep.h> #include <machine/md_var.h> +#include <machine/pc/bios.h> #include <machine/metadata.h> #include <machine/proc.h> #ifdef PERFMON @@ -798,12 +799,6 @@ #define PHYSMAP_SIZE (2 * 8) -struct bios_smap { - u_int64_t base; - u_int64_t length; - u_int32_t type; -} __packed; - u_int basemem; /* ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.246 2004/09/01 06:42:01 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.247 2004/09/29 01:59:10 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -539,12 +539,14 @@ u_int32_t mpbioswarmvec; int apic_id, cpu, i; u_int64_t *pt4, *pt3, *pt2; + vm_offset_t va = boot_address + KERNBASE; mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); /* install the AP 1st level boot code */ - pmap_kenter(boot_address + KERNBASE, boot_address); - bcopy(mptramp_start, (void *)((uintptr_t)boot_address + KERNBASE), bootMP_size); + pmap_kenter(va, boot_address); + pmap_invalidate_page(kernel_pmap, va); + bcopy(mptramp_start, (void *)va, bootMP_size); /* Locate the page tables, they'll be below the trampoline */ pt4 = (u_int64_t *)(uintptr_t)(mptramp_pagetables + KERNBASE); ==== //depot/projects/smpng/sys/amd64/amd64/mptable.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.232 2004/07/08 01:42:49 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.233 2004/09/29 01:58:24 peter Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -928,7 +928,9 @@ if (args->vector == vector) return; KASSERT(args->vector == -1, - ("Multiple entries for PCI IRQ %d", args->vector)); + ("Multiple IRQs for PCI interrupt %d.%d.INT%c: %d and %d\n", + args->bus, args->irq >> 2, 'A' + (args->irq & 0x3), args->vector, + vector)); args->vector = vector; } ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#35 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.502 2004/09/22 05:01:48 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.503 2004/09/29 19:20:39 alc Exp $"); /* * Manages physical address maps. @@ -110,6 +110,7 @@ #include <sys/systm.h> #include <sys/kernel.h> #include <sys/lock.h> +#include <sys/malloc.h> #include <sys/mman.h> #include <sys/msgbuf.h> #include <sys/mutex.h> @@ -212,9 +213,9 @@ vm_offset_t va, pd_entry_t ptepde); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); -static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va); +static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags); -static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex); +static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags); static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); @@ -1101,22 +1102,26 @@ * race conditions. */ static vm_page_t -_pmap_allocpte(pmap, ptepindex) - pmap_t pmap; - vm_pindex_t ptepindex; +_pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags) { vm_page_t m, pdppg, pdpg; + KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || + (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, + ("_pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK")); + /* * Allocate a page table page. */ if ((m = vm_page_alloc(NULL, ptepindex, VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) { - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); - VM_WAIT; - vm_page_lock_queues(); - PMAP_LOCK(pmap); + if (flags & M_WAITOK) { + PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); + VM_WAIT; + vm_page_lock_queues(); + PMAP_LOCK(pmap); + } /* * Indicate the need to retry. While waiting, the page table @@ -1156,7 +1161,8 @@ pml4 = &pmap->pm_pml4[pml4index]; if ((*pml4 & PG_V) == 0) { /* Have to allocate a new pdp, recurse */ - if (_pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index) == NULL) { + if (_pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index, + flags) == NULL) { --m->wire_count; vm_page_free(m); return (NULL); @@ -1187,7 +1193,8 @@ pml4 = &pmap->pm_pml4[pml4index]; if ((*pml4 & PG_V) == 0) { /* Have to allocate a new pd, recurse */ - if (_pmap_allocpte(pmap, NUPDE + pdpindex) == NULL) { + if (_pmap_allocpte(pmap, NUPDE + pdpindex, + flags) == NULL) { --m->wire_count; vm_page_free(m); return (NULL); @@ -1199,7 +1206,8 @@ pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)]; if ((*pdp & PG_V) == 0) { /* Have to allocate a new pd, recurse */ - if (_pmap_allocpte(pmap, NUPDE + pdpindex) == NULL) { + if (_pmap_allocpte(pmap, NUPDE + pdpindex, + flags) == NULL) { --m->wire_count; vm_page_free(m); return (NULL); @@ -1221,12 +1229,16 @@ } static vm_page_t -pmap_allocpte(pmap_t pmap, vm_offset_t va) +pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags) { vm_pindex_t ptepindex; pd_entry_t *pd; vm_page_t m; + KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT || + (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK, + ("pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK")); + /* * Calculate pagetable page index */ @@ -1259,8 +1271,8 @@ * Here if the pte page isn't mapped, or if it has been * deallocated. */ - m = _pmap_allocpte(pmap, ptepindex); - if (m == NULL) + m = _pmap_allocpte(pmap, ptepindex, flags); + if (m == NULL && (flags & M_WAITOK)) goto retry; } return (m); @@ -1848,7 +1860,7 @@ * resident, we are creating it here. */ if (va < VM_MAXUSER_ADDRESS) { - mpte = pmap_allocpte(pmap, va); + mpte = pmap_allocpte(pmap, va, M_WAITOK); } #if 0 && defined(PMAP_DIAGNOSTIC) else { @@ -2029,7 +2041,8 @@ mpte = PHYS_TO_VM_PAGE(*ptepa & PG_FRAME); mpte->wire_count++; } else { - mpte = _pmap_allocpte(pmap, ptepindex); + mpte = _pmap_allocpte(pmap, ptepindex, + M_WAITOK); if (mpte == NULL) goto retry; } @@ -2224,7 +2237,13 @@ return; vm_page_lock_queues(); - PMAP_LOCK(dst_pmap); + if (dst_pmap < src_pmap) { + PMAP_LOCK(dst_pmap); + PMAP_LOCK(src_pmap); + } else { + PMAP_LOCK(src_pmap); + PMAP_LOCK(dst_pmap); + } for (addr = src_addr; addr < end_addr; addr = va_next) { pt_entry_t *src_pte, *dst_pte; vm_page_t dstmpte, srcmpte; @@ -2303,9 +2322,12 @@ * pte still being around... allocpte can * block. */ - dstmpte = pmap_allocpte(dst_pmap, addr); + dstmpte = pmap_allocpte(dst_pmap, addr, + M_NOWAIT); + if (dstmpte == NULL) + break; dst_pte = pmap_pte(dst_pmap, addr); - if ((*dst_pte == 0) && (ptetemp = *src_pte)) { + if (*dst_pte == 0) { /* * Clear the modified and * accessed (referenced) bits @@ -2325,6 +2347,7 @@ } } vm_page_unlock_queues(); + PMAP_UNLOCK(src_pmap); PMAP_UNLOCK(dst_pmap); } ==== //depot/projects/smpng/sys/amd64/include/pmap.h#15 (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.123 2004/09/11 01:31:26 scottl Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.124 2004/09/29 19:20:39 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -240,7 +240,7 @@ mtx_assert(&(pmap)->pm_mtx, (type)) #define PMAP_LOCK_DESTROY(pmap) mtx_destroy(&(pmap)->pm_mtx) #define PMAP_LOCK_INIT(pmap) mtx_init(&(pmap)->pm_mtx, "pmap", \ - NULL, MTX_DEF) + NULL, MTX_DEF | MTX_DUPOK) #define PMAP_LOCKED(pmap) mtx_owned(&(pmap)->pm_mtx) #define PMAP_MTX(pmap) (&(pmap)->pm_mtx) #define PMAP_TRYLOCK(pmap) mtx_trylock(&(pmap)->pm_mtx) ==== //depot/projects/smpng/sys/arm/arm/bcopyinout.S#2 (text+ko) ==== @@ -40,9 +40,9 @@ #include <machine/asm.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout.S,v 1.1 2004/05/14 11:46:42 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout.S,v 1.2 2004/09/23 21:56:36 cognet Exp $"); #ifdef __XSCALE__ -#include "bcopyinout_xscale.S" +#include <arm/arm/bcopyinout_xscale.S> #else .text ==== //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.3 2004/09/08 04:54:18 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.4 2004/09/23 21:57:47 cognet Exp $"); /* * MacPPC bus dma support routines @@ -79,19 +79,18 @@ */ struct arm32_dma_range *ranges; int _nranges; - }; -struct arm_seglist { - bus_dma_segment_t seg; - SLIST_ENTRY(arm_seglist) next; -}; - -#define MAX_SEGS 512 +#define DMAMAP_LINEAR 0x1 +#define DMAMAP_MBUF 0x2 +#define DMAMAP_UIO 0x4 +#define DMAMAP_TYPE_MASK (DMAMAP_LINEAR|DMAMAP_MBUF|DMAMAP_UIO) +#define DMAMAP_COHERENT 0x8 struct bus_dmamap { - bus_dma_tag_t dmat; - int flags; - SLIST_HEAD(, arm_seglist) seglist; + bus_dma_tag_t dmat; + int flags; + void *buffer; + int len; }; /* @@ -103,6 +102,7 @@ bus_dmamap_t map, void *buf, bus_size_t buflen, struct thread *td, int flags, vm_offset_t *lastaddrp, int *segp, int first); + static __inline struct arm32_dma_range * _bus_dma_inrange(struct arm32_dma_range *ranges, int nranges, bus_addr_t curaddr) @@ -161,6 +161,8 @@ /* * Allocate a device specific dma_tag. */ +#define SEG_NB 1024 + int bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, bus_size_t boundary, bus_addr_t lowaddr, @@ -171,7 +173,6 @@ { bus_dma_tag_t newtag; int error = 0; - /* Return a NULL tag on failure */ *dmat = NULL; @@ -193,6 +194,7 @@ newtag->ref_count = 1; /* Count ourself */ newtag->map_count = 0; newtag->ranges = bus_dma_get_range(); + newtag->_nranges = bus_dma_get_range_nb(); if (lockfunc != NULL) { newtag->lockfunc = lockfunc; newtag->lockfuncarg = lockfuncarg; @@ -200,7 +202,6 @@ newtag->lockfunc = dflt_lock; newtag->lockfuncarg = NULL; } - /* * Take into account any restrictions imposed by our parent tag */ @@ -257,34 +258,6 @@ return (0); } -static void -arm_dmamap_freesegs(bus_dmamap_t map) -{ - struct arm_seglist *seg = SLIST_FIRST(&map->seglist); - - while (seg) { - struct arm_seglist *next; - - next = SLIST_NEXT(seg, next); - SLIST_REMOVE_HEAD(&map->seglist, next); - free(seg, M_DEVBUF); - seg = next; - } -} - -static int -arm_dmamap_addseg(bus_dmamap_t map, vm_offset_t addr, vm_size_t size) -{ - struct arm_seglist *seg = malloc(sizeof(*seg), M_DEVBUF, M_NOWAIT); - - if (!seg) - return (ENOMEM); - seg->seg.ds_addr = addr; - seg->seg.ds_len = size; - SLIST_INSERT_HEAD(&map->seglist, seg, next); - return (0); -} - /* * Allocate a handle for mapping from kva/uva/physical * address space into bus device space. @@ -297,8 +270,9 @@ newmap = malloc(sizeof(*newmap), M_DEVBUF, M_NOWAIT | M_ZERO); if (newmap == NULL) return (ENOMEM); - SLIST_INIT(&newmap->seglist); *mapp = newmap; + newmap->dmat = dmat; + newmap->flags = 0; dmat->map_count++; return (0); @@ -311,7 +285,7 @@ int bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map) { - arm_dmamap_freesegs(map); + free(map, M_DEVBUF); dmat->map_count--; return (0); @@ -326,7 +300,7 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, bus_dmamap_t *mapp) { - bus_dmamap_t newmap; + bus_dmamap_t newmap = NULL; int mflags; @@ -337,11 +311,16 @@ if (flags & BUS_DMA_ZERO) mflags |= M_ZERO; - newmap = malloc(sizeof(*newmap), M_DEVBUF, M_NOWAIT | M_ZERO); - if (newmap == NULL) - return (ENOMEM); - SLIST_INIT(&newmap->seglist); - *mapp = newmap; + if (!*mapp) { + newmap = malloc(sizeof(*newmap), M_DEVBUF, M_NOWAIT | M_ZERO); + if (newmap == NULL) + return (ENOMEM); + dmat->map_count++; + newmap->flags = 0; + *mapp = newmap; + newmap->dmat = dmat; + } + if (dmat->maxsize <= PAGE_SIZE) { *vaddr = malloc(dmat->maxsize, M_DEVBUF, mflags); } else { @@ -354,13 +333,12 @@ 0ul, dmat->lowaddr, dmat->alignment? dmat->alignment : 1ul, dmat->boundary); } - - if (*vaddr == NULL) { + if (*vaddr == NULL && newmap != NULL) { free(newmap, M_DEVBUF); + dmat->map_count--; *mapp = NULL; return (ENOMEM); } - return (0); } @@ -371,14 +349,12 @@ void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) { - if (map != NULL) - panic("bus_dmamem_free: Invalid map freed\n"); if (dmat->maxsize <= PAGE_SIZE) free(vaddr, M_DEVBUF); else { contigfree(vaddr, dmat->maxsize, M_DEVBUF); } - arm_dmamap_freesegs(map); + dmat->map_count--; free(map, M_DEVBUF); } @@ -398,10 +374,17 @@ bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS]; #endif + map->flags &= ~DMAMAP_TYPE_MASK; + map->flags |= DMAMAP_LINEAR|DMAMAP_COHERENT; + map->buffer = buf; + map->len = buflen; error = bus_dmamap_load_buffer(dmat, dm_segments, map, buf, buflen, NULL, flags, &lastaddr, &nsegs, 1); - (*callback)(callback_arg, dm_segments, nsegs, error); + if (error) + (*callback)(callback_arg, NULL, 0, error); + else + (*callback)(callback_arg, dm_segments, nsegs + 1, error); return (0); } @@ -428,7 +411,6 @@ pt_entry_t pte; pt_entry_t *ptep; - if (td != NULL) pmap = vmspace_pmap(td->td_proc->p_vmspace); else @@ -451,7 +433,7 @@ (vaddr & L1_S_OFFSET); if (*pde & L1_S_CACHE_MASK) { map->flags &= - ~ARM32_DMAMAP_COHERENT; + ~DMAMAP_COHERENT; } } else { pte = *ptep; @@ -463,22 +445,37 @@ (vaddr & L2_L_OFFSET); if (pte & L2_L_CACHE_MASK) { map->flags &= - ~ARM32_DMAMAP_COHERENT; + ~DMAMAP_COHERENT; + } } else { curaddr = (pte & L2_S_FRAME) | (vaddr & L2_S_OFFSET); if (pte & L2_S_CACHE_MASK) { map->flags &= - ~ARM32_DMAMAP_COHERENT; + ~DMAMAP_COHERENT; } } } } else { curaddr = pmap_extract(pmap, vaddr); - map->flags &= ~ARM32_DMAMAP_COHERENT; + map->flags &= ~DMAMAP_COHERENT; } + if (dmat->ranges) { + struct arm32_dma_range *dr; + + dr = _bus_dma_inrange(dmat->ranges, dmat->_nranges, + curaddr); + if (dr == NULL) + return (EINVAL); + /* + * In a valid DMA range. Translate the physical + * memory address to an address in the DMA window. + */ + curaddr = (curaddr - dr->dr_sysbase) + dr->dr_busbase; + + } /* * Compute the segment size, and adjust counts. */ @@ -499,11 +496,6 @@ * Insert chunk into a segment, coalescing with * the previous segment if possible. */ - error = arm_dmamap_addseg(map, - (vm_offset_t)curaddr, sgsize); - if (error) - break; - if (first) { segs[seg].ds_addr = curaddr; segs[seg].ds_len = sgsize; @@ -512,8 +504,11 @@ if (curaddr == lastaddr && (segs[seg].ds_len + sgsize) <= dmat->maxsegsz && (dmat->boundary == 0 || - (segs[seg].ds_addr & bmask) == (curaddr & bmask))) + (segs[seg].ds_addr & bmask) == + (curaddr & bmask))) { segs[seg].ds_len += sgsize; + goto segdone; + } else { if (++seg >= dmat->nsegments) break; @@ -522,6 +517,9 @@ } } + if (error) + break; +segdone: lastaddr = curaddr + sgsize; vaddr += sgsize; buflen -= sgsize; @@ -555,6 +553,9 @@ M_ASSERTPKTHDR(m0); + map->flags &= ~DMAMAP_TYPE_MASK; + map->flags |= DMAMAP_MBUF | DMAMAP_COHERENT; + map->buffer = m0; if (m0->m_pkthdr.len <= dmat->maxsize) { int first = 1; vm_offset_t lastaddr = 0; @@ -578,7 +579,7 @@ */ (*callback)(callback_arg, dm_segments, 0, 0, error); } else { - (*callback)(callback_arg, dm_segments, nsegs+1, + (*callback)(callback_arg, dm_segments, nsegs + 1, m0->m_pkthdr.len, error); } return (error); @@ -605,6 +606,9 @@ resid = uio->uio_resid; iov = uio->uio_iov; + map->flags &= ~DMAMAP_TYPE_MASK; + map->flags |= DMAMAP_UIO|DMAMAP_COHERENT; + map->buffer = uio; if (uio->uio_segflg == UIO_USERSPACE) { td = uio->uio_td; @@ -647,30 +651,73 @@ } /* - * Release the mapping held by map. A no-op on PowerPC. + * Release the mapping held by map. */ void bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map) { - arm_dmamap_freesegs(map); + map->flags &= ~DMAMAP_TYPE_MASK; return; } +static void +bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op) +{ + + if (op & BUS_DMASYNC_POSTREAD || + op == (BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE)) { + cpu_dcache_wbinv_range((vm_offset_t)buf, len); + return; + } + if (op & BUS_DMASYNC_PREWRITE) + cpu_dcache_wb_range((vm_offset_t)buf, len); + if (op & BUS_DMASYNC_PREREAD) { + if ((((vm_offset_t)buf | len) & arm_dcache_align_mask) == 0) + cpu_dcache_inv_range((vm_offset_t)buf, len); + else + cpu_dcache_wbinv_range((vm_offset_t)buf, len); + } +} + void bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op) { - struct arm_seglist *seg = SLIST_FIRST(&map->seglist); - - if (op != BUS_DMASYNC_PREREAD && op != BUS_DMASYNC_PREWRITE) + struct mbuf *m; + struct uio *uio; + int resid; + struct iovec *iov; + + if (op == BUS_DMASYNC_POSTREAD) return; - /* Skip cache frobbing if mapping was COHERENT. */ - if (map->flags & ARM32_DMAMAP_COHERENT) { - /* Drain the write buffer. */ - cpu_drain_writebuf(); + if (map->flags & DMAMAP_COHERENT) return; + switch(map->flags & DMAMAP_TYPE_MASK) { + case DMAMAP_LINEAR: + bus_dmamap_sync_buf(map->buffer, map->len, op); + break; + case DMAMAP_MBUF: + m = map->buffer; + while (m) { + bus_dmamap_sync_buf(m->m_data, m->m_len, op); + m = m->m_next; + } + break; + case DMAMAP_UIO: + uio = map->buffer; + iov = uio->uio_iov; + resid = uio->uio_resid; + for (int i = 0; i < uio->uio_iovcnt && resid != 0; i++) { + bus_size_t minlen = resid < iov[i].iov_len ? resid : + iov[i].iov_len; + if (minlen > 0) { >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410011425.i91EPeQE017705>