freebsd-skq/sys
yongari 0c90b7cf73 Make IPMI work in the bce driver even when the interface is
configured down.  Formerly, IPMI communication was lost whenever the
interface was not up.  The reason was that the BCE_EMAC_MODE
register was not configured with the correct media settings.  There
are two parts to the fix.

First, resetting the chip in bce_reset() causes the BCE_EMAC_MODE
register to be initialized to a default value that does not
necessarily correspond to the actual media settings.  The fix
implemented here is a bit of a hack.  Ideally, at the end of
bce_reset() we would poll the PHY to determine the negotiated media,
and then we would set the BCE_EMAC_MODE register accordingly.  That
is difficult, since the PHY is abstracted behind the MII layer and is
not supposed to be queried directly from the MAC driver.  Instead,
we read the BCE_EMAC_MODE register at the beginning of bce_reset()
and then restore its media bits to their original values before
returning.  If IPMI is up and running, then the link is already
established and the BCE_EMAC_MODE register is already set appropriately
when bce_reset() is called.  If IPMI is not running, no harm is
done by preserving the BCE_EMAC_MODE settings.  The driver will set
the register properly once the interface is configured up and link
is established.

Second, bce_miibus_statchg() is sometimes called when the link is
down.  In that case, the reported media settings are invalid.
Formerly, the driver used them anyway to setup the BCE_EMAC_MODE
register.  We now avoid changing any MAC registers unless link is
active and the reported media settings are valid.

Submitted by:	jdp
Tested by:	jdp
MFC after:	5 days
2012-05-23 01:20:25 +00:00
..
amd64 Replace all uses of the vm page queues lock by a r/w lock that is private 2012-05-20 18:25:45 +00:00
arm Be a little less magical, not that these values are likely to change... 2012-05-21 07:47:57 +00:00
boot Divide nand flash for DB6281 into two partitions. One for u-boot 2012-05-22 09:27:57 +00:00
bsm
cam Add two functions xpt_batch_start() and xpt_batch_done() to the CAM SIM KPI 2012-05-12 13:55:36 +00:00
cddl Fix enforcement of file size limit with O_APPEND on ZFS. 2012-05-22 10:54:42 +00:00
compat - >500 static DTrace probes for the linuxulator 2012-05-05 19:42:38 +00:00
conf Add a new geom class which allows to divide NAND Flash chip 2012-05-22 08:33:14 +00:00
contrib Revert r234834 per luigi@ request. 2012-05-03 08:56:43 +00:00
crypto Add support for the extended FPU states on amd64, both for native 2012-01-21 17:45:27 +00:00
ddb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
dev Make IPMI work in the bce driver even when the interface is 2012-05-23 01:20:25 +00:00
fs A problem with the NFSv4 server was reported by Andrew Leonard 2012-05-17 21:52:17 +00:00
gdb Update the ddb and gdb backends for the new 'trace_thread' hook. 2012-04-12 21:34:58 +00:00
geom Add a new geom class which allows to divide NAND Flash chip 2012-05-22 08:33:14 +00:00
gnu/fs Remove unused thread argument to vrecycle(). 2012-04-23 14:10:34 +00:00
i386 Remove cpususpend IDT vector for XEN. 2012-05-20 08:17:20 +00:00
ia64 Don't assume we have legacy PICs (i.e. 8259A in cascade) at the legacy 2012-05-04 23:16:29 +00:00
isa
kern Fix use-after-free in kern_jail_set() triggered e.g. by attempts 2012-05-22 19:43:20 +00:00
kgssapi
libkern Use strcmp that I replaced by accident. 2012-05-21 02:45:47 +00:00
mips Enable the AR8316 switch on the routerstation pro board. 2012-05-19 20:11:18 +00:00
modules A rewrite of the i810 bits of the agp(4) driver. New driver supports 2012-05-22 10:59:26 +00:00
net Make most BPF ioctls() SMP-safe. 2012-05-21 22:21:00 +00:00
net80211 Fix some corner cases in the ieee80211_send_bar() handling. 2012-05-22 19:37:12 +00:00
netatalk Fix typos 2012-02-28 15:07:05 +00:00
netgraph Fix panic in ng_patch(4) caused by checksum flags being added to mbuf flags. 2012-04-22 17:00:52 +00:00
netinet Remove unused inclusion of curses.h 2012-05-19 05:14:24 +00:00
netinet6 Rewrite nd6_sysctl_{d,p}rlist() to avoid misaligned accesses to char arrays 2012-05-20 05:12:31 +00:00
netipsec Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
netipx Convert all users of IF_ADDR_LOCK to use new locking macros that specify 2012-01-05 19:00:36 +00:00
netnatm
netncp
netsmb
nfs Merge multi-FIB IPv6 support from projects/multi-fibv6/head/: 2012-02-17 02:39:58 +00:00
nfsclient PR# 165923 reported intermittent write failures for dirty 2012-05-12 12:02:51 +00:00
nfsserver
nlm jwd@ reported a problem via email to freebsd-fs@ on Aug 25, 2011 2012-01-31 02:11:05 +00:00
ofed Revert r234834 per luigi@ request. 2012-05-03 08:56:43 +00:00
opencrypto
pc98 Add SMP/i386 suspend/resume support. 2012-05-18 18:55:58 +00:00
pci intpm: add ATI IXP400 pci id 2012-04-16 10:33:46 +00:00
powerpc Replace the list of PVOs owned by each PMAP with an RB tree. This simplifies 2012-05-20 14:33:28 +00:00
rpc
security Check vplabel for NULL before dereferencing it. Fixes a panic 2012-05-03 15:51:34 +00:00
sparc64 Fix mismerge in r235231. 2012-05-10 15:23:20 +00:00
sys Bump __FreeBSD_version for the byacc import, and update _bootstrap_tools. 2012-05-22 15:59:07 +00:00
teken
tools Make vnode_if.awk parse vnode operations with underscores, like VOP_FOO_BAR. 2012-02-21 19:35:59 +00:00
ufs Add missing `continue' statement at end of case. 2012-05-18 15:20:21 +00:00
vm Fix booting on ARM. 2012-05-22 07:04:23 +00:00
x86 Don't expose i386-only ptrace constants on amd64. This broke gdb with 2012-05-17 20:21:55 +00:00
xdr
xen blkif interface comment cleanups. No functional changes 2012-02-29 17:47:01 +00:00
Makefile Add sys/ofed to the 'make cscope' target. 2012-03-20 18:05:15 +00:00