Device->Media.WriteCaching = FALSE;\r
Device->Media.IoAlign = Private->PassThruMode.IoAlign;\r
\r
- Flbas = NamespaceData->Flbas;\r
- LbaFmtIdx = Flbas & 0xF;\r
+ Flbas = NamespaceData->Flbas;\r
+ LbaFmtIdx = Flbas & 0xF;\r
+\r
+ //\r
+ // Currently this NVME driver only suport Metadata Size == 0\r
+ //\r
+ if (NamespaceData->LbaFormat[LbaFmtIdx].Ms != 0) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "NVME IDENTIFY NAMESPACE [%d] Ms(%d) is not supported.\n",\r
+ NamespaceId,\r
+ NamespaceData->LbaFormat[LbaFmtIdx].Ms\r
+ ));\r
+ Status = EFI_UNSUPPORTED;\r
+ goto Exit;\r
+ }\r
+\r
Lbads = NamespaceData->LbaFormat[LbaFmtIdx].Lbads;\r
Device->Media.BlockSize = (UINT32)1 << Lbads;\r
\r
//\r
Flbas = NamespaceData->Flbas;\r
LbaFmtIdx = Flbas & 0xF;\r
- Lbads = NamespaceData->LbaFormat[LbaFmtIdx].Lbads;\r
+\r
+ //\r
+ // Currently this NVME driver only suport Metadata Size == 0\r
+ //\r
+ if (NamespaceData->LbaFormat[LbaFmtIdx].Ms != 0) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "NVME IDENTIFY NAMESPACE [%d] Ms(%d) is not supported.\n",\r
+ NamespaceId,\r
+ NamespaceData->LbaFormat[LbaFmtIdx].Ms\r
+ ));\r
+ Status = EFI_UNSUPPORTED;\r
+ goto Exit;\r
+ }\r
+\r
+ Lbads = NamespaceData->LbaFormat[LbaFmtIdx].Lbads;\r
\r
NamespaceInfo->Media.InterfaceType = MSG_NVME_NAMESPACE_DP;\r
NamespaceInfo->Media.RemovableMedia = FALSE;\r