瀏覽代碼

RedfishPkg/RedfishDiscoverDxe: USB Redfish host interface is not supported

Host Interface details are described by the SMBIOS Type 42
table. The table is published by the RedfishHostInterfaceDxe
driver. That driver supports PCI-E and USB host interface
types.The table is consumed by the edfishGetHostInterfaceProtocolData
function in the RedfishDiscoverDxe driver. The function only supports
PCI-E host interface type.

Cc: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nickle.wang@hpe.com>
Signed-off-by: Igor Kulchytskyy <igork@ami.com>
Reviewed-by: Abner Chang <abner.chang@amd.com>
Abner Chang 1 年之前
父節點
當前提交
938430741f
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c

+ 8 - 3
RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c

@@ -65,10 +65,15 @@ RedfishGetHostInterfaceProtocolData (
         RecordTmp       = (UINT8 *)Record + Offset;
 
         //
-        // Check Device Type, only PCI/PCIe Network Interface v2 is supported now.
+        // Check Device Type, PCI/PCIe and USB Network Interface v2 is supported.
         //
-        if (*RecordTmp == REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2) {
-          ASSERT (SpecificDataLen == sizeof (PCI_OR_PCIE_INTERFACE_DEVICE_DESCRIPTOR_V2) + 1);
+        if ((*RecordTmp == REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2) || (*RecordTmp == REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2)) {
+          if (*RecordTmp == REDFISH_HOST_INTERFACE_DEVICE_TYPE_PCI_PCIE_V2) {
+            ASSERT (SpecificDataLen == sizeof (PCI_OR_PCIE_INTERFACE_DEVICE_DESCRIPTOR_V2) + 1);
+          } else {
+            ASSERT (SpecificDataLen > sizeof (REDFISH_HOST_INTERFACE_DEVICE_TYPE_USB_V2) + 1);
+          }
+
           *DeviceDescriptor = (REDFISH_INTERFACE_DATA *)RecordTmp;
           Offset            = Offset + SpecificDataLen;
           RecordTmp         = (UINT8 *)Record + Offset;