zephyr/doc
Carlo Caione b91d21d32c dt: mpu: Generate MPU regions from DT nodes
Currently the only way for a BOARD/SOC to configure at compile time the
MPU regions is to add, in a soc-specific file, the 'mpu_config' struct
adding static entries for the new regions with the needed attributes
(cacheable, non-cacheable, etc...). This exported struct is then read by
the MPU driver at boot time and used to properly setup the MPU regions.

At the same time it is now possible to introduce new memory regions in
the DT using the newly introduced 'zephyr,memory-region' attribute.

What is missing is the link between these two solutions: that is how to
declare the memory regions in the DT and automatically configure these
regions in the MPU with the correct attributes.

This patch is trying to address exactly this problem.

It is now possible to declare the memory regions in the DT and define
the MPU attributes for the regions using the 'zephyr,memory-region-mpu'
property. When this new property is present together with the
'zephyr,memory-region' property and a the 'zephyr,memory-region'
compatible, the 'mpu_config' struct is automatically extended at
compile-time to host the DT defined regions with the correct MPU
attributes.

So for example in the DT we can now have:

       sram_cache: memory@20200000 {
                compatible = "zephyr,memory-region", "mmio-sram";
                reg = <0x20200000 0x100000>;
                zephyr,memory-region = "SRAM_CACHE";
                zephyr,memory-region-mpu = "RAM";
        };

and a new region will be created called "SRAM_CACHE" and a new MPU
region will be configure at boot time with the attribute
"REGION_RAM_ATTR".

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2022-04-05 11:16:31 +02:00
..
_doxygen everywhere: fix typos 2022-03-18 13:24:08 -04:00
_extensions/zephyr everywhere: fix typos 2022-03-18 13:24:08 -04:00
_scripts everywhere: fix typos 2022-03-18 13:24:08 -04:00
_static doc: fix figure style CSS selector 2022-03-25 15:05:27 -07:00
_templates doc: add a toctree with reference material 2021-11-02 13:24:40 +01:00
application everywhere: fix typos 2022-03-18 13:24:08 -04:00
contribute doc: contribute: coding guidelines: add links to CAN inclusive language 2022-03-25 10:41:59 +01:00
development_process everywhere: fix typos 2022-03-18 13:24:08 -04:00
getting_started doc: getting_started: Add instructions for multi-platform Zephyr SDK 2022-03-29 11:14:29 +02:00
guides dt: mpu: Generate MPU regions from DT nodes 2022-04-05 11:16:31 +02:00
images doc: remove unused images 2021-07-19 20:06:00 -04:00
introduction doc: mention MIPS architecture support 2022-01-24 17:11:42 -05:00
reference doc: networking: net_mgmt: s/net_mgmt_notify/net_mgmt_event_notify 2022-04-04 11:15:00 +02:00
releases Bluetooth: Host: Add const to bt_conn_index 2022-03-30 11:32:08 +02:00
security everywhere: fix typos 2022-03-18 13:24:08 -04:00
templates
404.rst doc: fix 404 page 2021-05-19 16:48:39 -04:00
CMakeLists.txt doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
conf.py doc: enable sphinx-copybutton extension 2022-03-25 15:05:13 -07:00
copyright.rst
glossary.rst doc: use :kconfig:option: domain role 2022-03-02 09:28:37 +01:00
index-tex.rst doc: create an index for PDF files 2021-07-15 07:07:21 -04:00
index.rst doc: add a toctree with reference material 2021-11-02 13:24:40 +01:00
kconfig.rst doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
known-warnings.txt doc: warnings: make expressions more generic 2021-05-19 06:21:53 -04:00
LICENSING.rst docs: Change a number of 'master' branch refers to 'main' 2021-05-28 10:45:17 -05:00
Makefile doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
substitutions.txt
zephyr.doxyfile.in drivers: pwm: improve some Doxygen aspects 2022-04-01 21:26:34 +02:00