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>