From 938430741f71949eeed0d93a43f9e597c65759f4 Mon Sep 17 00:00:00 2001 From: Abner Chang Date: Mon, 15 Aug 2022 09:47:30 +0800 Subject: [PATCH] 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 Cc: Nickle Wang Signed-off-by: Igor Kulchytskyy Reviewed-by: Abner Chang --- .../RedfishDiscoverDxe/RedfishSmbiosHostInterface.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c b/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c index d79750baaf..88cec1f416 100644 --- a/RedfishPkg/RedfishDiscoverDxe/RedfishSmbiosHostInterface.c +++ b/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;