Age | Commit message (Collapse) | Author |
|
one for all SPI controllers. krw has a sun machine with a 1030 that gets
the bus width wrong too, so since vmware emulates that type of hardware
too, we can just limit the lot of them and forget about it.
|
|
ok miod@ marco@ deraadt@
|
|
|
|
|
|
config_detach and cleaning the midlayer up ourselves.
|
|
|
|
changes. its not ready yet, so disable it again.
|
|
for walking the bus and targets, and probing the luns. this removes the
need to use magic numbers to wildcard each of these, which in turn makes
the code a lot easier to read. as a bonus we get some more space to work in
(80 chars isnt that much somtimes).
note that this code wont probe high luns if lun 0 doesnt exist.
ok krw@
|
|
for now until we deal more appropriately with events generated by other
variants of mpi controllers.
|
|
|
|
|
|
|
|
|
|
similair to the one used for requests. take the reply bits out of the ccb,
but point it at the rcb instead.
this lets us defer processing of the reply some time after we reuse or
free the ccb.
|
|
basically identical apart from the conditions they looped on.
|
|
|
|
should attach to, since config_found() already returns a pointer to it.
Pointed out by Quentin Garnier, okay dlg@.
|
|
mpi_scsi_cmd_done. this makes it more appropriate for our midlayer.
ok beck@ deraadt@
|
|
something other than SCSI_OK. for example, SCSI_SENSE is returned when the
device has sense data. this code was left in to help debug problems in the
field, but noones had any problems with mpi apart from it being too chatty
when a device returns sense data...
|
|
while here protect submission of the scsi command with splbio as well.
|
|
should be.
|
|
lowest possible speeds during inquiry and attach. some devices, like tapes
and enclosures, dont like being probed at high speeds and can attach as
weird things. this seems to help those devices.
|
|
|
|
|
|
can do more io at a time. tested on the onboard controllers of a dell 2850
(which can do it) and a pci controller on my home box (which doesnt). this
was the last feature mpt had that mpi was behind on.
|
|
|
|
the ioc page 3 for a list of all the physical disks behind any configured
volumes and run ppr against them too.
raid volumes on scsi mpi is fast now.
|
|
of the ioc config in the softc. instead, we only walk page 2 when we get
the raid config and mark each disks scsi_link structure with the
SDEV_LOGICAL flag when we find volumes. while there we mark this instance
of the driver as being capable of doing raid so later on we can
conditionally hook up bio.
when we walk the devices attached to mpi to do ppr, we now skip the logical
disks.
|
|
device tree all the time.
|
|
rather than just completed.
|
|
to htole32().
"go for it" miod@
|
|
|
|
either a normal target, or against a physical disk using the raid passthru
command. it is necessary since the normal io path can only be used by the
midlayer, and only against normal targets. this will be used for ppr
against the disks in raid volumes on scsi controllers.
tested by marco@
|
|
code easier since we dont have to byteswap and shift stuff around so much.
no functional change though.
|
|
on byte boundaries. so rather than byteswappping and bitshifting the
values in these subfields around we can break them up into byte fields and
access them directly.
this breaks up the control field in the scsi io command.
|
|
a kitten. Commiters, please think of the kittens when working on code.
|
|
store these values in the scsi_link structure for each device.
ok dlg.
|
|
debugging FC stuff.
|
|
we can actually find the drives on the fabric. Requested by kettenis krw
and brad.
ok dlg
|
|
we read off the hardware and use to configure the driver with are set to
zero, so things dont really work like we want them to.
one of these fields is the pci subsystem id which is something we can fetch
really early in the attach process. so if the subsys is 0 then we go on and
fix up some of the values we get off the "hardware". now we can attach
disks on vmware.
"sneaky" and ok marco@ tested by and ok brad@
|
|
devices yet.
|
|
|
|
|
|
|
|
RAID support and bio. "go at it" dlg
|
|
to diagnose field issues. Talked through with dlg.
|
|
as well as the request itself, so we need to sync the memory in both
directions for dma.
|
|
recalculating them whenever i want to use them? shorten code a bit by using
the stored values.
|
|
- when the sgl grew too large it became bigger than the maximum frame size
that the ioc would deal with, and then it would just stop doing io. i was
using the wrong field from iocfacts to figure out how large an sgl should
be.
- chained sgls were broken cos i was including the current chain element in
the calculation of the offset to the next chain element.
big ok from marco@
|
|
mpi_interrupt and mpi_completion. if we got an address reply followed by a
context reply we used to pass that same reply to both completion routines.
|