soc: intel_adsp/ace: linker: align cpuhold_* variables

For some weird unknown reasons, the simulator really do not
like the cpuhold_* variables to be tightly packed together.
This results in cpuhold_spawned not being updated, and we
will be stuck in the while loop for it to be set.
Workaround this by explicitly aligning these variables on
16 byte boundary. This seems to work for now.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
Daniel Leung 2025-04-09 12:13:55 -07:00 committed by Benjamin Cabé
commit 58b035b85f

View file

@ -505,6 +505,24 @@ SECTIONS {
.bss SEGSTART_UNCACHED (NOLOAD) :
{
_bss_start = .;
#if defined(CONFIG_ZTEST) && defined(CONFIG_SIMULATOR_XTENSA)
/* For some weird unknown reasons, the simulator really do not
* like these cpuhold_* variables to be tightly packed together.
* This results in cpuhold_spawned not being updated, and we
* will be stuck in the while loop for it to be set.
* Workaround by explicitly aligning these variables.
*/
. = ALIGN(16);
*:ztest.c.obj(.bss.cpuhold_sem)
. = ALIGN(16);
*:ztest.c.obj(.bss.cpuhold_active)
. = ALIGN(16);
*:ztest.c.obj(.bss.cpuhold_spawned)
. = ALIGN(16);
*:ztest.c.obj(.bss.cpuhold_pool_items)
#endif /* CONFIG_ZTEST && CONFIG_SIMULATOR_XTENSA */
*(.dynsbss)
*(.sbss)
*(.sbss.*)