public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH edk2-non-osi 1/1] Qemu/Sbsa: update TF-A binaries to get needed SMC calls
@ 2024-03-14 14:17 Marcin Juszkiewicz
  0 siblings, 0 replies; 3+ messages in thread
From: Marcin Juszkiewicz @ 2024-03-14 14:17 UTC (permalink / raw)
  To: devel; +Cc: Leif Lindholm, Ard Biesheuvel, Marcin Juszkiewicz

We want to stop parsing DeviceTree (in EDK2) to gather hardware information.

Instead we ask TF-A for those details using SMC calls. On real hardware
platform it could be asking on-board Embedded Controller.

Hardware information (CPU, Memory) is now in SbsaQemuHardwareInfoLib together
with new code for handling SMC stuff. If TF-A answer to SMC call would be not
success then we go back to parsing DeviceTree data directly. There is no DT
parsing elsewhere.

This change brings TF-A with all changes needed for it.
---
 Platform/Qemu/Sbsa/Readme.md |  60 ++++++++++++++++-------------------
 Platform/Qemu/Sbsa/bl1.bin   | Bin 23029 -> 23365 bytes
 Platform/Qemu/Sbsa/fip.bin   | Bin 82722 -> 82722 bytes
 3 files changed, 28 insertions(+), 32 deletions(-)
 mode change 100644 => 100755 Platform/Qemu/Sbsa/bl1.bin

diff --git a/Platform/Qemu/Sbsa/Readme.md b/Platform/Qemu/Sbsa/Readme.md
index b8759403bf05..5ed05f0f3021 100644
--- a/Platform/Qemu/Sbsa/Readme.md
+++ b/Platform/Qemu/Sbsa/Readme.md
@@ -4,55 +4,51 @@ Qemu SBSA TF-A binaries
 These binaries have been created from the mainline TF-A
 code checked out at the following commit ID:
 
-commit 84de50c7d8ca416e504aedb228bb4cab6eed806f (HEAD -> master, origin/master, origin/integration, origin/HEAD)
-Merge: 1e038c94d 4796d2d9b
-Author: Olivier Deprez <olivier.deprez@arm.com>
-Date:   Tue Sep 19 18:15:12 2023 +0200
+commit f36faa71578a14a8c9910aaa57e761f0256ccd52 (HEAD -> master, origin/master, origin/integration, origin/HEAD)
+Merge: 8dad296d6 57ab6d897
+Author: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
+Date:   Tue Mar 12 19:17:49 2024 +0100
 
-    Merge "feat(ethos-n): update npu error handling" into integration
+    Merge "fix(cpus): fix a defect in Cortex-A715 erratum 2561034" into integration
 
 
 This ensures that the following features for qemu_sbsa platform are
 merged upstream and included in the build:
 
-commit 408cde8a59080ac2caa11c4d99474b2ef09f90df
+commit 42925c15bee09162c6dfc8c2204843ffac6201c1
 Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-Date:   Mon Sep 18 12:47:45 2023 +0200
+Date:   Tue Nov 21 14:53:26 2023 +0100
 
-    fix(qemu_sbsa): align FIP base to BL1 size
+    feat(qemu-sbsa): handle CPU information
 
-    RME patch series shown that we can build larger BL1 than we can run:
+    We want to remove use of DeviceTree from EDK2. So we move
+    functions to TF-A:
 
-    NOTICE:  Booting Trusted Firmware
-    NOTICE:  BL1: v2.9(debug):v2.9.0-736-g08548888a
-    NOTICE:  BL1: Built : 12:10:39, Sep 18 2023
-    INFO:    BL1: RAM 0x3ffee000 - 0x3fffb000
-    INFO:    BL1: Loading BL2
-    WARNING: Firmware Image Package header check failed.
+    - counting cpu cores
+    - checking NUMA node id
+    - checking MPIDR
 
-    RME pushed debug build BL1 over 0x8000 in size.
-    This exposed an error where FIP_BASE (supposed to be at BL1_SIZE offset
-    from start of flash) was actually 0x8000 and not 0x12000.
-    Make sure we have space for BL1 by deriving FIP_BASE from it.
+    And then it gets passed to EDK2 via SMC calls.
 
-    Note: this is a breaking change for edk2 FD image generation, which had
-    similarly hardcoded a 0x8000 offset. These images must be updated in
-    lock-step.
-
-    Change-Id: I8a1a85e82319945a4412c424467d818d5b6e4ecd
+    Change-Id: I1c7fc234ba90ba32433b6e4aa2cf127f26da00fd
     Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
 
-commit 408f9cb485796a73c5b87da70644665a13c685e4
-Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-Date:   Fri Sep 15 22:44:04 2023 +0200
+commit 8b7dd8397dd017b61ecda8447e8956a1d9d6d5d3
+Author: Xiong Yining <xiongyining1480@phytium.com.cn>
+Date:   Fri Jan 12 10:47:03 2024 +0000
 
-    feat(qemu): add "neoverse-n2" cpu support
+    feat(qemu-sbsa): handle memory information
 
-    Add support to qemu "neoverse-n2" cpu for "qemu" platform.
-    This one has 2^48 address space so will be used by both systems.
+    As a part of removing DeviceTree from EDK2, we move functions to TF-A:
+
+    - counting the number of memory nodes
+    - checking NUMA node id
+    - checking the memory address
+
+    Signed-off-by: Xiong Yining <xiongyining1480@phytium.com.cn>
+    Signed-off-by: Chen Baozi <chenbaozi@phytium.com.cn>
+    Change-Id: Ib7bce3a65c817a5b3bef6c9e0a459c7ce76c7e35
 
-    Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-    Change-Id: I9f0fa23a4934d9464379495225e08adc121325b4
 
 NOTE: No modifications to the source code have been done.
       The binaries have been generated for the AARCH64 platform
diff --git a/Platform/Qemu/Sbsa/bl1.bin b/Platform/Qemu/Sbsa/bl1.bin
old mode 100644
new mode 100755
index e436d077113b340c606069b575c0717775fa6d82..8eac6204b64be03036c6aabe84618a7c979e78e0
GIT binary patch
delta 7064
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

delta 6792
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

diff --git a/Platform/Qemu/Sbsa/fip.bin b/Platform/Qemu/Sbsa/fip.bin
index b187e786eccf656230b1f504eb2287330574c064..9a2d9d83853fd7498bc65bc7b9236d1260c966c6 100644
GIT binary patch
delta 16455
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

delta 14155
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
VG9tcGS1WQBzO7|5hOPF({{esm!07-0

-- 
2.44.0



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116752): https://edk2.groups.io/g/devel/message/116752
Mute This Topic: https://groups.io/mt/104927188/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [edk2-devel] [PATCH edk2-non-osi 1/1] Qemu/Sbsa: update TF-A binaries to get needed SMC calls
       [not found] <17BCA7402EE479C0.22340@groups.io>
@ 2024-03-14 14:21 ` Marcin Juszkiewicz
  2024-03-19 13:26   ` Ard Biesheuvel
  0 siblings, 1 reply; 3+ messages in thread
From: Marcin Juszkiewicz @ 2024-03-14 14:21 UTC (permalink / raw)
  To: devel; +Cc: Leif Lindholm, Ard Biesheuvel

W dniu 14.03.2024 o 15:17, Marcin Juszkiewicz via groups.io pisze:
> We want to stop parsing DeviceTree (in EDK2) to gather hardware information.
> 
> Instead we ask TF-A for those details using SMC calls. On real hardware
> platform it could be asking on-board Embedded Controller.
> 
> Hardware information (CPU, Memory) is now in SbsaQemuHardwareInfoLib together
> with new code for handling SMC stuff. If TF-A answer to SMC call would be not
> success then we go back to parsing DeviceTree data directly. There is no DT
> parsing elsewhere.
> 
> This change brings TF-A with all changes needed for it.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>

I really need to enable it to be automatic...


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116753): https://edk2.groups.io/g/devel/message/116753
Mute This Topic: https://groups.io/mt/104927188/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [edk2-devel] [PATCH edk2-non-osi 1/1] Qemu/Sbsa: update TF-A binaries to get needed SMC calls
  2024-03-14 14:21 ` [edk2-devel] [PATCH edk2-non-osi 1/1] Qemu/Sbsa: update TF-A binaries to get needed SMC calls Marcin Juszkiewicz
@ 2024-03-19 13:26   ` Ard Biesheuvel
  0 siblings, 0 replies; 3+ messages in thread
From: Ard Biesheuvel @ 2024-03-19 13:26 UTC (permalink / raw)
  To: Marcin Juszkiewicz; +Cc: devel, Leif Lindholm, Ard Biesheuvel

On Thu, 14 Mar 2024 at 15:21, Marcin Juszkiewicz
<marcin.juszkiewicz@linaro.org> wrote:
>
> W dniu 14.03.2024 o 15:17, Marcin Juszkiewicz via groups.io pisze:
> > We want to stop parsing DeviceTree (in EDK2) to gather hardware information.
> >
> > Instead we ask TF-A for those details using SMC calls. On real hardware
> > platform it could be asking on-board Embedded Controller.
> >
> > Hardware information (CPU, Memory) is now in SbsaQemuHardwareInfoLib together
> > with new code for handling SMC stuff. If TF-A answer to SMC call would be not
> > success then we go back to parsing DeviceTree data directly. There is no DT
> > parsing elsewhere.
> >
> > This change brings TF-A with all changes needed for it.
>
> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
>

Pushed as  476d087..0544808

Thanks,


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116894): https://edk2.groups.io/g/devel/message/116894
Mute This Topic: https://groups.io/mt/104927188/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-19 13:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <17BCA7402EE479C0.22340@groups.io>
2024-03-14 14:21 ` [edk2-devel] [PATCH edk2-non-osi 1/1] Qemu/Sbsa: update TF-A binaries to get needed SMC calls Marcin Juszkiewicz
2024-03-19 13:26   ` Ard Biesheuvel
2024-03-14 14:17 Marcin Juszkiewicz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox