From: Xilin Wu Date: 星期三, 21 Sep 2022 15:06:44 +0000 (+0800) Subject: Add initial support for Snapdragon 720G (sm7125) X-Git-Url: https://git.renegade-project.org/?a=commitdiff_plain;h=80d0eab8b65ff36b6aa2ee16bc5cae86d1a96602;p=edk2-sdm845.git Add initial support for Snapdragon 720G (sm7125) This commit adds preliminary support for Snapdragon 720G QRD device. It's worth noting that only UFS works now. Basically nothing else works. We're adding sm7125 support to this repo, because it's quite similar with sdm845, and it makes no sense to create another repo for this uncommon SoC. Signed-off-by: Xilin Wu --- diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9df6f5b..ab75408 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -45,6 +45,7 @@ jobs: - ayn-odin - akershus - equuleus + - atoll # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f14583f..a12826d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,6 +37,7 @@ jobs: - skr-a0 - star2qltechn - trident + - atoll steps: - name: Checkout repository diff --git a/build.sh b/build.sh index e3371b3..7f691fe 100755 --- a/build.sh +++ b/build.sh @@ -27,6 +27,7 @@ DEVICES=( akershus equuleus zs600kl + atoll ) ##################################### diff --git a/device_specific/atoll.dtb b/device_specific/atoll.dtb new file mode 100755 index 0000000..741bd1a Binary files /dev/null and b/device_specific/atoll.dtb differ diff --git a/sdm845Pkg/Binary b/sdm845Pkg/Binary index f80b7c4..30a2de8 160000 --- a/sdm845Pkg/Binary +++ b/sdm845Pkg/Binary @@ -1 +1 @@ -Subproject commit f80b7c467c7454e7e0eabff77adb8ffddaa9ef7a +Subproject commit 30a2de8c7c8d0ff9cde65db046f28d7cabe6c480 diff --git a/sdm845Pkg/Devices/atoll.dsc b/sdm845Pkg/Devices/atoll.dsc new file mode 100644 index 0000000..614203e --- /dev/null +++ b/sdm845Pkg/Devices/atoll.dsc @@ -0,0 +1,27 @@ +[Defines] + PLATFORM_NAME = sdm845Pkg + PLATFORM_GUID = 28f1a3bf-193a-47e3-a7b9-5a435eaab2ee + PLATFORM_VERSION = 0.1 + DSC_SPECIFICATION = 0x00010019 + OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES = AARCH64 + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = sdm845Pkg/Devices/atoll.fdf + +!include sdm845Pkg/sm7125Pkg.dsc + +[BuildOptions.common] + GCC:*_*_AARCH64_CC_FLAGS = -DSM7125_TEST=1 -DENABLE_SIMPLE_INIT -DENABLE_LINUX_SIMPLE_MASS_STORAGE + +[PcdsFixedAtBuild.common] + + gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080 + gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2248 + + # Simple Init + gSimpleInitTokenSpaceGuid.PcdGuiDefaultDPI|440 + + gsdm845PkgTokenSpaceGuid.PcdDeviceVendor|"Qualcomm" + gsdm845PkgTokenSpaceGuid.PcdDeviceProduct|"QRD 720" + gsdm845PkgTokenSpaceGuid.PcdDeviceCodeName|"atoll" diff --git a/sdm845Pkg/Devices/atoll.fdf b/sdm845Pkg/Devices/atoll.fdf new file mode 100644 index 0000000..0c3965c --- /dev/null +++ b/sdm845Pkg/Devices/atoll.fdf @@ -0,0 +1,626 @@ +# +# Copyright (c) 2018, Linaro Limited. All rights reserved. +# +# 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 +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# + +################################################################################ +# +# FD Section +# The [FD] Section is made up of the definition statements and a +# description of what goes into the Flash Device Image. Each FD section +# defines one flash "device" image. A flash device image may be one of +# the following: Removable media bootable image (like a boot floppy +# image,) an Option ROM image (that would be "flashed" into an add-in +# card,) a System "Flash" image (that would be burned into a system's +# flash) or an Update ("Capsule") image that will be used to update and +# existing system flash. +# +################################################################################ + +[FD.sdm845Pkg_UEFI] +BaseAddress = 0xd0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash. +Size = 0x00600000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device +ErasePolarity = 1 + +# This one is tricky, it must be: BlockSize * NumBlocks = Size +BlockSize = 0x00001000 +NumBlocks = 0x600 + +################################################################################ +# +# Following are lists of FD Region layout which correspond to the locations of different +# images within the flash device. +# +# Regions must be defined in ascending order and may not overlap. +# +# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by +# the pipe "|" character, followed by the size of the region, also in hex with the leading +# "0x" characters. Like: +# Offset|Size +# PcdOffsetCName|PcdSizeCName +# RegionType +# +################################################################################ + +# from ArmVirtPkg/ArmVirtQemuKernel.fdf +# +# Implement the Linux kernel header layout so that the loader will identify +# it as something bootable, and execute it with a FDT pointer in x0 or r2. +0x00000000|0x00008000 +DATA = { + 0x01, 0x00, 0x00, 0x10, # code0: adr x1, . + 0xff, 0x1f, 0x00, 0x14, # code1: b 0x8000 + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res4 + 0x41, 0x52, 0x4d, 0x64, # magic: "ARM\x64" + 0x00, 0x00, 0x00, 0x00 # res5 +} + +0x00008000|0x005f8000 +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize +FV = FVMAIN_COMPACT + + +################################################################################ +# +# FV Section +# +# [FV] section is used to define what components or modules are placed within a flash +# device file. This section also defines order the components and modules are positioned +# within the image. The [FV] section consists of define statements, set statements and +# module statements. +# +################################################################################ + +[FV.FvMain] +BlockSize = 0x40 +NumBlocks = 0 # This FV gets compressed so make it just big enough +FvAlignment = 8 # FV alignment and FV attributes setting. +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + +APRIORI DXE { + + # + # PI DXE Drivers producing Architectural Protocols (EFI Services) + # + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + INF MdeModulePkg/Core/Dxe/DxeMain.inf + INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf + INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + + INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf + + FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/SmemDxe/SmemDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/SmemDxe/SmemDxe.efi + SECTION UI = "SmemDxe" + } + + FILE DRIVER = 8E9BD160-B184-11DF-94E2-0800200C9A66 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/DALSys/DALSys.depex + SECTION PE32 = sdm845Pkg/Binary/7125/DALSys/DALSys.efi + SECTION UI = "DALSys" + } + +// fucked + # FILE DRIVER = 8681CC5A-0DF6-441E-B4B8-E915C538F067 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/HWIODxeDriver/HWIODxeDriver.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/HWIODxeDriver/HWIODxeDriver.efi + # SECTION UI = "HWIODxeDriver" + # } +// + + FILE DRIVER = 10e193df-9966-44e7-b17c-59dd831e20fc { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ChipInfo/ChipInfo.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ChipInfo/ChipInfo.efi + SECTION UI = "ChipInfo" + } + + FILE DRIVER = B105211B-BBBD-4ADD-A3B0-D1CF4A52154C { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PlatformInfoDxeDriver/PlatformInfoDxeDriver.depex + SECTION PE32 = sdm845Pkg/Binary/7125/PlatformInfoDxeDriver/PlatformInfoDxeDriver.efi + SECTION UI = "PlatformInfoDxeDriver" + } + +// fucked + # FILE DRIVER = 9A00771F-36D4-4DD5-8916-C48ED9B16B86 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/HALIOMMU/HALIOMMU.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/HALIOMMU/HALIOMMU.efi + # SECTION UI = "HALIOMMU" + # } + + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + FILE DRIVER = E43128A8-8692-42B6-8AFA-676158578D18 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ULogDxe/ULogDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ULogDxe/ULogDxe.efi + SECTION UI = "ULogDxe" + } + + FILE DRIVER = ABA01FF8-2CCB-4E12-8B2E-CD3F4A742993 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/CmdDbDxe/CmdDbDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/CmdDbDxe/CmdDbDxe.efi + SECTION UI = "CmdDbDxe" + } + + FILE DRIVER = CB29F4D1-7F37-4692-A416-93E82E219711 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/NpaDxe/NpaDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/NpaDxe/NpaDxe.efi + SECTION UI = "NpaDxe" + } + + FILE DRIVER = CB29F4D1-7F37-4692-A416-93E82E219766 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/RpmhDxe/RpmhDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/RpmhDxe/RpmhDxe.efi + SECTION UI = "RpmhDxe" + } + + FILE DRIVER = B43C22DB-6333-490C-872D-0A73439059FD { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PdcDxe/PdcDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/PdcDxe/PdcDxe.efi + SECTION UI = "PdcDxe" + } + +// fucked + # FILE DRIVER = 4DB5DEA6-5302-4D1A-8A82-677A683B0D29 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ClockDxe/ClockDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/ClockDxe/ClockDxe.efi + # SECTION UI = "ClockDxe" + # } + + INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + + FILE DRIVER = 0d35cd8e-97ea-4f9a-96af-0f0d89f76567 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UFSDxe/UFSDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/UFSDxe/UFSDxe.efi + SECTION UI = "UFSDxe" + } + + INF FatPkg/EnhancedFatDxe/Fat.inf + INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf + + FILE DRIVER = 2a7b4bef-80cd-49e1-b473-374ba4d673fc { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/SPMI/SPMI.depex + SECTION PE32 = sdm845Pkg/Binary/7125/SPMI/SPMI.efi + SECTION UI = "SPMI" + } + + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf + INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf + INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf + INF SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf + + INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + + FILE DRIVER = AF9763A2-033B-4109-8E17-56A98D380C92 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/DALTLMM/DALTLMM.depex + SECTION PE32 = sdm845Pkg/Binary/7125/DALTLMM/DALTLMM.efi + SECTION UI = "DALTLMM" + } + + # FILE DRIVER = 04DE8591-D2B3-4077-BBBE-B12070094EB6 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/I2C/I2C.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/I2C/I2C.efi + # SECTION UI = "I2C" + # } + +// fucked + # FILE DRIVER = 5776232e-082d-4b75-9a0e-fe1d13f7a5d9 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PmicDxe/PmicDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/PmicDxe/PmicDxe.efi + # SECTION UI = "PmicDxe" + # } + + INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + + FILE DRIVER = 5bd181db-0487-4f1a-ae73-820e165611b3 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ButtonsDxe/ButtonsDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ButtonsDxe/ButtonsDxe.efi + SECTION UI = "ButtonsDxe" + } + + # FILE DRIVER = 11faed4c-b21f-4d88-8e48-c4c28a1e50df { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbPwrCtrlDxe/UsbPwrCtrlDxe.efi + # SECTION UI = "UsbPwrCtrlDxe" + # } + + # FILE DRIVER = 94f8a6a7-dc34-4101-88c1-99179cceae83 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbfnDwc3Dxe/UsbfnDwc3Dxe.efi + # SECTION UI = "UsbfnDwc3Dxe" + # } + + # FILE DRIVER = beb12bee-f6e1-11e1-9fb8-6c626de4aeb1 { + # SECTION PE32 = sdm845Pkg/Binary/7125/XhciPciEmulation/XhciPciEmulation.efi + # SECTION UI = "XhciPciEmulation" + # } + + # FILE DRIVER = b7f50e91-a759-412c-ade4-dcd03e7f7c28 { + # SECTION PE32 = sdm845Pkg/Binary/7125/XhciDxe/XhciDxe.efi + # SECTION UI = "XhciDxe" + # } + INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf + INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + # FILE DRIVER = 2d2e62cf-9ecf-43b7-8219-94e7fc713dfe { + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbKbDxe/UsbKbDxe.efi + # SECTION UI = "UsbKbDxe" + # } + + # FILE DRIVER = cd823a4d-7dec-4531-ae5d-4134fa4127b8 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbConfigDxe/UsbConfigDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbConfigDxe/UsbConfigDxe.efi + # SECTION UI = "UsbConfigDxe" + # } + + # FILE DRIVER = 0A134F0E-075E-40B3-9C63-3B3906804663 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbInitDxe/UsbInitDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbInitDxe/UsbInitDxe.efi + # SECTION UI = "UsbInitDxe" + # } + + # FILE DRIVER = 3299a266-15f0-4346-8318-716336736d3e { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbDeviceDxe/UsbDeviceDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbDeviceDxe/UsbDeviceDxe.efi + # SECTION UI = "UsbDeviceDxe" + # } + + # FILE DRIVER = 7DB0793A-4402-4BE1-906E-D0FABAD2707E { + # SECTION PE32 = sdm845Pkg/Binary/7125/DDRInfoDxe/DDRInfoDxe.efi + # SECTION UI = "DDRInfoDxe" + # } + + INF sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.inf +} + + INF MdeModulePkg/Core/Dxe/DxeMain.inf + + # + # PI DXE Drivers producing Architectural Protocols (EFI Services) + # + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf +!include ArmPlatformPkg/SecureBootDefaultKeys.fdf.inc + INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf + INF SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf + INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf + INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf + INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + # + # Multiple Console IO support + # + INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf + + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + + FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/SmemDxe/SmemDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/SmemDxe/SmemDxe.efi + SECTION UI = "SmemDxe" + } + + FILE DRIVER = 8E9BD160-B184-11DF-94E2-0800200C9A66 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/DALSys/DALSys.depex + SECTION PE32 = sdm845Pkg/Binary/7125/DALSys/DALSys.efi + SECTION UI = "DALSys" + } + + # FILE DRIVER = 8681CC5A-0DF6-441E-B4B8-E915C538F067 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/HWIODxeDriver/HWIODxeDriver.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/HWIODxeDriver/HWIODxeDriver.efi + # SECTION UI = "HWIODxeDriver" + # } + + FILE DRIVER = 10e193df-9966-44e7-b17c-59dd831e20fc { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ChipInfo/ChipInfo.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ChipInfo/ChipInfo.efi + SECTION UI = "ChipInfo" + } + + FILE DRIVER = B105211B-BBBD-4ADD-A3B0-D1CF4A52154C { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PlatformInfoDxeDriver/PlatformInfoDxeDriver.depex + SECTION PE32 = sdm845Pkg/Binary/7125/PlatformInfoDxeDriver/PlatformInfoDxeDriver.efi + SECTION UI = "PlatformInfoDxeDriver" + } + + # FILE DRIVER = 9A00771F-36D4-4DD5-8916-C48ED9B16B86 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/HALIOMMU/HALIOMMU.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/HALIOMMU/HALIOMMU.efi + # SECTION UI = "HALIOMMU" + # } + + FILE DRIVER = E43128A8-8692-42B6-8AFA-676158578D18 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ULogDxe/ULogDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ULogDxe/ULogDxe.efi + SECTION UI = "ULogDxe" + } + + FILE DRIVER = ABA01FF8-2CCB-4E12-8B2E-CD3F4A742993 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/CmdDbDxe/CmdDbDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/CmdDbDxe/CmdDbDxe.efi + SECTION UI = "CmdDbDxe" + } + + FILE DRIVER = CB29F4D1-7F37-4692-A416-93E82E219711 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/NpaDxe/NpaDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/NpaDxe/NpaDxe.efi + SECTION UI = "NpaDxe" + } + + FILE DRIVER = CB29F4D1-7F37-4692-A416-93E82E219766 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/RpmhDxe/RpmhDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/RpmhDxe/RpmhDxe.efi + SECTION UI = "RpmhDxe" + } + + FILE DRIVER = B43C22DB-6333-490C-872D-0A73439059FD { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PdcDxe/PdcDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/PdcDxe/PdcDxe.efi + SECTION UI = "PdcDxe" + } + + # FILE DRIVER = 4DB5DEA6-5302-4D1A-8A82-677A683B0D29 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ClockDxe/ClockDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/ClockDxe/ClockDxe.efi + # SECTION UI = "ClockDxe" + # } + + FILE DRIVER = AF9763A2-033B-4109-8E17-56A98D380C92 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/DALTLMM/DALTLMM.depex + SECTION PE32 = sdm845Pkg/Binary/7125/DALTLMM/DALTLMM.efi + SECTION UI = "DALTLMM" + } + + # FILE DRIVER = 04DE8591-D2B3-4077-BBBE-B12070094EB6 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/I2C/I2C.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/I2C/I2C.efi + # SECTION UI = "I2C" + # } + + FILE DRIVER = 2a7b4bef-80cd-49e1-b473-374ba4d673fc { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/SPMI/SPMI.depex + SECTION PE32 = sdm845Pkg/Binary/7125/SPMI/SPMI.efi + SECTION UI = "SPMI" + } + + # FILE DRIVER = beb12bee-f6e1-11e1-9fb8-6c626de4aeb1 { + # SECTION PE32 = sdm845Pkg/Binary/7125/XhciPciEmulation/XhciPciEmulation.efi + # SECTION UI = "XhciPciEmulation" + # } + + # FILE DRIVER = b7f50e91-a759-412c-ade4-dcd03e7f7c28 { + # SECTION PE32 = sdm845Pkg/Binary/7125/XhciDxe/XhciDxe.efi + # SECTION UI = "XhciDxe" + # } + + # FILE DRIVER = 5776232e-082d-4b75-9a0e-fe1d13f7a5d9 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/PmicDxe/PmicDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/PmicDxe/PmicDxe.efi + # SECTION UI = "PmicDxe" + # } + + # FILE DRIVER = 11faed4c-b21f-4d88-8e48-c4c28a1e50df { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbPwrCtrlDxe/UsbPwrCtrlDxe.efi + # SECTION UI = "UsbPwrCtrlDxe" + # } + + # FILE DRIVER = 94f8a6a7-dc34-4101-88c1-99179cceae83 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbfnDwc3Dxe/UsbfnDwc3Dxe.efi + # SECTION UI = "UsbfnDwc3Dxe" + # } + + # FILE DRIVER = 2d2e62cf-9ecf-43b7-8219-94e7fc713dfe { + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbKbDxe/UsbKbDxe.efi + # SECTION UI = "UsbKbDxe" + # } + + # FILE DRIVER = cd823a4d-7dec-4531-ae5d-4134fa4127b8 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbConfigDxe/UsbConfigDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbConfigDxe/UsbConfigDxe.efi + # SECTION UI = "UsbConfigDxe" + # } + + # FILE DRIVER = 0A134F0E-075E-40B3-9C63-3B3906804663 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbInitDxe/UsbInitDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbInitDxe/UsbInitDxe.efi + # SECTION UI = "UsbInitDxe" + # } + + # FILE DRIVER = 3299a266-15f0-4346-8318-716336736d3e { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbDeviceDxe/UsbDeviceDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbDeviceDxe/UsbDeviceDxe.efi + # SECTION UI = "UsbDeviceDxe" + # } + + FILE DRIVER = 5bd181db-0487-4f1a-ae73-820e165611b3 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/ButtonsDxe/ButtonsDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/ButtonsDxe/ButtonsDxe.efi + SECTION UI = "ButtonsDxe" + } + + FILE DRIVER = 0d35cd8e-97ea-4f9a-96af-0f0d89f76567 { + SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UFSDxe/UFSDxe.depex + SECTION PE32 = sdm845Pkg/Binary/7125/UFSDxe/UFSDxe.efi + SECTION UI = "UFSDxe" + } + + # FILE DRIVER = 5AF77F10-90DF-4E7E-8325-A17EC09D5443 { + # SECTION DXE_DEPEX = sdm845Pkg/Binary/7125/UsbMsdDxe/UsbMsdDxe.depex + # SECTION PE32 = sdm845Pkg/Binary/7125/UsbMsdDxe/UsbMsdDxe.efi + # SECTION UI = "UsbMsdDxe" + # } + + # FILE DRIVER = 7DB0793A-4402-4BE1-906E-D0FABAD2707E { + # SECTION PE32 = sdm845Pkg/Binary/7125/DDRInfoDxe/DDRInfoDxe.efi + # SECTION UI = "DDRInfoDxe" + # } + + INF sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.inf + INF sdm845Pkg/Drivers/SimpleFbDxe/SimpleFbDxe.inf + + # + # USB Host Support + # + INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf + INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + + # + # FAT filesystem + GPT/MBR partitioning + # + INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + INF FatPkg/EnhancedFatDxe/Fat.inf + INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + + # + # ACPI Support + # + INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf + INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf + # INF RuleOverride = ACPITABLE sdm845Pkg/AcpiTables/AcpiTables.inf + + # FILE FREEFORM = 7E374E25-8E01-4FEE-87F2-390C23C606CD { + # SECTION RAW = sdm845Pkg/AcpiTables/Common/DBG2.aml + # SECTION RAW = sdm845Pkg/AcpiTables/polaris/DSDT.AML + # SECTION RAW = sdm845Pkg/AcpiTables/Common/MADT.aml + # SECTION RAW = sdm845Pkg/AcpiTables/Common/FADT.aml + # SECTION RAW = sdm845Pkg/AcpiTables/Common/GTDT.aml + # SECTION RAW = sdm845Pkg/AcpiTables/Common/IORT.aml + # SECTION RAW = sdm845Pkg/AcpiTables/Common/PPTT.aml + # SECTION UI = "AcpiTables" + # } + + # + # FDT support + # + INF EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf + + # FILE FREEFORM = 25462CDA-221F-47DF-AC1D-259CFAA4E326 { + # SECTION RAW = sdm845Pkg/FdtBlob/sdm845-xiaomi-polaris.dtb + # } + + # + # SMBIOS Support + # + INF sdm845Pkg/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf + INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf + + # + # UEFI applications + # + INF ShellPkg/Application/Shell/Shell.inf +!ifdef $(INCLUDE_TFTP_COMMAND) + INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf +!endif #$(INCLUDE_TFTP_COMMAND) + + # + # Bds + # + INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf + INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + INF MdeModulePkg/Application/UiApp/UiApp.inf + INF sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf + + # + # Simple Init GUI + # + INF src/main/SimpleInitMain.inf + + INF src/kernelfdt/KernelFdtDxe.inf + +[FV.FVMAIN_COMPACT] +FvAlignment = 8 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + + INF ArmPlatformPkg/PrePi/PeiUniCore.inf + + FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { + SECTION FV_IMAGE = FVMAIN + } + } + +!include sdm845Pkg/CommonFdf.fdf.inc + + diff --git a/sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.c b/sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.c index 9d55a89..873daa7 100644 --- a/sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.c +++ b/sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.c @@ -48,9 +48,14 @@ VOID InitPeripherals(IN VOID) UINTN *pAddr; // Lock the QcomWdogTimer in a cage on certain devices +#ifdef SM7125_TEST + MmioWrite32(0x17c10008, 0x000000); +#else MmioWrite32(0x17980008, 0x000000); +#endif DEBUG((EFI_D_WARN, "\n \v The Dog has been locked in a cage :)\v")); +#ifndef SM7125_TEST Status = gBS->LocateProtocol( &gQcomSMEMProtocolGuid, NULL, (VOID **)&pEfiSmemProtocol); @@ -60,6 +65,7 @@ VOID InitPeripherals(IN VOID) } DEBUG((EFI_D_ERROR, "%a: SmemGetAddr result: 0x%p\n", __FUNCTION__, pAddr)); +#endif // gBS->Stall(5000000); } diff --git a/sdm845Pkg/Include/Configuration/DeviceMemoryMap7125.h b/sdm845Pkg/Include/Configuration/DeviceMemoryMap7125.h new file mode 100644 index 0000000..0641c7b --- /dev/null +++ b/sdm845Pkg/Include/Configuration/DeviceMemoryMap7125.h @@ -0,0 +1,325 @@ +#ifndef _DEVICE_MEMORY_MAP_H_ +#define _DEVICE_MEMORY_MAP_H_ + +#include + +#define MAX_ARM_MEMORY_REGION_DESCRIPTOR_COUNT 95 + +/* Below flag is used for system memory */ +#define SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES \ + EFI_RESOURCE_ATTRIBUTE_PRESENT | EFI_RESOURCE_ATTRIBUTE_INITIALIZED | \ + EFI_RESOURCE_ATTRIBUTE_TESTED | EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE | \ + EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE | \ + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE | \ + EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE | \ + EFI_RESOURCE_ATTRIBUTE_EXECUTION_PROTECTABLE + +typedef enum { NoHob, AddMem, AddDev, Mem4G, Mem6G, Mem8G, Mem10G, MaxMem } DeviceMemoryAddHob; + +typedef struct { + EFI_PHYSICAL_ADDRESS Address; + UINT64 Length; + EFI_RESOURCE_TYPE ResourceType; + EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute; + ARM_MEMORY_REGION_ATTRIBUTES ArmAttributes; + DeviceMemoryAddHob HobOption; + EFI_MEMORY_TYPE MemoryType; +} ARM_MEMORY_REGION_DESCRIPTOR_EX, *PARM_MEMORY_REGION_DESCRIPTOR_EX; + +static ARM_MEMORY_REGION_DESCRIPTOR_EX gDeviceMemoryDescriptorEx[] = { + /* Address, Length, ResourceType, Resource Attribute, ARM MMU + Attribute, HobOption, EFI Memory Type */ + + /* DDR */ + + /* HYP */ + {0x80000000, 0x00600000, EFI_RESOURCE_MEMORY_RESERVED, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem, + EfiReservedMemoryType}, + /* AOP CMD DB */ + {0x80700000, 0x00140000, EFI_RESOURCE_MEMORY_RESERVED, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem, + EfiReservedMemoryType}, + /* sec_apps_region */ + {0x808ff000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, NoHob, EfiReservedMemoryType}, + /* SMEM */ + {0x80900000, 0x00200000, EFI_RESOURCE_MEMORY_RESERVED, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem, + EfiReservedMemoryType}, + /* removed_region */ + {0x80b00000, 0x03900000, EFI_RESOURCE_SYSTEM_MEMORY, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, NoHob, EfiReservedMemoryType}, + /* PIL_REGION */ + {0x84400000, 0x0F800000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, AddMem, EfiReservedMemoryType}, + /* DXE Heap */ + {0x93C00000, 0x04500000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiConventionalMemory}, + /* Sched Heap */ + {0x9B800000, 0x00400000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + + /* FrameBuffer */ + {0x9C000000, 0x01800000, EFI_RESOURCE_MEMORY_RESERVED, + EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_THROUGH, AddMem, EfiReservedMemoryType}, + /* FV Region */ + {0x9F800000, 0x00200000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + /* ABOOT FV */ + {0x9FA00000, 0x00200000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiReservedMemoryType}, + /* UEFI FD */ + {0x9FC00000, 0x00300000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + /* SEC Heap */ + {0x9FF00000, 0x0008C000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + /* CPU Vectors */ + {0x9FF8C000, 0x00001000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + /* MMU PageTables */ + {0x9FF8D000, 0x00003000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + /* UEFI Stack */ + {0x9FF90000, 0x00040000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, AddMem, EfiBootServicesData}, + + /* Runtime Services Data */ + {0x9FFF7000, 0x00009000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED, AddMem, + EfiRuntimeServicesData}, + + /* 4GiB Memory */ + // {0xA0000000, 0xDDFA0000, EFI_RESOURCE_SYSTEM_MEMORY, + // SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + // ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, Mem4G, EfiConventionalMemory}, + + /* DBI Dump */ + {0xC0000000, 0x00F00000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + NoHob, EfiConventionalMemory}, + + /* 6GiB Memory */ + {0xC0F00000, 0x3F100000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, Mem6G, EfiConventionalMemory}, + + {0x100000000, 0x100000000, EFI_RESOURCE_SYSTEM_MEMORY, + SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, Mem6G, EfiConventionalMemory}, + + /* 8GiB Memory */ + // {0xA0000000, 0xE0000000, EFI_RESOURCE_SYSTEM_MEMORY, + // SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + // ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, Mem8G, EfiConventionalMemory}, + // {0x180000000, 0xFC8A0000, EFI_RESOURCE_SYSTEM_MEMORY, + // SYSTEM_MEMORY_RESOURCE_ATTR_CAPABILITIES, + // ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK, Mem8G, EfiConventionalMemory}, + + /* Other */ + + /* AOP_SS_MSG_RAM */ + {0x0C300000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + NoHob, EfiConventionalMemory}, + /* IMEM Base */ + {0x14680000, 0x0002B000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + NoHob, EfiConventionalMemory}, + /* IMEM Cookie Base */ + {0x146AA000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_INITIALIZED, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiConventionalMemory}, + + /* Register */ + + /* GCC CLK CTL */ + {0x00100000, 0x00200000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* SECURITY CONTROL */ + {0x00780000, 0x00007000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* PRNG_CFG_PRNG */ + {0x00790000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* SDC1_REG */ + {0x007C0000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* QUPV3_0_GSI */ + {0x00800000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* QUPV3_1_GSI */ + {0x00A00000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* UFS UFS REGS */ + {0x01D80000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* CRYPTO0 CRYPTO */ + {0x01DC0000, 0x00040000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TCSR_TCSR_REGS */ + {0x01FC0000, 0x00040000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TLMM_WEST */ + {0x03500000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TLMM_NORTH */ + {0x03900000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TLMM_SOUTH */ + {0x03D00000, 0x00300000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* GPU_CC */ + {0x05090000, 0x00009000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* GPU_CPR */ + {0x0509A000, 0x00004000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* RPMH_CPRF */ + {0x0C200000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* QUPV3_SSC_GSI */ + {0x62B00000, 0x00060000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* PERIPH_SS */ + {0x08800000, 0x00200000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* MCCC_MCCC_MSTR */ + {0x090B0000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* USB30_PRIM */ + {0x0A600000, 0x0011B000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* USB_RUMI */ + {0x0A720000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* PDC_DISPLAY */ + {0x0B2A0000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* PDC_DISP_SEQ */ + {0x0B4A0000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* RPMH_BCM_BCM_TOP */ + {0x0BA00000, 0x00200000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* SLP_CNTR_TSENS */ + {0x0C221000, 0x00003000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TSENS0_TM_PSHOLD */ + {0x0C263000, 0x00003000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* PMIC_ARB_SPMI */ + {0x0C400000, 0x02800000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* VIDEO_CC */ + {0x0AB00000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* NPU_CC */ + {0x09980000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* TITAN_CAM_CC */ + {0x0AD00000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* DISP_CC */ + {0x0AF00000, 0x00020000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* SILVER_CLK_CTL */ + {0x18280000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* GOLD_CLK_CTL */ + {0x18282000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* L3_CLK_CTL */ + {0x18284000, 0x00001000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* APSS_RSC_RSCCR */ + {0x18200000, 0x00030000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* APSS_GIC500_GICD */ + {0x17A00000, 0x00010000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* APSS_GIC500_GICR */ + {0x17A60000, 0x00100000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* QTIMER */ + {0x17C00000, 0x00110000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* APSS_ACTPM_WRAP */ + {0x18300000, 0x000B0000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* MDSS */ + {0x0AE00000, 0x00134000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + /* SMMU */ + {0x15000000, 0x000D0000, EFI_RESOURCE_MEMORY_MAPPED_IO, + EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE, ARM_MEMORY_REGION_ATTRIBUTE_DEVICE, + AddDev, EfiMemoryMappedIO}, + + /* Terminator */ + {}}; + +#endif diff --git a/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c b/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c index 66b78f6..94d294b 100644 --- a/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c +++ b/sdm845Pkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.c @@ -25,7 +25,11 @@ #include // This varies by device +#ifdef SM7125_TEST +#include +#else #include +#endif #define SIZE_KB ((UINTN)(1024)) #define SIZE_MB ((UINTN)(SIZE_KB * 1024)) diff --git a/sdm845Pkg/Library/QcomGeniSerialPortLib/GeniSerial.h b/sdm845Pkg/Library/QcomGeniSerialPortLib/GeniSerial.h index f92035a..75a964f 100644 --- a/sdm845Pkg/Library/QcomGeniSerialPortLib/GeniSerial.h +++ b/sdm845Pkg/Library/QcomGeniSerialPortLib/GeniSerial.h @@ -1,6 +1,12 @@ #ifndef UARTQUPV3_H #define UARTQUPV3_H + +#ifdef SM7125_TEST +#define UART_DEBUG_PORT_BASE 0xA88000 +#else #define UART_DEBUG_PORT_BASE 0xA84000 +#endif + #define UART_BASE_ADDR UART_DEBUG_PORT_BASE #define RING_SIZE 256 #define MemWrite(off1,off2,val) (*((volatile UINT32*)(UINTN)(UART_BASE_ADDR+(off1)+(off2)))=((UINT32)(val))) diff --git a/sdm845Pkg/sm7125Pkg.dsc b/sdm845Pkg/sm7125Pkg.dsc new file mode 100644 index 0000000..b35ab14 --- /dev/null +++ b/sdm845Pkg/sm7125Pkg.dsc @@ -0,0 +1,340 @@ +# +# Copyright (c) 2018, Linaro Limited. All rights reserved. +# +# 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 +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ + +!include sdm845Pkg/CommonDsc.dsc.inc + +[LibraryClasses.common] + ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf + ArmPlatformLib|sdm845Pkg/Library/sdm845Lib/sdm845Lib.inf + CompilerIntrinsicsLib|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf + CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf + + # UiApp dependencies + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf + +!if $(USE_UART) == 1 + SerialPortLib|sdm845Pkg/Library/QcomGeniSerialPortLib/QcomGeniSerialPortLib.inf +!else + SerialPortLib|sdm845Pkg/Library/FrameBufferSerialPortLib/FrameBufferSerialPortLib.inf +!endif + + RealTimeClockLib|EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf + TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf + + # USB Requirements + UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf + + # Network Libraries + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf + NetLib|NetworkPkg/Library/DxeNetLib/DxeNetLib.inf + DpcLib|NetworkPkg/Library/DxeDpcLib/DxeDpcLib.inf + IpIoLib|NetworkPkg/Library/DxeIpIoLib/DxeIpIoLib.inf + UdpIoLib|NetworkPkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf + + # VariableRuntimeDxe Requirements + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf + + # + # Secure Boot dependencies + # + + # Cryptographic libraries + RngLib|MdePkg/Library/DxeRngLib/DxeRngLib.inf + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf + TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf + + TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf + AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf + SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf + SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf + PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf + + # SimpleFbDxe + FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf + + PlatformBootManagerLib|sdm845Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf + MemoryInitPeiLib|sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf + PlatformPeiLib|sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf + +!ifdef $(AB_SLOTS_SUPPORT) + BootSlotLib|sdm845Pkg/Library/BootSlotLib/BootSlotLib.inf +!endif #$(AB_SLOTS_SUPPORT) + +[LibraryClasses.common.SEC] + PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf + ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf + MemoryInitPeiLib|sdm845Pkg/Library/MemoryInitPeiLib/PeiMemoryAllocationLib.inf + PlatformPeiLib|sdm845Pkg/Library/PlatformPeiLib/PlatformPeiLib.inf + PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsFeatureFlag.common] + ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe. + # It could be set FALSE to save size. + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE + + +[PcdsFixedAtBuild.common] + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4 + + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)" + + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 + gArmTokenSpaceGuid.PcdSystemMemorySize|0xC0000000 + + # + # SimpleInit + # + gSimpleInitTokenSpaceGuid.PcdDeviceTreeStore|0xa3000000 + gSimpleInitTokenSpaceGuid.PcdLoggerdUseConsole|FALSE + + gArmPlatformTokenSpaceGuid.PcdCoreCount|8 + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + + # + # ARM General Interrupt Controller + # + gArmTokenSpaceGuid.PcdGicDistributorBase|0x17a00000 + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x17a60000 + + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x12 + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x13 + + # GUID of the UI app + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0 + + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE + + gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000 + + # + # Fastboot + # + gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbVendorId|0x18d1 + gEmbeddedTokenSpaceGuid.PcdAndroidFastbootUsbProductId|0xd00d + + # + # Make VariableRuntimeDxe work at emulated non-volatile variable mode. + # + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE + + gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress|0x9c000000 + + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20 + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform +# +################################################################################ +[Components.common] + # + # PEI Phase modules + # + ArmPlatformPkg/PrePi/PeiUniCore.inf + + # + # DXE + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf + } + + # + # Architectural Protocols + # + ArmPkg/Drivers/CpuDxe/CpuDxe.inf + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf { + + NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf + } + SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf + SecurityPkg/EnrollFromDefaultKeysApp/EnrollFromDefaultKeysApp.inf + SecurityPkg/VariableAuthenticated/SecureBootDefaultKeysDxe/SecureBootDefaultKeysDxe.inf + + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf + MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + +!if $(TARGET) != RELEASE + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf +!endif + + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf + ArmPkg/Drivers/TimerDxe/TimerDxe.inf + + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf + + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf + + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf { + + RealTimeClockLib|sdm845Pkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.inf + } + + MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf + MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf + + # + # Virtual Keyboard + # + EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboardDxe.inf + + sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.inf + sdm845Pkg/Drivers/SimpleFbDxe/SimpleFbDxe.inf + + # + # USB Host Support + # + MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf + MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf + + # + # USB Mass Storage Support + # + MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf + + # + # USB Peripheral Support + # + EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf + + # + # Fastboot + # + EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.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 + MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf + FatPkg/EnhancedFatDxe/Fat.inf + + # + # ACPI Support + # + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf + MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf + # sdm845Pkg/AcpiTables/AcpiTables.inf + + # + # FDT support + # + EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf + + # + # SMBIOS Support + # + sdm845Pkg/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf + + # + # OnePlus 6T A/B Slot Support + # Op6tSlotDxe and BootSlotDxe have the same goal, do not use them both at the same time in device fdf. + # + sdm845Pkg/Drivers/Op6tSlotDxe/Op6tSlotDxe.inf +!ifdef $(AB_SLOTS_SUPPORT) + sdm845Pkg/Drivers/BootSlotDxe/BootSlotDxe.inf + sdm845Pkg/Application/SwitchSlotsApp/SwitchSlotsApp.inf +!endif #$(AB_SLOTS_SUPPORT) + + # + # Bds + # + MdeModulePkg/Universal/PrintDxe/PrintDxe.inf + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf { + + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + } + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf + MdeModulePkg/Application/UiApp/UiApp.inf { + + NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf + NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf + NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + } + sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf + + ShellPkg/Application/Shell/Shell.inf { + + 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/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 + } +!ifdef $(INCLUDE_TFTP_COMMAND) + ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf +!endif #$(INCLUDE_TFTP_COMMAND) + +[BuildOptions.common] + GCC:*_*_AARCH64_CC_FLAGS = -Wno-unused-variable -march=armv8.2-a+crypto+rcpc -mtune=cortex-a75.cortex-a55