Add missing status code in several modules.
Signed-off-by: Li Elvin <elvin.li@intel.com> Reviewed-by: Yao Jiewen <jiewen.yao@intel.com> Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com> Reviewed-by: Gao Liming <liming.gao@intel.com> Reviewed-by: Tian Feng <feng.tian@intel.com> Reviewed-by: Fan Jeff <jeff.fan@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13890 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -122,8 +122,20 @@ EhcReset (
|
||||
EFI_STATUS Status;
|
||||
UINT32 DbgCtrlStatus;
|
||||
|
||||
Ehc = EHC_FROM_THIS (This);
|
||||
|
||||
if (Ehc->DevicePath != NULL) {
|
||||
//
|
||||
// Report Status Code to indicate reset happens
|
||||
//
|
||||
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
|
||||
EFI_PROGRESS_CODE,
|
||||
(EFI_IO_BUS_USB | EFI_IOB_PC_RESET),
|
||||
Ehc->DevicePath
|
||||
);
|
||||
}
|
||||
|
||||
OldTpl = gBS->RaiseTPL (EHC_TPL);
|
||||
Ehc = EHC_FROM_THIS (This);
|
||||
|
||||
switch (Attributes) {
|
||||
case EFI_USB_HC_RESET_GLOBAL:
|
||||
@@ -1543,8 +1555,9 @@ EhcGetUsbDebugPortInfo (
|
||||
**/
|
||||
USB2_HC_DEV *
|
||||
EhcCreateUsb2Hc (
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
)
|
||||
{
|
||||
USB2_HC_DEV *Ehc;
|
||||
@@ -1578,6 +1591,7 @@ EhcCreateUsb2Hc (
|
||||
Ehc->Usb2Hc.MinorRevision = 0x0;
|
||||
|
||||
Ehc->PciIo = PciIo;
|
||||
Ehc->DevicePath = DevicePath;
|
||||
Ehc->OriginalPciAttributes = OriginalPciAttributes;
|
||||
|
||||
InitializeListHead (&Ehc->AsyncIntTransfers);
|
||||
@@ -1684,6 +1698,7 @@ EhcDriverBindingStart (
|
||||
UINTN EhciDeviceNumber;
|
||||
UINTN EhciFunctionNumber;
|
||||
UINT32 State;
|
||||
EFI_DEVICE_PATH_PROTOCOL *HcDevicePath;
|
||||
|
||||
//
|
||||
// Open the PciIo Protocol, then enable the USB host controller
|
||||
@@ -1701,6 +1716,19 @@ EhcDriverBindingStart (
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Open Device Path Protocol for on USB host controller
|
||||
//
|
||||
HcDevicePath = NULL;
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &HcDevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
|
||||
PciAttributesSaved = FALSE;
|
||||
//
|
||||
// Save original PCI attributes
|
||||
@@ -1842,7 +1870,7 @@ EhcDriverBindingStart (
|
||||
//
|
||||
// Create then install USB2_HC_PROTOCOL
|
||||
//
|
||||
Ehc = EhcCreateUsb2Hc (PciIo, OriginalPciAttributes);
|
||||
Ehc = EhcCreateUsb2Hc (PciIo, HcDevicePath, OriginalPciAttributes);
|
||||
|
||||
if (Ehc == NULL) {
|
||||
DEBUG ((EFI_D_ERROR, "EhcDriverBindingStart: failed to create USB2_HC\n"));
|
||||
|
@@ -32,6 +32,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/ReportStatusCodeLib.h>
|
||||
|
||||
#include <IndustryStandard/Pci.h>
|
||||
|
||||
@@ -115,6 +116,7 @@ struct _USB2_HC_DEV {
|
||||
EFI_USB2_HC_PROTOCOL Usb2Hc;
|
||||
|
||||
EFI_PCI_IO_PROTOCOL *PciIo;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
UINT64 OriginalPciAttributes;
|
||||
USBHC_MEM_POOL *MemPool;
|
||||
|
||||
|
@@ -11,7 +11,7 @@
|
||||
# This way avoids the control transfer on a shared port between EHCI and companion host
|
||||
# controller when UHCI gets attached earlier than EHCI and a USB 2.0 device inserts.
|
||||
#
|
||||
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@@ -75,6 +75,7 @@
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
PcdLib
|
||||
ReportStatusCodeLib
|
||||
|
||||
[Guids]
|
||||
gEfiEventExitBootServicesGuid ## PRODUCES ## Event
|
||||
|
@@ -8,7 +8,7 @@
|
||||
PCI Root Bridges. So it means platform needs install PCI Root Bridge IO protocol for each
|
||||
PCI Root Bus and install PCI Host Bridge Resource Allocation Protocol.
|
||||
|
||||
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -239,7 +239,8 @@ PciBusDriverBindingStart (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||
|
||||
//
|
||||
// Check RemainingDevicePath validation
|
||||
@@ -285,6 +286,28 @@ PciBusDriverBindingStart (
|
||||
|
||||
gFullEnumeration = (BOOLEAN) ((SearchHostBridgeHandle (Controller) ? FALSE : TRUE));
|
||||
|
||||
//
|
||||
// Open Device Path Protocol for PCI root bridge
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &ParentDevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// Report Status Code to indicate PCI bus starts
|
||||
//
|
||||
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
|
||||
EFI_PROGRESS_CODE,
|
||||
(EFI_IO_BUS_PCI | EFI_IOB_PC_INIT),
|
||||
ParentDevicePath
|
||||
);
|
||||
|
||||
//
|
||||
// Enumerate the entire host bridge
|
||||
// After enumeration, a database that records all the device information will be created
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
PCI eunmeration implementation on entire PCI bus system for PCI Bus module.
|
||||
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -2095,6 +2095,14 @@ PciHotPlugRequestNotify (
|
||||
RootBridgeHandle = Temp->Handle;
|
||||
|
||||
if (Operation == EfiPciHotPlugRequestAdd) {
|
||||
//
|
||||
// Report Status Code to indicate hot plug happens
|
||||
//
|
||||
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
|
||||
EFI_PROGRESS_CODE,
|
||||
(EFI_IO_BUS_PCI | EFI_IOB_PC_HOTPLUG),
|
||||
Temp->DevicePath
|
||||
);
|
||||
|
||||
if (NumberOfChildren != NULL) {
|
||||
*NumberOfChildren = 0;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
The UHCI driver model and HC protocol routines.
|
||||
|
||||
Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -53,7 +53,18 @@ Uhci2Reset (
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
Uhc = UHC_FROM_USB2_HC_PROTO (This);
|
||||
Uhc = UHC_FROM_USB2_HC_PROTO (This);
|
||||
|
||||
if (Uhc->DevicePath != NULL) {
|
||||
//
|
||||
// Report Status Code to indicate reset happens
|
||||
//
|
||||
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
|
||||
EFI_PROGRESS_CODE,
|
||||
(EFI_IO_BUS_USB | EFI_IOB_PC_RESET),
|
||||
Uhc->DevicePath
|
||||
);
|
||||
}
|
||||
|
||||
OldTpl = gBS->RaiseTPL (UHCI_TPL);
|
||||
|
||||
@@ -1425,8 +1436,9 @@ ON_EXIT:
|
||||
**/
|
||||
USB_HC_DEV *
|
||||
UhciAllocateDev (
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
)
|
||||
{
|
||||
USB_HC_DEV *Uhc;
|
||||
@@ -1460,6 +1472,7 @@ UhciAllocateDev (
|
||||
Uhc->Usb2Hc.MinorRevision = 0x1;
|
||||
|
||||
Uhc->PciIo = PciIo;
|
||||
Uhc->DevicePath = DevicePath;
|
||||
Uhc->OriginalPciAttributes = OriginalPciAttributes;
|
||||
Uhc->MemPool = UsbHcInitMemPool (PciIo, TRUE, 0);
|
||||
|
||||
@@ -1622,6 +1635,7 @@ UhciDriverBindingStart (
|
||||
UINT64 Supports;
|
||||
UINT64 OriginalPciAttributes;
|
||||
BOOLEAN PciAttributesSaved;
|
||||
EFI_DEVICE_PATH_PROTOCOL *HcDevicePath;
|
||||
|
||||
//
|
||||
// Open PCIIO, then enable the EHC device and turn off emulation
|
||||
@@ -1640,6 +1654,19 @@ UhciDriverBindingStart (
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Open Device Path Protocol for on USB host controller
|
||||
//
|
||||
HcDevicePath = NULL;
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &HcDevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
|
||||
PciAttributesSaved = FALSE;
|
||||
//
|
||||
// Save original PCI attributes
|
||||
@@ -1684,7 +1711,7 @@ UhciDriverBindingStart (
|
||||
goto CLOSE_PCIIO;
|
||||
}
|
||||
|
||||
Uhc = UhciAllocateDev (PciIo, OriginalPciAttributes);
|
||||
Uhc = UhciAllocateDev (PciIo, HcDevicePath, OriginalPciAttributes);
|
||||
|
||||
if (Uhc == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
The definition for UHCI driver model and HC protocol routines.
|
||||
|
||||
Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2004 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -33,6 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/ReportStatusCodeLib.h>
|
||||
|
||||
#include <IndustryStandard/Pci.h>
|
||||
|
||||
@@ -112,6 +113,7 @@ struct _USB_HC_DEV {
|
||||
UINT32 Signature;
|
||||
EFI_USB2_HC_PROTOCOL Usb2Hc;
|
||||
EFI_PCI_IO_PROTOCOL *PciIo;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
UINT64 OriginalPciAttributes;
|
||||
|
||||
//
|
||||
|
@@ -6,7 +6,7 @@
|
||||
# It implements the interfaces of monitoring the status of all ports and transferring
|
||||
# Control, Bulk, Interrupt and Isochronous requests to Usb1.x device
|
||||
#
|
||||
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@@ -71,6 +71,7 @@
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
PcdLib
|
||||
ReportStatusCodeLib
|
||||
|
||||
[Guids]
|
||||
gEfiEventExitBootServicesGuid ## PRODUCES ## Event
|
||||
|
@@ -140,16 +140,27 @@ XhcReset (
|
||||
)
|
||||
{
|
||||
USB_XHCI_INSTANCE *Xhc;
|
||||
EFI_STATUS Status;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
OldTpl = gBS->RaiseTPL (XHC_TPL);
|
||||
|
||||
Xhc = XHC_FROM_THIS (This);
|
||||
|
||||
switch (Attributes) {
|
||||
case EFI_USB_HC_RESET_GLOBAL:
|
||||
//
|
||||
EFI_STATUS Status;
|
||||
EFI_TPL OldTpl;
|
||||
|
||||
Xhc = XHC_FROM_THIS (This);
|
||||
|
||||
if (Xhc->DevicePath != NULL) {
|
||||
//
|
||||
// Report Status Code to indicate reset happens
|
||||
//
|
||||
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
|
||||
EFI_PROGRESS_CODE,
|
||||
(EFI_IO_BUS_USB | EFI_IOB_PC_RESET),
|
||||
Xhc->DevicePath
|
||||
);
|
||||
}
|
||||
|
||||
OldTpl = gBS->RaiseTPL (XHC_TPL);
|
||||
|
||||
switch (Attributes) {
|
||||
case EFI_USB_HC_RESET_GLOBAL:
|
||||
//
|
||||
// Flow through, same behavior as Host Controller Reset
|
||||
//
|
||||
case EFI_USB_HC_RESET_HOST_CONTROLLER:
|
||||
@@ -1678,14 +1689,15 @@ ON_EXIT:
|
||||
@return The allocated and initialized USB_XHCI_INSTANCE structure if created,
|
||||
otherwise NULL.
|
||||
|
||||
**/
|
||||
USB_XHCI_INSTANCE*
|
||||
XhcCreateUsbHc (
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
)
|
||||
{
|
||||
USB_XHCI_INSTANCE *Xhc;
|
||||
**/
|
||||
USB_XHCI_INSTANCE*
|
||||
XhcCreateUsbHc (
|
||||
IN EFI_PCI_IO_PROTOCOL *PciIo,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||
IN UINT64 OriginalPciAttributes
|
||||
)
|
||||
{
|
||||
USB_XHCI_INSTANCE *Xhc;
|
||||
EFI_STATUS Status;
|
||||
UINT32 PageSize;
|
||||
UINT16 ExtCapReg;
|
||||
@@ -1698,12 +1710,13 @@ XhcCreateUsbHc (
|
||||
|
||||
//
|
||||
// Initialize private data structure
|
||||
//
|
||||
Xhc->Signature = XHCI_INSTANCE_SIG;
|
||||
Xhc->PciIo = PciIo;
|
||||
Xhc->OriginalPciAttributes = OriginalPciAttributes;
|
||||
CopyMem (&Xhc->Usb2Hc, &gXhciUsb2HcTemplate, sizeof (EFI_USB2_HC_PROTOCOL));
|
||||
|
||||
//
|
||||
Xhc->Signature = XHCI_INSTANCE_SIG;
|
||||
Xhc->PciIo = PciIo;
|
||||
Xhc->DevicePath = DevicePath;
|
||||
Xhc->OriginalPciAttributes = OriginalPciAttributes;
|
||||
CopyMem (&Xhc->Usb2Hc, &gXhciUsb2HcTemplate, sizeof (EFI_USB2_HC_PROTOCOL));
|
||||
|
||||
InitializeListHead (&Xhc->AsyncIntTransfers);
|
||||
|
||||
//
|
||||
@@ -1827,12 +1840,13 @@ XhcDriverBindingStart (
|
||||
EFI_STATUS Status;
|
||||
EFI_PCI_IO_PROTOCOL *PciIo;
|
||||
UINT64 Supports;
|
||||
UINT64 OriginalPciAttributes;
|
||||
BOOLEAN PciAttributesSaved;
|
||||
USB_XHCI_INSTANCE *Xhc;
|
||||
|
||||
//
|
||||
// Open the PciIo Protocol, then enable the USB host controller
|
||||
UINT64 OriginalPciAttributes;
|
||||
BOOLEAN PciAttributesSaved;
|
||||
USB_XHCI_INSTANCE *Xhc;
|
||||
EFI_DEVICE_PATH_PROTOCOL *HcDevicePath;
|
||||
|
||||
//
|
||||
// Open the PciIo Protocol, then enable the USB host controller
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
@@ -1844,12 +1858,25 @@ XhcDriverBindingStart (
|
||||
);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
PciAttributesSaved = FALSE;
|
||||
//
|
||||
// Save original PCI attributes
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Open Device Path Protocol for on USB host controller
|
||||
//
|
||||
HcDevicePath = NULL;
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &HcDevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
);
|
||||
|
||||
PciAttributesSaved = FALSE;
|
||||
//
|
||||
// Save original PCI attributes
|
||||
//
|
||||
Status = PciIo->Attributes (
|
||||
PciIo,
|
||||
@@ -1884,13 +1911,13 @@ XhcDriverBindingStart (
|
||||
goto CLOSE_PCIIO;
|
||||
}
|
||||
|
||||
//
|
||||
// Create then install USB2_HC_PROTOCOL
|
||||
//
|
||||
Xhc = XhcCreateUsbHc (PciIo, OriginalPciAttributes);
|
||||
|
||||
if (Xhc == NULL) {
|
||||
DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to create USB2_HC\n"));
|
||||
//
|
||||
// Create then install USB2_HC_PROTOCOL
|
||||
//
|
||||
Xhc = XhcCreateUsbHc (PciIo, HcDevicePath, OriginalPciAttributes);
|
||||
|
||||
if (Xhc == NULL) {
|
||||
DEBUG ((EFI_D_ERROR, "XhcDriverBindingStart: failed to create USB2_HC\n"));
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
|
@@ -30,6 +30,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/UefiLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/ReportStatusCodeLib.h>
|
||||
|
||||
#include <IndustryStandard/Pci.h>
|
||||
|
||||
|
@@ -6,7 +6,7 @@
|
||||
# It implements the interfaces of monitoring the status of all ports and transferring
|
||||
# Control, Bulk, Interrupt and Isochronous requests to those attached usb LS/FS/HS/SS devices.
|
||||
#
|
||||
# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
@@ -59,6 +59,7 @@
|
||||
UefiDriverEntryPoint
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
ReportStatusCodeLib
|
||||
|
||||
[Guids]
|
||||
gEfiEventExitBootServicesGuid ## PRODUCES ## Event
|
||||
|
Reference in New Issue
Block a user