svn commit: r227066 - in user/attilio/vmcontention: . contrib/top
lib/libc/amd64/gen lib/libc/i386/gen
lib/libpam/modules/pam_unix share/man/man4 share/misc
share/mk sys/amd64/conf sys/arm/conf sys...
Attilio Rao
attilio at FreeBSD.org
Thu Nov 3 21:57:03 UTC 2011
Author: attilio
Date: Thu Nov 3 21:57:02 2011
New Revision: 227066
URL: http://svn.freebsd.org/changeset/base/227066
Log:
MFC
Added:
user/attilio/vmcontention/share/man/man4/qlxgb.4
- copied unchanged from r227065, head/share/man/man4/qlxgb.4
user/attilio/vmcontention/sys/dev/esp/am53c974reg.h
- copied unchanged from r227065, head/sys/dev/esp/am53c974reg.h
user/attilio/vmcontention/sys/dev/esp/esp_pci.c
- copied unchanged from r227065, head/sys/dev/esp/esp_pci.c
user/attilio/vmcontention/sys/dev/mii/mii_bitbang.c
- copied unchanged from r227065, head/sys/dev/mii/mii_bitbang.c
user/attilio/vmcontention/sys/dev/mii/mii_bitbang.h
- copied unchanged from r227065, head/sys/dev/mii/mii_bitbang.h
user/attilio/vmcontention/sys/dev/qlxgb/
- copied from r227065, head/sys/dev/qlxgb/
user/attilio/vmcontention/sys/modules/qlxgb/
- copied from r227065, head/sys/modules/qlxgb/
Modified:
user/attilio/vmcontention/UPDATING
user/attilio/vmcontention/lib/libc/amd64/gen/setjmp.S
user/attilio/vmcontention/lib/libc/amd64/gen/sigsetjmp.S
user/attilio/vmcontention/lib/libc/i386/gen/setjmp.S
user/attilio/vmcontention/lib/libc/i386/gen/sigsetjmp.S
user/attilio/vmcontention/lib/libpam/modules/pam_unix/pam_unix.8
user/attilio/vmcontention/share/man/man4/Makefile
user/attilio/vmcontention/share/misc/bsd-family-tree
user/attilio/vmcontention/sys/amd64/conf/GENERIC
user/attilio/vmcontention/sys/arm/conf/GUMSTIX
user/attilio/vmcontention/sys/boot/common/loader.8
user/attilio/vmcontention/sys/conf/NOTES
user/attilio/vmcontention/sys/conf/files
user/attilio/vmcontention/sys/conf/files.amd64
user/attilio/vmcontention/sys/dev/ata/ata-pci.c
user/attilio/vmcontention/sys/dev/ata/chipsets/ata-promise.c
user/attilio/vmcontention/sys/dev/ata/chipsets/ata-siliconimage.c
user/attilio/vmcontention/sys/dev/bm/if_bm.c
user/attilio/vmcontention/sys/dev/bm/if_bmreg.h
user/attilio/vmcontention/sys/dev/bm/if_bmvar.h
user/attilio/vmcontention/sys/dev/dc/if_dc.c
user/attilio/vmcontention/sys/dev/dc/if_dcreg.h
user/attilio/vmcontention/sys/dev/mpt/mpt.c
user/attilio/vmcontention/sys/dev/nge/if_nge.c
user/attilio/vmcontention/sys/dev/nge/if_ngereg.h
user/attilio/vmcontention/sys/dev/re/if_re.c
user/attilio/vmcontention/sys/dev/sis/if_sis.c
user/attilio/vmcontention/sys/dev/sis/if_sisreg.h
user/attilio/vmcontention/sys/dev/smc/if_smc.c
user/attilio/vmcontention/sys/dev/ste/if_ste.c
user/attilio/vmcontention/sys/dev/ste/if_stereg.h
user/attilio/vmcontention/sys/dev/stge/if_stge.c
user/attilio/vmcontention/sys/dev/stge/if_stgereg.h
user/attilio/vmcontention/sys/dev/tl/if_tl.c
user/attilio/vmcontention/sys/dev/tl/if_tlreg.h
user/attilio/vmcontention/sys/dev/uart/uart_dev_ns8250.c
user/attilio/vmcontention/sys/dev/wb/if_wb.c
user/attilio/vmcontention/sys/dev/wb/if_wbreg.h
user/attilio/vmcontention/sys/dev/xl/if_xl.c
user/attilio/vmcontention/sys/dev/xl/if_xlreg.h
user/attilio/vmcontention/sys/fs/devfs/devfs_vnops.c
user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c
user/attilio/vmcontention/sys/geom/concat/g_concat.c
user/attilio/vmcontention/sys/geom/concat/g_concat.h
user/attilio/vmcontention/sys/geom/geom_dev.c
user/attilio/vmcontention/sys/geom/geom_event.c
user/attilio/vmcontention/sys/geom/geom_vfs.c
user/attilio/vmcontention/sys/geom/stripe/g_stripe.c
user/attilio/vmcontention/sys/i386/conf/GENERIC
user/attilio/vmcontention/sys/kern/subr_smp.c
user/attilio/vmcontention/sys/mips/mips/pmap.c
user/attilio/vmcontention/sys/modules/Makefile
user/attilio/vmcontention/sys/modules/esp/Makefile
user/attilio/vmcontention/sys/modules/mii/Makefile
user/attilio/vmcontention/sys/net/rtsock.c
user/attilio/vmcontention/sys/netinet/tcp_input.c
user/attilio/vmcontention/sys/netinet/tcp_output.c
user/attilio/vmcontention/sys/netinet6/icmp6.c
user/attilio/vmcontention/sys/pc98/conf/GENERIC
user/attilio/vmcontention/sys/pci/if_rl.c
user/attilio/vmcontention/sys/pci/if_rlreg.h
user/attilio/vmcontention/sys/rpc/clnt_dg.c
user/attilio/vmcontention/sys/sparc64/conf/GENERIC
user/attilio/vmcontention/sys/vm/vm_page.c
user/attilio/vmcontention/usr.sbin/mergemaster/mergemaster.8
user/attilio/vmcontention/usr.sbin/mergemaster/mergemaster.sh
user/attilio/vmcontention/usr.sbin/pmcstat/pmcstat.c
user/attilio/vmcontention/usr.sbin/tzsetup/tzsetup.c
Directory Properties:
user/attilio/vmcontention/ (props changed)
user/attilio/vmcontention/cddl/contrib/opensolaris/ (props changed)
user/attilio/vmcontention/contrib/bind9/ (props changed)
user/attilio/vmcontention/contrib/binutils/ (props changed)
user/attilio/vmcontention/contrib/bzip2/ (props changed)
user/attilio/vmcontention/contrib/com_err/ (props changed)
user/attilio/vmcontention/contrib/compiler-rt/ (props changed)
user/attilio/vmcontention/contrib/dialog/ (props changed)
user/attilio/vmcontention/contrib/ee/ (props changed)
user/attilio/vmcontention/contrib/expat/ (props changed)
user/attilio/vmcontention/contrib/file/ (props changed)
user/attilio/vmcontention/contrib/gcc/ (props changed)
user/attilio/vmcontention/contrib/gdb/ (props changed)
user/attilio/vmcontention/contrib/gdtoa/ (props changed)
user/attilio/vmcontention/contrib/gnu-sort/ (props changed)
user/attilio/vmcontention/contrib/groff/ (props changed)
user/attilio/vmcontention/contrib/less/ (props changed)
user/attilio/vmcontention/contrib/libpcap/ (props changed)
user/attilio/vmcontention/contrib/libstdc++/ (props changed)
user/attilio/vmcontention/contrib/llvm/ (props changed)
user/attilio/vmcontention/contrib/llvm/tools/clang/ (props changed)
user/attilio/vmcontention/contrib/ncurses/ (props changed)
user/attilio/vmcontention/contrib/netcat/ (props changed)
user/attilio/vmcontention/contrib/ntp/ (props changed)
user/attilio/vmcontention/contrib/one-true-awk/ (props changed)
user/attilio/vmcontention/contrib/openbsm/ (props changed)
user/attilio/vmcontention/contrib/openpam/ (props changed)
user/attilio/vmcontention/contrib/openresolv/ (props changed)
user/attilio/vmcontention/contrib/pf/ (props changed)
user/attilio/vmcontention/contrib/sendmail/ (props changed)
user/attilio/vmcontention/contrib/tcpdump/ (props changed)
user/attilio/vmcontention/contrib/tcsh/ (props changed)
user/attilio/vmcontention/contrib/tnftp/ (props changed)
user/attilio/vmcontention/contrib/top/ (props changed)
user/attilio/vmcontention/contrib/top/install-sh (props changed)
user/attilio/vmcontention/contrib/tzcode/stdtime/ (props changed)
user/attilio/vmcontention/contrib/tzcode/zic/ (props changed)
user/attilio/vmcontention/contrib/tzdata/ (props changed)
user/attilio/vmcontention/contrib/wpa/ (props changed)
user/attilio/vmcontention/contrib/xz/ (props changed)
user/attilio/vmcontention/crypto/heimdal/ (props changed)
user/attilio/vmcontention/crypto/openssh/ (props changed)
user/attilio/vmcontention/crypto/openssl/ (props changed)
user/attilio/vmcontention/gnu/lib/ (props changed)
user/attilio/vmcontention/gnu/usr.bin/binutils/ (props changed)
user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/ (props changed)
user/attilio/vmcontention/gnu/usr.bin/gdb/ (props changed)
user/attilio/vmcontention/lib/libc/ (props changed)
user/attilio/vmcontention/lib/libc/stdtime/ (props changed)
user/attilio/vmcontention/lib/libutil/ (props changed)
user/attilio/vmcontention/lib/libz/ (props changed)
user/attilio/vmcontention/sbin/ (props changed)
user/attilio/vmcontention/sbin/ipfw/ (props changed)
user/attilio/vmcontention/share/mk/bsd.arch.inc.mk (props changed)
user/attilio/vmcontention/share/zoneinfo/ (props changed)
user/attilio/vmcontention/sys/ (props changed)
user/attilio/vmcontention/sys/amd64/include/xen/ (props changed)
user/attilio/vmcontention/sys/boot/ (props changed)
user/attilio/vmcontention/sys/boot/i386/efi/ (props changed)
user/attilio/vmcontention/sys/boot/ia64/efi/ (props changed)
user/attilio/vmcontention/sys/boot/ia64/ski/ (props changed)
user/attilio/vmcontention/sys/boot/powerpc/boot1.chrp/ (props changed)
user/attilio/vmcontention/sys/boot/powerpc/ofw/ (props changed)
user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed)
user/attilio/vmcontention/sys/conf/ (props changed)
user/attilio/vmcontention/sys/contrib/dev/acpica/ (props changed)
user/attilio/vmcontention/sys/contrib/octeon-sdk/ (props changed)
user/attilio/vmcontention/sys/contrib/pf/ (props changed)
user/attilio/vmcontention/sys/contrib/x86emu/ (props changed)
user/attilio/vmcontention/usr.bin/calendar/ (props changed)
user/attilio/vmcontention/usr.bin/csup/ (props changed)
user/attilio/vmcontention/usr.bin/procstat/ (props changed)
user/attilio/vmcontention/usr.sbin/ndiscvt/ (props changed)
user/attilio/vmcontention/usr.sbin/rtadvctl/ (props changed)
user/attilio/vmcontention/usr.sbin/rtadvd/ (props changed)
user/attilio/vmcontention/usr.sbin/rtsold/ (props changed)
user/attilio/vmcontention/usr.sbin/zic/ (props changed)
Modified: user/attilio/vmcontention/UPDATING
==============================================================================
--- user/attilio/vmcontention/UPDATING Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/UPDATING Thu Nov 3 21:57:02 2011 (r227066)
@@ -22,6 +22,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10
machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20111101:
+ The broken amd(4) driver has been replaced with esp(4) in the amd64,
+ i386 and pc98 GENERIC kernel configuration files.
+
20110930:
sysinstall has been removed
Modified: user/attilio/vmcontention/lib/libc/amd64/gen/setjmp.S
==============================================================================
--- user/attilio/vmcontention/lib/libc/amd64/gen/setjmp.S Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/lib/libc/amd64/gen/setjmp.S Thu Nov 3 21:57:02 2011 (r227066)
@@ -54,6 +54,7 @@ ENTRY(setjmp)
movq $1,%rdi /* SIG_BLOCK */
movq $0,%rsi /* (sigset_t*)set */
leaq 72(%rcx),%rdx /* 9,10; (sigset_t*)oset */
+ /* stack is 16-byte aligned */
call PIC_PLT(CNAME(_sigprocmask))
popq %rdi
movq %rdi,%rcx
@@ -81,7 +82,9 @@ ENTRY(__longjmp)
movq $3,%rdi /* SIG_SETMASK */
leaq 72(%rdx),%rsi /* (sigset_t*)set */
movq $0,%rdx /* (sigset_t*)oset */
+ subq $0x8,%rsp /* make the stack 16-byte aligned */
call PIC_PLT(CNAME(_sigprocmask))
+ addq $0x8,%rsp
popq %rsi
popq %rdi /* jmpbuf */
movq %rdi,%rdx
Modified: user/attilio/vmcontention/lib/libc/amd64/gen/sigsetjmp.S
==============================================================================
--- user/attilio/vmcontention/lib/libc/amd64/gen/sigsetjmp.S Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/lib/libc/amd64/gen/sigsetjmp.S Thu Nov 3 21:57:02 2011 (r227066)
@@ -62,6 +62,7 @@ ENTRY(sigsetjmp)
movq $1,%rdi /* SIG_BLOCK */
movq $0,%rsi /* (sigset_t*)set */
leaq 72(%rcx),%rdx /* 9,10 (sigset_t*)oset */
+ /* stack is 16-byte aligned */
call PIC_PLT(CNAME(_sigprocmask))
popq %rdi
2: movq %rdi,%rcx
@@ -90,7 +91,9 @@ ENTRY(__siglongjmp)
movq $3,%rdi /* SIG_SETMASK */
leaq 72(%rdx),%rsi /* (sigset_t*)set */
movq $0,%rdx /* (sigset_t*)oset */
+ subq $0x8,%rsp /* make the stack 16-byte aligned */
call PIC_PLT(CNAME(_sigprocmask))
+ addq $0x8,%rsp
popq %rsi
popq %rdi /* jmpbuf */
2: movq %rdi,%rdx
Modified: user/attilio/vmcontention/lib/libc/i386/gen/setjmp.S
==============================================================================
--- user/attilio/vmcontention/lib/libc/i386/gen/setjmp.S Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/lib/libc/i386/gen/setjmp.S Thu Nov 3 21:57:02 2011 (r227066)
@@ -51,12 +51,19 @@ __FBSDID("$FreeBSD$");
ENTRY(setjmp)
movl 4(%esp),%ecx
PIC_PROLOGUE
+#ifdef PIC
+ subl $12,%esp /* make the stack 16-byte aligned */
+#endif
leal 28(%ecx), %eax
pushl %eax /* (sigset_t*)oset */
pushl $0 /* (sigset_t*)set */
pushl $1 /* SIG_BLOCK */
call PIC_PLT(CNAME(_sigprocmask))
+#ifdef PIC
+ addl $24,%esp
+#else
addl $12,%esp
+#endif
PIC_EPILOGUE
movl 4(%esp),%ecx
movl 0(%esp),%edx
@@ -76,12 +83,19 @@ END(setjmp)
ENTRY(__longjmp)
movl 4(%esp),%edx
PIC_PROLOGUE
+#ifdef PIC
+ subl $12,%esp /* make the stack 16-byte aligned */
+#endif
pushl $0 /* (sigset_t*)oset */
leal 28(%edx), %eax
pushl %eax /* (sigset_t*)set */
pushl $3 /* SIG_SETMASK */
call PIC_PLT(CNAME(_sigprocmask))
+#ifdef PIC
+ addl $24,%esp
+#else
addl $12,%esp
+#endif
PIC_EPILOGUE
movl 4(%esp),%edx
movl 8(%esp),%eax
Modified: user/attilio/vmcontention/lib/libc/i386/gen/sigsetjmp.S
==============================================================================
--- user/attilio/vmcontention/lib/libc/i386/gen/sigsetjmp.S Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/lib/libc/i386/gen/sigsetjmp.S Thu Nov 3 21:57:02 2011 (r227066)
@@ -60,12 +60,19 @@ ENTRY(sigsetjmp)
testl %eax,%eax
jz 2f
PIC_PROLOGUE
+#ifdef PIC
+ subl $12,%esp /* make the stack 16-byte aligned */
+#endif
leal 28(%ecx), %eax
pushl %eax /* (sigset_t*)oset */
pushl $0 /* (sigset_t*)set */
pushl $1 /* SIG_BLOCK */
call PIC_PLT(CNAME(_sigprocmask))
+#ifdef PIC
+ addl $24,%esp
+#else
addl $12,%esp
+#endif
PIC_EPILOGUE
movl 4(%esp),%ecx
2: movl 0(%esp),%edx
@@ -87,12 +94,19 @@ ENTRY(__siglongjmp)
cmpl $0,44(%edx)
jz 2f
PIC_PROLOGUE
+#ifdef PIC
+ subl $12,%esp /* make the stack 16-byte aligned */
+#endif
pushl $0 /* (sigset_t*)oset */
leal 28(%edx), %eax
pushl %eax /* (sigset_t*)set */
pushl $3 /* SIG_SETMASK */
call PIC_PLT(CNAME(_sigprocmask))
+#ifdef PIC
+ addl $24,%esp
+#else
addl $12,%esp
+#endif
PIC_EPILOGUE
movl 4(%esp),%edx
2: movl 8(%esp),%eax
Modified: user/attilio/vmcontention/lib/libpam/modules/pam_unix/pam_unix.8
==============================================================================
--- user/attilio/vmcontention/lib/libpam/modules/pam_unix/pam_unix.8 Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/lib/libpam/modules/pam_unix/pam_unix.8 Thu Nov 3 21:57:02 2011 (r227066)
@@ -199,3 +199,9 @@ password database.
.Xr pam 8 ,
.Xr pw 8 ,
.Xr yp 8
+.Sh BUGS
+The
+.Nm
+module ignores the
+.Dv PAM_CHANGE_EXPIRED_AUTHTOK
+flag.
Modified: user/attilio/vmcontention/share/man/man4/Makefile
==============================================================================
--- user/attilio/vmcontention/share/man/man4/Makefile Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/share/man/man4/Makefile Thu Nov 3 21:57:02 2011 (r227066)
@@ -347,6 +347,7 @@ MAN= aac.4 \
pts.4 \
pty.4 \
puc.4 \
+ ${_qlxgb.4} \
ral.4 \
random.4 \
rc.4 \
@@ -713,6 +714,10 @@ _xen.4= xen.4
MLINKS+=lindev.4 full.4
.endif
+.if ${MACHINE_CPUARCH} == "amd64"
+_qlxgb.4= qlxgb.4
+.endif
+
.if ${MACHINE_CPUARCH} == "powerpc"
_atp.4= atp.4
.endif
Copied: user/attilio/vmcontention/share/man/man4/qlxgb.4 (from r227065, head/share/man/man4/qlxgb.4)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ user/attilio/vmcontention/share/man/man4/qlxgb.4 Thu Nov 3 21:57:02 2011 (r227066, copy of r227065, head/share/man/man4/qlxgb.4)
@@ -0,0 +1,93 @@
+.\"-
+.\" Copyright (c) 2011 "Bjoern A. Zeeb" <bz at FreeBSD.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 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 AUTHOR 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
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd November 3, 2011
+.Dt QLXGB 4
+.Os
+.Sh NAME
+.Nm qlxgb
+.Nd "QLogic 10 Gigabit Ethernet & CNA Adapter Driver"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device qlxgb"
+.Ed
+.Pp
+To load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_qlxgb_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver supports IPv4 checksum offload,
+TCP and UDP checksum offload for both IPv4 and IPv6,
+Large Segment Offload for both IPv4 and IPv6,
+Jumbo frames, VLAN Tag, and
+Receive Side scaling.
+For further hardware information, see
+.Pa http://www.qlogic.com/ .
+.Sh HARDWARE
+The
+.Nm
+driver supports 10 Gigabit Ethernet & CNA Adapter based on the following
+chipsets:
+.Pp
+.Bl -bullet -compact
+.It
+QLogic 3200 series
+.It
+QLogic 8200 series
+.El
+.Sh SUPPORT
+For support questions please contact your QLogic approved reseller or
+QLogic Technical Support at
+.Pa http://support.qlogic.com ,
+or by E-mail at
+.Aq support at qlogic.com .
+.Sh SEE ALSO
+.Xr altq 4 ,
+.Xr arp 4 ,
+.Xr netintro 4 ,
+.Xr ng_ether 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was written by
+.An David C Somayajulu
+at Qlogic Corporation.
Modified: user/attilio/vmcontention/share/misc/bsd-family-tree
==============================================================================
--- user/attilio/vmcontention/share/misc/bsd-family-tree Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/share/misc/bsd-family-tree Thu Nov 3 21:57:02 2011 (r227066)
@@ -248,6 +248,9 @@ FreeBSD 5.2 | |
| 8.2 7.4 | | | DragonFly 2.10.1
| v | | OpenBSD 4.9 |
| | | | |
+ | | | | |
+ | | | OpenBSD 5.0 |
+ | | | | |
FreeBSD 9 -current | NetBSD -current OpenBSD -current |
| | | | |
v v v v v
@@ -534,6 +537,7 @@ FreeBSD 7.4 2011-02-24 [FBD]
FreeBSD 8.2 2011-02-24 [FBD]
DragonFly 2.10.1 2011-04-26 [DFB]
OpenBSD 4.9 2011-05-01 [OBD]
+OpenBSD 5.0 2011-11-01 [OBD]
Bibliography
------------------------
Modified: user/attilio/vmcontention/sys/amd64/conf/GENERIC
==============================================================================
--- user/attilio/vmcontention/sys/amd64/conf/GENERIC Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/amd64/conf/GENERIC Thu Nov 3 21:57:02 2011 (r227066)
@@ -107,7 +107,7 @@ options AHC_REG_PRETTY_PRINT # Print re
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
-device amd # AMD 53C974 (Tekram DC-390(T))
+device esp # AMD Am53C974 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
Modified: user/attilio/vmcontention/sys/arm/conf/GUMSTIX
==============================================================================
--- user/attilio/vmcontention/sys/arm/conf/GUMSTIX Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/arm/conf/GUMSTIX Thu Nov 3 21:57:02 2011 (r227066)
@@ -70,6 +70,7 @@ options PREEMPTION
device loop
device ether
device mii
+device mii_bitbang
device smc
device smcphy
device uart
Modified: user/attilio/vmcontention/sys/boot/common/loader.8
==============================================================================
--- user/attilio/vmcontention/sys/boot/common/loader.8 Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/boot/common/loader.8 Thu Nov 3 21:57:02 2011 (r227066)
@@ -443,7 +443,7 @@ Sets the list of binaries which the kern
process.
The first matching binary is used.
The default list is
-.Dq Li /sbin/init:/sbin/oinit:/sbin/init.bak:\:/rescue/init:/stand/sysinstall .
+.Dq Li /sbin/init:/sbin/oinit:/sbin/init.bak:\:/rescue/init .
.It Va init_script
If set to a valid file name in the root file system,
instructs
Modified: user/attilio/vmcontention/sys/conf/NOTES
==============================================================================
--- user/attilio/vmcontention/sys/conf/NOTES Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/conf/NOTES Thu Nov 3 21:57:02 2011 (r227066)
@@ -1459,7 +1459,9 @@ options TEKEN_UTF8 # UTF-8 output hand
# such as the Tekram DC-390(T).
# bt: Most Buslogic controllers: including BT-445, BT-54x, BT-64x, BT-74x,
# BT-75x, BT-946, BT-948, BT-956, BT-958, SDC3211B, SDC3211F, SDC3222F
-# esp: NCR53c9x. Only for SBUS hardware right now.
+# esp: Emulex ESP, NCR 53C9x and QLogic FAS families based controllers
+# including the AMD Am53C974 (found on devices such as the Tekram
+# DC-390(T)) and the Sun ESP and FAS families of controllers
# isp: Qlogic ISP 1020, 1040 and 1040B PCI SCSI host adapters,
# ISP 1240 Dual Ultra SCSI, ISP 1080 and 1280 (Dual) Ultra2,
# ISP 12160 Ultra3 SCSI,
@@ -1846,13 +1848,15 @@ device puc
# MII bus support is required for many PCI Ethernet NICs,
# namely those which use MII-compliant transceivers or implement
# transceiver control interfaces that operate like an MII. Adding
-# "device miibus" to the kernel config pulls in support for
-# the generic miibus API and all of the PHY drivers, including a
-# generic one for PHYs that aren't specifically handled by an
-# individual driver. Support for specific PHYs may be built by adding
-# "device mii" then adding the appropriate PHY driver.
-device miibus # MII support including all PHYs
+# "device miibus" to the kernel config pulls in support for the generic
+# miibus API, the common support for for bit-bang'ing the MII and all
+# of the PHY drivers, including a generic one for PHYs that aren't
+# specifically handled by an individual driver. Support for specific
+# PHYs may be built by adding "device mii", "device mii_bitbang" if
+# needed by the NIC driver and then adding the appropriate PHY driver.
device mii # Minimal MII support
+device mii_bitbang # Common module for bit-bang'ing the MII
+device miibus # MII support w/ bit-bang'ing and all PHYs
device acphy # Altima Communications AC101
device amphy # AMD AM79c873 / Davicom DM910{1,2}
@@ -2809,7 +2813,7 @@ options UBSEC_RNDTEST # enable rndtest
# Embedded system options:
#
# An embedded system might want to run something other than init.
-options INIT_PATH=/sbin/init:/stand/sysinstall
+options INIT_PATH=/sbin/init:/rescue/init
# Debug options
options BUS_DEBUG # enable newbus debugging
Modified: user/attilio/vmcontention/sys/conf/files
==============================================================================
--- user/attilio/vmcontention/sys/conf/files Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/conf/files Thu Nov 3 21:57:02 2011 (r227066)
@@ -1064,6 +1064,7 @@ dev/ep/if_ep_eisa.c optional ep eisa
dev/ep/if_ep_isa.c optional ep isa
dev/ep/if_ep_mca.c optional ep mca
dev/ep/if_ep_pccard.c optional ep pccard
+dev/esp/esp_pci.c optional esp pci
dev/esp/ncr53c9x.c optional esp
dev/ex/if_ex.c optional ex
dev/ex/if_ex_isa.c optional ex isa
@@ -1425,6 +1426,7 @@ dev/mii/ip1000phy.c optional miibus | i
dev/mii/jmphy.c optional miibus | jmphy
dev/mii/lxtphy.c optional miibus | lxtphy
dev/mii/mii.c optional miibus | mii
+dev/mii/mii_bitbang.c optional miibus | mii_bitbang
dev/mii/mii_physubr.c optional miibus | mii
dev/mii/miibus_if.m optional miibus | mii
dev/mii/mlphy.c optional miibus | mlphy
Modified: user/attilio/vmcontention/sys/conf/files.amd64
==============================================================================
--- user/attilio/vmcontention/sys/conf/files.amd64 Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/conf/files.amd64 Thu Nov 3 21:57:02 2011 (r227066)
@@ -208,6 +208,12 @@ dev/lindev/lindev.c optional lindev
dev/nfe/if_nfe.c optional nfe pci
dev/nve/if_nve.c optional nve pci
dev/nvram/nvram.c optional nvram isa
+dev/qlxgb/qla_dbg.c optional qlxgb pci
+dev/qlxgb/qla_hw.c optional qlxgb pci
+dev/qlxgb/qla_ioctl.c optional qlxgb pci
+dev/qlxgb/qla_isr.c optional qlxgb pci
+dev/qlxgb/qla_misc.c optional qlxgb pci
+dev/qlxgb/qla_os.c optional qlxgb pci
dev/sio/sio.c optional sio
dev/sio/sio_isa.c optional sio isa
dev/sio/sio_pccard.c optional sio pccard
Modified: user/attilio/vmcontention/sys/dev/ata/ata-pci.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/ata/ata-pci.c Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/ata/ata-pci.c Thu Nov 3 21:57:02 2011 (r227066)
@@ -153,10 +153,20 @@ ata_pci_detach(device_t dev)
}
if (ctlr->chipdeinit != NULL)
ctlr->chipdeinit(dev);
- if (ctlr->r_res2)
+ if (ctlr->r_res2) {
+#ifdef __sparc64__
+ bus_space_unmap(rman_get_bustag(ctlr->r_res2),
+ rman_get_bushandle(ctlr->r_res2), rman_get_size(ctlr->r_res2));
+#endif
bus_release_resource(dev, ctlr->r_type2, ctlr->r_rid2, ctlr->r_res2);
- if (ctlr->r_res1)
+ }
+ if (ctlr->r_res1) {
+#ifdef __sparc64__
+ bus_space_unmap(rman_get_bustag(ctlr->r_res1),
+ rman_get_bushandle(ctlr->r_res1), rman_get_size(ctlr->r_res1));
+#endif
bus_release_resource(dev, ctlr->r_type1, ctlr->r_rid1, ctlr->r_res1);
+ }
return 0;
}
@@ -775,7 +785,6 @@ driver_t ata_pcichannel_driver = {
DRIVER_MODULE(ata, atapci, ata_pcichannel_driver, ata_devclass, 0, 0);
-
/*
* misc support fucntions
*/
@@ -936,4 +945,3 @@ ata_mode2idx(int mode)
return (mode & ATA_MODE_MASK) + 5;
return (mode & ATA_MODE_MASK) - ATA_PIO0;
}
-
Modified: user/attilio/vmcontention/sys/dev/ata/chipsets/ata-promise.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/ata/chipsets/ata-promise.c Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/ata/chipsets/ata-promise.c Thu Nov 3 21:57:02 2011 (r227066)
@@ -94,7 +94,6 @@ static void ata_promise_next_hpkt(struct
#define PR_SATA 0x40
#define PR_SATA2 0x80
-
/*
* Promise chipset support functions
*/
@@ -250,6 +249,14 @@ ata_promise_chipinit(device_t dev)
&ctlr->r_rid1, RF_ACTIVE)))
goto failnfree;
+#ifdef __sparc64__
+ if (ctlr->chip->cfg2 == PR_SX4X &&
+ !bus_space_map(rman_get_bustag(ctlr->r_res1),
+ rman_get_bushandle(ctlr->r_res1), rman_get_size(ctlr->r_res1),
+ BUS_SPACE_MAP_LINEAR, NULL))
+ goto failnfree;
+#endif
+
ctlr->r_type2 = SYS_RES_MEMORY;
ctlr->r_rid2 = PCIR_BAR(3);
if (!(ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
Modified: user/attilio/vmcontention/sys/dev/ata/chipsets/ata-siliconimage.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/ata/chipsets/ata-siliconimage.c Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/ata/chipsets/ata-siliconimage.c Thu Nov 3 21:57:02 2011 (r227066)
@@ -80,7 +80,6 @@ static void ata_siiprb_dmainit(device_t
#define SII_BUG 0x04
#define SII_4CH 0x08
-
/*
* Silicon Image Inc. (SiI) (former CMD) chipset support functions
*/
@@ -141,6 +140,17 @@ ata_sii_chipinit(device_t dev)
bus_release_resource(dev, ctlr->r_type1, ctlr->r_rid1,ctlr->r_res1);
return ENXIO;
}
+#ifdef __sparc64__
+ if (!bus_space_map(rman_get_bustag(ctlr->r_res2),
+ rman_get_bushandle(ctlr->r_res2), rman_get_size(ctlr->r_res2),
+ BUS_SPACE_MAP_LINEAR, NULL)) {
+ bus_release_resource(dev, ctlr->r_type1, ctlr->r_rid1,
+ ctlr->r_res1);
+ bus_release_resource(dev, ctlr->r_type2, ctlr->r_rid2,
+ ctlr->r_res2);
+ return (ENXIO);
+ }
+#endif
ctlr->ch_attach = ata_siiprb_ch_attach;
ctlr->ch_detach = ata_siiprb_ch_detach;
ctlr->reset = ata_siiprb_reset;
@@ -432,7 +442,6 @@ ata_sii_setmode(device_t dev, int target
return (mode);
}
-
struct ata_siiprb_dma_prdentry {
u_int64_t addr;
u_int32_t count;
Modified: user/attilio/vmcontention/sys/dev/bm/if_bm.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/bm/if_bm.c Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/bm/if_bm.c Thu Nov 3 21:57:02 2011 (r227066)
@@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$");
#include <sys/rman.h>
#include <dev/mii/mii.h>
+#include <dev/mii/mii_bitbang.h>
#include <dev/mii/miivar.h>
#include <dev/ofw/ofw_bus.h>
@@ -105,17 +106,28 @@ static void bm_tick (void *xsc);
static int bm_ifmedia_upd (struct ifnet *);
static void bm_ifmedia_sts (struct ifnet *, struct ifmediareq *);
-static void bm_miicsr_dwrite (struct bm_softc *, u_int16_t);
-static void bm_mii_writebit (struct bm_softc *, int);
-static int bm_mii_readbit (struct bm_softc *);
-static void bm_mii_sync (struct bm_softc *);
-static void bm_mii_send (struct bm_softc *, u_int32_t, int);
-static int bm_mii_readreg (struct bm_softc *, struct bm_mii_frame *);
-static int bm_mii_writereg (struct bm_softc *, struct bm_mii_frame *);
static int bm_miibus_readreg (device_t, int, int);
static int bm_miibus_writereg (device_t, int, int, int);
static void bm_miibus_statchg (device_t);
+/*
+ * MII bit-bang glue
+ */
+static uint32_t bm_mii_bitbang_read(device_t);
+static void bm_mii_bitbang_write(device_t, uint32_t);
+
+static const struct mii_bitbang_ops bm_mii_bitbang_ops = {
+ bm_mii_bitbang_read,
+ bm_mii_bitbang_write,
+ {
+ BM_MII_DATAOUT, /* MII_BIT_MDO */
+ BM_MII_DATAIN, /* MII_BIT_MDI */
+ BM_MII_CLK, /* MII_BIT_MDC */
+ BM_MII_OENABLE, /* MII_BIT_DIR_HOST_PHY */
+ 0, /* MII_BIT_DIR_PHY_HOST */
+ }
+};
+
static device_method_t bm_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, bm_probe),
@@ -150,171 +162,36 @@ DRIVER_MODULE(miibus, bm, miibus_driver,
*/
/*
- * Write to the MII csr, introducing a delay to allow valid
- * MII clock pulses to be formed
- */
-static void
-bm_miicsr_dwrite(struct bm_softc *sc, u_int16_t val)
-{
- CSR_WRITE_2(sc, BM_MII_CSR, val);
- /*
- * Assume this is a clock toggle and generate a 1us delay
- * to cover both MII's 160ns high/low minimum and 400ns
- * cycle miniumum
- */
- DELAY(1);
-}
-
-/*
- * Write a bit to the MII bus.
- */
-static void
-bm_mii_writebit(struct bm_softc *sc, int bit)
-{
- u_int16_t regval;
-
- regval = BM_MII_OENABLE;
- if (bit)
- regval |= BM_MII_DATAOUT;
-
- bm_miicsr_dwrite(sc, regval);
- bm_miicsr_dwrite(sc, regval | BM_MII_CLK);
- bm_miicsr_dwrite(sc, regval);
-}
-
-/*
- * Read a bit from the MII bus.
- */
-static int
-bm_mii_readbit(struct bm_softc *sc)
-{
- u_int16_t regval, bitin;
-
- /* ~BM_MII_OENABLE */
- regval = 0;
-
- bm_miicsr_dwrite(sc, regval);
- bm_miicsr_dwrite(sc, regval | BM_MII_CLK);
- bm_miicsr_dwrite(sc, regval);
- bitin = CSR_READ_2(sc, BM_MII_CSR) & BM_MII_DATAIN;
-
- return (bitin == BM_MII_DATAIN);
-}
-
-/*
- * Sync the PHYs by setting data bit and strobing the clock 32 times.
+ * Write the MII serial port for the MII bit-bang module.
*/
static void
-bm_mii_sync(struct bm_softc *sc)
+bm_mii_bitbang_write(device_t dev, uint32_t val)
{
- int i;
- u_int16_t regval;
-
- regval = BM_MII_OENABLE | BM_MII_DATAOUT;
-
- bm_miicsr_dwrite(sc, regval);
- for (i = 0; i < 32; i++) {
- bm_miicsr_dwrite(sc, regval | BM_MII_CLK);
- bm_miicsr_dwrite(sc, regval);
- }
-}
-
-/*
- * Clock a series of bits through the MII.
- */
-static void
-bm_mii_send(struct bm_softc *sc, u_int32_t bits, int cnt)
-{
- int i;
-
- for (i = (0x1 << (cnt - 1)); i; i >>= 1)
- bm_mii_writebit(sc, bits & i);
-}
-
-/*
- * Read a PHY register through the MII.
- */
-static int
-bm_mii_readreg(struct bm_softc *sc, struct bm_mii_frame *frame)
-{
- int i, ack, bit;
-
- /*
- * Set up frame for RX.
- */
- frame->mii_stdelim = BM_MII_STARTDELIM;
- frame->mii_opcode = BM_MII_READOP;
- frame->mii_turnaround = 0;
- frame->mii_data = 0;
-
- /*
- * Sync the PHYs
- */
- bm_mii_sync(sc);
-
- /*
- * Send command/address info
- */
- bm_mii_send(sc, frame->mii_stdelim, 2);
- bm_mii_send(sc, frame->mii_opcode, 2);
- bm_mii_send(sc, frame->mii_phyaddr, 5);
- bm_mii_send(sc, frame->mii_regaddr, 5);
-
- /*
- * Check for ack.
- */
- ack = bm_mii_readbit(sc);
-
- /*
- * Now try reading data bits. If the ack failed, we still
- * need to clock through 16 cycles to keep the PHY(s) in sync.
- */
- for (i = 0x8000; i; i >>= 1) {
- bit = bm_mii_readbit(sc);
- if (!ack && bit)
- frame->mii_data |= i;
- }
+ struct bm_softc *sc;
- /*
- * Skip through idle bit-times
- */
- bm_mii_writebit(sc, 0);
- bm_mii_writebit(sc, 0);
+ sc = device_get_softc(dev);
- return ((ack) ? 1 : 0);
+ CSR_WRITE_2(sc, BM_MII_CSR, val);
+ CSR_BARRIER(sc, BM_MII_CSR, 2,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
}
/*
- * Write to a PHY register through the MII.
+ * Read the MII serial port for the MII bit-bang module.
*/
-static int
-bm_mii_writereg(struct bm_softc *sc, struct bm_mii_frame *frame)
+static uint32_t
+bm_mii_bitbang_read(device_t dev)
{
- /*
- * Set up frame for tx
- */
- frame->mii_stdelim = BM_MII_STARTDELIM;
- frame->mii_opcode = BM_MII_WRITEOP;
- frame->mii_turnaround = BM_MII_TURNAROUND;
-
- /*
- * Sync the phy and start the bitbang write sequence
- */
- bm_mii_sync(sc);
+ struct bm_softc *sc;
+ uint32_t reg;
- bm_mii_send(sc, frame->mii_stdelim, 2);
- bm_mii_send(sc, frame->mii_opcode, 2);
- bm_mii_send(sc, frame->mii_phyaddr, 5);
- bm_mii_send(sc, frame->mii_regaddr, 5);
- bm_mii_send(sc, frame->mii_turnaround, 2);
- bm_mii_send(sc, frame->mii_data, 16);
+ sc = device_get_softc(dev);
- /*
- * Idle bit.
- */
- bm_mii_writebit(sc, 0);
+ reg = CSR_READ_2(sc, BM_MII_CSR);
+ CSR_BARRIER(sc, BM_MII_CSR, 2,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- return (0);
+ return (reg);
}
/*
@@ -323,34 +200,15 @@ bm_mii_writereg(struct bm_softc *sc, str
static int
bm_miibus_readreg(device_t dev, int phy, int reg)
{
- struct bm_softc *sc;
- struct bm_mii_frame frame;
-
- sc = device_get_softc(dev);
- bzero(&frame, sizeof(frame));
-
- frame.mii_phyaddr = phy;
- frame.mii_regaddr = reg;
- bm_mii_readreg(sc, &frame);
-
- return (frame.mii_data);
+ return (mii_bitbang_readreg(dev, &bm_mii_bitbang_ops, phy, reg));
}
static int
bm_miibus_writereg(device_t dev, int phy, int reg, int data)
{
- struct bm_softc *sc;
- struct bm_mii_frame frame;
-
- sc = device_get_softc(dev);
- bzero(&frame, sizeof(frame));
-
- frame.mii_phyaddr = phy;
- frame.mii_regaddr = reg;
- frame.mii_data = data;
- bm_mii_writereg(sc, &frame);
+ mii_bitbang_readreg(dev, &bm_mii_bitbang_ops, phy, reg);
return (0);
}
Modified: user/attilio/vmcontention/sys/dev/bm/if_bmreg.h
==============================================================================
--- user/attilio/vmcontention/sys/dev/bm/if_bmreg.h Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/bm/if_bmreg.h Thu Nov 3 21:57:02 2011 (r227066)
@@ -129,14 +129,6 @@
#define BM_MII_DATAIN 0x0008 /* MDIO data in */
/*
- * MII constants
- */
-#define BM_MII_STARTDELIM 0x01
-#define BM_MII_READOP 0x02
-#define BM_MII_WRITEOP 0x01
-#define BM_MII_TURNAROUND 0x02
-
-/*
* Various flags
*/
@@ -174,3 +166,5 @@
#define CSR_READ_1(sc, reg) \
bus_read_1(sc->sc_memr, reg)
+#define CSR_BARRIER(sc, reg, length, flags) \
+ bus_barrier(sc->sc_memr, reg, length, flags)
Modified: user/attilio/vmcontention/sys/dev/bm/if_bmvar.h
==============================================================================
--- user/attilio/vmcontention/sys/dev/bm/if_bmvar.h Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/bm/if_bmvar.h Thu Nov 3 21:57:02 2011 (r227066)
@@ -46,7 +46,6 @@
/*
* software state for transmit job mbufs (may be elements of mbuf chains)
*/
-
struct bm_txsoft {
struct mbuf *txs_mbuf; /* head of our mbuf chain */
bus_dmamap_t txs_dmamap; /* our DMA map */
@@ -71,7 +70,6 @@ struct bm_rxsoft {
bus_dma_segment_t segment;
};
-
struct bm_softc {
struct ifnet *sc_ifp;
struct mtx sc_mtx;
@@ -113,13 +111,3 @@ struct bm_softc {
dbdma_channel_t *sc_txdma, *sc_rxdma;
};
-
-struct bm_mii_frame {
- u_int8_t mii_stdelim;
- u_int8_t mii_opcode;
- u_int8_t mii_phyaddr;
- u_int8_t mii_regaddr;
- u_int8_t mii_turnaround;
- u_int16_t mii_data;
-};
-
Modified: user/attilio/vmcontention/sys/dev/dc/if_dc.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/dc/if_dc.c Thu Nov 3 21:29:33 2011 (r227065)
+++ user/attilio/vmcontention/sys/dev/dc/if_dc.c Thu Nov 3 21:57:02 2011 (r227066)
@@ -122,6 +122,7 @@ __FBSDID("$FreeBSD$");
#include <sys/rman.h>
#include <dev/mii/mii.h>
+#include <dev/mii/mii_bitbang.h>
#include <dev/mii/miivar.h>
#include <dev/pci/pcireg.h>
@@ -149,7 +150,7 @@ MODULE_DEPEND(dc, miibus, 1, 1, 1);
/*
* Various supported device vendors/types and their names.
*/
-static const struct dc_type dc_devs[] = {
+static const struct dc_type const dc_devs[] = {
{ DC_DEVID(DC_VENDORID_DEC, DC_DEVICEID_21143), 0,
"Intel 21143 10/100BaseTX" },
{ DC_DEVID(DC_VENDORID_DAVICOM, DC_DEVICEID_DM9009), 0,
@@ -272,12 +273,6 @@ static void dc_eeprom_getword_xircom(str
static void dc_eeprom_width(struct dc_softc *);
static void dc_read_eeprom(struct dc_softc *, caddr_t, int, int, int);
-static void dc_mii_writebit(struct dc_softc *, int);
-static int dc_mii_readbit(struct dc_softc *);
-static void dc_mii_sync(struct dc_softc *);
-static void dc_mii_send(struct dc_softc *, uint32_t, int);
-static int dc_mii_readreg(struct dc_softc *, struct dc_mii_frame *);
-static int dc_mii_writereg(struct dc_softc *, struct dc_mii_frame *);
static int dc_miibus_readreg(device_t, int, int);
static int dc_miibus_writereg(device_t, int, int, int);
static void dc_miibus_statchg(device_t);
@@ -307,6 +302,24 @@ static int dc_decode_leaf_sym(struct dc_
static void dc_apply_fixup(struct dc_softc *, int);
static int dc_check_multiport(struct dc_softc *);
+/*
+ * MII bit-bang glue
+ */
+static uint32_t dc_mii_bitbang_read(device_t);
+static void dc_mii_bitbang_write(device_t, uint32_t);
+
+static const struct mii_bitbang_ops dc_mii_bitbang_ops = {
+ dc_mii_bitbang_read,
+ dc_mii_bitbang_write,
+ {
+ DC_SIO_MII_DATAOUT, /* MII_BIT_MDO */
+ DC_SIO_MII_DATAIN, /* MII_BIT_MDI */
+ DC_SIO_MII_CLK, /* MII_BIT_MDC */
+ 0, /* MII_BIT_DIR_HOST_PHY */
+ DC_SIO_MII_DIR, /* MII_BIT_DIR_PHY_HOST */
+ }
+};
+
#ifdef DC_USEIOSPACE
#define DC_RES SYS_RES_IOPORT
#define DC_RID DC_PCI_CFBIO
@@ -611,185 +624,45 @@ dc_read_eeprom(struct dc_softc *sc, cadd
}
/*
- * The following two routines are taken from the Macronix 98713
- * Application Notes pp.19-21.
- */
-/*
- * Write a bit to the MII bus.
+ * Write the MII serial port for the MII bit-bang module.
*/
static void
-dc_mii_writebit(struct dc_softc *sc, int bit)
+dc_mii_bitbang_write(device_t dev, uint32_t val)
{
- uint32_t reg;
+ struct dc_softc *sc;
- reg = DC_SIO_ROMCTL_WRITE | (bit != 0 ? DC_SIO_MII_DATAOUT : 0);
- CSR_WRITE_4(sc, DC_SIO, reg);
- CSR_BARRIER_4(sc, DC_SIO,
- BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
+ sc = device_get_softc(dev);
- CSR_WRITE_4(sc, DC_SIO, reg | DC_SIO_MII_CLK);
- CSR_BARRIER_4(sc, DC_SIO,
- BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
- CSR_WRITE_4(sc, DC_SIO, reg);
+ CSR_WRITE_4(sc, DC_SIO, val);
CSR_BARRIER_4(sc, DC_SIO,
BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
}
/*
- * Read a bit from the MII bus.
+ * Read the MII serial port for the MII bit-bang module.
*/
-static int
-dc_mii_readbit(struct dc_softc *sc)
+static uint32_t
+dc_mii_bitbang_read(device_t dev)
{
- uint32_t reg;
-
- reg = DC_SIO_ROMCTL_READ | DC_SIO_MII_DIR;
- CSR_WRITE_4(sc, DC_SIO, reg);
- CSR_BARRIER_4(sc, DC_SIO,
- BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
- (void)CSR_READ_4(sc, DC_SIO);
- CSR_WRITE_4(sc, DC_SIO, reg | DC_SIO_MII_CLK);
- CSR_BARRIER_4(sc, DC_SIO,
- BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
- CSR_WRITE_4(sc, DC_SIO, reg);
- CSR_BARRIER_4(sc, DC_SIO,
- BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
- if (CSR_READ_4(sc, DC_SIO) & DC_SIO_MII_DATAIN)
- return (1);
-
- return (0);
-}
+ struct dc_softc *sc;
+ uint32_t val;
-/*
- * Sync the PHYs by setting data bit and strobing the clock 32 times.
- */
-static void
-dc_mii_sync(struct dc_softc *sc)
-{
- int i;
+ sc = device_get_softc(dev);
- CSR_WRITE_4(sc, DC_SIO, DC_SIO_ROMCTL_WRITE);
+ val = CSR_READ_4(sc, DC_SIO);
CSR_BARRIER_4(sc, DC_SIO,
BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
- DELAY(1);
-
- for (i = 0; i < 32; i++)
- dc_mii_writebit(sc, 1);
-}
-
-/*
- * Clock a series of bits through the MII.
- */
-static void
-dc_mii_send(struct dc_softc *sc, uint32_t bits, int cnt)
-{
- int i;
-
- for (i = (0x1 << (cnt - 1)); i; i >>= 1)
- dc_mii_writebit(sc, bits & i);
-}
-/*
- * Read an PHY register through the MII.
- */
-static int
-dc_mii_readreg(struct dc_softc *sc, struct dc_mii_frame *frame)
-{
- int i;
-
- /*
- * Set up frame for RX.
- */
- frame->mii_stdelim = DC_MII_STARTDELIM;
- frame->mii_opcode = DC_MII_READOP;
-
- /*
- * Sync the PHYs.
- */
- dc_mii_sync(sc);
-
- /*
- * Send command/address info.
- */
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list