## @file
|
# This package provides common open source Phytium Platform modules.
|
#
|
# Copyright (C) 2020, Phytium Technology Co, Ltd. All rights reserved.
|
#
|
# SPDX-License-Identifier:BSD-2-Clause-Patent
|
#
|
##
|
|
################################################################################
|
#
|
# Defines Section - statements that will be processed to create a Makefile.
|
#
|
################################################################################
|
[Defines]
|
PLATFORM_NAME = DurianPkg
|
PLATFORM_GUID = 8f7ac876-3e7c-11eb-86cb-33f68535d613
|
PLATFORM_VERSION = 0.1
|
DSC_SPECIFICATION = 0x0001001c
|
OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME)
|
SUPPORTED_ARCHITECTURES = AARCH64
|
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
SKUID_IDENTIFIER = DEFAULT
|
FLASH_DEFINITION = Platform/Phytium/DurianPkg/DurianPkg.fdf
|
|
!include Silicon/Phytium/PhytiumCommonPkg/PhytiumCommonPkg.dsc.inc
|
|
[LibraryClasses.common]
|
# Phytium Platform library
|
ArmPlatformLib|Silicon/Phytium/FT2000-4Pkg/Library/PlatformLib/PlatformLib.inf
|
|
#FT2000-4Pkg RTC Driver
|
RealTimeClockLib|Silicon/Phytium/FT2000-4Pkg/Library/RealTimeClockLib/RealTimeClockLib.inf
|
TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf
|
|
# PL011 UART Driver and Dependency Libraries
|
SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
|
PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf
|
PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
|
|
[LibraryClasses.common.DXE_DRIVER]
|
# Pci dependencies
|
PciSegmentLib|Silicon/Phytium/FT2000-4Pkg/Library/PciSegmentLib/PciSegmentLib.inf
|
PciHostBridgeLib|Silicon/Phytium/FT2000-4Pkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf
|
|
################################################################################
|
#
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
#
|
################################################################################
|
[PcdsFixedAtBuild.common]
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"Durian Platform"
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"V1.0"
|
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask|0x101
|
gArmTokenSpaceGuid.PcdArmPrimaryCore|0x0
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|4
|
|
#
|
# NV Storage PCDs.
|
#
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0xe00000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0xe10000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0xe20000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
|
|
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
#
|
# PL011 - Serial Terminal
|
#
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x28001000
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
|
gArmPlatformTokenSpaceGuid.PL011UartClkInHz|48000000
|
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
|
|
#
|
# ARM General Interrupt Controller
|
#
|
gArmTokenSpaceGuid.PcdGicDistributorBase|0x29900000
|
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x29980000
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x29c00000
|
|
# System IO space
|
gPhytiumPlatformTokenSpaceGuid.PcdSystemIoBase|0x0
|
gPhytiumPlatformTokenSpaceGuid.PcdSystemIoSize|0x40000000
|
|
#
|
# System Memory (2GB ~ 4GB - 64MB), the top 64MB is reserved for
|
# PBF(the processor basic firmware, Mainly deals the initialization
|
# of the chip).
|
#
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x7B000000
|
|
# Stack Size
|
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
#
|
# Designware PCI Root Complex
|
#
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x40000000
|
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|28
|
gPhytiumPlatformTokenSpaceGuid.PcdPciConfigBase|0x40000000
|
gPhytiumPlatformTokenSpaceGuid.PcdPciConfigSize|0x10000000
|
gArmTokenSpaceGuid.PcdPciBusMin|0
|
gArmTokenSpaceGuid.PcdPciBusMax|255
|
gArmTokenSpaceGuid.PcdPciIoBase|0x00000
|
gArmTokenSpaceGuid.PcdPciIoSize|0xf00000
|
gArmTokenSpaceGuid.PcdPciIoTranslation|0x50000000
|
gArmTokenSpaceGuid.PcdPciMmio32Base|0x58000000
|
gArmTokenSpaceGuid.PcdPciMmio32Size|0x28000000
|
gArmTokenSpaceGuid.PcdPciMmio32Translation|0x0
|
gArmTokenSpaceGuid.PcdPciMmio64Base|0x1000000000
|
gArmTokenSpaceGuid.PcdPciMmio64Size|0x1000000000
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|FALSE
|
|
################################################################################
|
#
|
# Components Section - list of all EDK II Modules needed by this Platform
|
#
|
################################################################################
|
[Components.common]
|
#
|
# PCD database
|
#
|
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
ShellPkg/Application/Shell/Shell.inf {
|
<LibraryClasses>
|
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
|
NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
|
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
|
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
|
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
|
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
|
OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
|
}
|
|
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
<LibraryClasses>
|
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
}
|
|
#
|
# Dxe core entry
|
#
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
<LibraryClasses>
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
}
|
|
#
|
# DXE driver
|
#
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
|
<LibraryClasses>
|
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
|
}
|
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
#
|
# Common Arm Timer and Gic Components
|
#
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
#
|
# security system
|
#
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
|
<LibraryClasses>
|
NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
|
}
|
|
#
|
# network, mod for https boot.
|
#
|
NetworkPkg/SnpDxe/SnpDxe.inf
|
NetworkPkg/DpcDxe/DpcDxe.inf
|
NetworkPkg/MnpDxe/MnpDxe.inf
|
NetworkPkg/ArpDxe/ArpDxe.inf
|
NetworkPkg/Dhcp4Dxe/Dhcp4Dxe.inf
|
NetworkPkg/Ip4Dxe/Ip4Dxe.inf
|
NetworkPkg/Mtftp4Dxe/Mtftp4Dxe.inf
|
NetworkPkg/Udp4Dxe/Udp4Dxe.inf
|
NetworkPkg/VlanConfigDxe/VlanConfigDxe.inf
|
|
NetworkPkg/Ip6Dxe/Ip6Dxe.inf
|
NetworkPkg/Udp6Dxe/Udp6Dxe.inf
|
NetworkPkg/Dhcp6Dxe/Dhcp6Dxe.inf
|
NetworkPkg/Mtftp6Dxe/Mtftp6Dxe.inf
|
NetworkPkg/TcpDxe/TcpDxe.inf
|
|
NetworkPkg/UefiPxeBcDxe/UefiPxeBcDxe.inf
|
|
NetworkPkg/DnsDxe/DnsDxe.inf
|
NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesDxe.inf
|
NetworkPkg/HttpDxe/HttpDxe.inf
|
|
#
|
# FV Filesystem
|
#
|
MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
#
|
# Common Console Components
|
# ConIn,ConOut,StdErr
|
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
|
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
|
#
|
# Hii database init
|
#
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
#
|
# FAT filesystem + GPT/MBR partitioning
|
#
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
FatPkg/EnhancedFatDxe/Fat.inf
|
|
#
|
# Generic Watchdog Timer
|
#
|
ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf
|
|
#
|
# Spi driver
|
#
|
Silicon/Phytium/FT2000-4Pkg/Drivers/SpiDxe/SpiDxe.inf
|
|
#
|
# Usb Support
|
#
|
MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
|
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
|
MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
|
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
|
MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
|
MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
|
MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
|
|
#
|
# IDE/AHCI Support
|
#
|
MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf
|
MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
|
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
|
|
#
|
# PCI Support
|
#
|
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
|
MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
MdeModulePkg/Bus/Pci/NonDiscoverablePciDeviceDxe/NonDiscoverablePciDeviceDxe.inf
|
|
#
|
# The following 2 module perform the same work except one operate variable.
|
# Only one of both should be put into fdf.
|
#
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
|
#
|
# NVME Support
|
#
|
MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf
|
|
#
|
# ACPI Support
|
#
|
MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
Silicon/Phytium/FT2000-4Pkg/Drivers/AcpiTables/AcpiTables.inf
|
Silicon/Phytium/PhytiumCommonPkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
|
|
#
|
# SMBIOS
|
#
|
MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
|
Silicon/Phytium/FT2000-4Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
|
|
#
|
# Bds
|
#
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf
|
MdeModulePkg/Application/UiApp/UiApp.inf {
|
<LibraryClasses>
|
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
}
|
MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
|
|