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 ...
|
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 ...
|
4034d706 | 19-Mar-2024 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: diag fault success beyond F000 fault code
Accept any fault as successful for diagnostic fault reset, not just the 0xF000 code. print fault information and return.
Reviewed by: im
mpi3mr: diag fault success beyond F000 fault code
Accept any fault as successful for diagnostic fault reset, not just the 0xF000 code. print fault information and return.
Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44426
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 ...
|
571f1d06 | 14-Mar-2024 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Decrement per controller and per target counter post reset
Post controller reset, If any device removal events arrive, and if there are any outstanding IOs then the driver will unnecessarily
mpi3mr: Decrement per controller and per target counter post reset
Post controller reset, If any device removal events arrive, and if there are any outstanding IOs then the driver will unnecessarily wait in the loop for 30 seconds before removing the device from the OS.
reset target outstanding IO counter and controller outstanding IO counter and remove the redundant wait loop.
Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44424
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 ...
|
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 ...
|
2361a005 | 29-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
mpi3mr: Replace can't happen DataLength == 0 with an assert
Replace the test for DataLength == 0 with an assert. It can't happen, but an assert doesn't hurt. Emacs removed some trailing white space
mpi3mr: Replace can't happen DataLength == 0 with an assert
Replace the test for DataLength == 0 with an assert. It can't happen, but an assert doesn't hurt. Emacs removed some trailing white space too.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D42807
show more ...
|
489eee0d | 29-Nov-2023 |
Alexander Motin <mav@FreeBSD.org> |
mpi3mr: Use template for main busdma tag.
Use the simpler template code for the parent busdma tag for all I/O to this card.
Reviewed by: mav, jhb, imp Differential Revision: https://reviews.freebs
mpi3mr: Use template for main busdma tag.
Use the simpler template code for the parent busdma tag for all I/O to this card.
Reviewed by: mav, jhb, imp Differential Revision: https://reviews.freebsd.org/D42607
show more ...
|
39a3e6a8 | 29-Nov-2023 |
Alexander Motin <mav@FreeBSD.org> |
mpi3mr: Make these bus_dmamap_load calls synchronous
These calls "should" all be synchrounous. There's no bouncing that's needed for them (at least in the typical case that we have a sane card that
mpi3mr: Make these bus_dmamap_load calls synchronous
These calls "should" all be synchrounous. There's no bouncing that's needed for them (at least in the typical case that we have a sane card that has more bits of dma addresses decoded than we have memory), so there's no errors possible. Ensure these calls are really synchronous with BUS_DMA_NOWAIT flags (which should never fail now that the bus_dmamem_alloc() has succeeded).
Reviewed by: mav, jhb, imp Differential Revision: https://reviews.freebsd.org/D42606
show more ...
|
4e6d128b | 29-Nov-2023 |
Alexander Motin <mav@FreeBSD.org> |
mpi3mr: Fix MAXPHYS usage
This usage is obsolete. Replace with maximum bus space size. maxphys will sort itself out at higher levels.
Reviewed by: mav, jhb, imp Differential Revision: https://revi
mpi3mr: Fix MAXPHYS usage
This usage is obsolete. Replace with maximum bus space size. maxphys will sort itself out at higher levels.
Reviewed by: mav, jhb, imp Differential Revision: https://reviews.freebsd.org/D42605
show more ...
|