<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/mpr/mpr_config.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>mps/mpr: Remove bogus sys/cdefs.h includes</title>
<updated>2026-01-09T05:54:44+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2026-01-09T05:48:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d650b2ceda4641475e90ba1f6d349eac98aaa963'/>
<id>d650b2ceda4641475e90ba1f6d349eac98aaa963</id>
<content type='text'>
These are left over from the $FreeBSD$ stuff.

Sponsored by:		Netflix
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are left over from the $FreeBSD$ stuff.

Sponsored by:		Netflix
</pre>
</div>
</content>
</entry>
<entry>
<title>mpr: endianess fix for set/get dpm page0</title>
<updated>2024-02-01T02:33:05+00:00</updated>
<author>
<name>Robert Wing</name>
<email>rew@FreeBSD.org</email>
</author>
<published>2024-02-01T02:33:05+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d9b3bba2f3022f1b577fb7a18c523c92551d8257'/>
<id>d9b3bba2f3022f1b577fb7a18c523c92551d8257</id>
<content type='text'>
Reviewed by:	oshogbo, imp
Sponsored by:   Klara, Inc.
Sponsored by:   Datazap
Differential Revision:	https://reviews.freebsd.org/D43505
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed by:	oshogbo, imp
Sponsored by:   Klara, Inc.
Sponsored by:   Datazap
Differential Revision:	https://reviews.freebsd.org/D43505
</pre>
</div>
</content>
</entry>
<entry>
<title>sys: Remove $FreeBSD$: one-line .c pattern</title>
<updated>2023-08-16T17:54:36+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2023-08-16T17:54:36+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=685dc743dc3b5645e34836464128e1c0558b404b'/>
<id>685dc743dc3b5645e34836464128e1c0558b404b</id>
<content type='text'>
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
</pre>
</div>
</content>
</entry>
<entry>
<title>mps/mpr: Add missing newlines in error messages.</title>
<updated>2022-02-22T20:08:22+00:00</updated>
<author>
<name>Alexander Motin</name>
<email>mav@FreeBSD.org</email>
</author>
<published>2022-02-22T20:06:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=074bed4f486b4fa54e4d9bd2fccfad3cce732ba1'/>
<id>074bed4f486b4fa54e4d9bd2fccfad3cce732ba1</id>
<content type='text'>
MFC after:	1 week
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MFC after:	1 week
</pre>
</div>
</content>
</entry>
<entry>
<title>mpr: big-endian support</title>
<updated>2021-03-03T01:21:42+00:00</updated>
<author>
<name>Alfredo Dal'Ava Junior</name>
<email>alfredo@FreeBSD.org</email>
</author>
<published>2021-03-02T14:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=71900a794da046ad5322caae2774aed5b3d361b9'/>
<id>71900a794da046ad5322caae2774aed5b3d361b9</id>
<content type='text'>
This fixes mpr driver on big-endian devices.
Tested on powerpc64 and powerpc64le targets using a SAS9300-8i card
(LSISAS3008 pci vendor=0x1000 device=0x0097)

Submitted by:	Andre Fernando da Silva &lt;andre.silva@eldorado.org.br&gt;
Reviewed by:	luporl, alfredo, Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt; (by email)
Sponsored by:	Eldorado Research Institute (eldorado.org.br)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D25785
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes mpr driver on big-endian devices.
Tested on powerpc64 and powerpc64le targets using a SAS9300-8i card
(LSISAS3008 pci vendor=0x1000 device=0x0097)

Submitted by:	Andre Fernando da Silva &lt;andre.silva@eldorado.org.br&gt;
Reviewed by:	luporl, alfredo, Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt; (by email)
Sponsored by:	Eldorado Research Institute (eldorado.org.br)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D25785
</pre>
</div>
</content>
</entry>
<entry>
<title>mpr: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T22:07:12+00:00</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T22:07:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=577858c836e6bedd9e8c7a3a505590be928f44ee'/>
<id>577858c836e6bedd9e8c7a3a505590be928f44ee</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update copyright information</title>
<updated>2018-12-26T10:43:31+00:00</updated>
<author>
<name>Kashyap D Desai</name>
<email>kadesai@FreeBSD.org</email>
</author>
<published>2018-12-26T10:43:31+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=46b23587c27befafaf54df9069334bf740f0b0af'/>
<id>46b23587c27befafaf54df9069334bf740f0b0af</id>
<content type='text'>
Submitted by: Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt;
Reviewed by:  Kashyap Desai &lt;Kashyap.Desai@broadcom.com&gt;
Approved by:  ken
MFC after:  3 days
Sponsored by:   Broadcom Inc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Submitted by: Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt;
Reviewed by:  Kashyap Desai &lt;Kashyap.Desai@broadcom.com&gt;
Approved by:  ken
MFC after:  3 days
Sponsored by:   Broadcom Inc
</pre>
</div>
</content>
</entry>
<entry>
<title>Added support for NVMe Task Management</title>
<updated>2018-12-26T10:40:27+00:00</updated>
<author>
<name>Kashyap D Desai</name>
<email>kadesai@FreeBSD.org</email>
</author>
<published>2018-12-26T10:40:27+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=89d1c21f458d83a882c92a8a2b2b5be92cbdf2ec'/>
<id>89d1c21f458d83a882c92a8a2b2b5be92cbdf2ec</id>
<content type='text'>
Following list of changes done in the driver as a part of TM handling on the NVMe drives.
Below changes are only applicable on NVMe drives and only when custom NVMe TM handling bit is set to zero by IOC.

1. Issue LUN reset &amp; Target reset TMs with Target reset method field set to Protocol Level reset (0x3),
2. For LUN &amp; target reset TMs use the timeout value as ControllerResetTO value provided by firmware using PCie Device Page 0,
3. If LUN reset fails to terminates the IO then directly escalate to host reset instead of going for target reset TM,
4. For Abort TM use the timeout value as NVMeAbortTO value given by the IOC using Manufacturing Page 11,
5. Log message "PCie Host Reset failed" message up on receiving P

Submitted by: Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt;
Reviewed by:  Kashyap Desai &lt;Kashyap.Desai@broadcom.com&gt;
Approved by:  ken
MFC after:  3 days
Sponsored by:   Broadcom Inc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following list of changes done in the driver as a part of TM handling on the NVMe drives.
Below changes are only applicable on NVMe drives and only when custom NVMe TM handling bit is set to zero by IOC.

1. Issue LUN reset &amp; Target reset TMs with Target reset method field set to Protocol Level reset (0x3),
2. For LUN &amp; target reset TMs use the timeout value as ControllerResetTO value provided by firmware using PCie Device Page 0,
3. If LUN reset fails to terminates the IO then directly escalate to host reset instead of going for target reset TM,
4. For Abort TM use the timeout value as NVMeAbortTO value given by the IOC using Manufacturing Page 11,
5. Log message "PCie Host Reset failed" message up on receiving P

Submitted by: Sreekanth Reddy &lt;sreekanth.reddy@broadcom.com&gt;
Reviewed by:  Kashyap Desai &lt;Kashyap.Desai@broadcom.com&gt;
Approved by:  ken
MFC after:  3 days
Sponsored by:   Broadcom Inc
</pre>
</div>
</content>
</entry>
<entry>
<title>Changes to make mps(4) and mpr(4) handle reinit with reallocation.</title>
<updated>2017-08-10T14:59:17+00:00</updated>
<author>
<name>Kenneth D. Merry</name>
<email>ken@FreeBSD.org</email>
</author>
<published>2017-08-10T14:59:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6d4ffcb4acd13b34175df069e09e8d7920188bd4'/>
<id>6d4ffcb4acd13b34175df069e09e8d7920188bd4</id>
<content type='text'>
When the mps(4) and mpr(4) drivers need to reinitialize the
firmware, they sometimes need to reallocate all of the memory
allocated by the driver.  The reallocation happens whenever the IOC
Facts change.  That should only happen after a firmware upgrade.

If the reinitialization happens as a result of a timed out command
sent to the card, the command that timed out and triggered the
reinit may have been freed if iocfacts_allocate() reallocated all
memory.  If the caller attempts to access the command after that,
the kernel will panic because the caller will be dereferencing
freed memory.

The solution is to set a flag in the softc when we reallocate,
and avoid dereferencing the command strucure if we've reallocated.

The changes are largely the same in both drivers, since mpr(4) is a
derivative of mps(4).

 o In iocfacts_allocate(), if the IOC Facts have changed and we
   need to reallocate, set the REALLOCATED flag in the softc.

 o Change wait_command() to take a struct mps_command ** instead of
   a struct mps_command *.  This allows us to NULL out the caller's
   command pointer if we have to reinit the controller and the data
   structures get reallocated.  (The REALLOCATED flag will be set
   in the softc if that has happened.)

 o In every place that calls wait_command(), make sure we handle
   the case where the command is NULL after the call.

 o The mpr(4) driver has mpr_request_polled() which can also
   reinitialize the card.  Also check for reallocation there.

Reviewed by:	scottl, slm
MFC after:	1 week
Sponsored by:	Spectra Logic
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the mps(4) and mpr(4) drivers need to reinitialize the
firmware, they sometimes need to reallocate all of the memory
allocated by the driver.  The reallocation happens whenever the IOC
Facts change.  That should only happen after a firmware upgrade.

If the reinitialization happens as a result of a timed out command
sent to the card, the command that timed out and triggered the
reinit may have been freed if iocfacts_allocate() reallocated all
memory.  If the caller attempts to access the command after that,
the kernel will panic because the caller will be dereferencing
freed memory.

The solution is to set a flag in the softc when we reallocate,
and avoid dereferencing the command strucure if we've reallocated.

The changes are largely the same in both drivers, since mpr(4) is a
derivative of mps(4).

 o In iocfacts_allocate(), if the IOC Facts have changed and we
   need to reallocate, set the REALLOCATED flag in the softc.

 o Change wait_command() to take a struct mps_command ** instead of
   a struct mps_command *.  This allows us to NULL out the caller's
   command pointer if we have to reinit the controller and the data
   structures get reallocated.  (The REALLOCATED flag will be set
   in the softc if that has happened.)

 o In every place that calls wait_command(), make sure we handle
   the case where the command is NULL after the call.

 o The mpr(4) driver has mpr_request_polled() which can also
   reinitialize the card.  Also check for reallocation there.

Reviewed by:	scottl, slm
MFC after:	1 week
Sponsored by:	Spectra Logic
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tri-mode support (SAS/SATA/PCIe).</title>
<updated>2017-05-17T21:33:37+00:00</updated>
<author>
<name>Stephen McConnell</name>
<email>slm@FreeBSD.org</email>
</author>
<published>2017-05-17T21:33:37+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=67feec504576aacb04baaab0db77c475500c399e'/>
<id>67feec504576aacb04baaab0db77c475500c399e</id>
<content type='text'>
This includes NVMe device support and adds support for the following adapters:
    SAS 3408
    SAS 3416
    SAS 3508
    SAS 3516
    SAS 3616
    SAS 3708
    SAS 3716

Reviewed by:    ken, scottl, asomers, mav
Approved by:	ken, scottl, mav
MFC after:      2 weeks
Relnotes:	yes
Differential Revision: https://reviews.freebsd.org/D10095
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This includes NVMe device support and adds support for the following adapters:
    SAS 3408
    SAS 3416
    SAS 3508
    SAS 3516
    SAS 3616
    SAS 3708
    SAS 3716

Reviewed by:    ken, scottl, asomers, mav
Approved by:	ken, scottl, mav
MFC after:      2 weeks
Relnotes:	yes
Differential Revision: https://reviews.freebsd.org/D10095
</pre>
</div>
</content>
</entry>
</feed>
