Skip site navigation (1)Skip section navigation (2)
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>