Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to and extend zephyr,memory-attr #60049

Merged
merged 3 commits into from
Jul 25, 2023

Commits on Jul 18, 2023

  1. 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>
    carlocaione committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    c0a3cc0 View commit details
    Browse the repository at this point in the history
  2. dts: Move to 'zephyr,memory-attr'

    Move to 'zephyr,memory-attr' and use the newly introduced helpers.
    
    Signed-off-by: Carlo Caione <ccaione@baylibre.com>
    carlocaione committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    6ab7a17 View commit details
    Browse the repository at this point in the history
  3. doc: release: Add DT changes

    Add DT changes to the 3.5 release notes.
    
    Signed-off-by: Carlo Caione <ccaione@baylibre.com>
    carlocaione committed Jul 18, 2023
    Configuration menu
    Copy the full SHA
    cd4542d View commit details
    Browse the repository at this point in the history