| #
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 ...
|
| #
fffde230 |
| 23-Jan-2025 |
Yann Gautier <yann.gautier@st.com> |
Merge changes from topic "xlnx_fix_plat_single_ret" into integration
* changes: fix(versal2): modify function to have single return fix(versal-net): modify function to have single return fix(v
Merge changes from topic "xlnx_fix_plat_single_ret" into integration
* changes: fix(versal2): modify function to have single return fix(versal-net): modify function to have single return fix(versal): modify function to have single return fix(xilinx): modify function to have single return fix(zynqmp): modify function to have single return fix(versal-net): add unsigned suffix to match data type fix(versal): add unsigned suffix to match data type fix(versal2): add missing curly braces fix(versal-net): add missing curly braces fix(zynqmp): add missing curly braces
show more ...
|
| #
fb2fdcd9 |
| 29-Oct-2024 |
Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com> |
fix(versal2): modify function to have single return
This corrects the MISRA violation C2012-15.5: A function should have a single point of exit at the end. Introduced a temporary variable to store t
fix(versal2): modify function to have single return
This corrects the MISRA violation C2012-15.5: A function should have a single point of exit at the end. Introduced a temporary variable to store the return value to ensure single return for the function.
Change-Id: Ib152831e84f5ead5b57fd713ebfedb1f3340a727 Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@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 ...
|