/** @file @copyright Copyright 2018 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "PeiBoardInit.h" #include #include #include #include #include USB_OVERCURRENT_PIN TypeCooperCityRPUsb20OverCurrentMappings[PCH_MAX_USB2_PORTS] = { UsbOverCurrentPin0, //Port00: Zepher ,OC0# UsbOverCurrentPin1, //Port01: Read Connector,OC1# UsbOverCurrentPinSkip, //Port02: User bay ,OC0# UsbOverCurrentPinSkip, //Port03: iBMC USB 1.1 ,no OCn# UsbOverCurrentPinSkip, //Port04: NONE ,no OCn# UsbOverCurrentPin2, //Port05: Read Connector,OC2# UsbOverCurrentPin1, //Port06: Read Connector,OC1# UsbOverCurrentPin2, //Port07: Read Connector,OC2# UsbOverCurrentPinSkip, //Port08: NONE ,no OCn# UsbOverCurrentPinSkip, //Port09: NONE ,no OCn# UsbOverCurrentPinSkip, //Port10: iBMC USB 2.0 ,no OCn# UsbOverCurrentPin4, //Port11: Front Panel ,OC4# UsbOverCurrentPinSkip, //Port12: NONE ,no OCn# UsbOverCurrentPin4 //Port13: Front Panel ,OC4# }; USB_OVERCURRENT_PIN TypeCooperCityRPUsb30OverCurrentMappings[PCH_MAX_USB3_PORTS] = { UsbOverCurrentPin0, UsbOverCurrentPin1, UsbOverCurrentPin1, UsbOverCurrentPin2, UsbOverCurrentPin3, UsbOverCurrentPin3, UsbOverCurrentPinSkip, UsbOverCurrentPinSkip, UsbOverCurrentPinSkip, UsbOverCurrentPinSkip }; USB2_PHY_PARAMETERS TypeCooperCityRPUsb20AfeParams[PCH_H_XHCI_MAX_USB2_PHYSICAL_PORTS] = { {7, 0, 2, 1}, // PP0 {7, 0, 2, 1}, // PP1 {7, 0, 2, 1}, // PP2 {7, 0, 2, 1}, // PP3 {7, 0, 2, 1}, // PP4 {7, 0, 2, 1}, // PP5 {7, 0, 2, 1}, // PP6 {7, 0, 2, 1}, // PP7 {7, 0, 2, 1}, // PP8 {7, 0, 2, 1}, // PP9 {7, 0, 2, 1}, // PP10 {7, 0, 2, 1}, // PP11 {7, 0, 2, 1}, // PP12 {7, 0, 2, 1}, // PP13 }; EFI_STATUS TypeCooperCityRPPlatformUsbOcUpdateCallback ( IN OUT USB_OVERCURRENT_PIN **Usb20OverCurrentMappings, IN OUT USB_OVERCURRENT_PIN **Usb30OverCurrentMappings, IN OUT USB2_PHY_PARAMETERS **Usb20AfeParams ) { *Usb20OverCurrentMappings = &TypeCooperCityRPUsb20OverCurrentMappings[0]; *Usb30OverCurrentMappings = &TypeCooperCityRPUsb30OverCurrentMappings[0]; *Usb20AfeParams = TypeCooperCityRPUsb20AfeParams; return EFI_SUCCESS; } PLATFORM_USBOC_UPDATE_TABLE TypeCooperCityRPUsbOcUpdate = { PLATFORM_USBOC_UPDATE_SIGNATURE, PLATFORM_USBOC_UPDATE_VERSION, TypeCooperCityRPPlatformUsbOcUpdateCallback }; EFI_STATUS TypeCooperCityRPPlatformUpdateUsbOcMappings ( IN UBA_CONFIG_DATABASE_PPI *UbaConfigPpi ) { //# //# USB, see PG 104 in GZP SCH //# // USB2 USB3 Port OC // //Port00: PORT5 Back Panel ,OC0# //Port01: PORT2 Back Panel ,OC0# //Port02: PORT3 Back Panel ,OC1# //Port03: PORT0 NOT USED ,NA //Port04: BMC1.0 ,NA //Port05: INTERNAL_2X5_A ,OC2# //Port06: INTERNAL_2X5_A ,OC2# //Port07: NOT USED ,NA //Port08: EUSB (AKA SSD) ,NA //Port09: INTERNAL_TYPEA ,OC6# //Port10: PORT1 Front Panel ,OC5# //Port11: NOT USED ,NA //Port12: BMC2.0 ,NA //Port13: PORT4 Front Panel ,OC5# EFI_STATUS Status; Status = UbaConfigPpi->AddData ( UbaConfigPpi, &gPeiPlatformUbaOcConfigDataGuid, &TypeCooperCityRPUsbOcUpdate, sizeof(TypeCooperCityRPUsbOcUpdate) ); return Status; }