]> git.proxmox.com Git - mirror_edk2.git/blame - QuarkSocPkg/QuarkNorthCluster/QNCInit/Dxe/QNCRootPorts.c
QuarkSocPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / QuarkSocPkg / QuarkNorthCluster / QNCInit / Dxe / QNCRootPorts.c
CommitLineData
9b6bbcdb
MK
1/** @file\r
2PciHostBridge driver module, part of QNC module.\r
3\r
4Provides the basic interfaces to abstract a PCI Host Bridge Resource Allocation.\r
5\r
6Copyright (c) 2013-2015 Intel Corporation.\r
7\r
c9f231d0 8SPDX-License-Identifier: BSD-2-Clause-Patent\r
9b6bbcdb
MK
9\r
10**/\r
11#include "CommonHeader.h"\r
12#include "QNCInit.h"\r
13\r
14UINT32 mS3ParameterRootPortDownstream = 0;\r
15EFI_QNC_S3_DISPATCH_ITEM mS3DispatchItem = {\r
16 QncS3ItemTypeInitPcieRootPortDownstream,\r
17 &mS3ParameterRootPortDownstream\r
18 };\r
19\r
20EFI_STATUS\r
21QncInitRootPorts (\r
22 )\r
23/*++\r
24\r
25Routine Description:\r
26\r
27 Perform Initialization of the Downstream Root Ports\r
28\r
29Arguments:\r
30\r
31Returns:\r
32\r
33 EFI_SUCCESS The function completed successfully\r
34\r
35--*/\r
36{\r
37 EFI_STATUS Status;\r
38 EFI_QNC_S3_SUPPORT_PROTOCOL *QncS3Support;\r
39 VOID *Context;\r
40 VOID *S3DispatchEntryPoint;\r
41\r
42 Status = PciExpressInit ();\r
43 ASSERT_EFI_ERROR (Status);\r
44\r
45 //\r
46 // Get the QNC S3 Support Protocol\r
47 //\r
48 Status = gBS->LocateProtocol (\r
49 &gEfiQncS3SupportProtocolGuid,\r
50 NULL,\r
51 (VOID **) &QncS3Support\r
52 );\r
53 ASSERT_EFI_ERROR (Status);\r
54 if (EFI_ERROR (Status)) {\r
55 return Status;\r
56 }\r
57\r
58 //\r
59 // Get the QNC S3 Support Protocol\r
60 //\r
61 Status = QncS3Support->SetDispatchItem (\r
62 QncS3Support,\r
63 &mS3DispatchItem,\r
64 &S3DispatchEntryPoint,\r
65 &Context\r
66 );\r
67 ASSERT_EFI_ERROR (Status);\r
68\r
69 //\r
70 // Save the script dispatch item in the Boot Script\r
71 //\r
72 Status = S3BootScriptSaveDispatch2 (S3DispatchEntryPoint, Context);\r
73 ASSERT_EFI_ERROR (Status);\r
74\r
75 return Status;\r
76}\r