Commit graph

43983 commits

Author SHA1 Message Date
Ahmad Khalifa
b670c9bafc newbus: replace leftover device unit wildcards
Reviewed by:	imp, jhb
Approved by:	imp (mentor)
Differential Revision:	https://reviews.freebsd.org/D50913
2025-06-21 05:57:45 +03:00
Bjoern A. Zeeb
8d51f2aba9 iwx: correct rx status reporting
We are currently not reporting any per-chain S:N values so remove
IEEE80211_R_C_RSSI and IEEE80211_R_RSSI along with it as it is set
already in the line above.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	thj
Differential Revision: https://reviews.freebsd.org/D50927
2025-06-19 16:32:28 +00:00
Bjoern A. Zeeb
be57603c46 iwx: correct chain number reporting
There is no point in assigning the channel index to the number of
chains for the RX status reporting.  The value was not tagged as
being used.  Rather than simply removing it try to fix it and
set the flag if we get a value.

Sposnored by:	The FreeBSD Foundation
Reviewed by:	thj
Differential Revision: https://reviews.freebsd.org/D50926
2025-06-19 16:32:28 +00:00
Kevin Lo
19d0dd8718 mtw: fix display of the MAC revision
Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D50542
2025-06-19 13:42:39 +08:00
Mark Johnston
9d0d55e398 ufshci: Remove an unneeded variable definition
Reported by:	gcc
Fixes:		1349a733cf ("ufshci: Introduce the ufshci(4) driver")
2025-06-18 13:13:08 +00:00
Olivier Certner
8ecc419180
Internal scheduling priorities: Always use symbolic ones
Replace priorities specified by a base priority and some hardcoded
offset value by symbolic constants.  Hardcoded offsets prevent changing
the difference between priorities without changing their relative
ordering, and is generally a dangerous practice since the resulting
priority may inadvertently belong to a different selection policy's
range.

Since RQ_PPQ is 4, differences of less than 4 are insignificant, so just
remove them.  These small differences have not been changed for years,
so it is likely they have no real meaning (besides having no practical
effect).  One can still consult the changes history to recover them if
ever needed.

No functional change (intended).

MFC after:      1 month
Event:          Kitchener-Waterloo Hackathon 202506
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D45390
2025-06-17 22:08:02 -04:00
Olivier Certner
c21c24adde
runq: More selective includes of <sys/runq.h> to reduce pollution
<sys/proc.h> doesn't need <sys/runq.h>.  Remove this include and add it
back for kernel files that relied on the pollution.

Reviewed by:    kib
MFC after:      1 month
Event:          Kitchener-Waterloo Hackathon 202506
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D45387
2025-06-17 22:07:57 -04:00
Krzysztof Galazka
7ffe1a1f63 pci: Save MSIX ctrl value before pci_mask_msix call
Function pci_mask_msix uses cached value of MSI-X CTRL
register to verify if vector index is valid. Update
that value in pci_alloc_msix_method before it is
used to avoid kernel panic.

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>

Reviewed by:	jhb
Approved by:	kbowling (mentor)
Sponsored by:   Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D49484
2025-06-17 21:17:21 +02:00
Jaeyoon Choi
1349a733cf ufshci: Introduce the ufshci(4) driver
This commit adds a storage driver that supports the Universal Flash
Storage Host Controller Interface (UFSHCI) on FreeBSD.

Universal Flash Storage (UFS) is a flash-based mobile storage device
that replaces eMMC, aiming for high performance with low power. The UFS
Host Controller Interface (UFSHCI) is the host side controller and
connects UFS device to a system bus, such as PCIe.

The code targets the latest standards:
- UFS 4.1: https://www.jedec.org/standards-documents/docs/jesd220g
- UFSHCI 4.1: https://www.jedec.org/standards-documents/docs/jesd223f

The ufshci(4) driver implements controller/device initialization,
interrupt, single-doorbell(SDB) queue based IO requests. Support for
multi-queue (MCQ) IO requests is planned for a later commit.

Implemented features:
- PCIe bus support
- legacy(INTx) Interrupt Handling
- UIC command support
- UTP Transfer Request (UTR) support
- UTP Task Management Request (UTMR) support
- single doorbell queue (SDB) with multiple queue depth
- SCSI command set support
- sysctl

Work in progress:
- multi-Circular Queue (per-CPU IO queues)
- MSI-X interrupt Support
- write booster
- write Protect
- Host Performance Booster (HPB)
- interrupt aggregation
- ARM based system bus support
- ufs-utils port

Tests were performed on QEMU and an Intel-based laptop.
Since QEMU has an emulated UFS device, I tested on QEMU.

How to test on QEMU:
1. Run QEMU
    $ qemu-system-x86_64 ... -device ufs -drive file=blk1g.bin,format=raw,if=none,id=luimg -device ufs-lu,drive=luimg,lun=0
2. Loading/unloading the ufshci module on QEMU
    $ kldload /usr/obj/usr/src/amd64.amd64/sys/modules/ufshci/ufshci.ko
    $ kldunload ufshci

Testing on real hardware:
- Samsung Galaxy Book S (Intel Lakefield) with UFS 3.0
- Lenovo duet 3 11ian8 (Intel N100) with UFS 2.1

Sponsored by:		Samsung Electronics
Reviewed by:		imp
Differential Revision:	https://reviews.freebsd.org/D50370
2025-06-15 00:08:56 -06:00
Kevin Bowling
5e6e4f7528 bnxt: Fix BASE-T, 40G AOC, 1G-CX, autoneg and unknown media lists
This was broken in c63d67e137, the early returns prevent building the
media lists as expected.

The BASE-T parts of the patch were suggested by "cyric@mm.st", while I
am adding the additional 40G AOC, 1CX, autoneg and unknown PHY fixes
based on code inspection.  There may be additional work left here for
Broadcom but this is certainly better than the returns.

PR:		287395

Reported by:	mickael.maillot@gmail.com, cyric@mm.st
Tested by:	Einar Bjarni Halldórsson <einar@isnic.is>
MFC after:	1 week
2025-06-14 16:54:22 -07:00
Mark Johnston
3b4bc5d70e gve: Relax a static assertion
It's okay if MCLBYTES is larger than the default receive buffer size.

Fixes:	71702df612 ("gve: Add support for 4k RX Buffers when using DQO queue formats")
2025-06-14 12:17:49 +00:00
Vee Agarwal
71702df612 gve: Add support for 4k RX Buffers when using DQO queue formats
This change adds support for using 4K RX Buffers when using DQO queue
formats when a boot-time tunable flag is set to true by the user.
When this flag is enabled, the driver will use 4K RX Buffer size either
when HW LRO is enabled or mtu > 2048.

Signed-off-by: Vee Agarwal <veethebee@google.com>

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D50786
2025-06-13 18:53:51 +00:00
Kristof Provost
4f7473d18a qlnx: fix panic at startup
While attaching the qlnx driver we can end up trying to call ifmedia functions
before those are set up (through ether_ifattach() -> rtnl_handle_ifattach()
-> dump_iface() -> get_operstate_ether() -> ifmedia_ioctl()). Postpone the
ether_ifattach() until after the ifmedia setup.

Reviewed by:	markj,zlei
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D50819
2025-06-13 16:48:51 +02:00
Christos Margiolis
84e7307441 snd_hda: Patch Lenovo T420s
PR:		222636
Tested by:	vermaden@interia.pl
Sponsored by:	The FreeBSD Foundation
MFC after:	1 day
2025-06-13 01:02:15 +02:00
Stefan Eßer
dab9ef5448 snd_hda: fix attaching to some AMD Radeon GPUs
HDMI audio did not work on my older Radeon GPU, the error message
during attach was:

hdac0: hdac_get_capabilities: Invalid corb size (0)

This is fixed by calling hdac_reset() before the HDA device
capabilities are retrieved. This solution was proposed by Andriy Gapon
in 2010, but apparently did not solve the problem reported at the time.

Approved by:	christos
Differential Revision:	https://reviews.freebsd.org/D50737
2025-06-12 10:15:59 +02:00
Jan Biedermann
50461a68e0 Add USB quirk for Creative Stage SE mini
Note: The commit in main was modified for the new macros in main.
stable merge will need to use the version originally in #1715

MFC After: 2 weeks
Pull Request: https://github.com/freebsd/freebsd-src/pull/1715
Closes: https://github.com/freebsd/freebsd-src/pull/1715
2025-06-11 17:16:21 -06:00
Jan Biedermann
c2794499be usb: Don't call usb_msc_auto_quirk for UQ_MSC_IGNORE devices
usb_msc_auto_quirk() potentially crashes usb devices with a hidden
storage (see bug 287333). These devices may still operate normally if
usb_msc_auto_quirk() would not be called all and the hidden storage is
ignored. This patch makes sure, that usb_msc_auto_quirk() is not called
when the UQ_MSC_IGNORE quirk is set for a device. It shouldn't be called
anyway if the hidden storage supposed to be ignored. This gives users a
chance to get their devices working by using

'usbconfig add_dev_quirk_vplh <vid> <pid> <lo_rev> <hi_rev> UQ_MSC_IGNORE'.

Reviewed by: imp
MFC After: 1 week
Pull Request: https://github.com/freebsd/freebsd-src/pull/1716
Closes: https://github.com/freebsd/freebsd-src/pull/1716
2025-06-11 17:16:21 -06:00
Christos Margiolis
4a7b8cd705 sound: Add AFMT_FLOAT to feed_volume_info_tab
Fixes:		e1bbaa71d6 ("sound: Implement AFMT_FLOAT support")
Reported by:	bz
Sponsored by:	The FreeBSD Foundation
MFC after:	1 day
Reviewed by:	bz
Differential Revision:	https://reviews.freebsd.org/D50793
2025-06-11 13:10:54 -04:00
Brooks Davis
e453e498cb machine/stdarg.h -> sys/stdarg.h
Switch to using sys/stdarg.h for va_list type and va_* builtins.

Make an attempt to insert the include in a sensible place.  Where
style(9) was followed this is easy, where it was ignored, aim for the
first block of sys/*.h headers and don't get too fussy or try to fix
other style bugs.

Reviewed by:	imp
Exp-run by:	antoine (PR 286274)
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1595
2025-06-11 17:39:02 +01:00
Andrew Turner
d41a2ba73c scmi: Avoid a use-after-free
Use LIST_FOREACH_SAFE to avoid a use-after-free in scmi_reqs_pool_free.
The next pointer will be invalid after the call to free meaning
LIST_FOREACH will dereference a freed struct to move to the next item.

Reviewed by:	emaste
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D50753
2025-06-09 23:32:11 +01:00
Cristian Marussi
5a54d768e1 scmi: Add sysctl transport properties
Expose as read-only the configured transport properties.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47428
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
d5778530d1 scmi: Add SDT traces to the core stack
Add a few basic traces to track SCMI messages lifecycle.

Tested on:      Arm Morello Board
Reviewed by:	Andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47427
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
e478b80556 scmi: Add optional asynchronous handling of replies
Add the core logic to handle the replies to pending command in an
asynchronous manner.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47426
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
8f70662928 scmi: Refactor scmi_request internal logic
Split scmi_request internals into a TX and an RX phase, which will be
called, anyway, in sequence as before when a normal transmission is
requested.

No functional change.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47425
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
35ec332f34 scmi: Add scmi_token_reserve helper
During normal operation, the SCMI stack, upon each transmission attempt,
takes care to automatically pick an appropriate, monotonically increasing,
sequence number to fill-in the token field in the egressing message.

This does not cope well with the alternative scenario in which, instead,
a complete and fully formed message is provided upfront: in such a case the
SCMI stack will have to use the already provided sequence number, embedded
in the message, to track such transaction.

Add a method to attempt to reserve a specific sequence number to be used
when a fully firmed (raw) message is handled.

Tested on:      Arm Morello Board
Reported by:	andrew
Sponsored by:	Arm ltd
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
f700da1c20 scmi: Add helper to manipulate scmi_msg descriptors
Refactor allocation logic for scmi_req and introduce new helpers to be able
to obtain an scmi_msg reference to a freshly allocated request.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47423
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
ba510513e8 scmi: Add devicetree transport properties
SCMI transport characteristics can be optionally described in the
devicetree to override the default build-time values.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47422
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
a14428c69b scmi: Redefine max message payload size
The defined maximum payload size should not include header and status
field. Fix the definition accordingly, so that it matches the
definitions as can be found in the Linux SCMI stack.
The semantic of this define is important since it will then be possible
to override such values from devicetree, like in Linux.

Tested on:	Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D47421
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:40 +01:00
Cristian Marussi
c758208373 scmi: Make transports report the effective length of the received messages
Once a message is received that fits into the RX buffer, update the
msg.rx_len field with the effective length of the message received.

Tested on:      Arm Morello Board
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
2025-06-04 02:32:39 +01:00
Andrew Turner
d49ed36080 Revert "scmi: Make transports report the effective length of the received messages"
Revert to reapply series as some patches were incorrect versions

This reverts commit 9342829d57.
2025-06-04 02:32:39 +01:00
Andrew Turner
3550c47a96 Revert "scmi: Redefine max message payload size"
Revert to reapply series as some patches were incorrect versions

This reverts commit f021623949.
2025-06-04 02:32:39 +01:00
Andrew Turner
04a83b8b5e Revert "scmi: Add devicetree transport properties"
Revert to reapply series as some patches were incorrect versions

This reverts commit 103ea03e67.
2025-06-04 02:32:39 +01:00
Andrew Turner
ed57f6e6fd Revert "scmi: Add helper to manipulate scmi_msg descriptors"
Revert to reapply series as some patches were incorrect versions

This reverts commit e887179d4b.
2025-06-04 02:32:39 +01:00
Andrew Turner
b0be4172f5 Revert "scmi: Add scmi_token_reserve helper"
Revert to reapply series as some patches were incorrect versions

This reverts commit c508841dfc.
2025-06-04 02:32:39 +01:00
Andrew Turner
b65172cb9e Revert "scmi: Refactor scmi_request internal logic"
Revert to reapply series as some patches were incorrect versions

This reverts commit 341d8fd90f.
2025-06-04 02:32:39 +01:00
Andrew Turner
35fee38c77 Revert "scmi: Add optional asynchronous handling of replies"
Revert to reapply series as some patches were incorrect versions

This reverts commit b802926b7b.
2025-06-04 02:32:39 +01:00
Andrew Turner
c4629b0f2b Revert "scmi: Add SDT traces to the core stack"
Revert to reapply series as some patches were incorrect versions

This reverts commit 984f9fb81a.
2025-06-04 02:32:38 +01:00
Andrew Turner
ea334b9794 Revert "scmi: Add sysctl transport properties"
Revert to reapply series as some patches were incorrect versions

This reverts commit e6d0edd2fe.
2025-06-04 02:32:38 +01:00
Hareshx Sankar Raj
2542189532 qat: update API files to use SPDX identifier
API files are updated to have SPDX identifier and remove
longer form of license to ensure consistency with the
license format across all files.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:50:00 +00:00
Hareshx Sankar Raj
ae1dc27639 qat: refactor error handling and add mutex locks
Error handling in qat driver code has been refactored.
Mutex lock handling has also been added during driver
attach and detach. Also pci_disable_busmaster() is called in
adf_detach() to ensure proper cleanup during device detachment.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:49:51 +00:00
Hareshx Sankar Raj
ded037e65e qat: driver updates to improve code and fix bugs
Bug fixes and improvements are done for the qat code base
to improve code quality.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:43:54 +00:00
Hareshx Sankar Raj
e745eee59c qat: reimplement cpaCyGetXXXInstances as a wrapper
Currently code from sal_instances.c and sal_crypto.c
for getting cy instances or number of instances is duplicated.

This commit replaces cpaCyGetXXXInstances implementation with
Lac_GetCyXXXInstancesByType invocation.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:43:42 +00:00
Hareshx Sankar Raj
8aa51e6d7d qat: restrict sysctl access to privileged users
Access to crucial QAT driver internals, such as
firmware counters and transport debug via
sysctl, has been limited to privileged users only.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:43:33 +00:00
Hareshx Sankar Raj
c38bafee7e qat: move debugfs handling to separate file
Moved handling of debugfs entries to a separate file.
In addition, it will allow to consolidate the addition of
debugfs entries to a single location in the code.

This implementation adds infrastructure to create (and remove)
debugfs entries at two different stages.
- Done when a device is probed, allows to keep debugfs entries
persistent between a transition in device state (up to down or
vice versa).
- Done after the initialization phase, allows to have debugfs
entries that are accessible only when the device is up.

In addition, moved the creation of debugfs entries for configuration
of the newly created function adf_dbgfs_init() and replace symbolic
permissions with octal permissions when creating the debugfs files.

Added sysctl oids storage for proper cleanup on device down.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:43:22 +00:00
Hareshx Sankar Raj
4da5c15e5c qat: update 4xxx capabilities handling
Some capabilities were not properly fused out based on
the hardware slices. Hence updated the function accordingly.
Both PF and VF are changed.

This change also streamlines capability handling for SYM service:
- Lack of UCS slice does not mean that CIPHER capabilities are not
  available.
- SYM capabilities should be considered disabled only if both
  AUTH and CIPHER capabilities are not present.
- AUTH capability shouldn't disable CIPHER.

SMX slice mask for qat_4xxx is also corrected to check for
both SM3 and SM4 support.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:43:10 +00:00
Hareshx Sankar Raj
5a8e5215ce qat: add disable safe dc mode for QAT SPR devices
Build and sysctl configuration modes are introduced for QAT SPR
devices to disable safe dc mode. A new QAT driver build option
‘QAT_DISABLE_SAFE_DC_MODE’ is required to build the QAT driver
with code that allows a request to be sent to FW to override the
‘History Buffer’ mitigation. Default QAT driver builds do not
include this ‘QAT_DISABLE_SAFE_DC_MODE’ build option. Even if the
QAT driver was built with code that allows a request to be sent to
FW to override the ‘History Buffer’ mitigation, the QAT driver must
still be configured using sysctl to request an override of the
‘History Buffer’ mitigation if desired. The default QAT driver
configuration option sysctl dev.qat.X.disable_safe_dc_mode does not
allow override of the mitigation. The new sysctl attribute
disable_safe_dc_mode is to be set to 1 for overriding the history
buffer mitigation. Firmware for qat_4xxx is updated for this change.
If this mode is enabled, decompression throughput increases but may
result in a data leak if num_user_processes is more than 1.
This option is to be enabled only if your system is not prone to
user data leaks.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:42:58 +00:00
Hareshx Sankar Raj
25f09d4a9c qat: fix typos and formatting issues
Multiple typos are corrected across the source code.
Formatting corrections are done to improve code quality
and maintainability. Some files which did not have proper
Copyright license are updated.

Reviewed by:	markj, ziaee
MFC after:	2 weeks
Sponsored by:   Intel Corporation
Differential Revision:  https://reviews.freebsd.org/D50379
2025-06-06 13:42:31 +00:00
John Baldwin
7b3ee39e73 libcam: Include nvme opcode and status code routines from nvme_util.c
libcam in userspace also includes nvme_all.c which now depends on
nvme_util.c, so add nvme_util.c to libcam's sources.  This requires
exporting the opcode and status code routines in nvme_util.c to
userspace as well as the kernel.  In turn, this means nvmecontrol now
depends on libsbuf (which is already present in /lib).

Reported by:	viswhin, Jenkins
Fixes:		60159a98a8 ("nvme: Move opcode and status code tables from base CAM to nvme_util.c")
Sponsored by:	Chelsio Communications
2025-06-05 21:28:38 -04:00
Jasper Tran O'Leary
46fce00084 gve: Fix timestamp invalidation for DQO queue formats
We need to invalidate timestamps when a TX queue is cleared so that the
TX timeout detection callout does not mistakenly fire for cleared
packets. When using DQO queue formats, timestamps are set on the pending
packet array whose length is not the same as the length of the
descriptor ring itself. This commit fixes logic which invalidated the
wrong number of pending packets.

Signed-off-by: Jasper Tran O'Leary <jtranoleary@google.com>

Fixes:		3d2957336c ("gve: Add callout to detect and handle TX timeouts")
Reviewed by:	markj
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D50688
2025-06-05 21:48:57 +00:00
John Baldwin
85a6ba310f nvme: Use routines from nvme_util.c to decode opcodes and status codes
This reduces the number of duplicate string tables for NVMe opcodes
and status codes.

Adjust the formatting of unknown opcodes and status codes to more
closely match nvme(4).

Reviewed by:	imp
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D50652
2025-06-05 17:03:32 -04:00