Go to file
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
.github ci: twister: Remove Blackbox artifacts 2024-04-09 16:57:32 +02:00
arch llext: xtensa: add support for in-place relocatable extensions 2024-04-11 11:35:24 -05:00
boards boards: added arduino pins to nrf5340 audio DK network core 2024-04-11 13:18:19 +02:00
cmake llext: add support for building relocatable ELF files 2024-04-11 11:35:24 -05:00
doc Network: L2: remove IPSP 2024-04-11 12:48:50 +02:00
drivers refactor: adjust spacing by clang formatting 2024-04-11 20:09:59 +02:00
dts kernel: Device deferred initialization 2024-04-11 15:50:44 -04:00
include/zephyr kernel: Device deferred initialization 2024-04-11 15:50:44 -04:00
kernel kernel: Device deferred initialization 2024-04-11 15:50:44 -04:00
lib lib: smf: check for NULL 2024-04-10 07:40:21 -04:00
misc
modules modules: hal_nordic: Extend SPI configuration for all instances 2024-04-11 14:30:31 +02:00
samples Network: L2: remove IPSP 2024-04-11 12:48:50 +02:00
scripts scripts: Add APP_LOG_LEVEL_DBG 2024-04-10 07:43:41 -04:00
share sysbuild: add SoC-specific sysbuild configuration 2024-04-10 17:53:24 +02:00
snippets bluetooth: nus: Change Kconfigs prefix to BT_ZEPHYR_NUS 2024-04-02 10:36:01 +03:00
soc soc: nxp: rw: add support for USBOTG controller 2024-04-11 09:09:00 +02:00
submanifests nxp: imx8: change CONFIG_SOC_<name> to match the value 2024-04-02 10:41:07 +03:00
subsys llext: add support for building relocatable ELF files 2024-04-11 11:35:24 -05:00
tests llext: add a relocatable extension test to Xtensa 2024-04-11 11:35:24 -05:00
.checkpatch.conf checkpatch: ignore EXPORT_SYMBOL 2024-04-05 12:19:36 +02:00
.clang-format Build System: clang-format: add K_SPINLOCK to FOR_EACH 2023-12-26 19:36:01 +00:00
.codecov.yml
.editorconfig
.gitattributes
.gitignore hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
.gitlint gitlint: do not allow treewide as an area in commit messages 2024-04-10 09:22:24 +02:00
.mailmap
.yamllint
CMakeLists.txt cmake: extensions: introduce zephyr_syscall_include_directories 2024-04-09 12:04:57 +02:00
CODE_OF_CONDUCT.md
CODEOWNERS drivers: ad559x: add i2c bus support 2024-04-01 12:18:47 -05:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr kconfig.zephyr: Remove ESP_IDF bootloader option 2024-04-08 09:16:41 -04:00
LICENSE
MAINTAINERS.yml boards: arduino: uno_r4_minima: Rename directory to uno_r4 2024-04-10 15:55:57 +02:00
README.rst
SDK_VERSION SDK_VERSION: Use Zephyr SDK 0.16.5-1 2024-03-12 08:54:42 -04:00
VERSION release: Zephyr v3.6.99 2024-02-23 22:28:57 -06:00
version.h.in version: cmake: kconfig: introduce extra <type>_VERSION_<x>_STRING 2024-02-01 10:28:43 +00:00
west.yml manifest: Update babblesim_ext_2G4_phy_v1 revision 2024-04-11 12:29:23 +02:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

Getting Started
---------------

  | 📖 `Zephyr Documentation`_
  | 🚀 `Getting Started Guide`_
  | 🙋🏽 `Tips when asking for help`_
  | 💻 `Code samples`_

Code and Development
--------------------

  | 🌐 `Source Code Repository`_
  | 📦 `Releases`_
  | 🤝 `Contribution Guide`_

Community and Support
---------------------

  | 💬 `Discord Server`_ for real-time community discussions
  | 📧 `User mailing list (users@lists.zephyrproject.org)`_
  | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_
  | 📬 `Other project mailing lists`_
  | 📚 `Project Wiki`_

Issue Tracking and Security
---------------------------

  | 🐛 `GitHub Issues`_
  | 🔒 `Security documentation`_
  | 🛡️ `Security Advisories Repository`_
  | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org

Additional Resources
--------------------
  | 🌐 `Zephyr Project Website`_
  | 📺 `Zephyr Tech Talks`_

.. _Zephyr Project Website: https://www.zephyrproject.org
.. _Discord Server: https://chat.zephyrproject.org
.. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: https://docs.zephyrproject.org
.. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html
.. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr
.. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases
.. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users
.. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel
.. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups
.. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html
.. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html
.. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security
.. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help
.. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks