| #
90cdb049 |
| 27-Oct-2025 |
Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com> |
feat(versal2): support alternate core as primary (non-cpu0)
Primary core was hardcoded to CPU0, causing a panic when another core booted first. Update logic to allow any booting core to become the p
feat(versal2): support alternate core as primary (non-cpu0)
Primary core was hardcoded to CPU0, causing a panic when another core booted first. Update logic to allow any booting core to become the primary and gate secondary core startup inline to existing implementation for secondary cores.
Change-Id: I6a5d76f23d4d4c4139d95bbaf55edf1244f2dbfe Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>
show more ...
|
| #
d2244f32 |
| 25-Jul-2025 |
Prasad Kummari <prasad.kummari@amd.com> |
fix(versal2): move plat_core_pos_by_mpidr to asm
In the current implementation, plat_core_pos_by_mpidr() is defined in C.When BL31 is compiled with Armclang, a call to plat_core_pos_by_mpidr() from
fix(versal2): move plat_core_pos_by_mpidr to asm
In the current implementation, plat_core_pos_by_mpidr() is defined in C.When BL31 is compiled with Armclang, a call to plat_core_pos_by_mpidr() from plat_my_core_pos() results in the return address stored in register x30 becoming invalid and register x9 (used later) ends up with the value 0x0. Consequently, the CPU branches to address 0x0, triggering a synchronous exception. TF-A then invokes the BHB flush code before resuming execution. However, since the stack is not properly initialized at this stage, the system eventually enters plat_panic_handler(). In the updated implementation, the platform_get_core_pos() function is redefined in assembly to provide tighter control during early boot stages. The MPIDR_EL1 register contains three affinity levels: Aff0 (bits [0:7]), Aff1 (bits [8:15]), and Aff2 (bits [16:23]). In this assembly function, the core ID is extracted from Aff1 (MPIDR_AFF1_SHIFT), and the cluster ID from Aff2 (MPIDR_AFF2_SHIFT). cluster/core ID calculation. The macro PLATFORM_MPIDR_AFFINITY_MASK introduced to mask MPIDR_EL1 register.
Change-Id: Id532bbcd68f18e87ceba01c8f961d8c15962a1a3 Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| #
c97857db |
| 05-Jun-2024 |
Amit Nagal <amit.nagal@amd.com> |
feat(versal2): add support for AMD Versal Gen 2 platform
New SoC is a78 based with gicv3 and uart over pl011. Communication interfaces are similar to Versal NET platform. System starts with AMD PLM
feat(versal2): add support for AMD Versal Gen 2 platform
New SoC is a78 based with gicv3 and uart over pl011. Communication interfaces are similar to Versal NET platform. System starts with AMD PLM firmware which loads TF-A(bl31) to memory, which is already configured, and jumps to it. PLM also prepare handoff structure for TF-A with information what components were load and flags which indicate which EL level SW should be started.
Change-Id: I5065b1b7ec4ee58e77dc4096747758480c84009c Signed-off-by: Amit Nagal <amit.nagal@amd.com> Signed-off-by: Akshay Belsare <akshay.belsare@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com>
show more ...
|