You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MdeModulePkg: Add alternative queue sizes in nvme driver to support specific devices
Add a new PCD that toggles between the old driver behavior and new behavior that uses a different hardcoded queue size to support specific devices. Default behavior should not change.
MdeModulePkg/NvmExpressDxe: Improve NVMe controller init robustness
It has been observed that some faulty NVMe devices may return
invalid values. The code in NvmExpressDxe recognizes the controller
is not responding correctly and issues an ASSERT() often in DEBUG
builds or a reset in RELEASE builds.
The following changes are made to NvmeControllerInit() to prevent a
faulty NVMe device from halting the overall boot:
1. Check the Vendor ID and Device ID to verify they are read properly
and if not, return EFI_DEVICE_ERROR
2. Replace the ASSERT() when Memory Page Size Minimum (Cap.Mpsmin)
with an error message and return EFI_DEVICE_ERROR
Signed-off-by: Michael Kubacki <[email protected]>
MdeModulePkg/NvmExpressDxe: Correct function parameter modifer
Updates the `Cap` parameter for `ReadNvmeControllerCapabilities()`
to be `OUT` since the buffer pointed to is written within the
function.
Signed-off-by: Michael Kubacki <[email protected]>
// set number of entries admin submission & completion queues.
1124
1164
//
1125
-
Aqa.Asqs=MIN (NVME_ASQ_SIZE, Private->Cap.Mqes);
1165
+
// MU_CHANGE [BEGIN] - Support alternative hardware queue sizes in NVME driver
1166
+
Aqa.Asqs=PcdGetBool (PcdSupportAlternativeQueueSize) ? MIN (NVME_ALTERNATIVE_MAX_QUEUE_SIZE, Private->Cap.Mqes) : MIN (NVME_ASQ_SIZE, Private->Cap.Mqes);
1126
1167
Aqa.Rsvd1=0;
1127
-
Aqa.Acqs=MIN (NVME_ACQ_SIZE, Private->Cap.Mqes);
1168
+
Aqa.Acqs=PcdGetBool (PcdSupportAlternativeQueueSize) ? MIN (NVME_ALTERNATIVE_MAX_QUEUE_SIZE, Private->Cap.Mqes) : MIN (NVME_ACQ_SIZE, Private->Cap.Mqes);
1128
1169
Aqa.Rsvd2=0;
1170
+
// MU_CHANGE [END] - Support alternative hardware queue sizes in NVME driver
0 commit comments