Date: Thu, 30 Sep 1999 12:03:13 -0700 (PDT) From: Andrew Gallatin <gallatin@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/pci if_fxpreg.h if_fxpvar.h if_fxp.c Message-ID: <199909301903.MAA30787@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
gallatin 1999/09/30 12:03:13 PDT
Modified files:
sys/pci if_fxpreg.h if_fxpvar.h if_fxp.c
Log:
Make the fxp driver work on alpha, rather than panic the machine on boot
and/or when using the card.
o Convert the driver to using bus_space. This allows alphas with
fxp's to boot, rather than panic'ing because rman_get_virtual()
doesn't really return a virtual address on alphas.
o Fix an alpha unaligned access error caused by some misfeature of
gcc/egcs: if link_addr & rbd_addr in the fxp_rfa struct are 32 bit
quantities, egcs will assume they are naturally aligned. So it will do
a ldl & some shifty/masky to twiddle 16 bit values in fxp_lwcopy().
However, if they are 16-bit aligned, the ldl will actually be done on
a 16-bit aligned value & we will panic with an unaligned access
error... Changing their definition to an array of chars seems to fix
this. I obtained this from NetBSD.
I've tested this on both i386 & alpha.
Revision Changes Path
1.18 +3 -3 src/sys/pci/if_fxpreg.h
1.9 +3 -19 src/sys/pci/if_fxpvar.h
1.77 +16 -11 src/sys/pci/if_fxp.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909301903.MAA30787>
