| 52096ba6 | 14-Sep-2025 |
Warner Losh <imp@FreeBSD.org> |
mpi3mr: Get rid of a supurious printf
If we have outstanding tractions and then poll and still have outstanding transactions, we print a warning. However, we print the warning, confusingly, even if
mpi3mr: Get rid of a supurious printf
If we have outstanding tractions and then poll and still have outstanding transactions, we print a warning. However, we print the warning, confusingly, even if there's 0 left. Enclose the two statements in {} to avoid this relatively harmless effect and quiet gcc12's indentation complaint.
Sponsored by: Netflix
show more ...
|
| 3dfb4e52 | 14-Sep-2025 |
Warner Losh <imp@FreeBSD.org> |
mpi3mr: Build with gcc12 by being more explicit about conditions
Help the flow analysis in gcc12 by initializing scsi_reply to NULL and testing it along with sense_buf. Sense buf should be non-null
mpi3mr: Build with gcc12 by being more explicit about conditions
Help the flow analysis in gcc12 by initializing scsi_reply to NULL and testing it along with sense_buf. Sense buf should be non-null only in this code path, but might also be non-null if the PA for is somehow set to zero. I debated adding an assert for the latter, but opted to instead preserve existing behavior.
Also set host_diagnostic to 0. gcc12 can't quite realize that we only test it after we've been through this loop at least once to report an error condition. Initialize to 0 to avoid a diagnostic.
Sponsored by: Netflix
show more ...
|
| 4494ea54 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: modified the log messages to be on a single line
qThis change was made after feedback from upstream, aiming to align with the style guide for consistent log formatting. No functional changes
mpi3mr: modified the log messages to be on a single line
qThis change was made after feedback from upstream, aiming to align with the style guide for consistent log formatting. No functional changes were made to the driver, only the formatting of the log messages.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49799
show more ...
|
| f4d51d3e | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Update Driver Version to 8.14.0.2.0
The driver version has been updated to 8.14.0.2.0 to reflect the latest release. This is a version-only update with no functional code changes.
Reviewed
mpi3mr: Update Driver Version to 8.14.0.2.0
The driver version has been updated to 8.14.0.2.0 to reflect the latest release. This is a version-only update with no functional code changes.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49753
show more ...
|
| 69be9a24 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Update Copyright Year to 2025
All driver source files have been updated to reflect the year 2025. This change is cosmetic and does not affect functionality.
Reviewed by: ssaxena, imp Differ
mpi3mr: Update Copyright Year to 2025
All driver source files have been updated to reflect the year 2025. This change is cosmetic and does not affect functionality.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49752
show more ...
|
| df8a74fc | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification
The driver now processes LOG Data events in the interrupt top half instead of the bottom half. This allows LOG events to
mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification
The driver now processes LOG Data events in the interrupt top half instead of the bottom half. This allows LOG events to be handled immediately upon receipt, reducing latency and enabling early notification to the Library or applications.
This change ensures LOG event handling occurs closer to the firmware's generation point, improving alignment with event-driven diagnostic and monitoring mechanisms.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49751
show more ...
|
| b854677d | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Enable Diag Save for All Diagnostic Fault Cases
This patch ensures the driver sets the Diag Save bit for all diagnostic fault conditions before issuing a Diagnostic Fault Reset.
The firmwar
mpi3mr: Enable Diag Save for All Diagnostic Fault Cases
This patch ensures the driver sets the Diag Save bit for all diagnostic fault conditions before issuing a Diagnostic Fault Reset.
The firmware now incorporates logic to manage snapdump saving and requires the driver to always set the Diag Save bit to enable this feature. This change supports improved diagnostic data collection and fault handling.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49750
show more ...
|
| 49445b54 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Block I/Os While Task Management is in Progress
The driver previously blocked I/Os only for OS-initiated task management commands. This patch extends the behavior to also block I/Os during a
mpi3mr: Block I/Os While Task Management is in Progress
The driver previously blocked I/Os only for OS-initiated task management commands. This patch extends the behavior to also block I/Os during application-initiated task management operations (excluding Task Abort).
Before submitting such commands to the firmware, I/O submissions are paused for the respective device. Once the command completes, I/O operations are resumed.
This ensures safe and consistent task management handling.
[[ Note: Warner landed this with the pending suggestion since this change is good enough for 14.3, but chs' suggestion for better atomics needs to be implemented soon ]]
Discussed with: imp, chs Differential Revision: https://reviews.freebsd.org/D49749
show more ...
|
| e80317ba | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Add NVData Parameter for Host Timestamp Synchronization
The driver now retrieves the Time Stamp value from Driver Page 1 during load and after controller reset. If the value is valid, it is
mpi3mr: Add NVData Parameter for Host Timestamp Synchronization
The driver now retrieves the Time Stamp value from Driver Page 1 during load and after controller reset. If the value is valid, it is used to enable periodic host timestamp synchronization.
This adds a tunable NVData parameter to control the behavior of host time sync, enhancing flexibility and platform-specific control.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49748
show more ...
|
| 116c8b18 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Handle Insufficient Power Fault Code
The driver now checks for insufficient power faults during the load phase and immediately fails initialization instead of retrying.
Additionally, if an
mpi3mr: Handle Insufficient Power Fault Code
The driver now checks for insufficient power faults during the load phase and immediately fails initialization instead of retrying.
Additionally, if an insufficient power fault is detected by the watchdog after the controller is up, the controller is marked as unrecoverable instead of triggering a reset.
This improves fault handling and avoids unnecessary recovery attempts in low-power conditions.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49747
show more ...
|
| e977ed50 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Enhance Controller Enable Retry Logic in Host Drivers
This patch improves the retry logic during the IOC enable process. If a controller faults or if the reset history bit is detected during
mpi3mr: Enhance Controller Enable Retry Logic in Host Drivers
This patch improves the retry logic during the IOC enable process. If a controller faults or if the reset history bit is detected during the ready status check, the driver will retry initialization up to three times or until 510 seconds have passed.
A soft reset will also be issued if the controller is detected while waiting for the ready status.
This enhances reliability during controller initialization.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49746
show more ...
|
| d14c4ea0 | 28-Apr-2025 |
Chandrakanth patil <chandrakanth.patil@broadcom.com> |
mpi3mr: Set Driver Capability for OS Exposure in IOCInit
This patch updates the driver to set the OSExposure field in DriverCapability during IOCInit to MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL(
mpi3mr: Set Driver Capability for OS Exposure in IOCInit
This patch updates the driver to set the OSExposure field in DriverCapability during IOCInit to MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL(0x1), aligning with the latest MPI specification version 36.
Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49745
show more ...
|
| 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 ...
|