#/** @file
#
#  Copyright (c) 2014, Linaro Limited. All rights reserved.
#  Copyright (c) 2020, ARM Limited. All rights reserved.
#  Copyright (c) Microsoft Corporation.
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#**/

[Defines]
  DEC_SPECIFICATION              = 0x00010005
  PACKAGE_NAME                   = QemuSbsaPkg
  PACKAGE_GUID                   = 9EBD48E1-2370-4B1C-AFF7-811DD22E8BCB
  PACKAGE_VERSION                = 0.1

################################################################################
#
# Include Section - list of Include Paths that are provided by this package.
#                   Comments are used for Keywords and Module Types.
#
# Supported Module Types:
#  BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION
#
################################################################################
[Includes]
  Include

[LibraryClasses]
  ##  @libraryclass  Flat device tree support library on the CPU ID related operations
  FdtHelperLib|Include/Library/FdtHelperLib.h
  VirtNorFlashPlatformLib|Include/Library/VirtNorFlashPlatformLib.h

[Guids]
  gQemuSbsaPkgTokenSpaceGuid                             = { 0x549288f7, 0x4281, 0x4f08, { 0x8f, 0x9e, 0x89, 0xe8, 0xd2, 0xf1, 0x8f, 0x2b } }
  gSbsaPolicyDataGFXGuid                                 = { 0x36d5e70d, 0x21ab, 0x47e2, { 0x8f, 0x31, 0x5d, 0x48, 0xf8, 0x8b, 0x2c, 0x56 } }
  gQemuSbsaPkgSystemMemorySizeGuid                       = { 0x295beeb6, 0xb3eb, 0x46d4, { 0xbc, 0x99, 0xd7, 0x66, 0x27, 0x18, 0x57, 0x76 } }

[PcdsFixedAtBuild]
  ##
  # This is the physical address of the flash allocated for NV storage, including
  # fault tolerance working and spare copies.
  #
  gQemuSbsaPkgTokenSpaceGuid.PcdFlashNvStorageBase|0x0|UINT64|0x00000001
  gQemuSbsaPkgTokenSpaceGuid.PcdFlashNvStorageSize|0x0|UINT64|0x00000002

  # Non discoverable devices Pcds
  gQemuSbsaPkgTokenSpaceGuid.PcdPlatformAhciBase|0|UINT64|0x00000003
  gQemuSbsaPkgTokenSpaceGuid.PcdPlatformAhciSize|0x10000|UINT32|0x00000004
  gQemuSbsaPkgTokenSpaceGuid.PcdPlatformEhciBase|0|UINT64|0x00000005
  gQemuSbsaPkgTokenSpaceGuid.PcdPlatformEhciSize|0x10000|UINT32|0x00000006

  # PCDs complementing PCIe layout pulled into ACPI tables
  # Limit = Base + Size - 1
  gQemuSbsaPkgTokenSpaceGuid.PcdPciIoLimit|0x0000ffff|UINT32|0x00000007
  gQemuSbsaPkgTokenSpaceGuid.PcdPciMmio32Limit|0xEFFFFFFF|UINT32|0x00000008
  gQemuSbsaPkgTokenSpaceGuid.PcdPciMmio64Limit|0xFFFFFFFFFF|UINT64|0x00000009

  # PCDs complementing gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
  # BarLimit = BaseAddress + BarSize - 1
  gQemuSbsaPkgTokenSpaceGuid.PcdPciExpressBarSize|0x10000000|UINT64|0x0000000A
  gQemuSbsaPkgTokenSpaceGuid.PcdPciExpressBarLimit|0xFFFFFFFF|UINT64|0x0000000B

  # Device Tree PCDs
  gQemuSbsaPkgTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x10000000000|UINT64|0x0000000C
  # Padding in bytes to add to the device tree allocation, so that the DTB can
  # be modified in place (default: 256 bytes)
  #
  gQemuSbsaPkgTokenSpaceGuid.PcdDeviceTreeAllocationPadding|256|UINT32|0x0000000D

[PcdsDynamic.common]
  gQemuSbsaPkgTokenSpaceGuid.PcdSystemManufacturer|L""|VOID*|0x00000110
  gQemuSbsaPkgTokenSpaceGuid.PcdSystemSerialNumber|L""|VOID*|0x00000111
  gQemuSbsaPkgTokenSpaceGuid.PcdSystemSKU|L""|VOID*|0x00000112
  gQemuSbsaPkgTokenSpaceGuid.PcdSystemFamily|L""|VOID*|0x00000113

  gQemuSbsaPkgTokenSpaceGuid.PcdBaseBoardAssetTag|L""|VOID*|0x00000114
  gQemuSbsaPkgTokenSpaceGuid.PcdBaseBoardSerialNumber|L""|VOID*|0x00000115
  gQemuSbsaPkgTokenSpaceGuid.PcdBaseBoardManufacturer|L""|VOID*|0x00000116
  gQemuSbsaPkgTokenSpaceGuid.PcdBaseBoardSKU|L""|VOID*|0x00000117
  gQemuSbsaPkgTokenSpaceGuid.PcdBaseBoardLocation|L""|VOID*|0x00000118

  gQemuSbsaPkgTokenSpaceGuid.PcdChassisSerialNumber|L""|VOID*|0x00000119
  gQemuSbsaPkgTokenSpaceGuid.PcdChassisVersion|L""|VOID*|0x0000011A
  gQemuSbsaPkgTokenSpaceGuid.PcdChassisManufacturer|L""|VOID*|0x0000011B
  gQemuSbsaPkgTokenSpaceGuid.PcdChassisAssetTag|L""|VOID*|0x0000011C
  gQemuSbsaPkgTokenSpaceGuid.PcdChassisSKU|L""|VOID*|0x0000011D

[PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx]
  gQemuSbsaPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId|0|UINT16|0x1b

[PcdsDynamic, PcdsDynamicEx]
  ## This PCD tracks where PcdVideo{Horizontal,Vertical}Resolution
  #  values are coming from.
  #    0 - unset (defaults from platform dsc)
  #    1 - set from PlatformConfig
  #    2 - set by GOP Driver.
  gQemuSbsaPkgTokenSpaceGuid.PcdVideoResolutionSource|0|UINT8|0x64
