From: strongtz 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