From owner-p4-projects@FreeBSD.ORG Sun Aug 30 20:22:42 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D7181065672; Sun, 30 Aug 2009 20:22:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41385106566C for ; Sun, 30 Aug 2009 20:22:42 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2EFB18FC15 for ; Sun, 30 Aug 2009 20:22:42 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7UKMg8F046985 for ; Sun, 30 Aug 2009 20:22:42 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7UKMfB7046983 for perforce@freebsd.org; Sun, 30 Aug 2009 20:22:41 GMT (envelope-from zec@fer.hr) Date: Sun, 30 Aug 2009 20:22:41 GMT Message-Id: <200908302022.n7UKMfB7046983@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167989 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Aug 2009 20:22:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=167989 Change 167989 by zec@zec_tpx32 on 2009/08/30 20:22:09 IFC @ 167987 Affected files ... .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/elf_machdep.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#20 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/amd64/trap.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/amd64/linux32/linux32_sysvec.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/arm/arm/vm_machdep.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/conf/SHEEVAPLUG#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/common.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/discovery/db78xxx.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/db88f6xxx.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/files.db88f6xxx#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/files.kirkwood#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/files.sheevaplug#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/sheevaplug.c#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/std.db88f6xxx#2 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/std.kirkwood#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/std.sheevaplug#1 branch .. //depot/projects/vimage-commit2/src/sys/arm/mv/mv_machdep.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/mvreg.h#7 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/mvvar.h#4 integrate .. //depot/projects/vimage-commit2/src/sys/arm/mv/orion/db88f5xxx.c#5 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_all.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_all.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_da.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/cam/scsi/scsi_da.c#6 integrate .. //depot/projects/vimage-commit2/src/sys/compat/ia32/ia32_sysvec.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_ioctl.c#26 integrate .. //depot/projects/vimage-commit2/src/sys/conf/NOTES#38 integrate .. //depot/projects/vimage-commit2/src/sys/conf/options.arm#6 integrate .. //depot/projects/vimage-commit2/src/sys/contrib/pf/net/pf_if.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/dev/acpica/acpi.c#14 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ahci/ahci.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ahci/ahci.h#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/alc/if_alc.c#4 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ath/ath_hal/ah_regdomain.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/ixgbe/ixgbe.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/dev/mge/if_mge.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/dev/re/if_re.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/dev/siis/siis.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/scvgarndr.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/dev/syscons/scvidctl.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_process.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/fs/fifofs/fifo_vnops.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/geom/multipath/g_multipath.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/elf_machdep.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/pmap.c#16 integrate .. //depot/projects/vimage-commit2/src/sys/i386/i386/trap.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/i386/isa/vesa.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/i386/linux/linux_sysvec.c#12 integrate .. //depot/projects/vimage-commit2/src/sys/isa/isahint.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/imgact_elf.c#7 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_conf.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_exit.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_fork.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_jail.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_kthread.c#3 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_proc.c#18 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_thr.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/kern/kern_thread.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/kern/subr_bus.c#13 integrate .. //depot/projects/vimage-commit2/src/sys/kern/uipc_socket.c#34 integrate .. //depot/projects/vimage-commit2/src/sys/kern/vfs_syscalls.c#17 integrate .. //depot/projects/vimage-commit2/src/sys/modules/Makefile#29 integrate .. //depot/projects/vimage-commit2/src/sys/net/flowtable.c#15 integrate .. //depot/projects/vimage-commit2/src/sys/net/if.c#86 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_bridge.c#24 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_llatbl.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_llatbl.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/net/if_var.h#39 integrate .. //depot/projects/vimage-commit2/src/sys/net/rtsock.c#36 integrate .. //depot/projects/vimage-commit2/src/sys/net/vnet.c#9 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/in.c#35 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/ip_output.c#38 integrate .. //depot/projects/vimage-commit2/src/sys/netinet/sctp_bsd_addr.c#10 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/in6.c#28 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/ip6_input.c#39 integrate .. //depot/projects/vimage-commit2/src/sys/netinet6/nd6_rtr.c#32 integrate .. //depot/projects/vimage-commit2/src/sys/pci/if_rlreg.h#14 integrate .. //depot/projects/vimage-commit2/src/sys/sys/conf.h#12 integrate .. //depot/projects/vimage-commit2/src/sys/sys/imgact_elf.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/sys/proc.h#23 integrate .. //depot/projects/vimage-commit2/src/sys/sys/types.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/vm/device_pager.c#8 integrate .. //depot/projects/vimage-commit2/src/sys/vm/sg_pager.c#2 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm.h#5 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_extern.h#6 integrate .. //depot/projects/vimage-commit2/src/sys/vm/vm_glue.c#5 integrate Differences ... ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/elf_machdep.c#6 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.30 2009/04/05 09:27:19 dchagin Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.32 2009/08/30 14:38:17 bz Exp $"); #include #include @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -108,6 +109,22 @@ (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_oinfo); +static Elf64_Brandinfo kfreebsd_brand_info = { + .brand = ELFOSABI_FREEBSD, + .machine = EM_X86_64, + .compat_3_brand = "FreeBSD", + .emul_path = NULL, + .interp_path = "/lib/ld-kfreebsd-x86-64.so.1", + .sysvec = &elf64_freebsd_sysvec, + .interp_newpath = NULL, + .brand_note = &elf64_kfreebsd_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE_MANDATORY +}; + +SYSINIT(kelf64, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf64_insert_brand_entry, + &kfreebsd_brand_info); + void elf64_dump_thread(struct thread *td __unused, void *dst __unused, ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/pmap.c#20 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.669 2009/08/29 16:01:21 rnoland Exp $"); /* * Manages physical address maps. @@ -943,8 +943,8 @@ * coherence domain. */ mfence(); - for (; eva < sva; eva += cpu_clflush_line_size) - clflush(eva); + for (; sva < eva; sva += cpu_clflush_line_size) + clflush(sva); mfence(); } else { ==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/trap.c#8 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.333 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.334 2009/08/24 16:19:47 bz Exp $"); /* * AMD64 Trap and System call handling @@ -409,7 +409,9 @@ * This check also covers the images * without the ABI-tag ELF note. */ - if (p->p_osrel >= 700004) { + if (SV_CURPROC_ABI() == + SV_ABI_FREEBSD && + p->p_osrel >= 700004) { i = SIGSEGV; ucode = SEGV_ACCERR; } else { ==== //depot/projects/vimage-commit2/src/sys/amd64/linux32/linux32_sysvec.c#13 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.52 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.53 2009/08/24 16:19:47 bz Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -127,6 +127,7 @@ static void exec_linux_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings); static void linux32_fixlimit(struct rlimit *rl, int which); +static boolean_t linux32_trans_osrel(const Elf_Note *note, int32_t *osrel); static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1066,14 +1067,38 @@ .sv_flags = SV_ABI_LINUX | SV_ILP32 | SV_IA32 }; -static char GNULINUX_ABI_VENDOR[] = "GNU"; +static char GNU_ABI_VENDOR[] = "GNU"; +static int GNULINUX_ABI_DESC = 0; + +static boolean_t +linux32_trans_osrel(const Elf_Note *note, int32_t *osrel) +{ + const Elf32_Word *desc; + uintptr_t p; + + p = (uintptr_t)(note + 1); + p += roundup2(note->n_namesz, sizeof(Elf32_Addr)); + + desc = (const Elf32_Word *)p; + if (desc[0] != GNULINUX_ABI_DESC) + return (FALSE); + + /* + * For linux we encode osrel as follows (see linux_mib.c): + * VVVMMMIII (version, major, minor), see linux_mib.c. + */ + *osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3]; + + return (TRUE); +} static Elf_Brandnote linux32_brandnote = { - .hdr.n_namesz = sizeof(GNULINUX_ABI_VENDOR), - .hdr.n_descsz = 16, + .hdr.n_namesz = sizeof(GNU_ABI_VENDOR), + .hdr.n_descsz = 16, /* XXX at least 16 */ .hdr.n_type = 1, - .vendor = GNULINUX_ABI_VENDOR, - .flags = 0 + .vendor = GNU_ABI_VENDOR, + .flags = BN_TRANSLATE_OSREL, + .trans_osrel = linux32_trans_osrel }; static Elf32_Brandinfo linux_brand = { ==== //depot/projects/vimage-commit2/src/sys/arm/arm/vm_machdep.c#6 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.40 2009/07/20 07:53:07 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.42 2009/08/29 21:53:08 kib Exp $"); #include #include ==== //depot/projects/vimage-commit2/src/sys/arm/conf/CAMBRIA#6 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.12 2009/07/17 18:35:45 rpaulo Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.14 2009/08/27 17:55:44 sam Exp $ ident CAMBRIA ==== //depot/projects/vimage-commit2/src/sys/arm/mv/common.c#6 (text+ko) ==== @@ -30,10 +30,12 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.7 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/common.c,v 1.8 2009/08/25 09:35:50 raj Exp $"); +#include #include #include +#include #include @@ -62,6 +64,76 @@ static uint32_t used_cpu_wins; +static __inline int +pm_is_disabled(uint32_t mask) +{ + + return (soc_power_ctrl_get(mask) == mask ? 0 : 1); +} + +static __inline uint32_t +obio_get_pm_mask(uint32_t base) +{ + struct obio_device *od; + + for (od = obio_devices; od->od_name != NULL; od++) + if (od->od_base == base) + return (od->od_pwr_mask); + + return (CPU_PM_CTRL_NONE); +} + +/* + * Disable device using power management register. + * 1 - Device Power On + * 0 - Device Power Off + * Mask can be set in loader. + * EXAMPLE: + * loader> set hw.pm-disable-mask=0x2 + * + * Common mask: + * |-------------------------------| + * | Device | Kirkwood | Discovery | + * |-------------------------------| + * | USB0 | 0x00008 | 0x020000 | + * |-------------------------------| + * | USB1 | - | 0x040000 | + * |-------------------------------| + * | USB2 | - | 0x080000 | + * |-------------------------------| + * | GE0 | 0x00001 | 0x000002 | + * |-------------------------------| + * | GE1 | - | 0x000004 | + * |-------------------------------| + * | IDMA | - | 0x100000 | + * |-------------------------------| + * | XOR | 0x10000 | 0x200000 | + * |-------------------------------| + * | CESA | 0x20000 | 0x400000 | + * |-------------------------------| + * | SATA | 0x04000 | 0x004000 | + * --------------------------------| + * This feature can be used only on Kirkwood and Discovery + * machines. + */ +static __inline void +pm_disable_device(int mask) +{ +#ifdef DIAGNOSTIC + uint32_t reg; + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); + + reg &= ~mask; + soc_power_ctrl_set(reg); + printf("Device %x is disabled\n", mask); + + reg = soc_power_ctrl_get(CPU_PM_CTRL_ALL); + printf("Power Management Register: 0%x\n", reg); +#endif +} + uint32_t read_cpu_ctrl(uint32_t reg) { @@ -103,14 +175,36 @@ return (ef); } +/* + * Get the power status of device. This feature is only supported on + * Kirkwood and Discovery SoCs. + */ uint32_t soc_power_ctrl_get(uint32_t mask) { +#ifndef SOC_MV_ORION if (mask != CPU_PM_CTRL_NONE) mask &= read_cpu_ctrl(CPU_PM_CTRL); return (mask); +#else + return (mask); +#endif +} + +/* + * Set the power status of device. This feature is only supported on + * Kirkwood and Discovery SoCs. + */ +void +soc_power_ctrl_set(uint32_t mask) +{ + +#ifndef SOC_MV_ORION + if (mask != CPU_PM_CTRL_NONE) + write_cpu_ctrl(CPU_PM_CTRL, mask); +#endif } void @@ -191,7 +285,14 @@ soc_decode_win(void) { uint32_t dev, rev; + int mask; + mask = 0; + TUNABLE_INT_FETCH("hw.pm-disable-mask", &mask); + + if (mask != 0) + pm_disable_device(mask); + /* Retrieve our ID: some windows facilities vary between SoC models */ soc_id(&dev, &rev); @@ -623,8 +724,12 @@ /* Disable and clear all USB windows for all ports */ m = usb_max_ports(); + for (p = 0; p < m; p++) { + if (pm_is_disabled(CPU_PM_CTRL_USB(p))) + continue; + for (i = 0; i < MV_WIN_USB_MAX; i++) { win_usb_cr_write(i, p, 0); win_usb_br_write(i, p, 0); @@ -710,6 +815,9 @@ uint32_t br, sz; int i, j; + if (pm_is_disabled(obio_get_pm_mask(base))) + return; + /* Disable, clear and revoke protection for all ETH windows */ for (i = 0; i < MV_WIN_ETH_MAX; i++) { @@ -880,6 +988,8 @@ uint32_t br, sz; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_IDMA)) + return; /* * Disable and clear all IDMA windows, revoke protection for all channels */ @@ -1172,6 +1282,9 @@ uint32_t br, sz; int i, j, z, e = 1, m, window; + if (pm_is_disabled(CPU_PM_CTRL_XOR)) + return; + /* * Disable and clear all XOR windows, revoke protection for all * channels @@ -1364,6 +1477,9 @@ uint32_t br, cr; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_CRYPTO)) + return; + /* Disable and clear all CESA windows */ for (i = 0; i < MV_WIN_CESA_MAX; i++) { win_cesa_cr_write(i, 0); @@ -1432,6 +1548,9 @@ uint32_t cr, br; int i, j; + if (pm_is_disabled(CPU_PM_CTRL_SATA)) + return; + for (i = 0; i < MV_WIN_SATA_MAX; i++) { win_sata_cr_write(i, 0); win_sata_br_write(i, 0); ==== //depot/projects/vimage-commit2/src/sys/arm/mv/discovery/db78xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/discovery/db78xxx.c,v 1.4 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/discovery/db78xxx.c,v 1.5 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -68,11 +68,8 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; - /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -105,16 +102,6 @@ { -1, -1, -1 } }; -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/db88f6xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/kirkwood/db88f6xxx.c,v 1.4 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/kirkwood/db88f6xxx.c,v 1.5 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -68,11 +68,8 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; - /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -105,16 +102,6 @@ { -1, -1, -1 } }; -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/files.db88f6xxx#2 (text+ko) ==== @@ -1,5 +1,4 @@ -# $FreeBSD: src/sys/arm/mv/kirkwood/files.db88f6xxx,v 1.1 2008/10/13 20:07:13 raj Exp $ +# $FreeBSD: src/sys/arm/mv/kirkwood/files.db88f6xxx,v 1.2 2009/08/25 09:39:11 raj Exp $ -arm/mv/rtc.c standard -arm/mv/kirkwood/kirkwood.c standard +include "arm/mv/kirkwood/files.kirkwood" arm/mv/kirkwood/db88f6xxx.c standard ==== //depot/projects/vimage-commit2/src/sys/arm/mv/kirkwood/std.db88f6xxx#2 (text+ko) ==== @@ -1,13 +1,8 @@ -# $FreeBSD: src/sys/arm/mv/kirkwood/std.db88f6xxx,v 1.1 2008/10/13 20:07:13 raj Exp $ +# $FreeBSD: src/sys/arm/mv/kirkwood/std.db88f6xxx,v 1.2 2009/08/25 09:39:11 raj Exp $ include "../mv/std.mv" +include "../mv/kirkwood/std.kirkwood" files "../mv/kirkwood/files.db88f6xxx" -makeoptions KERNPHYSADDR=0x00900000 -makeoptions KERNVIRTADDR=0xc0900000 -options KERNPHYSADDR=0x00900000 -options KERNVIRTADDR=0xc0900000 -options PHYSADDR=0x00000000 options PHYSMEM_SIZE=0x20000000 -options STARTUP_PAGETABLE_ADDR=0x00100000 ==== //depot/projects/vimage-commit2/src/sys/arm/mv/mv_machdep.c#7 (text+ko) ==== @@ -39,7 +39,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.6 2009/07/01 20:07:44 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.7 2009/08/25 09:30:03 raj Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -86,6 +86,7 @@ #include #include /* XXX eventually this should be eliminated */ +#include #ifdef DEBUG #define debugf(fmt, args...) printf(fmt, ##args) @@ -133,7 +134,9 @@ vm_paddr_t phys_avail[10]; vm_paddr_t dump_avail[4]; vm_offset_t physical_pages; +vm_offset_t pmap_bootstrap_lastaddr; +const struct pmap_devmap *pmap_devmap_bootstrap_table; struct pv_addr systempage; struct pv_addr msgbufpv; struct pv_addr irqstack; @@ -423,8 +426,8 @@ while (1); /* Platform-specific initialisation */ - if (platform_pmap_init() != 0) - return (NULL); + pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; + pmap_devmap_bootstrap_table = &pmap_devmap[0]; pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); ==== //depot/projects/vimage-commit2/src/sys/arm/mv/mvreg.h#7 (text+ko) ==== @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/mv/mvreg.h,v 1.7 2009/06/24 15:41:18 raj Exp $ + * $FreeBSD: src/sys/arm/mv/mvreg.h,v 1.8 2009/08/25 09:35:50 raj Exp $ */ #ifndef _MVREG_H_ @@ -218,6 +218,7 @@ */ #define CPU_PM_CTRL 0x1C #define CPU_PM_CTRL_NONE 0 +#define CPU_PM_CTRL_ALL ~0x0 #if defined(SOC_MV_KIRKWOOD) #define CPU_PM_CTRL_GE0 (1 << 0) @@ -234,8 +235,11 @@ #define CPU_PM_CTRL_SATA1 (1 << 15) #define CPU_PM_CTRL_XOR1 (1 << 16) #define CPU_PM_CTRL_CRYPTO (1 << 17) -#define CPU_PM_CTRL_GE1 (1 << 18) -#define CPU_PM_CTRL_TDM (1 << 19) +#define CPU_PM_CTRL_GE1 (1 << 19) +#define CPU_PM_CTRL_TDM (1 << 20) +#define CPU_PM_CTRL_XOR (CPU_PM_CTRL_XOR0 | CPU_PM_CTRL_XOR1) +#define CPU_PM_CTRL_USB(u) (CPU_PM_CTRL_USB0) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_SATA0 | CPU_PM_CTRL_SATA1) #elif defined(SOC_MV_DISCOVERY) #define CPU_PM_CTRL_GE0 (1 << 1) #define CPU_PM_CTRL_GE1 (1 << 2) @@ -258,6 +262,14 @@ #define CPU_PM_CTRL_XOR (1 << 21) #define CPU_PM_CTRL_CRYPTO (1 << 22) #define CPU_PM_CTRL_DEVICE (1 << 23) +#define CPU_PM_CTRL_USB(u) (1 << (17 + (u))) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_SATA0 | CPU_PM_CTRL_SATA1) +#else +#define CPU_PM_CTRL_CRYPTO (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_IDMA (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_XOR (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_SATA (CPU_PM_CTRL_NONE) +#define CPU_PM_CTRL_USB(u) (CPU_PM_CTRL_NONE) #endif /* ==== //depot/projects/vimage-commit2/src/sys/arm/mv/mvvar.h#4 (text+ko) ==== @@ -34,13 +34,17 @@ * * from: FreeBSD: //depot/projects/arm/src/sys/arm/xscale/pxa2x0/pxa2x0var.h, rev 1 * - * $FreeBSD: src/sys/arm/mv/mvvar.h,v 1.5 2009/01/09 10:20:51 raj Exp $ + * $FreeBSD: src/sys/arm/mv/mvvar.h,v 1.7 2009/08/25 09:35:50 raj Exp $ */ #ifndef _MVVAR_H_ #define _MVVAR_H_ #include +#include +#include +#include +#include #define MV_TYPE_PCI 0 #define MV_TYPE_PCIE 1 @@ -104,6 +108,7 @@ int remap; }; +extern const struct pmap_devmap pmap_devmap[]; extern const struct obio_pci mv_pci_info[]; extern const struct gpio_config mv_gpio_config[]; extern bus_space_tag_t obio_tag; @@ -124,13 +129,13 @@ void mv_gpio_out(uint32_t pin, uint8_t val, uint8_t enable); uint8_t mv_gpio_in(uint32_t pin); -int platform_pmap_init(void); void platform_mpp_init(void); int soc_decode_win(void); void soc_id(uint32_t *dev, uint32_t *rev); void soc_identify(void); void soc_dump_decode_win(void); uint32_t soc_power_ctrl_get(uint32_t mask); +void soc_power_ctrl_set(uint32_t mask); int decode_win_cpu_set(int target, int attr, vm_paddr_t base, uint32_t size, int remap); ==== //depot/projects/vimage-commit2/src/sys/arm/mv/orion/db88f5xxx.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/mv/orion/db88f5xxx.c,v 1.5 2009/06/12 20:00:38 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/orion/db88f5xxx.c,v 1.6 2009/08/25 09:30:03 raj Exp $"); #include #include @@ -70,12 +70,10 @@ * 0xffff_2000 - 0xffff_ffff : unused (~55KB) */ -const struct pmap_devmap *pmap_devmap_bootstrap_table; -vm_offset_t pmap_bootstrap_lastaddr; int platform_pci_get_irq(u_int bus, u_int slot, u_int func, u_int pin); /* Static device mappings. */ -static const struct pmap_devmap pmap_devmap[] = { +const struct pmap_devmap pmap_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -184,16 +182,6 @@ }; #endif -int -platform_pmap_init(void) -{ - - pmap_bootstrap_lastaddr = MV_BASE - ARM_NOCACHE_KVA_SIZE; - pmap_devmap_bootstrap_table = &pmap_devmap[0]; - - return (0); -} - void platform_mpp_init(void) { ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_all.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.1 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.2 2009/08/30 16:31:25 mav Exp $"); #include @@ -91,7 +91,7 @@ } void -ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, +ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, uint32_t lba, uint8_t sector_count) { bzero(&ataio->cmd, sizeof(ataio->cmd)); ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_all.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/ata/ata_all.h,v 1.1 2009/07/10 08:18:08 scottl Exp $ + * $FreeBSD: src/sys/cam/ata/ata_all.h,v 1.2 2009/08/30 16:31:25 mav Exp $ */ #ifndef CAM_ATA_ALL_H @@ -83,7 +83,7 @@ int ata_version(int ver); void ata_print_ident(struct ata_params *ident_data); -void ata_36bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, +void ata_28bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint8_t features, uint32_t lba, uint8_t sector_count); void ata_48bit_cmd(struct ccb_ataio *ataio, uint8_t cmd, uint16_t features, uint64_t lba, uint16_t sector_count); ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_da.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.2 2009/07/17 21:48:08 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.4 2009/08/30 16:31:25 mav Exp $"); #include @@ -287,7 +287,7 @@ if (softc->flags & ADA_FLAG_CAN_48BIT) ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_48bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); + ata_28bit_cmd(&ccb->ataio, ATA_FLUSHCACHE, 0, 0, 0); cam_periph_runccb(ccb, /*error_routine*/NULL, /*cam_flags*/0, /*sense_flags*/SF_RETRY_UA, softc->disk->d_devstat); @@ -411,7 +411,7 @@ ata_48bit_cmd(&ccb.ataio, ATA_WRITE_DMA48, 0, lba, count); } else { - ata_36bit_cmd(&ccb.ataio, ATA_WRITE_DMA, + ata_28bit_cmd(&ccb.ataio, ATA_WRITE_DMA, 0, lba, count); } xpt_polled_action(&ccb); @@ -441,7 +441,7 @@ if (softc->flags & ADA_FLAG_CAN_48BIT) ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); + ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); xpt_polled_action(&ccb); if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) @@ -856,10 +856,10 @@ } } else { if (bp->bio_cmd == BIO_READ) { - ata_36bit_cmd(ataio, ATA_READ_DMA, + ata_28bit_cmd(ataio, ATA_READ_DMA, 0, lba, count); } else { - ata_36bit_cmd(ataio, ATA_WRITE_DMA, + ata_28bit_cmd(ataio, ATA_WRITE_DMA, 0, lba, count); } } @@ -878,7 +878,7 @@ if (softc->flags & ADA_FLAG_CAN_48BIT) ata_48bit_cmd(ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_48bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0); + ata_28bit_cmd(ataio, ATA_FLUSHCACHE, 0, 0, 0); break; } start_ccb->ccb_h.ccb_state = ADA_CCB_BUFFER_IO; @@ -1126,7 +1126,7 @@ if (softc->flags & ADA_FLAG_CAN_48BIT) ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE48, 0, 0, 0); else - ata_48bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); + ata_28bit_cmd(&ccb.ataio, ATA_FLUSHCACHE, 0, 0, 0); xpt_polled_action(&ccb); if ((ccb.ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) ==== //depot/projects/vimage-commit2/src/sys/cam/ata/ata_xpt.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.4 2009/08/18 09:27:17 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.5 2009/08/30 16:31:25 mav Exp $"); #include #include @@ -357,9 +357,9 @@ /*dxfer_len*/sizeof(struct ata_params), 30 * 1000); if (periph->path->device->protocol == PROTO_ATA) - ata_36bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0); + ata_28bit_cmd(ataio, ATA_ATA_IDENTIFY, 0, 0, 0); else - ata_36bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); + ata_28bit_cmd(ataio, ATA_ATAPI_IDENTIFY, 0, 0, 0); break; } case PROBE_SETMODE: @@ -375,7 +375,7 @@ /*data_ptr*/NULL, /*dxfer_len*/0, 30 * 1000); - ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0, + ata_28bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0, ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6)); break; } ==== //depot/projects/vimage-commit2/src/sys/cam/scsi/scsi_da.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.236 2009/07/10 08:18:08 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.237 2009/08/26 21:14:28 stas Exp $"); #include @@ -554,6 +554,14 @@ { {T_DIRECT, SIP_MEDIA_REMOVABLE, "Netac", "OnlyDisk*", "2000"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* + * Sony Cyber-Shot DSC cameras + * PR: usb/137035 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Sony DSC", "*"}, + /*quirks*/ DA_Q_NO_SYNC_CACHE | DA_Q_NO_PREVENT } }; ==== //depot/projects/vimage-commit2/src/sys/compat/ia32/ia32_sysvec.c#7 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.33 2009/04/05 09:27:19 dchagin Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.35 2009/08/30 14:38:17 bz Exp $"); #include "opt_compat.h" @@ -172,6 +172,21 @@ (sysinit_cfunc_t) elf32_insert_brand_entry, &ia32_brand_oinfo); +static Elf32_Brandinfo kia32_brand_info = { + .brand = ELFOSABI_FREEBSD, + .machine = EM_386, + .compat_3_brand = "FreeBSD", + .emul_path = NULL, + .interp_path = "/lib/ld.so.1", + .sysvec = &ia32_freebsd_sysvec, + .brand_note = &elf32_kfreebsd_brandnote, + .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE_MANDATORY +}; + +SYSINIT(kia32, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf32_insert_brand_entry, + &kia32_brand_info); + void elf32_dump_thread(struct thread *td __unused, void *dst __unused, ==== //depot/projects/vimage-commit2/src/sys/compat/linprocfs/linprocfs.c#26 (text+ko) ==== @@ -42,7 +42,7 @@ #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.142 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.143 2009/08/28 22:51:07 zec Exp $"); #include #include @@ -1085,6 +1085,7 @@ "bytes packets errs drop fifo frame compressed", "bytes packets errs drop fifo frame compressed"); + CURVNET_SET(TD_TO_VNET(curthread)); IFNET_RLOCK(); TAILQ_FOREACH(ifp, &V_ifnet, if_link) { linux_ifname(ifp, ifname, sizeof ifname); >>> TRUNCATED FOR MAIL (1000 lines) <<<