zephyr/include
Carlo Caione 0f9406277d aarch64: pm_cpu_ops: Introduce pm_cpu_ops subsystem
AArch64 has support for PSCI. This is especially useful for SMP because
PSCI is used to power on the secordary cores.

When the PSCI driver was introduced in Zephyr it was designed to rely on
a very PSCI-centric subsystem / interface.

There are two kinds of problems with this choice:

1. PSCI is only defined for the non-secure world and it is designed to
   boot CPU cores into non-secure state (that means that PSCI is only
   supposed to work if Zephyr is running in non-secure state)

2. There can be other ways or standards used to start / stop a core
   different from PSCI

This patch is trying to fix the original wrong assumption by making the
interface / subsystem a generic one, called 'pm_cpu_ops', and using PSCI
only as an actual driver that is a user of this new interface /
subsystem.

For now the new subsystem is only exposing two methods: cpu_on and
cpu_off, others will probably follow according to the needs.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2021-03-04 06:53:19 -05:00
..
app_memory kernel: move thread definitions to thread.h 2021-01-13 18:18:42 -05:00
arch aarch64: Rewrite reset code using C 2021-03-04 06:51:48 -05:00
audio audio: dmic: fix compile error on arm gcc 8 2021-02-16 15:29:16 +03:00
bluetooth Bluetooth: host: Document not waiting for TX context from sys workqueue 2021-03-03 11:55:51 +01:00
canbus subsys: canopen: Add a wrapper to avoid passing device to CO_init 2020-09-02 13:48:13 +02:00
cmsis_rtos_v1
cmsis_rtos_v2
console device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
crypto device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
data doc: fix @param usage in callbacks 2020-12-18 12:18:28 +01:00
debug debug: coredump: remove z_ prefix for stuff used outside subsys 2021-01-21 22:08:59 -05:00
devicetree devicetree: deprecate DT_IO_CHANNELS_LABEL APIs 2021-03-02 11:28:30 -06:00
dfu modules: introduce MCUBOOT_BOOTUTIL module 2021-01-14 18:03:38 +01:00
disk device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
display device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
drivers aarch64: pm_cpu_ops: Introduce pm_cpu_ops subsystem 2021-03-04 06:53:19 -05:00
dt-bindings driver: sensor: npcx: add tachometer sensor support. 2021-02-22 17:56:19 -05:00
fs include/fs: fixed typo in fs_file_t_init() description 2021-02-05 07:32:20 -05:00
ipc ipc: RPMsg service to register multiple endpoints 2021-01-19 22:07:09 +01:00
kernel kernel: Add new k_thread_abort()/k_thread_join() 2021-02-24 16:39:15 -05:00
linker device: add post-process of elf file to manage device handles 2021-02-19 15:46:16 -05:00
logging logging: Cleaning up log minimal 2021-02-28 17:12:29 -05:00
lorawan lorawan: add callback for datarate changes 2021-02-28 16:36:57 -05:00
mgmt doc: fix @param usage in callbacks 2020-12-18 12:18:28 +01:00
net ppp: add net events for PPP dead and running 2021-03-03 15:56:13 +02:00
posix include/posix: fix extern "C" placement 2020-10-13 10:05:30 -05:00
power power: constraints: Update constraint documentation 2021-02-15 08:08:36 -05:00
random
settings
shell shell: add getopt library support 2021-03-01 09:50:32 -05:00
stats
storage storage/flash_map: Added function for get erased byte value 2020-10-30 15:53:38 +01:00
sys sys: tell compiler about impossible aliasing in dlist APIs 2021-03-02 19:39:24 -05:00
timing timing: do not repeatedly do init()/start()/stop() 2020-11-11 23:55:49 -05:00
toolchain xcc: define __INT*_C() and __UINT*_C() 2021-02-05 07:45:07 -05:00
tracing
usb usb: hid: remove usb_hid_descriptor from public header 2021-02-28 16:50:24 -05:00
zephyr zephyr: introduce z_max_align_t 2020-11-17 11:44:16 +02:00
cache.h cache: libmetal: Redirect sys_cache_flush() 2021-01-19 14:31:02 -05:00
device.h device.h: Add macro API to get a devicename from a devicetree node 2021-02-28 17:12:04 -05:00
devicetree.h devicetree: add DT_NODE_FULL_NAME() 2021-02-25 19:24:08 -06:00
ec_host_cmd.h include: remove enum build assert 2020-10-02 11:44:39 +02:00
emul.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
exc_handle.h
fatal.h
generated_dts_board.h license: add missing SPDX headers 2021-02-11 08:05:16 -05:00
init.h device: deprecate DEVICE_AND_API_INIT 2021-01-12 08:31:12 -06:00
irq_nextlevel.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
irq_offload.h irq: Change offload API to take a constant parameter 2020-09-02 13:48:13 +02:00
irq.h irq: document requirement that irq_lock/unlock provides a memory barrier 2021-01-26 13:42:17 -05:00
kernel_includes.h kernel: move thread definitions to thread.h 2021-01-13 18:18:42 -05:00
kernel_structs.h kernel: Remove abort and join implementation (UNBISECTABLE) 2021-02-24 16:39:15 -05:00
kernel_version.h
kernel.h include: kernel: fix checkpatch line spacing warning 2021-03-03 20:06:00 -05:00
mempool_heap.h kernel: Remove z_mem_pool wrapper internals 2020-12-07 21:50:14 -05:00
ptp_clock.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
sched_priq.h
shared_irq.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
spinlock.h kernel: fix usage of KERNEL_COHERENCE macro 2021-02-03 10:42:04 -05:00
sw_isr_table.h irq: Change dynamic API to take a constant parameter 2020-09-02 13:48:13 +02:00
sys_clock.h api: add C++ friendly version of Z_TIMEOUT_TICKS. 2021-01-20 09:23:20 -05:00
syscall_handler.h kernel: Cleanup logger setup in kernel files 2020-11-27 09:56:34 -05:00
syscall.h
timeout_q.h kernel: timer: update _timeout API for const correctness 2020-10-02 11:29:14 +02:00
toolchain.h ARC: toolchain: handle difference in macros for MWDT and ARC GNU 2020-09-05 10:22:56 -05:00
wait_q.h
zephyr.h