Separate polaris configurations for GPU testing
authorSophon <strongtz@yeah.net>
星期六, 21 Aug 2021 10:55:53 +0000 (18:55 +0800)
committerSophon <strongtz@yeah.net>
星期六, 21 Aug 2021 10:55:53 +0000 (18:55 +0800)
Currently GPU and USB are *imcompatible*.
Users can choose the appropriate version themselves.

Signed-off-by: Sophon <strongtz@yeah.net>
.github/workflows/main.yml
build.sh
device_specific/polaris-gpu.dtb [moved from device_specific/polaris.dtb with 100% similarity]
device_specific/polaris-usb.dtb [new file with mode: 0644]
sdm845Pkg/Devices/polaris-gpu.dsc [moved from sdm845Pkg/Devices/polaris.dsc with 91% similarity]
sdm845Pkg/Devices/polaris-gpu.fdf [new file with mode: 0644]
sdm845Pkg/Devices/polaris-usb.dsc [new file with mode: 0644]
sdm845Pkg/Devices/polaris-usb.fdf [moved from sdm845Pkg/Devices/polaris.fdf with 100% similarity]

index 074a5c9cfb21edb03faf619efaee9b85e0003f79..d2e2d6a926bdd05b6e4446ef2c7368b9058aa80c 100644 (file)
@@ -24,7 +24,8 @@ jobs:
           - dipper
           - enchilada
           - fajita
-          - polaris
+          - polaris-usb
+          - polaris-gpu
           - beryllium
           - perseus
           - nx616j
index c4e174a029be7f953f967ed9c762175901e0cbf6..2268fe8b3c522abb78ccb902a8090dffd7b0bc12 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -5,7 +5,8 @@ DEVICES=(
        dipper
        enchilada
        fajita
-       polaris
+       polaris-usb
+       polaris-gpu
        beryllium
        perseus
        nx616j
diff --git a/device_specific/polaris-usb.dtb b/device_specific/polaris-usb.dtb
new file mode 100644 (file)
index 0000000..aa10daf
Binary files /dev/null and b/device_specific/polaris-usb.dtb differ
similarity index 91%
rename from sdm845Pkg/Devices/polaris.dsc
rename to sdm845Pkg/Devices/polaris-gpu.dsc
index 6facc369f75e18f901c587467e9304afc9f70bd2..56d3b19c82fe4a4ed8605b65e340583fe1bbb5e4 100644 (file)
@@ -7,7 +7,7 @@
   SUPPORTED_ARCHITECTURES        = AARCH64
   BUILD_TARGETS                  = DEBUG|RELEASE
   SKUID_IDENTIFIER               = DEFAULT
-  FLASH_DEFINITION               = sdm845Pkg/Devices/polaris.fdf
+  FLASH_DEFINITION               = sdm845Pkg/Devices/polaris-gpu.fdf
 
 !include sdm845Pkg/sdm845Pkg.dsc
 
diff --git a/sdm845Pkg/Devices/polaris-gpu.fdf b/sdm845Pkg/Devices/polaris-gpu.fdf
new file mode 100644 (file)
index 0000000..4c96e93
--- /dev/null
@@ -0,0 +1,316 @@
+#\r
+#  Copyright (c) 2018, Linaro Limited. All rights reserved.\r
+#\r
+#  This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution.  The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+\r
+################################################################################\r
+#\r
+# FD Section\r
+# The [FD] Section is made up of the definition statements and a\r
+# description of what goes into  the Flash Device Image.  Each FD section\r
+# defines one flash "device" image.  A flash device image may be one of\r
+# the following: Removable media bootable image (like a boot floppy\r
+# image,) an Option ROM image (that would be "flashed" into an add-in\r
+# card,) a System "Flash"  image (that would be burned into a system's\r
+# flash) or an Update ("Capsule") image that will be used to update and\r
+# existing system flash.\r
+#\r
+################################################################################\r
+\r
+[FD.sdm845Pkg_UEFI]\r
+BaseAddress   = 0xd0000000|gArmTokenSpaceGuid.PcdFdBaseAddress  # The base address of the Firmware in NOR Flash.\r
+Size          = 0x00200000|gArmTokenSpaceGuid.PcdFdSize         # The size in bytes of the FLASH Device\r
+ErasePolarity = 1\r
+\r
+# This one is tricky, it must be: BlockSize * NumBlocks = Size\r
+BlockSize     = 0x00001000\r
+NumBlocks     = 0x200\r
+\r
+################################################################################\r
+#\r
+# Following are lists of FD Region layout which correspond to the locations of different\r
+# images within the flash device.\r
+#\r
+# Regions must be defined in ascending order and may not overlap.\r
+#\r
+# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by\r
+# the pipe "|" character, followed by the size of the region, also in hex with the leading\r
+# "0x" characters. Like:\r
+# Offset|Size\r
+# PcdOffsetCName|PcdSizeCName\r
+# RegionType <FV, DATA, or FILE>\r
+#\r
+################################################################################\r
+\r
+# from ArmVirtPkg/ArmVirtQemuKernel.fdf\r
+#\r
+# Implement the Linux kernel header layout so that the loader will identify\r
+# it as something bootable, and execute it with a FDT pointer in x0 or r2.\r
+#\r
+0x00000000|0x00008000\r
+DATA = {\r
+  0x01, 0x00, 0x00, 0x10,                         # code0: adr x1, .\r
+  0xff, 0x1f, 0x00, 0x14,                         # code1: b 0x8000\r
+  0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB\r
+  0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB\r
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags\r
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2\r
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3\r
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res4\r
+  0x41, 0x52, 0x4d, 0x64,                         # magic: "ARM\x64"\r
+  0x00, 0x00, 0x00, 0x00                          # res5\r
+}\r
+\r
+0x00008000|0x001f8000\r
+gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize\r
+FV = FVMAIN_COMPACT\r
+\r
+\r
+################################################################################\r
+#\r
+# FV Section\r
+#\r
+# [FV] section is used to define what components or modules are placed within a flash\r
+# device file.  This section also defines order the components and modules are positioned\r
+# within the image.  The [FV] section consists of define statements, set statements and\r
+# module statements.\r
+#\r
+################################################################################\r
+\r
+[FV.FvMain]\r
+BlockSize          = 0x40\r
+NumBlocks          = 0         # This FV gets compressed so make it just big enough\r
+FvAlignment        = 8         # FV alignment and FV attributes setting.\r
+ERASE_POLARITY     = 1\r
+MEMORY_MAPPED      = TRUE\r
+STICKY_WRITE       = TRUE\r
+LOCK_CAP           = TRUE\r
+LOCK_STATUS        = TRUE\r
+WRITE_DISABLED_CAP = TRUE\r
+WRITE_ENABLED_CAP  = TRUE\r
+WRITE_STATUS       = TRUE\r
+WRITE_LOCK_CAP     = TRUE\r
+WRITE_LOCK_STATUS  = TRUE\r
+READ_DISABLED_CAP  = TRUE\r
+READ_ENABLED_CAP   = TRUE\r
+READ_STATUS        = TRUE\r
+READ_LOCK_CAP      = TRUE\r
+READ_LOCK_STATUS   = TRUE\r
+\r
+APRIORI DXE {\r
+\r
+  #\r
+  # PI DXE Drivers producing Architectural Protocols (EFI Services)\r
+  #\r
+  INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
+  INF MdeModulePkg/Core/Dxe/DxeMain.inf\r
+  INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf\r
+  INF MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf\r
+  INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
+  INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf\r
+  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
+  INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
+  INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
+  INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
+  INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf\r
+\r
+  #\r
+  # FAT filesystem + GPT/MBR partitioning\r
+  #\r
+  INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
+  INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
+  INF FatPkg/EnhancedFatDxe/Fat.inf\r
+  INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
+  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf\r
+\r
+  INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf\r
+  INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
+  INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf\r
+  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
+  INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
+  INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
+\r
+  INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
+  INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
+  INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
+\r
+  FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c {\r
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/845/SmemDxe/SmemDxe.depex\r
+    SECTION PE32 = sdm845Pkg/Binary/845/SmemDxe/SmemDxe.efi\r
+    SECTION UI = "SmemDxe"\r
+  }  \r
+\r
+  INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf  \r
+\r
+}\r
+\r
+  INF MdeModulePkg/Core/Dxe/DxeMain.inf\r
+\r
+  #\r
+  # PI DXE Drivers producing Architectural Protocols (EFI Services)\r
+  #\r
+  INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
+  INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf\r
+  INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
+  INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
+  INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf\r
+  INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf\r
+  INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf\r
+  INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf\r
+  INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf\r
+\r
+  #\r
+  # Multiple Console IO support\r
+  #\r
+  INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf\r
+  INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
+  INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
+  INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
+\r
+  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
+  INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
+\r
+  INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf\r
+\r
+  FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c {\r
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/845/SmemDxe/SmemDxe.depex\r
+    SECTION PE32 = sdm845Pkg/Binary/845/SmemDxe/SmemDxe.efi\r
+    SECTION UI = "SmemDxe"\r
+  }  \r
+\r
+  FILE DRIVER = 0d35cd8e-97ea-4f9a-96af-0f0d89f76567 {\r
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/845/UFSDxe/UFSDxe.depex\r
+    SECTION PE32 = sdm845Pkg/Binary/845/UFSDxe/UFSDxe.efi\r
+    SECTION UI = "UFSDxe"\r
+  }\r
+\r
+  #\r
+  # Virtual Keyboard\r
+  #\r
+  INF EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboardDxe.inf\r
+\r
+  INF sdm845Pkg/Drivers/sdm845Dxe/sdm845Dxe.inf\r
+  INF sdm845Pkg/Drivers/SimpleFbDxe/SimpleFbDxe.inf\r
+\r
+  #\r
+  # USB Host Support\r
+  #\r
+  INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf\r
+\r
+  #\r
+  # USB Mass Storage Support\r
+  #\r
+  INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf\r
+\r
+  #\r
+  # USB Peripheral Support\r
+  #\r
+  INF EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf\r
+\r
+  #\r
+  # Fastboot\r
+  #\r
+  INF EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf\r
+\r
+  #\r
+  # FAT filesystem + GPT/MBR partitioning\r
+  #\r
+  INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
+  INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
+  INF FatPkg/EnhancedFatDxe/Fat.inf\r
+  INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
+\r
+  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf\r
+\r
+  INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
+\r
+  #\r
+  # ACPI Support\r
+  #\r
+  INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
+  INF MdeModulePkg/Universal/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf\r
+  INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf\r
+  # INF RuleOverride = ACPITABLE sdm845Pkg/AcpiTables/AcpiTables.inf\r
+\r
+  FILE FREEFORM = 7E374E25-8E01-4FEE-87F2-390C23C606CD {   \r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/DBG2.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/polaris/DSDT-gpu.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/MADT.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/FADT.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/GTDT.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/IORT.aml\r
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/PPTT.aml\r
+    SECTION UI = "AcpiTables"\r
+  }\r
+\r
+  #\r
+  # FDT support\r
+  #\r
+  INF EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf\r
+\r
+  FILE FREEFORM = 25462CDA-221F-47DF-AC1D-259CFAA4E326 {\r
+    SECTION RAW = sdm845Pkg/FdtBlob/sdm845-xiaomi-polaris.dtb\r
+  }\r
+\r
+  #\r
+  # SMBIOS Support\r
+  #\r
+  INF sdm845Pkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf\r
+  INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf\r
+\r
+  #\r
+  # UEFI applications\r
+  #\r
+  INF ShellPkg/Application/Shell/Shell.inf\r
+!ifdef $(INCLUDE_TFTP_COMMAND)\r
+  INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf\r
+!endif #$(INCLUDE_TFTP_COMMAND)\r
+\r
+  #\r
+  # Bds\r
+  #\r
+  INF MdeModulePkg/Universal/PrintDxe/PrintDxe.inf\r
+  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
+  INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf\r
+  INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf\r
+  INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf\r
+  INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf\r
+  INF MdeModulePkg/Application/UiApp/UiApp.inf\r
+  INF sdm845Pkg/Drivers/LogoDxe/LogoDxe.inf\r
+\r
+[FV.FVMAIN_COMPACT]\r
+FvAlignment        = 8\r
+ERASE_POLARITY     = 1\r
+MEMORY_MAPPED      = TRUE\r
+STICKY_WRITE       = TRUE\r
+LOCK_CAP           = TRUE\r
+LOCK_STATUS        = TRUE\r
+WRITE_DISABLED_CAP = TRUE\r
+WRITE_ENABLED_CAP  = TRUE\r
+WRITE_STATUS       = TRUE\r
+WRITE_LOCK_CAP     = TRUE\r
+WRITE_LOCK_STATUS  = TRUE\r
+READ_DISABLED_CAP  = TRUE\r
+READ_ENABLED_CAP   = TRUE\r
+READ_STATUS        = TRUE\r
+READ_LOCK_CAP      = TRUE\r
+READ_LOCK_STATUS   = TRUE\r
+\r
+  INF ArmPlatformPkg/PrePi/PeiUniCore.inf\r
+\r
+  FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {\r
+    SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {\r
+      SECTION FV_IMAGE = FVMAIN\r
+    }\r
+  }\r
+\r
+!include sdm845Pkg/CommonFdf.fdf.inc\r
+\r
+\r
diff --git a/sdm845Pkg/Devices/polaris-usb.dsc b/sdm845Pkg/Devices/polaris-usb.dsc
new file mode 100644 (file)
index 0000000..0f1ff5f
--- /dev/null
@@ -0,0 +1,22 @@
+[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/polaris-usb.fdf
+
+!include sdm845Pkg/sdm845Pkg.dsc
+
+[BuildOptions.common]
+  GCC:*_*_AARCH64_CC_FLAGS = -DXIAOMI_PIL_FIXED=1
+
+[PcdsFixedAtBuild.common]
+  # System Memory (5GB)
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x140000000
+
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2160