History log of /freebsd/sys/dev/mpi3mr/mpi3mr.h (Results 1 – 14 of 14)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 3f3a1554 06-Jun-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: Divert large WriteSame IOs to firmware if unmap and ndob bits are set

Firmware advertises the transfer lenght for writesame commands to driver during init.
So for any writesame IOs with ndob

mpi3mr: Divert large WriteSame IOs to firmware if unmap and ndob bits are set

Firmware advertises the transfer lenght for writesame commands to driver during init.
So for any writesame IOs with ndob and unmap bit set and transfer lengh is greater
than the max write same length specified by the firmware, then direct those commands
to firmware instead of hardware otherwise hardware will break.

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44452

show more ...


Revision tags: release/14.1.0
# df595fc4 19-Mar-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: driver version update to 8.10.0.1.0

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44430


# 945c3ce4 19-Mar-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: copyright year update to 2024

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44429


# 3012fa8f 19-Mar-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: Adding FreeBSD OS Type to Fault/Reset Reason Code

The driver is modified to add FreeBSD OS type in the upper nibble of the
fault/reset reason code for appropriate qualification of the reason

mpi3mr: Adding FreeBSD OS Type to Fault/Reset Reason Code

The driver is modified to add FreeBSD OS type in the upper nibble of the
fault/reset reason code for appropriate qualification of the reason code.

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44427

show more ...


# eb7a4b35 14-Mar-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: Update consumer index of admin and operational reply queues after every 100 replies

Instead of updating the ConsumerIndex of the Admin and Operational ReplyQueues
after processing all replie

mpi3mr: Update consumer index of admin and operational reply queues after every 100 replies

Instead of updating the ConsumerIndex of the Admin and Operational ReplyQueues
after processing all replies in the queue, it will now be periodically updated
after processing every 100 replies.

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44425

show more ...


# 701d776c 14-Mar-2024 Chandrakanth patil <chandrakanth.patil@broadcom.com>

mpi3mr: poll reply queue and add MPI3MR_DEV_REMOVE_HS_COMPLETED flag

An outstanding IO counter per target check has been added before deleting
the target from the OS which will poll the reply queue

mpi3mr: poll reply queue and add MPI3MR_DEV_REMOVE_HS_COMPLETED flag

An outstanding IO counter per target check has been added before deleting
the target from the OS which will poll the reply queue if there are any
outstanding IOs are found.

A new flag, named "MPI3MR_DEV_REMOVE_HS_COMPLETED," is added. If a remove event
for a target occurs and before the deletion of the target resource if the add event
for another target arrives reusing the same target ID then this flag will prevent
the removal of the target reference. This flag ensures synchronization between the interrupt
top and bottom half during target removal and addition events.

Reviewed by: imp
Approved by: imp
Differential revision: https://reviews.freebsd.org/D44423

show more ...


Revision tags: release/13.3.0
# 1ec7c672 29-Nov-2023 Warner Losh <imp@FreeBSD.org>

mpi3mr: Assume dma_hiaddr is BUS_SPACE_MAXADDR

No sense having a variable for this. So use BUS_SPACE_MAXADDR and remove
dma_hiaddr from softc.

Suggested by: jhb
Sponsored by: Netflix
Differential

mpi3mr: Assume dma_hiaddr is BUS_SPACE_MAXADDR

No sense having a variable for this. So use BUS_SPACE_MAXADDR and remove
dma_hiaddr from softc.

Suggested by: jhb
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D42808

show more ...


# 28a27434 29-Nov-2023 Warner Losh <imp@FreeBSD.org>

mpi3mr: Add firmware version

Publish the firmware version on the card like we do for mps/mpr.

Sponsored by: Netflix
Reviewed by: mav
Differential Revision: https://reviews.freebsd.org/D42588


# ee7c431c 29-Nov-2023 Warner Losh <imp@FreeBSD.org>

mpi3mr: Trivial trailing white space reduction

Sponsored by: Netflix


# 3208a189 29-Nov-2023 Warner Losh <imp@FreeBSD.org>

mpi3mr: Fix EINPROGRESS errors hanging the card

Move enqueueing of commands to bus_dmamap_load_ccb callback

Fix fundamental difference between FreeBSD and Linux. On Linux, your dma
load callback al

mpi3mr: Fix EINPROGRESS errors hanging the card

Move enqueueing of commands to bus_dmamap_load_ccb callback

Fix fundamental difference between FreeBSD and Linux. On Linux, your dma
load callback always happends before it returns, so drivers are written
to load the map, then submit to hardware. On FreeBSD, the callback may
be deferred and return EINPROGRESS. This means the callback is
responsible for queueing the request to the hardware is done after the
SGL list is created. Make a number of interrelated cahnages:

At the end of mpi3mr_prepare_sgls, add a call to mpi3mr_enqueue_request.

Split the hardware submission out from the end of mpi3mr_action_scsiio
and move it into a new routine mpi3mr_enqueue_request.

Move all error completion from the end of mpi3mr_action_scsiio to where
the error is detected. We cannot pass errors back from the
mpi3mr_enqueue_request to do this on a 'failed' mpi3mr in a centralized
place (since it has to be fire and forget).

Add comments about zero length SGLs never making it into
mpi3mr_prepare_sgls. Keep the code there for the moment, but we only set
cm->data to non-NULL when scsiio_req->DataLength is not zero. So the
datalength can't be zero and we can't send the zero SGLs.

Add commentts about other "impossible" tests in mpi3mr_prepare_sgls that
really should be simple asserts of some flavor.

Eliminate cm->error_code, since we can't pass data back from the
mpi3mr_prepare_sgl callback anymore.

In mpi3mr_map_request, call mpi3mr_enqueue_request for the no data case.
This seems to work even though we've not done the special zero length
handling that was in mpi3mr_prepare_sgls, giving further evidence to it
not actually being needed. This is needed for SCSI CDBs that have no
data to pass to the drive like TEST UNIT READY.

With this change, and the prior ones, we're now able to run with mpi3mr
on 128GB systems and very heavy disk load (so many buffers land > 4GB:
the driver instructs busdma to never use memory abouve 4GB, which may be
too conservative, but an issue for another time).

Sponsored by: Netflix
Reviewed by: sumit.saxena_broadcom.com, mav, jhb
Differential Revision: https://reviews.freebsd.org/D42543

show more ...


# a2b04662 29-Nov-2023 Warner Losh <imp@FreeBSD.org>

mpi3mr: Remove unused fields in struct mpi3mr_cmd

All of these fields are either unused, or just initialized. Remove
them. This saves about 1MB of memory for the cards that I have which can
do 8k tr

mpi3mr: Remove unused fields in struct mpi3mr_cmd

All of these fields are either unused, or just initialized. Remove
them. This saves about 1MB of memory for the cards that I have which can
do 8k transactions at once.

Sponsored by: Netflix
Reviewed by: mav, jhb
Differential Revision: https://reviews.freebsd.org/D42538

show more ...


# fdafd315 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remov

sys: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix

show more ...


Revision tags: release/14.0.0
# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 2d1d418e 15-Jun-2023 Sumit Saxena <sumit.saxena@broadcom.com>

mpi3mr: 3rd Generation Tri-Mode NVMe/SAS/SATA MegaRaid / eHBA

This is Broadcom's mpi3mr driver for FreeBSD version 8.6.0.2.0.
The mpi3mr driver supports Broadcom SAS4116-based cards in the 9600
seri

mpi3mr: 3rd Generation Tri-Mode NVMe/SAS/SATA MegaRaid / eHBA

This is Broadcom's mpi3mr driver for FreeBSD version 8.6.0.2.0.
The mpi3mr driver supports Broadcom SAS4116-based cards in the 9600
series: 9670W-16i, 9670-24i, 9660-16i, 9620-16i, 9600-24i, 9600-16i,
9600W-16e, 9600-16e, 9600-8i8e.

Initially only available as a module and on amd64/arm64, since that's
how it has been tested to date. Future commits will add it to the kernel
build and may expand the architectures it is supported on.

Co-authored-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
Feedback-by: ken (prior versions)
Reviewed-by: imp
RelNotes: yes
Differential-Revision: https://reviews.freebsd.org/D36771
Differential-Revision: https://reviews.freebsd.org/D36772

show more ...