zephyr/soc
Andy Ross 43d1d15da8 soc/intel_adsp: Remove interrupt masking from secondary core startup
There is some legacy code that tries to mask IDC interrupts when
starting up cores.  This is there because the IDC interrupt is both
the system IPI when Zephyr is running (and can thus be signaled
asynchronously to the code calling arch_start_cpu()) and the messaging
protocol to the boot ROM on the other CPU.  So the idea is that we
mask interrupts after startup so nothing is confused.

But that's needless in the current architecture.  We maintain a
synchronized cpus_active[] record that will show true/active for any
CPU between the end of its SMP startup sequence and the beginning of
the shutdown process in soc_halt_cpu(), and false at all other times.
An IPI will never be sent to a CPU that is running in the boot ROM,
because such a CPU will be flagged as inactive.  Likewise a ROM
startup IDC will never be sent to a CPU running Zephyr code for the
converse reason.  Remove all that code.

Unfortunately SOF itself still needs an interrupt unmask step at CPU
startup, because it's still doing its own masking (probably according
to the same algorithm that we imported).  Leave that in place as a
minimal workaround until we get that fixed upstream.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-12-07 12:09:02 -05:00
..
arc soc: arc: fix ARC_HAS_ACCL_REGS settings 2021-12-02 11:32:14 -06:00
arm drivers: counter: NXP SNVS rtc: Add support for NXP imx SNVS RTC 2021-12-07 09:45:43 -06:00
arm64 xenvm: switch to Xen PV console instead of PL011 SBSA 2021-10-29 15:23:33 +02:00
nios2
posix posix: Add missing include 2021-04-27 13:17:36 -04:00
riscv soc: it8xxx2: cleanup: Obsolete PS/2 registers definitions removal 2021-12-01 13:50:27 -06:00
sparc
x86 bluetooth: remove Kconfig options CONFIG_BT_*_ON_DEV_NAME 2021-08-25 18:05:17 -04:00
xtensa soc/intel_adsp: Remove interrupt masking from secondary core startup 2021-12-07 12:09:02 -05:00
Kconfig kconfig: soc and shield cleanup 2021-06-11 16:13:22 +02:00