To support the removal of the DT in EDK2, we can parse the memory related information in TF-A and pass them to EDK2 through SMC.
Xiong Yining (1):
feat(qemu_sbsa): report the information of memory via SMC
plat/qemu/qemu_sbsa/sbsa_sip_svc.c | 84 +++++++++++++++++++++++++++++-
1 file changed, 83 insertions(+), 1 deletion(-)
--
2.34.1
Enable CPU cluster support on SbsaQemu platform, so that users can
specify a 4-level CPU hierarchy sockets/clusters/cores/threads. And this
topology can be passed to the firmware through DT cpu-map.
xiongyining1480 (2):
hw/arm/sbsa-ref:Enable CPU cluster on ARM sbsa machine
hw/arm/sbsa-ref: Add cpu-map to device tree
hw/arm/sbsa-ref.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
--
2.34.1
When SaSbQemu platform is configured with multi memory nodes, like
numa architecture, os will ignore any memory node in the device tree
except the first one.The kernel reads UEFI memory map for memory
information when booting via UEFI.However UEFI only allocates the
first memory node memory space for SbsaQemu platform, in this
scenario we can use the GCD services to add memory spaces
for high memory node.
Changes in v2:
- get the information of memory via SMC rather than FdtClientDxe.
- add a new driver rather than use HighMemDxe.
Xiong Yining (1):
SbsaQemu: add memory space for the high memory nodes
Platform/Qemu/SbsaQemu/SbsaQemu.dsc | 3 +-
Platform/Qemu/SbsaQemu/SbsaQemu.fdf | 1 +
.../SbsaQemuHighMemDxe/SbsaQemuHighMemDxe.inf | 43 ++++++
.../SbsaQemuHighMemDxe/SbsaQemuHighMemDxe.c | 133 ++++++++++++++++++
4 files changed, 179 insertions(+), 1 deletion(-)
create mode 100644 Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuHighMemDxe/SbsaQemuHighMemDxe.inf
create mode 100644 Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuHighMemDxe/SbsaQemuHighMemDxe.c
--
2.34.1
I have to skip tomorrow's (19th Dec) meeting. Zoom should allow to join
without me being present but I plan to have an alarm to be able to start
it in case of need.
SbsaQemu can configure with numa-related arguments, but OS cannot
identify the numa architecture without SRAT tables. We add supporting
for generating SRAT tables at runtime to solve this issue.
Changes in v2:
- get the information of numa via SMC calls rather than parse DT.
Changes in v3
- Considering the combination of CPU and memory nodes when counting
numa nodes.
Xiong Yining (1):
SbsaQemu: AcpiDxe: Create SRAT table at runtime
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 91 +++++++++++++++++++
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h | 28 ++++++
.../SbsaQemu/Include/Library/QemuSbsaSmc.h | 10 ++
.../Library/SbsaQemuSmc/SbsaQemuSmc.c | 31 +++++++
.../Library/SbsaQemuSmc/SbsaQemuSmc.inf | 1 +
5 files changed, 161 insertions(+)
--
2.34.1
We submit a patch in TF-A which is armed at reporting the information
of through SMC. Cooperating with that patch, we can get thecinformation
of memory in EDK2 via SMC calls.
Changes in v2:
- Align with the latest version.
- modify language and formatting errors.
Changes in v3:
- read the information of memory in SbsaQemuSmc.c.
Changes in v4:
- add DT fallback when SMC failed.
Xiong Yining (1):
SbsaQemu: get the information of memory form TF-A
Platform/Qemu/SbsaQemu/SbsaQemu.dsc | 2 +
.../Include/IndustryStandard/SbsaQemuSmc.h | 2 +
.../SbsaQemu/Include/Library/QemuSbsaSmc.h | 49 +++++++
.../Library/SbsaQemuLib/SbsaQemuLib.inf | 2 +-
.../Library/SbsaQemuLib/SbsaQemuMem.c | 52 ++-----
.../Library/SbsaQemuSmc/SbsaQemuSmc.c | 137 ++++++++++++++++++
.../Library/SbsaQemuSmc/SbsaQemuSmc.inf | 10 ++
Silicon/Qemu/SbsaQemu/SbsaQemu.dec | 3 +
8 files changed, 216 insertions(+), 41 deletions(-)
--
2.34.1
SbsaQemu can configure with numa-related arguments, but OS cannot
identify the numa architecture without SRAT tables. We add supporting
for generating SRAT tables at runtime to solve this issue.
Changes in v2:
- get the information of numa via SMC calls rather than parse DT.
Xiong Yining (1):
SbsaQemu: AcpiDxe: Create SRAT table at runtime
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 91 +++++++++++++++++++
.../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h | 28 ++++++
.../SbsaQemu/Include/Library/QemuSbsaSmc.h | 10 ++
.../Library/SbsaQemuSmc/SbsaQemuSmc.c | 22 +++++
.../Library/SbsaQemuSmc/SbsaQemuSmc.inf | 3 +
5 files changed, 154 insertions(+)
--
2.34.1