Date: Mon, 9 Oct 2006 14:48:36 GMT From: Roman Divacky <rdivacky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 107550 for review Message-ID: <200610091448.k99Ema1F034409@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=107550 Change 107550 by rdivacky@rdivacky_witten on 2006/10/09 14:48:00 IFC Affected files ... .. //depot/projects/linuxolator/src/sys/boot/Makefile#2 integrate .. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/Makefile#2 integrate .. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm.c#2 integrate .. //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm_mmu.c#1 branch .. //depot/projects/linuxolator/src/sys/boot/sparc64/loader/hcall.S#1 branch .. //depot/projects/linuxolator/src/sys/boot/sparc64/loader/main.c#2 integrate .. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#3 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#4 integrate .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#5 integrate .. //depot/projects/linuxolator/src/sys/conf/files#5 integrate .. //depot/projects/linuxolator/src/sys/conf/files.sun4v#2 integrate .. //depot/projects/linuxolator/src/sys/ddb/db_command.c#2 integrate .. //depot/projects/linuxolator/src/sys/ddb/db_examine.c#2 integrate .. //depot/projects/linuxolator/src/sys/ddb/db_output.c#2 integrate .. //depot/projects/linuxolator/src/sys/ddb/db_output.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#4 integrate .. //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.h#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.c#4 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/if_aue.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/if_cdce.c#3 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/if_kue.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/if_ural.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/umass.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/usb_quirks.c#2 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#3 integrate .. //depot/projects/linuxolator/src/sys/dev/usb/uscanner.c#3 integrate .. //depot/projects/linuxolator/src/sys/net/if_bridge.c#4 integrate .. //depot/projects/linuxolator/src/sys/netinet/libalias/libalias.3#3 integrate .. //depot/projects/linuxolator/src/sys/sparc64/include/asi.h#2 integrate .. //depot/projects/linuxolator/src/sys/sparc64/pci/ofw_pcibus.c#2 integrate .. //depot/projects/linuxolator/src/sys/sparc64/sparc64/genassym.c#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/conf/GENERIC#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/include/asi.h#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/include/tte.h#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/exception.S#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/machdep.c#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/t1_copy.S#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/tsb.c#2 integrate .. //depot/projects/linuxolator/src/sys/sun4v/sun4v/vnex.c#2 integrate .. //depot/projects/linuxolator/src/sys/vm/vnode_pager.c#2 integrate Differences ... ==== //depot/projects/linuxolator/src/sys/boot/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/Makefile,v 1.30 2006/08/10 06:29:43 imp Exp $ +# $FreeBSD: src/sys/boot/Makefile,v 1.31 2006/10/09 04:43:06 kmacy Exp $ .include <bsd.own.mk> @@ -18,6 +18,6 @@ .endif # Pick the machine-dependent subdir based on the target architecture. -SUBDIR+= ${MACHINE:S/amd64/i386/} +SUBDIR+= ${MACHINE:S/amd64/i386/:S/sun4v/sparc64/} .include <bsd.subdir.mk> ==== //depot/projects/linuxolator/src/sys/boot/ofw/libofw/Makefile#2 (text+ko) ==== @@ -1,11 +1,11 @@ -# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.9 2004/10/24 15:32:50 ru Exp $ +# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.10 2006/10/09 04:43:06 kmacy Exp $ LIB= ofw INTERNALLIB= SRCS= devicename.c elf_freebsd.c ofw_console.c ofw_copy.c ofw_disk.c \ ofw_memory.c ofw_module.c ofw_net.c ofw_reboot.c \ - ofw_time.c openfirm.c + ofw_time.c openfirm.c openfirm_mmu.c CFLAGS+= -I${.CURDIR}/../../../../lib/libstand/ ==== //depot/projects/linuxolator/src/sys/boot/ofw/libofw/openfirm.c#2 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.12 2005/10/20 10:39:09 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.13 2006/10/09 04:43:07 kmacy Exp $"); #include <machine/stdarg.h> @@ -87,6 +87,20 @@ panic("failed to get mmu ihandle"); } +phandle_t +OF_chosennode(void) +{ + static phandle_t chosen; + + if (chosen) + return (chosen); + + if ((chosen = OF_finddevice("/chosen")) == -1) + OF_exit(); + + return (chosen); +} + /* * Generic functions */ ==== //depot/projects/linuxolator/src/sys/boot/sparc64/loader/main.c#2 (text+ko) ==== @@ -8,8 +8,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.26 2005/01/05 22:16:58 imp Exp $"); - +__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.28 2006/10/09 05:59:04 kmacy Exp $"); /* * FreeBSD/sparc64 kernel loader - machine dependent part * @@ -25,7 +24,9 @@ #include <sys/param.h> #include <sys/queue.h> #include <sys/linker.h> +#include <sys/types.h> +#include <vm/vm.h> #include <machine/asi.h> #include <machine/atomic.h> #include <machine/cpufunc.h> @@ -50,6 +51,12 @@ vm_offset_t size; }; +struct mmu_ops { + void (*tlb_init)(void); + int (*mmu_mapin)(vm_offset_t va, vm_size_t len); +} *mmu_ops; + + typedef void kernel_entry_t(vm_offset_t mdp, u_long o1, u_long o2, u_long o3, void *openfirmware); @@ -60,7 +67,33 @@ extern vm_offset_t md_load(char *, vm_offset_t *); static int __elfN(exec)(struct preloaded_file *); static int sparc64_autoload(void); -static int mmu_mapin(vm_offset_t, vm_size_t); +static int mmu_mapin_sun4u(vm_offset_t, vm_size_t); +static int mmu_mapin_sun4v(vm_offset_t, vm_size_t); +static void tlb_init_sun4u(void); +static void tlb_init_sun4v(void); + +struct mmu_ops mmu_ops_sun4u = { tlb_init_sun4u, mmu_mapin_sun4u }; +struct mmu_ops mmu_ops_sun4v = { tlb_init_sun4v, mmu_mapin_sun4v }; + +extern char bootprog_name[], bootprog_rev[], bootprog_date[], bootprog_maker[]; + +/* sun4u */ +struct tlb_entry *dtlb_store; +struct tlb_entry *itlb_store; +int dtlb_slot; +int itlb_slot; +int dtlb_slot_max; +int itlb_slot_max; + +/* sun4v */ +struct tlb_entry *tlb_store; +/* + * no direct TLB access on sun4v + * we somewhat arbitrarily declare enough + * slots to cover a 4GB AS with 4MB pages + */ +#define SUN4V_TLB_SLOT_MAX (1 << 10) + extern char bootprog_name[], bootprog_rev[], bootprog_date[], bootprog_maker[]; @@ -204,14 +237,14 @@ static ssize_t sparc64_readin(const int fd, vm_offset_t va, const size_t len) { - mmu_mapin(va, len); + mmu_ops->mmu_mapin(va, len); return read(fd, (void *)va, len); } static ssize_t sparc64_copyin(const void *src, vm_offset_t dest, size_t len) { - mmu_mapin(dest, len); + mmu_ops->mmu_mapin(dest, len); memcpy((void *)dest, src, len); return len; } @@ -252,7 +285,7 @@ } static int -mmu_mapin(vm_offset_t va, vm_size_t len) +mmu_mapin_sun4u(vm_offset_t va, vm_size_t len) { vm_offset_t pa, mva; u_long data; @@ -307,6 +340,53 @@ } if (pa != (vm_offset_t)-1) OF_release_phys(pa, PAGE_SIZE_4M); + + return 0; +} + +static int +mmu_mapin_sun4v(vm_offset_t va, vm_size_t len) +{ + + vm_offset_t pa, mva; + u_long data; + int ret; + + if (va + len > curkva) + curkva = va + len; + + pa = (vm_offset_t)-1; + len += va & PAGE_MASK_4M; + va &= ~PAGE_MASK_4M; + while (len) { + if ((va >> 22) > SUN4V_TLB_SLOT_MAX) + panic("trying to map more than 4GB"); + if (tlb_store[va >> 22].te_pa == -1) { + /* Allocate a physical page, claim the virtual area */ + if (pa == (vm_offset_t)-1) { + pa = (vm_offset_t)OF_alloc_phys(PAGE_SIZE_4M, + PAGE_SIZE_4M); + if (pa == (vm_offset_t)-1) + panic("out of memory"); + mva = (vm_offset_t)OF_claim_virt(va, + PAGE_SIZE_4M, 0); + if (mva != va) { + panic("can't claim virtual page " + "(wanted %#lx, got %#lx)", + va, mva); + } + } + + tlb_store[va >> 22].te_pa = pa; + if ((ret = OF_map_phys(-1, PAGE_SIZE_4M, va, pa)) != 0) + printf("OF_map_phys failed: %d\n", ret); + pa = (vm_offset_t)-1; + } + len -= len > PAGE_SIZE_4M ? PAGE_SIZE_4M : len; + va += PAGE_SIZE_4M; + } + if (pa != (vm_offset_t)-1) + OF_release_phys(pa, PAGE_SIZE_4M); return 0; } @@ -324,7 +404,7 @@ } static void -tlb_init(void) +tlb_init_sun4u(void) { phandle_t child; phandle_t root; @@ -361,11 +441,20 @@ panic("init_tlb: malloc"); } +static void +tlb_init_sun4v(void) +{ + tlb_store = malloc(SUN4V_TLB_SLOT_MAX * sizeof(*tlb_store)); + memset(tlb_store, 0xFF, SUN4V_TLB_SLOT_MAX * sizeof(*tlb_store)); +} + int main(int (*openfirm)(void *)) { char bootpath[64]; + char compatible[32]; struct devsw **dp; + phandle_t rooth; phandle_t chosenh; /* @@ -381,13 +470,22 @@ init_heap(); setheap((void *)heapva, (void *)(heapva + HEAPSZ)); - /* * Probe for a console. */ cons_probe(); - tlb_init(); + rooth = OF_peer(0); + OF_getprop(rooth, "compatible", compatible, sizeof(compatible)); + if (!strcmp(compatible, "sun4v")) { + printf("\nBooting with sun4v support.\n"); + mmu_ops = &mmu_ops_sun4v; + } else { + printf("\nBooting with sun4u support.\n"); + mmu_ops = &mmu_ops_sun4u; + } + + mmu_ops->tlb_init(); bcache_init(32, 512); ==== //depot/projects/linuxolator/src/sys/cam/scsi/scsi_da.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.192 2006/09/16 21:21:07 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.194 2006/10/07 19:04:23 flz Exp $"); #include <sys/param.h> @@ -443,6 +443,22 @@ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic*", "STORAGE DEVICE*", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, + { + /* + * Rekam Digital CAMERA + * PR: usb/98713 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "CAMERA*", "4MP-9J6*", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* + * iRiver H10 MP3 player + * PR: usb/102547 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "iriver", "H10*", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, }; static disk_strategy_t dastrategy; ==== //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.97 2006/08/08 12:29:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.98 2006/10/08 16:55:27 netchild Exp $"); #include <sys/param.h> #include <sys/queue.h> ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.6 2006/09/09 16:55:55 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.7 2006/10/08 17:10:34 netchild Exp $"); #include "opt_compat.h" ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.187 2006/09/16 14:12:04 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.188 2006/10/08 17:08:27 netchild Exp $"); #include "opt_compat.h" #include "opt_mac.h" ==== //depot/projects/linuxolator/src/sys/conf/files#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1149 2006/10/06 10:43:41 ru Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1150 2006/10/08 13:51:27 piso Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1749,10 +1749,10 @@ netinet/udp_usrreq.c optional inet netinet/libalias/alias.c optional libalias netinet/libalias/alias_db.c optional libalias +netinet/libalias/alias_mod.c optional libalias +netinet/libalias/alias_old.c optional libalias netinet/libalias/alias_proxy.c optional libalias netinet/libalias/alias_util.c optional libalias -netinet/libalias/alias_old.c optional libalias -netinet/libalias/alias_mod.c optional libalias netinet6/ah_aesxcbcmac.c optional ipsec netinet6/ah_core.c optional ipsec netinet6/ah_input.c optional ipsec ==== //depot/projects/linuxolator/src/sys/conf/files.sun4v#2 (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.sun4v,v 1.1 2006/10/05 06:14:24 kmacy Exp $ +# $FreeBSD: src/sys/conf/files.sun4v,v 1.2 2006/10/09 04:45:17 kmacy Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -58,12 +58,6 @@ sparc64/pci/ofw_pcib_subr.c optional pci sparc64/pci/ofw_pcibus.c optional pci sparc64/pci/ofw_pci_if.m optional pci -sparc64/dtrace/dtrace_asm.s optional dtrace -sparc64/dtrace/dtrace_isa.c optional dtrace -sparc64/dtrace/fasttrap_isa.c optional dtrace -sparc64/dtrace/fbt.c optional dtrace -sparc64/dtrace/sdt.c optional dtrace -sparc64/dtrace/dtrace_stub.c standard # XXX hvcons should be optional sun4v/sun4v/hvcons.c standard ==== //depot/projects/linuxolator/src/sys/ddb/db_command.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.68 2006/07/19 18:26:53 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_command.c,v 1.70 2006/10/08 18:37:00 bde Exp $"); #include <sys/param.h> #include <sys/linker_set.h> @@ -113,6 +113,7 @@ { "delete", db_delete_cmd, 0, 0 }, { "d", db_delete_cmd, 0, 0 }, { "break", db_breakpoint_cmd, 0, 0 }, + { "b", db_breakpoint_cmd, 0, 0 }, { "dwatch", db_deletewatch_cmd, 0, 0 }, { "watch", db_watchpoint_cmd, CS_MORE,0 }, { "dhwatch", db_deletehwatch_cmd, 0, 0 }, @@ -125,6 +126,7 @@ { "next", db_trace_until_matching_cmd,0, 0 }, { "match", db_trace_until_matching_cmd,0, 0 }, { "trace", db_stack_trace, CS_OWN, 0 }, + { "t", db_stack_trace, CS_OWN, 0 }, { "alltrace", db_stack_trace_all, 0, 0 }, { "where", db_stack_trace, CS_OWN, 0 }, { "bt", db_stack_trace, CS_OWN, 0 }, @@ -132,6 +134,7 @@ { "show", 0, 0, &db_show_table }, { "ps", db_ps, 0, 0 }, { "gdb", db_gdb, 0, 0 }, + { "registers", db_show_regs, 0, 0 }, { "reset", db_reset, 0, 0 }, { "kill", db_kill, CS_OWN, 0 }, { "watchdog", db_watchdog, 0, 0 }, @@ -266,14 +269,14 @@ for (cmd = table->table; cmd->name != 0; cmd++) { db_printf("%-12s", cmd->name); - db_end_line(); + db_end_line(12); } if (table->aux_tablep == NULL) return; for (aux_cmdp = table->aux_tablep; aux_cmdp < table->aux_tablep_end; aux_cmdp++) { db_printf("%-12s", (*aux_cmdp)->name); - db_end_line(); + db_end_line(12); } } ==== //depot/projects/linuxolator/src/sys/ddb/db_examine.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ddb/db_examine.c,v 1.32 2005/01/06 01:34:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_examine.c,v 1.33 2006/10/08 18:15:07 bde Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -176,7 +176,7 @@ break; } if (db_print_position() != 0) - db_end_line(); + db_end_line(1); break; } } ==== //depot/projects/linuxolator/src/sys/ddb/db_output.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.35 2006/07/12 21:22:43 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_output.c,v 1.36 2006/10/08 18:15:08 bde Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -304,8 +304,8 @@ * End line if too long. */ void -db_end_line() +db_end_line(int field_width) { - if (db_output_position >= db_max_width) + if (db_output_position + field_width > db_max_width) db_printf("\n"); } ==== //depot/projects/linuxolator/src/sys/ddb/db_output.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $FreeBSD: src/sys/ddb/db_output.h,v 1.14 2006/07/12 21:22:43 jhb Exp $ + * $FreeBSD: src/sys/ddb/db_output.h,v 1.15 2006/10/08 18:15:08 bde Exp $ */ #ifndef _DDB_DB_OUTPUT_H_ @@ -40,7 +40,7 @@ void db_disable_pager(void); void db_enable_pager(void); -void db_end_line(void); +void db_end_line(int); void db_force_whitespace(void); int db_print_position(void); ==== //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.176 2006/09/25 11:26:29 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.177 2006/10/08 09:58:00 sos Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -950,6 +950,7 @@ struct ata_chip_id *idx; static struct ata_chip_id ids[] = {{ ATA_ALI_5289, 0x00, 2, ALISATA, ATA_SA150, "M5289" }, + { ATA_ALI_5288, 0x00, 4, ALISATA, ATA_SA300, "M5288" }, { ATA_ALI_5287, 0x00, 4, ALISATA, ATA_SA150, "M5287" }, { ATA_ALI_5281, 0x00, 2, ALISATA, ATA_SA150, "M5281" }, { ATA_ALI_5229, 0xc5, 0, ALINEW, ATA_UDMA6, "M5229" }, ==== //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ofw/openfirm.c,v 1.15 2005/11/22 14:21:03 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ofw/openfirm.c,v 1.16 2006/10/09 04:45:17 kmacy Exp $"); /*- * Copyright (C) 2000 Benno Rice. * All rights reserved. @@ -814,3 +814,36 @@ entry(0, 0, openfirmware, arg, len); } #endif + + +/* + * Extensions added for sun4v support + * + */ + +/* + * This interface allows the client to safely take over the %tba by + * the prom's service. The prom will take care of the quiescence of + * interrupts and handle any pending soft interrupts. + * This call also sets the MMU fault status area for the cpu. + */ +void +OF_set_mmfsa_traptable(void *tba_addr, uint64_t mmfsa_ra) +{ + static struct { + cell_t name; + cell_t nargs; + cell_t nreturns; + cell_t tba_addr; + cell_t mmfsa_ra; + } args = { + (cell_t)"SUNW,set-trap-table", + 2, + 0, + }; + + args.tba_addr = p1275_ptr2cell(tba_addr); + args.mmfsa_ra = p1275_ptr2cell(mmfsa_ra); + openfirmware(&args); +} + ==== //depot/projects/linuxolator/src/sys/dev/ofw/openfirm.h#2 (text+ko) ==== @@ -54,7 +54,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ofw/openfirm.h,v 1.11 2005/01/06 01:43:00 imp Exp $ + * $FreeBSD: src/sys/dev/ofw/openfirm.h,v 1.12 2006/10/09 04:45:17 kmacy Exp $ */ #ifndef _OPENFIRM_H_ @@ -74,6 +74,27 @@ #include <sys/types.h> #include <sys/malloc.h> +#define p1275_ptr2cell(p) ((cell_t)((uintptr_t)((void *)(p)))) +#define p1275_int2cell(i) ((cell_t)((int)(i))) +#define p1275_uint2cell(u) ((cell_t)((unsigned int)(u))) +#define p1275_size2cell(u) ((cell_t)((size_t)(u))) +#define p1275_phandle2cell(ph) ((cell_t)((unsigned int)((phandle_t)(ph)))) +#define p1275_dnode2cell(d) ((cell_t)((unsigned int)((pnode_t)(d)))) +#define p1275_ihandle2cell(ih) ((cell_t)((unsigned int)((ihandle_t)(ih)))) +#define p1275_ull2cell_high(ll) (0LL) +#define p1275_ull2cell_low(ll) ((cell_t)(ll)) +#define p1275_uintptr2cell(i) ((cell_t)((uintptr_t)(i))) + +#define p1275_cell2ptr(p) ((void *)((cell_t)(p))) +#define p1275_cell2int(i) ((int)((cell_t)(i))) +#define p1275_cell2uint(u) ((unsigned int)((cell_t)(u))) +#define p1275_cell2size(u) ((size_t)((cell_t)(u))) +#define p1275_cell2phandle(ph) ((phandle_t)((cell_t)(ph))) +#define p1275_cell2dnode(d) ((pnode_t)((cell_t)(d))) +#define p1275_cell2ihandle(ih) ((ihandle_t)((cell_t)(ih))) +#define p1275_cells2ull(h, l) ((unsigned long long)(cell_t)(l)) +#define p1275_cell2uintptr(i) ((uintptr_t)((cell_t)(i))) + MALLOC_DECLARE(M_OFWPROP); /* @@ -138,5 +159,10 @@ /* Time function */ int OF_milliseconds(void); +/* sun4v additions */ +void OF_set_mmfsa_traptable(void *tba_addr, uint64_t mmfsa_ra); +int OF_translate_virt(vm_offset_t va, int *valid, vm_paddr_t *physaddr, int *mode); +vm_paddr_t OF_vtophys(vm_offset_t va); + #endif /* _KERNEL */ #endif /* _OPENFIRM_H_ */ ==== //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#2 (text+ko) ==== @@ -80,10 +80,10 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20061007_0030" +#define HDA_DRV_TEST_REV "20061009_0031" #define HDA_WIDGET_PARSER_REV 1 -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.4 2006/10/06 18:59:27 ariff Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.5 2006/10/08 18:51:58 ariff Exp $"); #undef HDA_DEBUG_ENABLED #define HDA_DEBUG_ENABLED 1 @@ -125,19 +125,36 @@ #define INTEL_VENDORID 0x8086 #define HDA_INTEL_82801F HDA_MODEL_CONSTRUCT(INTEL, 0x2668) #define HDA_INTEL_82801G HDA_MODEL_CONSTRUCT(INTEL, 0x27d8) +#define HDA_INTEL_82801H HDA_MODEL_CONSTRUCT(INTEL, 0x284b) +#define HDA_INTEL_63XXESB HDA_MODEL_CONSTRUCT(INTEL, 0x269a) #define HDA_INTEL_ALL HDA_MODEL_CONSTRUCT(INTEL, 0xffff) /* Nvidia */ #define NVIDIA_VENDORID 0x10de #define HDA_NVIDIA_MCP51 HDA_MODEL_CONSTRUCT(NVIDIA, 0x026c) #define HDA_NVIDIA_MCP55 HDA_MODEL_CONSTRUCT(NVIDIA, 0x0371) +#define HDA_NVIDIA_MCP61A HDA_MODEL_CONSTRUCT(NVIDIA, 0x03e4) +#define HDA_NVIDIA_MCP61B HDA_MODEL_CONSTRUCT(NVIDIA, 0x03f0) +#define HDA_NVIDIA_MCP65A HDA_MODEL_CONSTRUCT(NVIDIA, 0x044a) +#define HDA_NVIDIA_MCP65B HDA_MODEL_CONSTRUCT(NVIDIA, 0x044b) #define HDA_NVIDIA_ALL HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff) /* ATI */ #define ATI_VENDORID 0x1002 #define HDA_ATI_SB450 HDA_MODEL_CONSTRUCT(ATI, 0x437b) +#define HDA_ATI_SB600 HDA_MODEL_CONSTRUCT(ATI, 0x4383) #define HDA_ATI_ALL HDA_MODEL_CONSTRUCT(ATI, 0xffff) +/* VIA */ +#define VIA_VENDORID 0x1106 +#define HDA_VIA_VT82XX HDA_MODEL_CONSTRUCT(VIA, 0x3288) +#define HDA_VIA_ALL HDA_MODEL_CONSTRUCT(VIA, 0xffff) + +/* SiS */ +#define SIS_VENDORID 0x1039 +#define HDA_SIS_966 HDA_MODEL_CONSTRUCT(SIS, 0x7502) +#define HDA_SIS_ALL HDA_MODEL_CONSTRUCT(SIS, 0xffff) + /* OEM/subvendors */ /* HP/Compaq */ @@ -204,7 +221,7 @@ { "gpio2", HDA_QUIRK_GPIO2 }, { "softpcmvol", HDA_QUIRK_SOFTPCMVOL }, { "fixedrate", HDA_QUIRK_FIXEDRATE }, - { "forcestereo", HDA_QUIRK_FORCESTEREO } + { "forcestereo", HDA_QUIRK_FORCESTEREO }, }; #define HDAC_QUIRKS_TAB_LEN \ (sizeof(hdac_quirks_tab) / sizeof(hdac_quirks_tab[0])) @@ -242,13 +259,24 @@ } hdac_devices[] = { { HDA_INTEL_82801F, "Intel 82801F" }, { HDA_INTEL_82801G, "Intel 82801G" }, + { HDA_INTEL_82801H, "Intel 82801H" }, + { HDA_INTEL_63XXESB, "Intel 631x/632xESB" }, { HDA_NVIDIA_MCP51, "NVidia MCP51" }, { HDA_NVIDIA_MCP55, "NVidia MCP55" }, + { HDA_NVIDIA_MCP61A, "NVidia MCP61A" }, + { HDA_NVIDIA_MCP61B, "NVidia MCP61B" }, + { HDA_NVIDIA_MCP65A, "NVidia MCP65A" }, + { HDA_NVIDIA_MCP65B, "NVidia MCP65B" }, { HDA_ATI_SB450, "ATI SB450" }, + { HDA_ATI_SB600, "ATI SB600" }, + { HDA_VIA_VT82XX, "VIA VT8251/8237A" }, + { HDA_SIS_966, "SiS 966" }, /* Unknown */ { HDA_INTEL_ALL, "Intel (Unknown)" }, { HDA_NVIDIA_ALL, "NVidia (Unknown)" }, { HDA_ATI_ALL, "ATI (Unknown)" }, + { HDA_VIA_ALL, "VIA (Unknown)" }, + { HDA_SIS_ALL, "SiS (Unknown)" }, }; #define HDAC_DEVICES_LEN (sizeof(hdac_devices) / sizeof(hdac_devices[0])) ==== //depot/projects/linuxolator/src/sys/dev/sound/pcm/dsp.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ #include <dev/sound/pcm/sound.h> -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.97 2006/09/29 09:10:54 ru Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.98 2006/10/08 17:13:54 netchild Exp $"); #define OLDPCM_IOCTL @@ -1965,8 +1965,6 @@ if (ret != 0) { if (smrd != NULL) free(smrd, M_DEVBUF); - if (smwr != NULL) - free(smwr, M_DEVBUF); if ((sg != NULL) && SLIST_EMPTY(&sg->members)) { sg_ids[2] = sg->id; SLIST_REMOVE(&snd_pcm_syncgroups, sg, pcmchan_syncgroup, link); ==== //depot/projects/linuxolator/src/sys/dev/usb/if_aue.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.99 2006/09/07 00:06:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_aue.c,v 1.100 2006/10/07 17:58:50 flz Exp $"); /* * ADMtek AN986 Pegasus and AN8511 Pegasus II USB to ethernet driver. @@ -169,6 +169,7 @@ {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1}, 0 }, {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5}, 0 }, {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5}, PII }, + {{ USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA101}, PII }, {{ USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM}, PII }, {{ USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC},PII }, {{ USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB}, 0 }, ==== //depot/projects/linuxolator/src/sys/dev/usb/if_cdce.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_cdce.c,v 1.15 2006/09/22 12:45:42 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_cdce.c,v 1.16 2006/10/07 17:35:37 flz Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -104,6 +104,7 @@ {{ USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC750 }, CDCE_ZAURUS | CDCE_NO_UNION }, {{ USB_VENDOR_GMATE, USB_PRODUCT_GMATE_YP3X00 }, CDCE_NO_UNION }, {{ USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_ETHERNETGADGET }, CDCE_NO_UNION }, + {{ USB_VENDOR_COMPAQ, USB_PRODUCT_COMPAQ_IPAQLINUX }, CDCE_NO_UNION }, }; #define cdce_lookup(v, p) ((const struct cdce_type *)usb_lookup(cdce_devs, v, p)) ==== //depot/projects/linuxolator/src/sys/dev/usb/if_kue.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_kue.c,v 1.70 2006/09/07 00:06:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_kue.c,v 1.71 2006/10/07 18:03:39 flz Exp $"); /* * Kawasaki LSI KL5KUSB101B USB to ethernet adapter driver. @@ -124,6 +124,7 @@ { USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3 }, { USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT }, { USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450 }, + { USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_GPE }, { 0, 0 } }; ==== //depot/projects/linuxolator/src/sys/dev/usb/if_ural.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.45 2006/09/07 00:06:41 imp Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_ural.c,v 1.46 2006/10/07 18:18:40 flz Exp $ */ /*- * Copyright (c) 2005, 2006 @@ -18,7 +18,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.45 2006/09/07 00:06:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/if_ural.c,v 1.46 2006/10/07 18:18:40 flz Exp $"); /*- * Ralink Technology RT2500USB chipset driver @@ -97,6 +97,7 @@ { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570 }, { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_2 }, { USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_3 }, + { USB_VENDOR_NOVATECH, USB_PRODUCT_NOVATECH_NV902 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570 }, { USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_2 }, { USB_VENDOR_VTECH, USB_PRODUCT_VTECH_RT2570 }, ==== //depot/projects/linuxolator/src/sys/dev/usb/umass.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/usb/umass.c,v 1.137 2006/09/07 00:06:42 imp Exp $ + * $FreeBSD: src/sys/dev/usb/umass.c,v 1.138 2006/10/07 20:08:37 flz Exp $ * $NetBSD: umass.c,v 1.28 2000/04/02 23:46:53 augustss Exp $ */ @@ -426,6 +426,10 @@ UMASS_PROTO_ATAPI | UMASS_PROTO_BBB, NO_INQUIRY | NO_GETMAXLUN }, + { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN, RID_WILDCARD, + UMASS_PROTO_ATAPI | UMASS_PROTO_BBB, + NO_GETMAXLUN + }, { USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, NO_QUIRKS ==== //depot/projects/linuxolator/src/sys/dev/usb/usb_quirks.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.50 2006/09/06 23:44:24 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/usb_quirks.c,v 1.54 2006/10/07 19:42:45 flz Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -79,6 +79,8 @@ { USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, 0x009, { UQ_AU_NO_FRAC }}, { USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE, 0x100, { UQ_AU_INP_ASYNC }}, + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B, ANY, { UQ_NO_STRINGS }}, + { USB_VENDOR_CMOTECH, USB_PRODUCT_CMOTECH_CDMAMODEM, ANY, { UQ_ASSUME_CM_OVER_DATA }}, /* XXX These should have a revision number, but I don't know what they are. */ { USB_VENDOR_HP, USB_PRODUCT_HP_895C, ANY, { UQ_BROKEN_BIDIR }}, { USB_VENDOR_HP, USB_PRODUCT_HP_880C, ANY, { UQ_BROKEN_BIDIR }}, @@ -101,9 +103,13 @@ ANY, { UQ_ASSUME_CM_OVER_DATA }}, { USB_VENDOR_SUNTAC, USB_PRODUCT_SUNTAC_AS64LX, 0x100, { UQ_ASSUME_CM_OVER_DATA }}, + { USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_A41XV32X, + ANY, { UQ_ASSUME_CM_OVER_DATA }}, /* Devices which should be ignored by uhid */ { USB_VENDOR_APC, USB_PRODUCT_APC_UPS, ANY, { UQ_HID_IGNORE }}, + { USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, + ANY, { UQ_HID_IGNORE }}, { USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE, ANY, { UQ_HID_IGNORE }}, { USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1, ==== //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#3 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.265 2006/10/07 16:00:58 flz Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.275 2006/10/07 20:08:37 flz Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -483,6 +483,7 @@ vendor GMATE 0x0e7e G.Mate, Inc vendor OTI 0x0ea0 Ours vendor PILOTECH 0x0eaf Pilotech +vendor NOVATECH 0x0eb0 NovaTech vendor EGALAX 0x0eef eGalax vendor MICROTUNE 0x0f4d Microtune vendor VTECH 0x0f88 VTech @@ -520,6 +521,7 @@ vendor INSIDEOUT 0x1608 Inside Out Networks vendor ENTREGA 0x1645 Entrega vendor ACTIONTEC 0x1668 Actiontec +vendor CMOTECH 0x16d8 CMOTECH CO., LTD. vendor LINKSYS3 0x1915 Linksys vendor DLINK 0x2001 D-Link vendor ERICSSON 0x2282 Ericsson @@ -709,6 +711,7 @@ product BELKIN F5U109 0x0109 F5U109 Serial product BELKIN F5U208 0x0208 F5U208 VideoBus II product BELKIN F5U409 0x0409 F5U409 Serial +product BELKIN F6C550AVR 0x0551 F6C550-AVR UPS product BELKIN F5U120 0x1203 F5U120-PC Hub product BELKIN F5D7050 0x7050 F5D7050 wireless adapter @@ -759,8 +762,12 @@ /* Chicony products */ product CHICONY KB8933 0x0001 KB-8933 keyboard +/* CMOTECH products */ +product CMOTECH CDMAMODEM 0x5141 CMOTECH CDMA Technologies USB modem + /* Compaq products */ product COMPAQ PJB100 0x504a Personal Jukebox PJB100 +product COMPAQ IPAQLINUX 0x505a iPAQ Linux /* Connectix products */ product CONNECTIX QUICKCAM 0x0001 QuickCam @@ -894,6 +901,7 @@ product EPSON 4990 0x012a Perfection 4990 Photo scanner product EPSON 3500 0x080e CX-3500/3600/3650 MFP product EPSON RX425 0x080f Stylus Photo RX425 scanner +product EPSON 4200 0x0820 CX4200 MP scanner /* e-TEK Labs products */ product ETEK 1COM 0x8007 Serial @@ -1170,10 +1178,11 @@ product LOGITECH WMMOUSE 0xc004 WingMan Gaming Mouse product LOGITECH BD58 0xc00c BD58 mouse product LOGITECH UN58A 0xc030 iFeel Mouse -product LOGITECH BB13 0xc401 USB-PS/2 Trackball +product LOGITECH UN53B 0xc032 iFeel MouseMan product LOGITECH WMPAD 0xc208 WingMan GamePad Extreme product LOGITECH WMRPAD 0xc20a WingMan RumblePad product LOGITECH WMJOY 0xc281 WingMan Force joystick +product LOGITECH BB13 0xc401 USB-PS/2 Trackball product LOGITECH RK53 0xc501 Cordless mouse product LOGITECH RB6 0xc503 Cordless keyboard product LOGITECH MX700 0xc506 Cordless optical mouse @@ -1275,6 +1284,7 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610091448.k99Ema1F034409>