cvs commit: src/sys/dev/mfi mfi.c mfivar.h

Doug Ambrisko ambrisko at
Mon Jun 4 16:39:23 UTC 2007

ambrisko    2007-06-04 16:39:22 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/mfi          mfi.c mfivar.h 
  Add in a couple of things:
        - In the ioctl path let command get queued up and return
          when complete _without_ blocking the driving waiting for
          the response.  This way the driver doesn't "lock up" for
          ~30s during a flash command.  Submitted by scottl.
        - Add a guard so that if a DCMD of 0 is sent down the ioctl
          path don't send it to the controller.  Return with a
          status of OK.  This is a little strange since MegaCli
          doesn't seem to like something and will issue some DCMD
          of 0.  This doesn't happen under Linux.  So the emulation
          needs to be improved but I'm not sure what.  Another strange
          thing is that when a DCMD of 0 gets issued under i386 the
          controller returns OK but in amd64 the context is messed
        - Add a guard so the context has to be with-in the legal
          limit so we get a reasonable error assertion versus random
  It's going to be a challenge to figure out why MegaCli is not totally
  happy and then sends some bogus commands.  This means that flashing
  firmware via the Linux tool won't work since it generates a DCMD of
  0 when it should be opening the firmware for a flash update.  Without
  this problem flashing works fine.  This means there is no publicly
  available tool to upgrade the RAID firmware under FreeBSD right now.
  I plan to MFC all of the mfi changes to 6.X shortly.  This might not
  include the SCSI pass-through changes.
  Submitted by:   scottl
  Reviewed by:    scottl
  MFC after:      3 days
  Revision  Changes    Path
  1.30      +32 -19    src/sys/dev/mfi/mfi.c
  1.9       +1 -0      src/sys/dev/mfi/mfivar.h

More information about the cvs-src mailing list