PERFORCE change 107550 for review
Roman Divacky
rdivacky at FreeBSD.org
Mon Oct 9 07:48:38 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=107550
Change 107550 by rdivacky at 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) <<<
More information about the p4-projects
mailing list