zephyr/kernel
Ederson de Souza eeebb4d911 kernel: Device deferred initialization
Currently, all devices are initialized at boot time (following their
level and priority order). This patch introduces deferred
initialization: by setting the property `zephyr,deferred-init` on a
device on the devicetree, Zephyr will not initialized the device.

To initialize such devices, one has to call `device_init()`.

Deferred initialization is done by grouping all deferred devices on a
different ELF section. In this way, there's no need to consume more
memory to keep track of deferred devices. When `device_init()` is
called, Zephyr will scan the deferred devices section and call the
initialization function for the matching device. As this scanning is
done only during deferred device initialization, its cost should be
bearable.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2024-04-11 15:50:44 -04:00
..
include kernel: add options to cleanup after aborting current thread 2024-04-10 07:44:27 -04:00
paging
CMakeLists.txt kernel: move nothread support to own file 2024-04-06 14:22:08 +03:00
Kconfig kernel: add the ability to memory map thread stacks 2024-04-10 07:44:27 -04:00
Kconfig.device
Kconfig.obj_core
Kconfig.smp
Kconfig.vm
atomic_c.c
banner.c kernel: banner: use BUILD_VERSION only if not empty 2024-04-04 23:47:33 +02:00
busy_wait.c
compiler_stack_protect.c
condvar.c
cpu_mask.c
device.c
dynamic.c
dynamic_disabled.c
errno.c
events.c
fatal.c
float.c
futex.c
idle.c
init.c kernel: Device deferred initialization 2024-04-11 15:50:44 -04:00
ipi.c kernel: rename sliceable -> thread_is_sliceable 2024-04-01 18:47:36 -04:00
irq_offload.c
kheap.c
mailbox.c kernel: Clean up mailbox async msg configuration 2024-04-09 11:05:55 +02:00
main_weak.c
mem_domain.c
mem_slab.c
mempool.c
mmu.c kernel: mm: introduce k_mem_phys_map()/_unmap() 2024-04-10 07:44:27 -04:00
msg_q.c
mutex.c kernel: move thread related helper function kthread.h 2024-04-01 18:47:36 -04:00
nothread.c kernel: move nothread support to own file 2024-04-06 14:22:08 +03:00
obj_core.c
pipes.c
poll.c
priority_queues.c
queue.c
sched.c kernel: add options to cleanup after aborting current thread 2024-04-10 07:44:27 -04:00
sem.c
smp.c
spinlock_validate.c
stack.c
system_work_q.c
thread.c kernel: add the ability to memory map thread stacks 2024-04-10 07:44:27 -04:00
thread_monitor.c
timeout.c kernel: timeout: Optimize setting next alarm 2024-04-09 13:55:07 -04:00
timer.c
timeslicing.c kernel: thread: rename is_preempt 2024-04-01 18:47:36 -04:00
usage.c
userspace.c
userspace_handler.c
version.c
work.c
xip.c