From: strongtz <strongtz@yeah.net>
Date: 星期二, 26 May 2020 04:33:47 +0000 (+0800)
Subject: polaris support is done
X-Git-Tag: v0.1~16
X-Git-Url: https://git.renegade-project.org/?a=commitdiff_plain;h=4ae065cb0606e9b6b7ff25dabd1228a9250d43bd;p=edk2-sdm845.git

polaris support is done
---

diff --git a/README.md b/README.md
index d37c8ec..e1acc39 100644
--- a/README.md
+++ b/README.md
@@ -1,53 +1,6 @@
-# EDK2 UEFI Firmware For Xiaomi MI 8 (Dipper)
-Attempt to create a normal EDK2 for Xiaomi MI8 - dipper.
+# EDK2 UEFI Firmware For Snapdragon 845 (sdm845)
 
-Based on zhuowei's port for [Pixel3XL](https://github.com/Pixel3Dev/edk2-pixel3/).
-
-[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper?ref=badge_shield)
-[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2FNekokeCore%2Fedk2-dipper?ref=badge_small)
-
-## The Most Important
-DO NOT FLASH THIS UEFI FIRMWARE IN YOUR MAIN PHONE !!!
-
-It's very unstable and you may lost your data.
-
-## Status 
- UFS WORK!
-
- Can boot Linux Arm
-
- Clock WORK!
-
- Test ACPI etc. tables removeed.
-
- And can load Windows PE.
-
-## Dev Logs
-2020.1.6 Fix 5 compiler error.
-
-2020.1.7 Start work and successfully run on my phone.
-
-2020.1.8 Fix Display.
-
-2020.4.17 Fix UFS drive and Fix MemoryMap(Thanks [Lemon1Ice](https://github.com/Lemon1Ice)).
-
-2020.4.19 Add ACPI etc. Tables and Fix DSDT 24 Errors. (PS.The ACPI and SSDT etc. Tables Provided by [5超级菜鸟5](https://github.com/sunshuyu)
-
-2020.4.24 Fix Clock and The Clock is work well && Add SmemDxe SPI SPMI HWIODxeDriver PmicDxe ButtonsDxe ChipInfoDxe to Binary && Add USB driver
-
-2020.4.30 Re added MemoryMap and can boot Windows to BlueScreen(Stop Code:Memory Managent) and (Stop Code:IRQL NOT LESS OR EQUAL)
-
-2020.5.6 Fix A Lot but Nothing.
-
-2020.5.8 Fix A Lot but Nothing.
-
-2020.5.10 Can boot WindowsPE . Thank for [Lemon1Ice](https://github.com/Lemon1Ice) patience and great help!
-
-## To-Do
-1.Fix fts touchscreen
-2.Fix ACPI tables
-3.Partition UFS
-4.make USB work
+Attempt to create a normal EDK2 for Snapdragon 845 platform.
 
 ## Dependencies
 
@@ -71,6 +24,7 @@ sudo apt install gcc-aarch64-linux-gnu
 
 
 ## Building
+
 1.Clone edk2 and edk2-platforms (Place three directories side by side.)
 
 edk2:
@@ -117,12 +71,11 @@ fastboot boot uefi.img
 ```
 
 ## Credits
+
 MemoryMap thanks [Lemon1Ice](https://github.com/Lemon1Ice).
 
 ACPI etc. tables thanks [5超级菜鸟5](https://github.com/sunshuyu)
 
-Orther edk2 project [EngLearnsh](https://github.com/EngLearnsh/edk2-dipper).
-
 SimpleFbDxe screen driver is from imbushuo's [Lumia950XLPkg](https://github.com/WOA-Project/Lumia950XLPkg).
 
 Also thanks [edk2 website](https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC#Install_required_software_from_apt).
diff --git a/build_dipper.sh b/build_dipper.sh
index e63a55c..cbd6b7c 100644
--- a/build_dipper.sh
+++ b/build_dipper.sh
@@ -1,13 +1,13 @@
 #!/bin/bash
 # based on the instructions from edk2-platform
 echo cleanning BuidFiles
-rm -rf boot_polaris.img
+rm -rf boot_dipper.img
 echo Done.
 set -e
 . firstrun_common.sh
 # not actually GCC5; it's GCC7 on Ubuntu 18.04.
-GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/sdm845Pkg.dsc
+GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/dipper.dsc
 gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/sdm845PKG_UEFI.fd >uefi_img
-cat ./device_specific/polaris.dtb >>uefi_img
-abootimg --create boot_polaris.img -k uefi_img -r ramdisk -f bootimg.cfg
+cat ./device_specific/dipper.dtb >>uefi_img
+abootimg --create boot_dipper.img -k uefi_img -r ramdisk -f bootimg.cfg
 rm -rf ./uefi_img
diff --git a/build_polaris.sh b/build_polaris.sh
index e63a55c..5391ff2 100644
--- a/build_polaris.sh
+++ b/build_polaris.sh
@@ -6,7 +6,7 @@ echo Done.
 set -e
 . firstrun_common.sh
 # not actually GCC5; it's GCC7 on Ubuntu 18.04.
-GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/sdm845Pkg.dsc
+GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -s -n 0 -a AARCH64 -t GCC5 -p sdm845Pkg/polaris.dsc
 gzip -c < workspace/Build/sdm845Pkg/DEBUG_GCC5/FV/sdm845PKG_UEFI.fd >uefi_img
 cat ./device_specific/polaris.dtb >>uefi_img
 abootimg --create boot_polaris.img -k uefi_img -r ramdisk -f bootimg.cfg
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8.c b/sdm845Pkg/Library/sdm845Lib/sdm845.c
similarity index 100%
rename from sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8.c
rename to sdm845Pkg/Library/sdm845Lib/sdm845.c
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Helper.S b/sdm845Pkg/Library/sdm845Lib/sdm845Helper.S
similarity index 100%
rename from sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Helper.S
rename to sdm845Pkg/Library/sdm845Lib/sdm845Helper.S
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Lib.inf b/sdm845Pkg/Library/sdm845Lib/sdm845Lib.inf
similarity index 100%
rename from sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Lib.inf
rename to sdm845Pkg/Library/sdm845Lib/sdm845Lib.inf
diff --git a/sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Mem.c b/sdm845Pkg/Library/sdm845Lib/sdm845Mem.c
similarity index 100%
rename from sdm845Pkg/Library/XiaomiMI8Lib/XiaomiMI8Mem.c
rename to sdm845Pkg/Library/sdm845Lib/sdm845Mem.c
diff --git a/sdm845Pkg/polaris.dsc b/sdm845Pkg/polaris.dsc
new file mode 100644
index 0000000..e07f4a0
--- /dev/null
+++ b/sdm845Pkg/polaris.dsc
@@ -0,0 +1,19 @@
+[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/polaris.fdf
+
+!include sdm845Pkg/sdm845Pkg.dsc
+
+[PcdsFixedAtBuild.common]
+  # System Memory (5GB)
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x140000000
+
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080
+  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2160
diff --git a/sdm845Pkg/sdm845Pkg.fdf b/sdm845Pkg/polaris.fdf
similarity index 79%
rename from sdm845Pkg/sdm845Pkg.fdf
rename to sdm845Pkg/polaris.fdf
index 696ab53..8842c42 100644
--- a/sdm845Pkg/sdm845Pkg.fdf
+++ b/sdm845Pkg/polaris.fdf
@@ -123,26 +123,26 @@ READ_LOCK_STATUS   = TRUE
   INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
 
   FILE DRIVER = af9763a2-033b-4109-8e17-56a98d380c92 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.depex
-    SECTION PE32 = sdm845Pkg/Binary/HWIODxeDriver/HWIODxeDriver.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/HWIODxeDriver/HWIODxeDriver.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/HWIODxeDriver/HWIODxeDriver.efi
     SECTION UI = "HWIODxeDriver"
   }
 
   FILE DRIVER = 4db5dea6-5302-4d1a-8a82-677a683b0d29 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/ClockDxe/ClockDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/ClockDxe/ClockDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/ClockDxe/ClockDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/ClockDxe/ClockDxe.efi
     SECTION UI = "ClockDxe"
   }
 
   FILE DRIVER = 5776232e-082d-4b75-9a0e-fe1d13f7a5d9 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/PmicDxe/PmicDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/PmicDxe/PmicDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/PmicDxe/PmicDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/PmicDxe/PmicDxe.efi
     SECTION UI = "PmicDxe"
   }
 
   FILE DRIVER = 5bd181db-0487-4f1a-ae73-820e165611b3 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/ButtonsDxe/ButtonsDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/ButtonsDxe/ButtonsDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/ButtonsDxe/ButtonsDxe.efi
     SECTION UI = "ButtonsDxe"
   }
 
@@ -163,32 +163,32 @@ READ_LOCK_STATUS   = TRUE
   INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
 
   FILE DRIVER = 3299a266-15f0-4346-8318-716336736d3e {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UsbDeviceDxe/UsbDeviceDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UsbDeviceDxe/UsbDeviceDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UsbDeviceDxe/UsbDeviceDxe.efi
     SECTION UI = "UsbDeviceDxe"
   }
 
   FILE DRIVER = 11faed4c-b21f-4d88-8e48-c4c28a1e50df {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UsbPwrCtrlDxe/UsbPwrCtrlDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UsbPwrCtrlDxe/UsbPwrCtrlDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UsbPwrCtrlDxe/UsbPwrCtrlDxe.efi
     SECTION UI = "UsbPwrCtrlDxe"
   }
 
   FILE DRIVER = 5af77f10-90df-4e7e-8325-a17ec09d5443 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UsbMsdDxe/UsbMsdDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UsbMsdDxe/UsbMsdDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UsbMsdDxe/UsbMsdDxe.efi
     SECTION UI = "UsbMsdDxe"
   }
 
   FILE DRIVER = 94f8a6a7-dc34-4101-88c1-99179cceae83 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UsbfnDwc3Dxe/UsbfnDwc3Dxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UsbfnDwc3Dxe/UsbfnDwc3Dxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UsbfnDwc3Dxe/UsbfnDwc3Dxe.efi
     SECTION UI = "UsbfnDwc3Dxe"
   }
 
   FILE DRIVER = cd823a4d-7dec-4531-ae5d-4134fa4127b8 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UsbConfigDxe/UsbConfigDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UsbConfigDxe/UsbConfigDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UsbConfigDxe/UsbConfigDxe.efi
     SECTION UI = "UsbDeviceDxe"
   }
 
@@ -205,31 +205,31 @@ READ_LOCK_STATUS   = TRUE
   INF sdm845Pkg/SimpleFbDxe/SimpleFbDxe.inf
 
   FILE DRIVER = 0d35cd8e-97ea-4f9a-96af-0f0d89f76567 {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/UFSDxe/UFSDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/UFSDxe/UFSDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/UFSDxe/UFSDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/UFSDxe/UFSDxe.efi
     SECTION UI = "UFSDxe"
   }
   FILE DRIVER = 2a7b4bef-80cd-49e1-b473-374ba4d673fc {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/SPMI/SPMI.depex
-    SECTION PE32 = sdm845Pkg/Binary/SPMI/SPMI.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/SPMI/SPMI.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/SPMI/SPMI.efi
     SECTION UI = "SPMI"
   }
 
   FILE DRIVER = f541d663-4a48-40aa-aabf-ff158ccae34c {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/SmemDxe/SmemDxe.depex
-    SECTION PE32 = sdm845Pkg/Binary/SmemDxe/SmemDxe.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/SmemDxe/SmemDxe.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/SmemDxe/SmemDxe.efi
     SECTION UI = "SmemDxe"
   }
     
   FILE DRIVER = 10e193df-9966-44e7-b17c-59dd831e20fc {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/ChipInfo/ChipInfo.depex
-    SECTION PE32 = sdm845Pkg/Binary/ChipInfo/ChipInfo.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/ChipInfo/ChipInfo.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/ChipInfo/ChipInfo.efi
     SECTION UI = "ChipInfo"
   }
 
   FILE DRIVER = 7a32bd23-f735-4f57-aa1a-447d2fe3be0d {
-    SECTION DXE_DEPEX = sdm845Pkg/Binary/SPI/SPI.depex
-    SECTION PE32 = sdm845Pkg/Binary/SPI/SPI.efi
+    SECTION DXE_DEPEX = sdm845Pkg/Binary/polaris/SPI/SPI.depex
+    SECTION PE32 = sdm845Pkg/Binary/polaris/SPI/SPI.efi
     SECTION UI = "SPI"
   }
 
@@ -280,17 +280,17 @@ READ_LOCK_STATUS   = TRUE
 	  # SECTION RAW = sdm845Pkg/AcpiTables/minimal/FACP.aml
 	  # SECTION RAW = sdm845Pkg/AcpiTables/minimal/GTDT.aml
     # SECTION RAW = sdm845Pkg/AcpiTables/minimal/APIC.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/DBG2.aml
-	  SECTION RAW = sdm845Pkg/AcpiTables/test/DSDT.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/CSRT.aml
-	  SECTION RAW = sdm845Pkg/AcpiTables/test/FADT.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/FACS.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/GTDT.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/IORT.aml
-  	SECTION RAW = sdm845Pkg/AcpiTables/test/MCFG.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/MADT.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/PPTT.aml
-    SECTION RAW = sdm845Pkg/AcpiTables/test/TPM2.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/DBG2.aml
+	  SECTION RAW = sdm845Pkg/AcpiTables/testing/DSDT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/CSRT.aml
+	  SECTION RAW = sdm845Pkg/AcpiTables/testing/FADT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/FACS.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/GTDT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/IORT.aml
+  	SECTION RAW = sdm845Pkg/AcpiTables/testing/MCFG.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/MADT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/PPTT.aml
+    SECTION RAW = sdm845Pkg/AcpiTables/testing/TPM2.aml
 	  SECTION UI = "AcpiTables"
   }
 
diff --git a/sdm845Pkg/sdm845Pkg.dsc b/sdm845Pkg/sdm845Pkg.dsc
index eabc3b1..f691b7e 100644
--- a/sdm845Pkg/sdm845Pkg.dsc
+++ b/sdm845Pkg/sdm845Pkg.dsc
@@ -15,16 +15,6 @@
 # Defines Section - statements that will be processed to create a Makefile.
 #
 ################################################################################
-[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/sdm845Pkg.fdf
 
 !include sdm845Pkg/CommonDsc.dsc.inc
 
@@ -98,9 +88,7 @@
 
   gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"Alpha"
 
-  # System Memory (5GB)
   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x140000000
 
   # We only boot one processor here!
   gArmPlatformTokenSpaceGuid.PcdCoreCount|1
@@ -140,8 +128,6 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
   
   gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferAddress|0x9d400000
-  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferWidth|1080
-  gsdm845PkgTokenSpaceGuid.PcdMipiFrameBufferHeight|2248
 
   gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20