From owner-p4-projects@FreeBSD.ORG Thu Jul 27 20:10:39 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6841416A4E1; Thu, 27 Jul 2006 20:10:39 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F93016A4DD for ; Thu, 27 Jul 2006 20:10:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A238C43D4C for ; Thu, 27 Jul 2006 20:10:38 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6RKAcOf016560 for ; Thu, 27 Jul 2006 20:10:38 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6RKAZqW016554 for perforce@freebsd.org; Thu, 27 Jul 2006 20:10:35 GMT (envelope-from jhb@freebsd.org) Date: Thu, 27 Jul 2006 20:10:35 GMT Message-Id: <200607272010.k6RKAZqW016554@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 102592 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: Thu, 27 Jul 2006 20:10:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=102592 Change 102592 by jhb@jhb_mutex on 2006/07/27 20:09:45 IFC @102591. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#56 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#33 integrate .. //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#14 integrate .. //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#8 integrate .. //depot/projects/smpng/sys/arm/include/db_machdep.h#5 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#6 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#11 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#42 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#39 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#24 integrate .. //depot/projects/smpng/sys/conf/NOTES#125 integrate .. //depot/projects/smpng/sys/conf/files#182 integrate .. //depot/projects/smpng/sys/conf/files.i386#99 integrate .. //depot/projects/smpng/sys/conf/files.powerpc#30 integrate .. //depot/projects/smpng/sys/crypto/via/padlock.c#6 integrate .. //depot/projects/smpng/sys/crypto/via/padlock.h#1 branch .. //depot/projects/smpng/sys/crypto/via/padlock_cipher.c#1 branch .. //depot/projects/smpng/sys/crypto/via/padlock_hash.c#1 branch .. //depot/projects/smpng/sys/dev/acpica/acpi_thermal.c#37 integrate .. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#70 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#44 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/sample/sample.h#3 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#42 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#70 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#18 integrate .. //depot/projects/smpng/sys/dev/mii/gentbi.c#1 branch .. //depot/projects/smpng/sys/dev/mii/ip1000phy.c#1 branch .. //depot/projects/smpng/sys/dev/mii/ip1000phyreg.h#1 branch .. //depot/projects/smpng/sys/dev/mii/miidevs#18 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_cam.c#12 integrate .. //depot/projects/smpng/sys/dev/mpt/mpt_pci.c#23 integrate .. //depot/projects/smpng/sys/dev/ral/rt2560.c#4 integrate .. //depot/projects/smpng/sys/dev/scc/scc_core.c#2 integrate .. //depot/projects/smpng/sys/dev/scc/scc_dev_z8530.c#2 integrate .. //depot/projects/smpng/sys/dev/sk/if_sk.c#5 integrate .. //depot/projects/smpng/sys/dev/sk/if_skreg.h#4 integrate .. //depot/projects/smpng/sys/dev/stge/if_stge.c#1 branch .. //depot/projects/smpng/sys/dev/stge/if_stgereg.h#1 branch .. //depot/projects/smpng/sys/dev/uart/uart_cpu_powerpc.c#2 integrate .. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#12 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#20 integrate .. //depot/projects/smpng/sys/dev/usb/if_ural.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/uplcom.c#26 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#92 integrate .. //depot/projects/smpng/sys/fs/udf/ecma167-udf.h#6 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#29 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#13 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_integrity.c#2 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#81 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#112 integrate .. //depot/projects/smpng/sys/ia64/ia32/ia32_trap.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#45 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#133 integrate .. //depot/projects/smpng/sys/kern/subr_acl_posix1e.c#3 integrate .. //depot/projects/smpng/sys/kern/sys_socket.c#24 integrate .. //depot/projects/smpng/sys/kern/uipc_domain.c#18 integrate .. //depot/projects/smpng/sys/kern/uipc_sockbuf.c#1 branch .. //depot/projects/smpng/sys/kern/uipc_socket.c#88 integrate .. //depot/projects/smpng/sys/kern/uipc_socket2.c#56 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#92 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#63 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#114 integrate .. //depot/projects/smpng/sys/modules/Makefile#126 integrate .. //depot/projects/smpng/sys/modules/agp/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/asr/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/bridgestp/Makefile#1 branch .. //depot/projects/smpng/sys/modules/hwpmc/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_bridge/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/mii/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/osf1/Makefile#8 delete .. //depot/projects/smpng/sys/modules/padlock/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/stge/Makefile#1 branch .. //depot/projects/smpng/sys/net/bpf.c#62 integrate .. //depot/projects/smpng/sys/net/bridgestp.c#8 integrate .. //depot/projects/smpng/sys/net/bridgestp.h#1 branch .. //depot/projects/smpng/sys/net/if_bridge.c#33 integrate .. //depot/projects/smpng/sys/net/if_bridgevar.h#10 integrate .. //depot/projects/smpng/sys/net/if_enc.c#5 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#73 integrate .. //depot/projects/smpng/sys/net/if_gif.c#36 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#22 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.h#9 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.h#7 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#27 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.h#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#25 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#20 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_var.h#21 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#14 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#31 integrate .. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#30 integrate .. //depot/projects/smpng/sys/netinet6/README#3 delete .. //depot/projects/smpng/sys/netinet6/icmp6.c#33 integrate .. //depot/projects/smpng/sys/netipsec/keysock.c#14 integrate .. //depot/projects/smpng/sys/netncp/ncp_sock.c#8 integrate .. //depot/projects/smpng/sys/netsmb/smb_trantcp.c#19 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#45 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#28 integrate .. //depot/projects/smpng/sys/powerpc/conf/GENERIC#36 integrate .. //depot/projects/smpng/sys/powerpc/conf/NOTES#3 integrate .. //depot/projects/smpng/sys/powerpc/include/md_var.h#9 integrate .. //depot/projects/smpng/sys/powerpc/include/ofw_machdep.h#3 integrate .. //depot/projects/smpng/sys/powerpc/include/pcb.h#8 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/clock.c#18 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mem.c#2 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/ofw_machdep.c#13 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/trap.c#51 integrate .. //depot/projects/smpng/sys/powerpc/psim/sio_iobus.c#4 delete .. //depot/projects/smpng/sys/powerpc/psim/uart_iobus.c#1 branch .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#72 integrate .. //depot/projects/smpng/sys/sys/_label.h#7 integrate .. //depot/projects/smpng/sys/sys/bufobj.h#7 integrate .. //depot/projects/smpng/sys/sys/extattr.h#8 integrate .. //depot/projects/smpng/sys/sys/mbuf.h#63 integrate .. //depot/projects/smpng/sys/sys/mutex.h#65 integrate .. //depot/projects/smpng/sys/sys/protosw.h#21 integrate .. //depot/projects/smpng/sys/sys/socket.h#29 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#53 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#49 integrate .. //depot/projects/smpng/sys/sys/unpcb.h#10 integrate .. //depot/projects/smpng/sys/vm/vm.h#10 integrate .. //depot/projects/smpng/sys/vm/vm_fault.c#59 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#81 integrate .. //depot/projects/smpng/sys/vm/vm_meter.c#30 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#82 integrate Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#56 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.650 2006/06/19 22:36:01 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.651 2006/07/27 19:47:22 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" ==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#33 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.250 2005/10/24 20:53:51 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.251 2006/07/24 12:24:56 davidxu Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -328,7 +328,6 @@ td->td_frame->tf_rsp = ((register_t)stack->ss_sp + stack->ss_size) & ~0x0f; td->td_frame->tf_rsp -= 8; - td->td_frame->tf_rbp = 0; td->td_frame->tf_rip = (register_t)entry; /* ==== //depot/projects/smpng/sys/amd64/ia32/ia32_syscall.c#14 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.11 2006/02/08 08:09:15 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_syscall.c,v 1.12 2006/07/27 19:50:16 jhb Exp $"); /* * 386 Trap and System call handling @@ -274,6 +274,8 @@ * is not the case, this code will need to be revisited. */ STOPEVENT(p, S_SCX, code); + + PTRACESTOP_SC(p, td, S_PT_SCX); PTRACESTOP_SC(p, td, S_PT_SCX); } ==== //depot/projects/smpng/sys/arm/at91/kb920x_machdep.c#8 (text) ==== @@ -48,7 +48,7 @@ #include "opt_at91.h" #include -__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.12 2006/07/17 21:20:00 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.13 2006/07/25 23:07:35 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -478,7 +478,7 @@ dump_avail[2] = 0; dump_avail[3] = 0; - phys_avail[0] = freemempos - KERNVIRTADDR + KERNPHYSADDR; + phys_avail[0] = virtual_avail - KERNVIRTADDR + KERNPHYSADDR; phys_avail[1] = KERNPHYSADDR + memsize; phys_avail[2] = 0; phys_avail[3] = 0; ==== //depot/projects/smpng/sys/arm/include/db_machdep.h#5 (text+ko) ==== @@ -24,7 +24,7 @@ * the rights to redistribute these changes. * * from: FreeBSD: src/sys/i386/include/db_machdep.h,v 1.16 1999/10/04 - * $FreeBSD: src/sys/arm/include/db_machdep.h,v 1.5 2005/01/05 21:58:48 imp Exp $ + * $FreeBSD: src/sys/arm/include/db_machdep.h,v 1.6 2006/07/27 11:41:37 cognet Exp $ */ #ifndef _MACHINE_DB_MACHDEP_H_ @@ -89,4 +89,7 @@ u_int branch_taken (u_int insn, u_int pc); +#ifdef __ARMEB__ +#define BYTE_MSF (1) +#endif #endif /* !_MACHINE_DB_MACHDEP_H_ */ ==== //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#6 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.5 2005/06/09 12:26:20 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.6 2006/07/25 01:08:41 kevlo Exp $"); #include #include @@ -73,23 +73,6 @@ */ struct i80321_softc *i80321_softc; -/* Built-in devices. */ -static const struct iopxs_device { - const char *id_name; - bus_addr_t id_offset; - bus_size_t id_size; -} iopxs_devices[] = { - { "iopaau", VERDE_AAU_BASE, VERDE_AAU_SIZE }, -/* { "iopdma", VERDE_DMA_BASE0, VERDE_DMA_CHSIZE }, */ -/* { "iopdma", VERDE_DMA_BASE1, VERDE_DMA_CHSIZE }, */ - { "iopiic", VERDE_I2C_BASE0, VERDE_I2C_CHSIZE }, - { "iopiic", VERDE_I2C_BASE1, VERDE_I2C_CHSIZE }, -/* { "iopssp", VERDE_SSP_BASE, VERDE_SSP_SIZE }, */ - { "iopmu", VERDE_MU_BASE, VERDE_MU_SIZE }, - { "iopwdog", 0, 0 }, - { NULL, 0, 0 } -}; - #define PCI_MAPREG_MEM_ADDR(x) ((x) & 0xfffffff0) /* * i80321_attach: ==== //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#11 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.12 2006/05/05 19:14:57 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq80321.c,v 1.13 2006/07/25 01:08:41 kevlo Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -291,7 +291,7 @@ (void) disable_interrupts(I32_bit|F32_bit); *(__volatile uint32_t *)(IQ80321_80321_VBASE + VERDE_ATU_BASE + ATU_PCSR) = PCSR_RIB | PCSR_RPB; - printf("Reset failed :'(\n"); + printf("Reset failed!\n"); for(;;); } ==== //depot/projects/smpng/sys/boot/forth/loader.conf#42 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.106 2006/05/14 19:04:12 marius Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.108 2006/07/26 12:59:42 ache Exp $ ############################################################## ### Basic configuration options ############################ @@ -243,6 +243,7 @@ if_sn_load="NO" # SMC 91Cxx if_sr_load="NO" # synchronous RISCom/N2 / WANic 400/405 if_ste_load="NO" # Sundance Technologies ST201 fast ethernet +if_stge_load="NO" # Sundance/Tamarack TC9021 gigabit ethernet if_ti_load="NO" # Alteon Networks Tigon 1 and Tigon 2 if_tl_load="NO" # Texas Instruments TNETE100 ("ThunderLAN") if_tx_load="NO" # SMC 83c17x fast ethernet @@ -253,7 +254,6 @@ if_vx_load="NO" # 3Com 3C590 family if_wb_load="NO" # Winbond W89C840F if_wi_load="NO" # WaveLAN/IEEE 802.11 wireless NICs -if_wx_load="NO" # Intel Gigabit Ethernet if_xe_load="NO" # Xircom CreditCard PCMCIA if_xl_load="NO" # 3Com Etherlink XL (3c900, 3c905, 3c905B) @@ -309,6 +309,7 @@ snd_csa_load="NO" # csa snd_ds1_load="NO" # ds1 snd_emu10k1_load="NO" # Creative Sound Blaster Live +snd_emu10kx_load="NO" # Creative SoundBlaster Live! and Audigy snd_es137x_load="NO" # es137x snd_ess_load="NO" # ess snd_fm801_load="NO" # fm801 ==== //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#39 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.59 2006/07/21 20:40:13 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.60 2006/07/27 19:54:41 jhb Exp $"); #include "opt_compat.h" #include "opt_ktrace.h" ==== //depot/projects/smpng/sys/conf/Makefile.arm#24 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.arm -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.arm,v 1.30 2006/07/18 21:16:39 cognet Exp $ +# $FreeBSD: src/sys/conf/Makefile.arm,v 1.31 2006/07/24 22:09:47 cognet Exp $ # # Makefile for FreeBSD # @@ -44,12 +44,15 @@ .if !defined(DEBUG) && !defined(PROFLEVEL) -CFLAGS += -mno-apcs-frame STRIP_FLAGS = -S .endif DDB_ENABLED!= grep DDB opt_ddb.h || true +.if empty(DDB_ENABLED) +CFLAGS += -mno-apcs-frame +.endif + SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader \ -warn-common -export-dynamic -dynamic-linker /red/herring -o \ ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o ==== //depot/projects/smpng/sys/conf/NOTES#125 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1374 2006/07/17 09:07:01 phk Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1375 2006/07/25 00:45:54 yongari Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1785,6 +1785,9 @@ # SMC91C90/92/94/95 chips. # ste: Sundance Technologies ST201 PCI fast ethernet controller, includes # the D-Link DFE-550TX. +# stge: Support for gigabit ethernet adapters based on the Sundance/Tamarack +# TC9021 family of controllers, including the Sundance ST2021/ST2023, +# the Sundance/Tamarack TC9021, the D-Link DL-4000 and ASUS NX1101. # ti: Support for PCI gigabit ethernet NICs based on the Alteon Networks # Tigon 1 and Tigon 2 chipsets. This includes the Alteon AceNIC, the # 3Com 3c985, the Netgear GA620 and various others. ==== //depot/projects/smpng/sys/conf/files#182 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1130 2006/07/15 20:22:40 netchild Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1133 2006/07/25 02:15:28 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -724,8 +724,10 @@ dev/mii/e1000phy.c optional miibus | e1000phy # XXX only xl cards? dev/mii/exphy.c optional miibus | exphy +dev/mii/gentbi.c optional miibus | gentbi # XXX only fxp cards? dev/mii/inphy.c optional miibus | inphy +dev/mii/ip1000phy.c optional miibus | ip1000phy dev/mii/lxtphy.c optional miibus | lxtphy dev/mii/mii.c optional miibus | mii dev/mii/mii_physubr.c optional miibus | mii @@ -950,6 +952,7 @@ dev/stg/tmc18c30_pccard.c optional stg pccard dev/stg/tmc18c30_pci.c optional stg pci dev/stg/tmc18c30_subr.c optional stg +dev/stge/if_stge.c optional stge dev/streams/streams.c optional streams dev/sym/sym_hipd.c optional sym \ dependency "$S/dev/sym/sym_{conf,defs}.h" @@ -1420,6 +1423,7 @@ kern/uipc_mqueue.c optional p1003_1b_mqueue kern/uipc_proto.c standard kern/uipc_sem.c optional p1003_1b_semaphores +kern/uipc_sockbuf.c standard kern/uipc_socket.c standard kern/uipc_socket2.c standard kern/uipc_syscalls.c standard ==== //depot/projects/smpng/sys/conf/files.i386#99 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.562 2006/06/26 23:41:07 obrien Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.563 2006/07/22 16:18:47 pjd Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -135,6 +135,8 @@ no-implicit-rule crypto/des/arch/i386/des_enc.S optional crypto | ipsec ipsec_esp | netsmb crypto/via/padlock.c optional padlock +crypto/via/padlock_cipher.c optional padlock +crypto/via/padlock_hash.c optional padlock dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa dev/arcmsr/arcmsr.c optional arcmsr pci ==== //depot/projects/smpng/sys/conf/files.powerpc#30 (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.powerpc,v 1.54 2006/06/08 23:38:01 sam Exp $ +# $FreeBSD: src/sys/conf/files.powerpc,v 1.56 2006/07/26 19:44:42 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -125,8 +125,6 @@ powerpc/psim/iobus.c optional psim powerpc/psim/ata_iobus.c optional ata psim powerpc/psim/openpic_iobus.c optional psim -powerpc/psim/sio_iobus.c optional sio psim +powerpc/psim/uart_iobus.c optional uart psim dev/scc/scc_bfe_macio.c optional scc powermac -dev/zs/zs.c optional powermac zs -dev/zs/zs_macio.c optional powermac zs ==== //depot/projects/smpng/sys/crypto/via/padlock.c#6 (text+ko) ==== @@ -1,6 +1,5 @@ /*- - * Copyright (c) 2005 Pawel Jakub Dawidek - * Copyright (c) 2004 Mark R V Murray + * Copyright (c) 2005-2006 Pawel Jakub Dawidek * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -11,7 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -25,27 +24,8 @@ * SUCH DAMAGE. */ -/* $OpenBSD: via.c,v 1.3 2004/06/15 23:36:55 deraadt Exp $ */ -/*- - * Copyright (c) 2003 Jason Wright - * Copyright (c) 2003, 2004 Theo de Raadt - * All rights reserved. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - #include -__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.6 2006/07/13 09:15:13 mr Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.10 2006/07/25 19:04:26 pjd Exp $"); #include #include @@ -63,67 +43,15 @@ #endif #include -#include /* for hmac_ipad_buffer and hmac_opad_buffer */ -#include -#include +#include -#define PADLOCK_ROUND_COUNT_AES128 10 -#define PADLOCK_ROUND_COUNT_AES192 12 -#define PADLOCK_ROUND_COUNT_AES256 14 - -#define PADLOCK_ALGORITHM_TYPE_AES 0 - -#define PADLOCK_KEY_GENERATION_HW 0 -#define PADLOCK_KEY_GENERATION_SW 1 - -#define PADLOCK_DIRECTION_ENCRYPT 0 -#define PADLOCK_DIRECTION_DECRYPT 1 - -#define PADLOCK_KEY_SIZE_128 0 -#define PADLOCK_KEY_SIZE_192 1 -#define PADLOCK_KEY_SIZE_256 2 +/* + * Technical documentation about the PadLock engine can be found here: + * + * http://www.via.com.tw/en/downloads/whitepapers/initiatives/padlock/programming_guide.pdf + */ -union padlock_cw { - uint64_t raw; - struct { - u_int round_count : 4; - u_int algorithm_type : 3; - u_int key_generation : 1; - u_int intermediate : 1; - u_int direction : 1; - u_int key_size : 2; - u_int filler0 : 20; - u_int filler1 : 32; - u_int filler2 : 32; - u_int filler3 : 32; - } __field; -}; -#define cw_round_count __field.round_count -#define cw_algorithm_type __field.algorithm_type -#define cw_key_generation __field.key_generation -#define cw_intermediate __field.intermediate -#define cw_direction __field.direction -#define cw_key_size __field.key_size -#define cw_filler0 __field.filler0 -#define cw_filler1 __field.filler1 -#define cw_filler2 __field.filler2 -#define cw_filler3 __field.filler3 - -struct padlock_session { - union padlock_cw ses_cw __aligned(16); - uint32_t ses_ekey[4 * (RIJNDAEL_MAXNR + 1) + 4] __aligned(16); /* 128 bit aligned */ - uint32_t ses_dkey[4 * (RIJNDAEL_MAXNR + 1) + 4] __aligned(16); /* 128 bit aligned */ - uint8_t ses_iv[16] __aligned(16); /* 128 bit aligned */ - struct auth_hash *ses_axf; - uint8_t *ses_ictx; - uint8_t *ses_octx; - int ses_mlen; - int ses_used; - uint32_t ses_id; - TAILQ_ENTRY(padlock_session) ses_next; -}; - struct padlock_softc { int32_t sc_cid; uint32_t sc_sid; @@ -139,47 +67,50 @@ static int padlock_process(void *arg __unused, struct cryptop *crp, int hint __unused); -static __inline void -padlock_cbc(void *in, void *out, size_t count, void *key, union padlock_cw *cw, - void *iv) -{ -#ifdef __GNUCLIKE_ASM - /* The .byte line is really VIA C3 "xcrypt-cbc" instruction */ - __asm __volatile( - "pushf \n\t" - "popf \n\t" - "rep \n\t" - ".byte 0x0f, 0xa7, 0xd0" - : "+a" (iv), "+c" (count), "+D" (out), "+S" (in) - : "b" (key), "d" (cw) - : "cc", "memory" - ); -#endif -} +MALLOC_DEFINE(M_PADLOCK, "padlock_data", "PadLock Data"); static int padlock_init(void) { struct padlock_softc *sc; + char capp[256]; + #if defined(__i386__) && !defined(PC98) + /* If there is no AES support, we has nothing to do here. */ if (!(via_feature_xcrypt & VIA_HAS_AES)) { - printf("PADLOCK: No ACE support.\n"); + printf("PadLock: No ACE support.\n"); return (EINVAL); - } else - printf("PADLOCK: HW support loaded.\n"); + } + strlcpy(capp, "AES-CBC", sizeof(capp)); +#if 0 + strlcat(capp, ",AES-EBC", sizeof(capp)); + strlcat(capp, ",AES-CFB", sizeof(capp)); + strlcat(capp, ",AES-OFB", sizeof(capp)); +#endif + if (via_feature_xcrypt & VIA_HAS_SHA) { + strlcat(capp, ",SHA1", sizeof(capp)); + strlcat(capp, ",SHA256", sizeof(capp)); + } +#if 0 + if (via_feature_xcrypt & VIA_HAS_AESCTR) + strlcat(capp, ",AES-CTR", sizeof(capp)); + if (via_feature_xcrypt & VIA_HAS_MM) + strlcat(capp, ",RSA", sizeof(capp)); +#endif + printf("PadLock: HW support loaded for %s.\n", capp); #else return (EINVAL); #endif - padlock_sc = sc = malloc(sizeof(*padlock_sc), M_DEVBUF, + padlock_sc = sc = malloc(sizeof(*padlock_sc), M_PADLOCK, M_WAITOK | M_ZERO); TAILQ_INIT(&sc->sc_sessions); sc->sc_sid = 1; sc->sc_cid = crypto_get_driverid(0); if (sc->sc_cid < 0) { - printf("PADLOCK: Could not get crypto driver id.\n"); - free(padlock_sc, M_DEVBUF); + printf("PadLock: Could not get crypto driver id.\n"); + free(padlock_sc, M_PADLOCK); padlock_sc = NULL; return (ENOMEM); } @@ -218,7 +149,7 @@ } if (active > 0) { mtx_unlock(&sc->sc_sessions_mtx); - printf("PADLOCK: Cannot destroy, %u sessions active.\n", + printf("PadLock: Cannot destroy, %u sessions active.\n", active); return (EBUSY); } @@ -226,102 +157,21 @@ for (ses = TAILQ_FIRST(&sc->sc_sessions); ses != NULL; ses = TAILQ_FIRST(&sc->sc_sessions)) { TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next); - free(ses, M_DEVBUF); + free(ses, M_PADLOCK); } mtx_destroy(&sc->sc_sessions_mtx); crypto_unregister_all(sc->sc_cid); - free(sc, M_DEVBUF); + free(sc, M_PADLOCK); return (0); } -static void -padlock_setup_enckey(struct padlock_session *ses, caddr_t key, int klen) -{ - union padlock_cw *cw; - int i; - - cw = &ses->ses_cw; - if (cw->cw_key_generation == PADLOCK_KEY_GENERATION_SW) { - /* Build expanded keys for both directions */ - rijndaelKeySetupEnc(ses->ses_ekey, key, klen); - rijndaelKeySetupDec(ses->ses_dkey, key, klen); - for (i = 0; i < 4 * (RIJNDAEL_MAXNR + 1); i++) { - ses->ses_ekey[i] = ntohl(ses->ses_ekey[i]); - ses->ses_dkey[i] = ntohl(ses->ses_dkey[i]); - } - } else { - bcopy(key, ses->ses_ekey, klen); - bcopy(key, ses->ses_dkey, klen); - } -} - -static void -padlock_setup_mackey(struct padlock_session *ses, caddr_t key, int klen) -{ - struct auth_hash *axf; - int i; - - klen /= 8; - axf = ses->ses_axf; - - for (i = 0; i < klen; i++) - key[i] ^= HMAC_IPAD_VAL; - - axf->Init(ses->ses_ictx); - axf->Update(ses->ses_ictx, key, klen); - axf->Update(ses->ses_ictx, hmac_ipad_buffer, axf->blocksize - klen); - - for (i = 0; i < klen; i++) - key[i] ^= (HMAC_IPAD_VAL ^ HMAC_OPAD_VAL); - - axf->Init(ses->ses_octx); - axf->Update(ses->ses_octx, key, klen); - axf->Update(ses->ses_octx, hmac_opad_buffer, axf->blocksize - klen); - - for (i = 0; i < klen; i++) - key[i] ^= HMAC_OPAD_VAL; -} - -/* - * Compute keyed-hash authenticator. - */ static int -padlock_authcompute(struct padlock_session *ses, struct cryptodesc *crd, - caddr_t buf, int flags) -{ - u_char hash[HASH_MAX_LEN]; - struct auth_hash *axf; - union authctx ctx; - int error; - - axf = ses->ses_axf; - - bcopy(ses->ses_ictx, &ctx, axf->ctxsize); - - error = crypto_apply(flags, buf, crd->crd_skip, crd->crd_len, - (int (*)(void *, void *, unsigned int))axf->Update, (caddr_t)&ctx); - if (error != 0) - return (error); - - axf->Final(hash, &ctx); - bcopy(ses->ses_octx, &ctx, axf->ctxsize); - axf->Update(&ctx, hash, axf->hashsize); - axf->Final(hash, &ctx); - - /* Inject the authentication data */ - crypto_copyback(flags, buf, crd->crd_inject, - ses->ses_mlen == 0 ? axf->hashsize : ses->ses_mlen, hash); - return (0); -} - - -static int padlock_newsession(void *arg __unused, uint32_t *sidp, struct cryptoini *cri) { struct padlock_softc *sc = padlock_sc; struct padlock_session *ses = NULL; struct cryptoini *encini, *macini; - union padlock_cw *cw; + int error; if (sc == NULL || sidp == NULL || cri == NULL) return (EINVAL); @@ -357,10 +207,6 @@ */ if (encini == NULL) return (EINVAL); - if (encini->cri_klen != 128 && encini->cri_klen != 192 && - encini->cri_klen != 256) { - return (EINVAL); - } /* * Let's look for a free session structure. @@ -380,7 +226,7 @@ } mtx_unlock(&sc->sc_sessions_mtx); if (ses == NULL) { - ses = malloc(sizeof(*ses), M_DEVBUF, M_NOWAIT | M_ZERO); + ses = malloc(sizeof(*ses), M_PADLOCK, M_NOWAIT | M_ZERO); if (ses == NULL) return (ENOMEM); ses->ses_used = 1; @@ -390,76 +236,17 @@ mtx_unlock(&sc->sc_sessions_mtx); } - cw = &ses->ses_cw; - bzero(cw, sizeof(*cw)); - cw->cw_algorithm_type = PADLOCK_ALGORITHM_TYPE_AES; - cw->cw_key_generation = PADLOCK_KEY_GENERATION_SW; - cw->cw_intermediate = 0; - switch (encini->cri_klen) { - case 128: - cw->cw_round_count = PADLOCK_ROUND_COUNT_AES128; - cw->cw_key_size = PADLOCK_KEY_SIZE_128; -#ifdef HW_KEY_GENERATION - /* This doesn't buy us much, that's why it is commented out. */ - cw->cw_key_generation = PADLOCK_KEY_GENERATION_HW; -#endif - break; - case 192: - cw->cw_round_count = PADLOCK_ROUND_COUNT_AES192; - cw->cw_key_size = PADLOCK_KEY_SIZE_192; - break; - case 256: - cw->cw_round_count = PADLOCK_ROUND_COUNT_AES256; - cw->cw_key_size = PADLOCK_KEY_SIZE_256; - break; + error = padlock_cipher_setup(ses, encini); + if (error != 0) { + padlock_freesession(NULL, ses->ses_id); + return (error); } - if (encini->cri_key != NULL) - padlock_setup_enckey(ses, encini->cri_key, encini->cri_klen); - arc4rand(ses->ses_iv, sizeof(ses->ses_iv), 0); - if (macini != NULL) { - ses->ses_mlen = macini->cri_mlen; - - /* Find software structure which describes HMAC algorithm. */ - switch (macini->cri_alg) { - case CRYPTO_NULL_HMAC: - ses->ses_axf = &auth_hash_null; - break; - case CRYPTO_MD5_HMAC: - ses->ses_axf = &auth_hash_hmac_md5; - break; - case CRYPTO_SHA1_HMAC: - ses->ses_axf = &auth_hash_hmac_sha1; - break; - case CRYPTO_RIPEMD160_HMAC: - ses->ses_axf = &auth_hash_hmac_ripemd_160; - break; - case CRYPTO_SHA2_256_HMAC: - ses->ses_axf = &auth_hash_hmac_sha2_256; - break; - case CRYPTO_SHA2_384_HMAC: - ses->ses_axf = &auth_hash_hmac_sha2_384; - break; - case CRYPTO_SHA2_512_HMAC: - ses->ses_axf = &auth_hash_hmac_sha2_512; - break; - } - - /* Allocate memory for HMAC inner and outer contexts. */ - ses->ses_ictx = malloc(ses->ses_axf->ctxsize, M_CRYPTO_DATA, - M_NOWAIT); - ses->ses_octx = malloc(ses->ses_axf->ctxsize, M_CRYPTO_DATA, - M_NOWAIT); - if (ses->ses_ictx == NULL || ses->ses_octx == NULL) { + error = padlock_hash_setup(ses, macini); + if (error != 0) { padlock_freesession(NULL, ses->ses_id); - return (ENOMEM); - } - - /* Setup key if given. */ - if (macini->cri_key != NULL) { - padlock_setup_mackey(ses, macini->cri_key, - macini->cri_klen); + return (error); } } @@ -486,15 +273,8 @@ return (EINVAL); } TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next); - if (ses->ses_ictx != NULL) { - bzero(ses->ses_ictx, sizeof(ses->ses_ictx)); - free(ses->ses_ictx, M_CRYPTO_DATA); - } - if (ses->ses_octx != NULL) { - bzero(ses->ses_octx, sizeof(ses->ses_octx)); - free(ses->ses_octx, M_CRYPTO_DATA); - } - bzero(ses, sizeof(ses)); + padlock_hash_free(ses); + bzero(ses, sizeof(*ses)); ses->ses_used = 0; TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); mtx_unlock(&sc->sc_sessions_mtx); @@ -505,15 +285,11 @@ padlock_process(void *arg __unused, struct cryptop *crp, int hint __unused) { struct padlock_softc *sc = padlock_sc; - struct padlock_session *ses; - union padlock_cw *cw; + struct padlock_session *ses = NULL; struct cryptodesc *crd, *enccrd, *maccrd; - uint32_t *key; - u_char *buf, *abuf; int error = 0; enccrd = maccrd = NULL; - buf = NULL; if (crp == NULL || crp->crp_callback == NULL || crp->crp_desc == NULL) { error = EINVAL; @@ -562,81 +338,36 @@ goto out; } - buf = malloc(enccrd->crd_len + 16, M_DEVBUF, M_NOWAIT); - if (buf == NULL) { - error = ENOMEM; - goto out; - } - /* Buffer has to be 16 bytes aligned. */ - abuf = buf + 16 - ((uintptr_t)buf % 16); - - if ((enccrd->crd_flags & CRD_F_KEY_EXPLICIT) != 0) - padlock_setup_enckey(ses, enccrd->crd_key, enccrd->crd_klen); - if (maccrd != NULL && (maccrd->crd_flags & CRD_F_KEY_EXPLICIT) != 0) - padlock_setup_mackey(ses, maccrd->crd_key, maccrd->crd_klen); - - cw = &ses->ses_cw; - cw->cw_filler0 = 0; - cw->cw_filler1 = 0; - cw->cw_filler2 = 0; - cw->cw_filler3 = 0; - if ((enccrd->crd_flags & CRD_F_ENCRYPT) != 0) { - cw->cw_direction = PADLOCK_DIRECTION_ENCRYPT; - key = ses->ses_ekey; - if ((enccrd->crd_flags & CRD_F_IV_EXPLICIT) != 0) - bcopy(enccrd->crd_iv, ses->ses_iv, 16); - - if ((enccrd->crd_flags & CRD_F_IV_PRESENT) == 0) { - crypto_copyback(crp->crp_flags, crp->crp_buf, - enccrd->crd_inject, AES_BLOCK_LEN, ses->ses_iv); - } - } else { - cw->cw_direction = PADLOCK_DIRECTION_DECRYPT; - key = ses->ses_dkey; - if ((enccrd->crd_flags & CRD_F_IV_EXPLICIT) != 0) - bcopy(enccrd->crd_iv, ses->ses_iv, AES_BLOCK_LEN); - else { - crypto_copydata(crp->crp_flags, crp->crp_buf, - enccrd->crd_inject, AES_BLOCK_LEN, ses->ses_iv); - } - } - /* Perform data authentication if requested before encryption. */ if (maccrd != NULL && maccrd->crd_next == enccrd) { - error = padlock_authcompute(ses, maccrd, crp->crp_buf, - crp->crp_flags); + error = padlock_hash_process(ses, maccrd, crp); if (error != 0) goto out; } - crypto_copydata(crp->crp_flags, crp->crp_buf, enccrd->crd_skip, - enccrd->crd_len, abuf); - - padlock_cbc(abuf, abuf, enccrd->crd_len / 16, key, cw, ses->ses_iv); + error = padlock_cipher_process(ses, enccrd, crp); + if (error != 0) + goto out; - crypto_copyback(crp->crp_flags, crp->crp_buf, enccrd->crd_skip, - enccrd->crd_len, abuf); - /* Perform data authentication if requested after encryption. */ if (maccrd != NULL && enccrd->crd_next == maccrd) { - error = padlock_authcompute(ses, maccrd, crp->crp_buf, - crp->crp_flags); + error = padlock_hash_process(ses, maccrd, crp); if (error != 0) goto out; } - /* copy out last block for use as next session IV */ - if ((enccrd->crd_flags & CRD_F_ENCRYPT) != 0) { - crypto_copydata(crp->crp_flags, crp->crp_buf, - enccrd->crd_skip + enccrd->crd_len - AES_BLOCK_LEN, - AES_BLOCK_LEN, ses->ses_iv); - } - out: - if (buf != NULL) { - bzero(buf, enccrd->crd_len + 16); - free(buf, M_DEVBUF); +#if 0 + /* + * This code is not necessary, because contexts will be freed on next + * padlock_setup_mackey() call or at padlock_freesession() call. + */ + if (ses != NULL && maccrd != NULL && >>> TRUNCATED FOR MAIL (1000 lines) <<<