zephyr/soc/xtensa
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
..
esp32 soc: esp32: add support for GDB stub 2021-11-30 15:24:00 -05:00
esp32s2 soc: esp32s2: fix: data cache setup 2021-12-03 16:45:16 -06:00
intel_adsp soc/intel_adsp: Remove interrupt masking from secondary core startup 2021-12-07 12:09:02 -05:00
intel_s1000 soc/intel_s1000: Add new cAVS shim & IDC interfaces 2021-12-07 12:06:21 -05:00
nxp_adsp soc: xtensa: adsp: add support for NXP ADSP for i.MX8MP 2021-10-20 19:08:50 -04:00
sample_controller linker: align _image_text_start/end/size linker symbols name 2021-08-28 08:48:03 -04:00
CMakeLists.txt soc/xtensa/intel_adsp: Upstream updates 2020-10-21 06:38:53 -04:00