|
1 | | -# EDK2 UEFI firmware for Qualcomm Snapdragon platforms |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | -## Description |
9 | | - |
10 | | -This repository aims to provide an usable EDK2 UEFI environment for modern Qualcomm SoCs. |
11 | | - |
12 | | -It can be used as a boot manager for multi-booting mainline Linux, Android and optionally Windows on certain SoCs. |
13 | | - |
14 | | -## User guide and documentations |
15 | | - |
16 | | -Please visit [Renegade Project Wiki](https://wiki.renegade-project.cn/) |
17 | | - |
18 | | -## Acknowledgements |
19 | | -- Gustave Monce and his [SurfaceDuoPkg](https://github.com/WOA-Project/SurfaceDuoPkg) |
20 | | -- [DuoWoa Project](https://github.com/WOA-Project) |
21 | | -- [EFIDroid](https://github.com/efidroid) |
22 | | -- [Ben (Bingxing) Wang](https://github.com/imbushuo/) |
23 | | -- [Lumia950XLPkg](https://github.com/WOA-Project/Lumia950XLPkg) |
24 | | -- BigfootACA and his [SimpleInit](https://github.com/BigfootACA/simple-init) and [LinuxSimpleMassStorage](https://github.com/BigfootACA/linux-simple-mass-storage) |
25 | | -- fxsheep and his original edk2-sagit |
26 | | -- All the developers and members of [Renegade Project](https://github.com/edk2-porting/) for offering efforts, equipments, valuable documents and more |
27 | | -## License |
28 | | -All code except drivers in GPLDriver directory are licensed under BSD 2-Clause. GPL Drivers are licensed under GPLv2 license. |
| 1 | +# EDK2-MSM port for Xiaomi Poco F5 (SM7475 / Marble) |
| 2 | + |
| 3 | +This project aims to port EDK2-based UEFI firmware to the **Xiaomi Poco F5**, which is based on the **Snapdragon 7+ Gen 2 (SM7475)** SoC. |
| 4 | +The port is based on prior support for SM8475 SoCs from the [EDK2-MSM](https://github.com/edk2-porting/edk2-msm) project. |
| 5 | + |
| 6 | +--- |
| 7 | + |
| 8 | +## Status |
| 9 | + |
| 10 | +| Component | Status | |
| 11 | +|------------------|----------------| |
| 12 | +| Firmware Build | Successful | |
| 13 | +| CoreDXE Boot | Stable(?) | |
| 14 | +| UART Output | Not working | |
| 15 | +| Display Output | Black screen | |
| 16 | +| USB Debug (Gadget)| Not tested | |
| 17 | +| Vibration Output | Not tested | |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## What Has Been Done |
| 22 | + |
| 23 | +### 1. Platform Bring-up |
| 24 | +- Cloned and renamed SM8475 support to `Platform/Xiaomi/sm7475/`. |
| 25 | +- Renamed and configured `.dsc`, `.fdf`, `.dec`, and other files for `sm7475` & `marble`. |
| 26 | + |
| 27 | +### 2. `.dsc` Configuration |
| 28 | +- Updated: |
| 29 | + - `PcdSystemMemorySize` to match actual RAM. |
| 30 | + - `PcdCoreCount`, `PcdClusterCount` using `cpuinfo`. |
| 31 | + - Memory base addresses using `iomem`. |
| 32 | +- Added: |
| 33 | + - `SerialPortLib` → `QcomGeniSerialPortLib` |
| 34 | + - UART base address: `0x894000` |
| 35 | + |
| 36 | +### 3. Apriori Drivers |
| 37 | +Manually extracted and included crucial DXE drivers: |
| 38 | +- `SmemDxe`, `DalSysDxe`, `HwIODxe` |
| 39 | +- `ChipInfoDxe`, `ClockDxe`, `PMICDxe`, `PlatformInfoDxe`, etc. |
| 40 | + |
| 41 | +### 4. Platform Library Modifications (`Silicon/Qualcomm/sm7475/Library/`) |
| 42 | +- **PlatformMemoryMapLib**: |
| 43 | + - Adjusted MMIO/heap regions to avoid memory violations. |
| 44 | +- **PlatformPrePiLib**: |
| 45 | + - Confirmed UART initialization is in place. |
| 46 | +- **marble.dec**: |
| 47 | + - Added: |
| 48 | + ```ini |
| 49 | + gEfiMdePkgTokenSpaceGuid.PcdUartBaseAddress|UINT32|0x894000|0 |
| 50 | + ``` |
| 51 | +### Planned Next Steps |
| 52 | +Test USB Gadget Console: |
| 53 | + |
| 54 | + Enable ConfigFS or g_serial from firmware (if possible). |
| 55 | + |
| 56 | + Attempt to log using dmesg | grep usb or detect /dev/ttyGS0. |
0 commit comments