Modern SOC platforms use more and more modular components out of the main SoC for various reasons (flexibility, OEM choice, price, or simply political governance or compliance).
As a result, various platforms end up either having:
- ADSP as an external SoC
- WDSP as an external SoC
- MPSS as an external SoC
- Or worse, two or all of these.
Windows BSP as made by Qualcomm and in general Windows needs PCIe links to be enabled and working prior to handing over control to the operating system. EDKII/Project Mu/UEFI provides the required plumbing to implement PCIe support in UEFI as well as test those links via apps that are standard and can be ran through EFI Shell.
Regardless of any driver presence (QCPPX is a mere link bandwidth adjust driver), this must work even with no driver.
We need to implement code somehow (by either reusing, or just doing it from scratch) to make PCI work on our UEFI otherwise core subsystems wont work on a few SoCs.
Modern SOC platforms use more and more modular components out of the main SoC for various reasons (flexibility, OEM choice, price, or simply political governance or compliance).
As a result, various platforms end up either having:
Windows BSP as made by Qualcomm and in general Windows needs PCIe links to be enabled and working prior to handing over control to the operating system. EDKII/Project Mu/UEFI provides the required plumbing to implement PCIe support in UEFI as well as test those links via apps that are standard and can be ran through EFI Shell.
Regardless of any driver presence (QCPPX is a mere link bandwidth adjust driver), this must work even with no driver.
We need to implement code somehow (by either reusing, or just doing it from scratch) to make PCI work on our UEFI otherwise core subsystems wont work on a few SoCs.