From owner-cvs-all Thu Sep 30 12: 3:46 1999 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id BDBD4154EB; Thu, 30 Sep 1999 12:03:13 -0700 (PDT) (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id MAA30787; Thu, 30 Sep 1999 12:03:13 -0700 (PDT) (envelope-from gallatin@FreeBSD.org) Message-Id: <199909301903.MAA30787@freefall.freebsd.org> From: Andrew Gallatin Date: Thu, 30 Sep 1999 12:03:13 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/pci if_fxpreg.h if_fxpvar.h if_fxp.c Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk 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