Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Carlo Caione 7483e43f0c devicetree: Add 'zephyr,memory-attr' and DT helpers
The 'zephyr,memory-region-mpu' property was addede gqas a
convenient way to create and configure MPU regions using information
coming from DT. It has been used a lot since it was introduced so I
guess we can consider it a Zephyr success story ™ .

Unfortunately it has been proved to be a bit limited and with some
important limitations:

1. It was introduced as a property of the compatible
   zephyr,memory-region that is used to create linker regions and
   sections from DT data. This means that we can actually create MPU
   regions only for DT-defined regions and sections.
2. The naming is unfortunate because it is implying that it is used only
   for MPU.
3. It is misplaced being in include/zephyr/linker/devicetree_regions.h
   and still it has nothing to do with the linker at all.
4. It is exporting a function called LINKER_DT_REGION_MPU that again has
   nothing to do with the linker.

Point (1) is also particularly limiting because it is preventing us to
characterize memory regions that are not generated using the
'zephyr,memory-region' compatible, like generic mmio-sram regions.

While we fix all the issues, we also want to extend a bit the range of
usefulness of this property. We are renaming it 'zephyr,memory-attr' and
it is now carrying information about the type of memory the property is
attached to (cacheable, non-cacheable, IO, eXecutable, etc...). The user
can use this property and the DT API coming with it to act on the memory
node it is accompanied by.

We are still providing the DT_MEMORY_ATTR_APPLY() macro that can be used
to create the MPU regions as before, but we are adding also a
DT_MEMORY_ATTR_FOREACH_NODE() macro that can be used to cycle through
the memory nodes and act on those.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2023-07-25 11:22:10 +02:00
.github doc: move requirements to doc/ 2023-07-12 09:13:49 -04:00
arch xtensa: set no optimization for arch_cpu_idle() with xt-clang 2023-07-24 11:07:30 -04:00
boards dts: arm: nuvoton: move power-states to soc dts files 2023-07-25 09:16:14 +02:00
cmake cmake: Fix code relocation functions with absolute paths 2023-07-10 12:05:00 +02:00
doc devicetree: Add 'zephyr,memory-attr' and DT helpers 2023-07-25 11:22:10 +02:00
drivers i2c: Applied clang-format to i2c_gecko.c 2023-07-25 10:44:47 +02:00
dts devicetree: Add 'zephyr,memory-attr' and DT helpers 2023-07-25 11:22:10 +02:00
include/zephyr devicetree: Add 'zephyr,memory-attr' and DT helpers 2023-07-25 11:22:10 +02:00
kernel kernel/kheap: move to timepoint API 2023-07-25 09:12:26 +02:00
lib pthread: facilitate dynamically allocated thread stacks 2023-07-24 12:59:43 -04:00
misc
modules tfm: Fix help text for crypto key module functionality 2023-07-25 09:15:32 +02:00
samples boards: arm: mimxrt1060_evk: enable PXP rotation for LVGL sample 2023-07-25 09:10:52 +02:00
scripts dts: gen_defines: generate `_ORD_STR_SORTABLE` 2023-07-25 09:13:16 +02:00
share
snippets
soc soc: silabs_exx32: define an empty pm_state_exit_post_ops 2023-07-25 10:43:33 +02:00
submanifests
subsys Bluetooth: adv: add USE_NRPA advertising option 2023-07-25 10:47:37 +02:00
tests devicetree: Add 'zephyr,memory-attr' and DT helpers 2023-07-25 11:22:10 +02:00
.checkpatch.conf
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore scripts: ci: check_compliance: add a no-modules Kconfig check 2023-07-05 09:11:02 +02:00
.gitlint
.mailmap
.yamllint
CMakeLists.txt cmake/compiler: Add linker_script compiler property 2023-07-06 11:43:09 +02:00
CODEOWNERS drivers: ipm: added IPM over IVSHMEM driver 2023-07-20 10:44:57 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr kconfig: expand the CLEANUP_INTERMEDIATE_FILES symbol description 2023-07-19 20:46:51 -04:00
LICENSE
MAINTAINERS.yml MAINTAINERS: Add bbilas as LED collaborator 2023-07-25 09:15:56 +02:00
README.rst
VERSION
version.h.in
west.yml west.yml: update hal_espressif to fix Wi-Fi label redeclaration 2023-07-25 09:14:45 +02:00
zephyr-env.cmd
zephyr-env.sh

README.rst

.. 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:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help