1## @file
2# INTEL Quark SoC Module Package Reference Implementations
3#
4# This DSC file is used for Package Level build.
5#
6# This Module provides FRAMEWORK reference implementation for INTEL Quark SoC.
7#   Copyright (c) 2013-2016 Intel Corporation.
8#
9#   This program and the accompanying materials
10#   are licensed and made available under the terms and conditions of the BSD License
11#   which accompanies this distribution.  The full text of the license may be found at
12#   http://opensource.org/licenses/bsd-license.php
13#
14#   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
15#   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16#
17##
18
19################################################################################
20#
21# Defines Section - statements that will be processed to create a Makefile.
22#
23################################################################################
24[Defines]
25  PLATFORM_NAME                  = QuarkSocPkg
26  PLATFORM_GUID                  = 5F9864F4-EAFB-4ded-A41A-CA501EE50502
27  PLATFORM_VERSION               = 0.1
28  DSC_SPECIFICATION              = 0x00010005
29  OUTPUT_DIRECTORY               = Build/QuarkSocPkg
30  SUPPORTED_ARCHITECTURES        = IA32
31  BUILD_TARGETS                  = DEBUG|RELEASE
32  SKUID_IDENTIFIER               = DEFAULT
33
34################################################################################
35#
36# SKU Identification section - list of all SKU IDs supported by this
37#                              Platform.
38#
39################################################################################
40[SkuIds]
41  0|DEFAULT              # The entry: 0|DEFAULT is reserved and always required.
42
43################################################################################
44#
45# Library Class section - list of all Library Classes needed by this Platform.
46#
47################################################################################
48[LibraryClasses]
49  #
50  # Entry point
51  #
52  PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
53  UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
54  #
55  # Basic
56  #
57  BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
58  BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf
59  PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
60  CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
61  IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
62  PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
63  PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
64  PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
65  CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
66  PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
67!if $(CFG_SOURCE_DEBUG) == 1
68  PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibDebug/PeCoffExtraActionLibDebug.inf
69!else
70  PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
71!endif
72  #
73  # UEFI & PI
74  #
75  UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
76  UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
77  UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
78  UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
79  DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
80  PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointerLibIdt.inf
81  PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
82  DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
83  DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
84  UefiCpuLib|UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf
85  #
86  # Framework
87  #
88  S3BootScriptLib|MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf
89  S3IoLib|MdePkg/Library/BaseS3IoLib/BaseS3IoLib.inf
90  S3PciLib|MdePkg/Library/BaseS3PciLib/BaseS3PciLib.inf
91  #
92  # Generic Modules
93  #
94  OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
95
96  #
97  # CPU
98  #
99  MtrrLib|QuarkSocPkg/QuarkNorthCluster/Library/MtrrLib/MtrrLib.inf
100  #
101  # Quark North Cluster
102  #
103  SmmLib|QuarkSocPkg/QuarkNorthCluster/Library/QNCSmmLib/QNCSmmLib.inf
104  SmbusLib|QuarkSocPkg/QuarkNorthCluster/Library/SmbusLib/SmbusLib.inf
105  TimerLib|PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
106  ResetSystemLib|QuarkSocPkg/QuarkNorthCluster/Library/ResetSystemLib/ResetSystemLib.inf
107  IntelQNCLib|QuarkSocPkg/QuarkNorthCluster/Library/IntelQNCLib/IntelQNCLib.inf
108  QNCAccessLib|QuarkSocPkg/QuarkNorthCluster/Library/QNCAccessLib/QNCAccessLib.inf
109  #
110  # Quark South Cluster
111  #
112  IohLib|QuarkSocPkg/QuarkSouthCluster/Library/IohLib/IohLib.inf
113  SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
114  PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf
115  #
116  # Misc
117  #
118  DebugLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
119  DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
120  PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
121  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
122!if $(CFG_SOURCE_DEBUG) == TRUE
123  DebugCommunicationLib|SourceLevelDebugPkg/Library/DebugCommunicationLibSerialPort/DebugCommunicationLibSerialPort.inf
124!else
125  DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
126!endif
127
128[LibraryClasses.IA32.PEIM,LibraryClasses.IA32.PEI_CORE]
129  #
130  # SEC and PEI phase common
131  #
132  PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
133  HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
134  MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
135  ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
136  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
137  PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
138!if $(CFG_SOURCE_DEBUG) == TRUE
139  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
140!endif
141  TimerLib|PcAtChipsetPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf
142
143[LibraryClasses.IA32.SEC]
144  #
145  # SEC specific phase
146  #
147  ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
148  DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
149  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
150  TimerLib|PcAtChipsetPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.inf
151
152[LibraryClasses.IA32]
153  #
154  # DXE phase common
155  #
156  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
157  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
158  MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
159  ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
160  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
161!if $(CFG_SOURCE_DEBUG) == 1
162  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
163!endif
164
165[LibraryClasses.IA32.DXE_SMM_DRIVER]
166  SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
167  ReportStatusCodeLib|MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf
168  MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
169  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
170!if $(CFG_SOURCE_DEBUG) == TRUE
171  DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
172!endif
173
174[LibraryClasses.IA32.SMM_CORE]
175  ReportStatusCodeLib|MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf
176
177[LibraryClasses.IA32.DXE_RUNTIME_DRIVER]
178  ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
179
180[LibraryClasses.IA32.UEFI_DRIVER,LibraryClasses.IA32.UEFI_APPLICATION]
181  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
182
183################################################################################
184#
185# Pcd Section - list of all EDK II PCD Entries defined by this Platform
186#
187################################################################################
188
189[PcdsFixedAtBuild]
190  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl|0x03
191  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl|0x07
192  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialDetectCable|FALSE
193  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|44236800
194  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo|{0x14, 0x05, 0x84, 0x00, 0xFF}
195  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
196
197  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBusNumber           |0
198  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciDeviceNumber        |31
199  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciFunctionNumber      |0
200  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciEnableRegisterOffset|0x4b
201  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoBarEnableMask          |0x80
202  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPciBarRegisterOffset   |0x48
203  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiIoPortBaseAddress        |0x1000
204  gPcAtChipsetPkgTokenSpaceGuid.PcdAcpiPm1TmrOffset             |0x0008
205
206[PcdsFeatureFlag]
207
208################################################################################
209#
210# Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Platform
211#
212################################################################################
213
214[PcdsDynamicDefault.common.DEFAULT]
215
216###################################################################################################
217#
218# Components Section - list of the modules and components that will be processed by compilation
219#                      tools and the EDK II tools to generate PE32/PE32+/Coff image files.
220#
221# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
222#       into firmware volume images. This section is just a list of modules to compile from
223#       source into UEFI-compliant binaries.
224#       It is the FDF file that contains information on combining binary files into firmware
225#       volume images, whose concept is beyond UEFI and is described in PI specification.
226#       Binary modules do not need to be listed in this section, as they should be
227#       specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
228#       Logo (Logo.bmp), and etc.
229#       There may also be modules listed in this section that are not required in the FDF file,
230#       When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
231#       generated for it, but the binary will not be put into any firmware volume.
232#
233###################################################################################################
234
235[Components]
236  QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf
237  QuarkSocPkg/QuarkNorthCluster/Smm/Pei/SmmAccessPei/SmmAccessPei.inf
238  QuarkSocPkg/QuarkNorthCluster/Smm/Pei/SmmControlPei/SmmControlPei.inf
239  QuarkSocPkg/QuarkNorthCluster/QNCInit/Dxe/QNCInitDxe.inf
240  QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmAccessDxe/SmmAccess.inf
241  QuarkSocPkg/QuarkNorthCluster/Spi/PchSpiRuntime.inf {
242    <LibraryClasses>
243      PciExpressLib|MdePkg/Library/DxeRuntimePciExpressLib/DxeRuntimePciExpressLib.inf
244  }
245  QuarkSocPkg/QuarkNorthCluster/Spi/PchSpiSmm.inf
246  QuarkSocPkg/QuarkNorthCluster/S3Support/Dxe/QncS3Support.inf {
247    <LibraryClasses>
248      DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
249      PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
250  }
251  QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmControlDxe/SmmControlDxe.inf
252  QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmDispatcher.inf
253
254  QuarkSocPkg/QuarkSouthCluster/Usb/Common/Pei/UsbPei.inf
255  QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Pei/OhciPei.inf
256  QuarkSocPkg/QuarkSouthCluster/IohInit/Dxe/IohInitDxe.inf
257  QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe/OhciDxe.inf
258  QuarkSocPkg/QuarkSouthCluster/Sdio/Dxe/SDControllerDxe/SDControllerDxe.inf
259  QuarkSocPkg/QuarkSouthCluster/Sdio/Dxe/SDMediaDeviceDxe/SDMediaDeviceDxe.inf
260