/Zephyr-latest/tests/subsys/mem_mgmt/mem_attr_heap/boards/ |
D | qemu_cortex_m3.overlay | 2 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 3 #include <zephyr/dt-bindings/memory-attr/memory-attr-sw.h> 6 mem_cache: memory@20008000 { 7 compatible = "zephyr,memory-region", "mmio-sram"; 9 zephyr,memory-region = "MEM_CACHEABLE"; 10 zephyr,memory-attr = <( DT_MEM_CACHEABLE )>; 13 mem_cache_sw: memory@20009000 { 14 compatible = "zephyr,memory-region", "mmio-sram"; 16 zephyr,memory-region = "MEM_CACHEABLE_SW"; 17 zephyr,memory-attr = <( DT_MEM_CACHEABLE | DT_MEM_SW_ALLOC_CACHE )>; [all …]
|
/Zephyr-latest/tests/lib/shared_multi_heap/boards/ |
D | mps2_an521_cpu0.overlay | 7 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 8 #include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 11 /delete-node/ memory@38000000; 13 ssram2_3: memory@38000000 { 14 compatible = "zephyr,memory-region", "mmio-sram"; 16 zephyr,memory-region = "SSRAM2_3"; 19 res0: memory@38100000 { 20 compatible = "zephyr,memory-region", "mmio-sram"; 22 zephyr,memory-region = "RES0"; 23 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; [all …]
|
D | qemu_cortex_a53.overlay | 7 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 8 #include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 12 res0: memory@42000000 { 13 compatible = "zephyr,memory-region", "mmio-sram"; 15 zephyr,memory-region = "RES0"; 16 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; 19 res1: memory@43000000 { 20 compatible = "zephyr,memory-region", "mmio-sram"; 22 zephyr,memory-region = "RES1"; 23 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; [all …]
|
/Zephyr-latest/include/zephyr/app_memory/ |
D | mem_domain.h | 22 * @defgroup mem_domain_apis Memory domain APIs 31 * @brief Statically declare a memory partition 45 * @brief Memory Partition 47 * A memory partition is a region of memory in the linear address space 52 * underlying memory management hardware; arbitrary values are unlikely 56 /** start address of memory partition */ 58 /** size of memory partition */ 60 /** attribute of memory partition */ 65 * @brief Memory Domain 67 * A memory domain is a collection of memory partitions, used to represent [all …]
|
/Zephyr-latest/doc/kernel/memory_management/ |
D | slabs.rst | 3 Memory Slabs 6 A :dfn:`memory slab` is a kernel object that allows memory blocks 7 to be dynamically allocated from a designated memory region. 8 All memory blocks in a memory slab have a single fixed size, 10 and avoiding memory fragmentation concerns. 19 Any number of memory slabs can be defined (limited only by available RAM). Each 20 memory slab is referenced by its memory address. 22 A memory slab has the following key properties: 30 * A **buffer** that provides the memory for the memory slab's blocks. 33 The memory slab's buffer must be aligned to an N-byte boundary, where [all …]
|
D | sys_mem_blocks.rst | 3 Memory Blocks Allocator 6 The Memory Blocks Allocator allows memory blocks to be dynamically 7 allocated from a designated memory region, where: 9 * All memory blocks have a single fixed size. 17 buffer (unlike memory slab). This allows the buffer to reside in 18 memory regions where these can be powered down to conserve energy. 27 Any number of Memory Blocks Allocator can be defined (limited only by 28 available RAM). Each allocator is referenced by its memory address. 30 A memory blocks allocator has the following key properties: 38 * A **buffer** that provides the memory for the memory slab's blocks. [all …]
|
D | virtual_memory.rst | 3 Virtual Memory 6 Virtual memory (VM) in Zephyr provides developers with the ability to fine tune 7 access to memory. To utilize virtual memory, the platform must support 8 Memory Management Unit (MMU) and it must be enabled in the build. Due to 9 the target of Zephyr mainly being embedded systems, virtual memory 15 between physical and virtual memory address spaces, if demand paging 20 Basic virtual memory support does not utilize secondary storage to 21 extend usable memory. The maximum usable memory is the same as 22 the physical memory. 25 secondary storage as a backing store for virtual memory, thus [all …]
|
/Zephyr-latest/include/zephyr/sys/ |
D | mem_blocks.h | 10 * @brief Memory Blocks Allocator 31 * @defgroup mem_blocks_apis Memory Blocks APIs 37 * @brief Memory Blocks Allocator 42 * @brief Multi Memory Blocks Allocator 49 * @brief Memory Blocks Allocator 56 * @brief Multi Memory Blocks Allocator 61 * @brief Multi memory blocks allocator choice function 64 * a specific memory blocks allocator based on the opaque cfg value, 72 * @param group Multi memory blocks allocator structure. 97 /* Memory block buffer */ [all …]
|
/Zephyr-latest/include/zephyr/drivers/mm/ |
D | mm_drv_bank.h | 9 * @brief Memory Banks Driver APIs 11 * This contains generic APIs to be used by a system-wide memory management 12 * driver to track page usage within memory banks. 26 * @brief Memory Banks Driver APIs 27 * @defgroup mm_drv_bank_apis Memory Banks Driver APIs 29 * This contains APIs for a system-wide memory management driver to 30 * track page usage within memory banks. 40 * @brief Information about memory banks. 54 * @brief Initialize a memory bank's data structure 56 * The driver may wish to track various information about the memory banks [all …]
|
D | system_mm.h | 9 * @brief Memory Management Driver APIs 11 * This contains APIs for a system-wide memory management 27 * @brief Memory Management Driver APIs 28 * @defgroup mm_drv_apis Memory Management Driver APIs 30 * This contains APIs for a system-wide memory management 83 * @name Memory Mapping and Unmapping 85 * On mapping and unmapping of memory. 97 * The memory range itself is never accessed by this operation. 113 * @brief Map a region of physical memory into the virtual address space 115 * This maps a region of physical memory into the virtual address space. [all …]
|
/Zephyr-latest/doc/services/mem_mgmt/ |
D | index.rst | 3 Memory Attributes 6 It is possible in the devicetree to mark the memory regions with attributes by 7 using the ``zephyr,memory-attr`` property. This property and the related memory 12 and explained in :zephyr_file:`include/zephyr/dt-bindings/memory-attr/memory-attr.h`. 14 For example, to mark a memory region in the devicetree as non-volatile, cacheable, 19 mem: memory@10000000 { 22 zephyr,memory-attr = <( DT_MEM_NON_VOLATILE | DT_MEM_CACHEABLE | DT_MEM_OOO )>; 27 The ``zephyr,memory-attr`` usage does not result in any memory region 29 devicetree defined memory region, it is possible to use the compatible 30 :dtcompatible:`zephyr,memory-region` that will result (only when supported [all …]
|
/Zephyr-latest/boards/nordic/nrf54h20dk/ |
D | nrf54h20dk_nrf54h20-memory_map.dtsi | 6 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 9 reserved-memory { 10 cpurad_ram0x_region: memory@2f010000 { 11 compatible = "nordic,owned-memory"; 19 cpusec_cpurad_ipc_shm: memory@0 { 23 cpurad_cpusec_ipc_shm: memory@800 { 28 cpuapp_ram0x_region: memory@2f011000 { 29 compatible = "nordic,owned-memory"; 37 cpusec_cpuapp_ipc_shm: memory@0 { 41 cpuapp_cpusec_ipc_shm: memory@800 { [all …]
|
/Zephyr-latest/boards/nordic/nrf9280pdk/ |
D | nrf9280pdk_nrf9280-memory_map.dtsi | 6 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 9 reserved-memory { 14 cpurad_ram0x_region: memory@2f011000 { 15 compatible = "nordic,owned-memory"; 23 cpusec_cpurad_ipc_shm: memory@0 { 27 cpurad_cpusec_ipc_shm: memory@800 { 32 cpuapp_ram0x_region: memory@2f012000 { 33 compatible = "nordic,owned-memory"; 41 cpusec_cpuapp_ipc_shm: memory@0 { 45 cpuapp_cpusec_ipc_shm: memory@800 { [all …]
|
/Zephyr-latest/tests/subsys/mem_mgmt/mem_attr_heap/src/ |
D | main.c | 10 #include <zephyr/dt-bindings/memory-attr/memory-attr-sw.h> 38 * Allocate 0x100 bytes of cacheable memory. in ZTEST() 41 zassert_not_null(block, "Failed to allocate memory"); in ZTEST() 44 * Check that the just allocated memory was allocated from the correct in ZTEST() 45 * memory region. in ZTEST() 49 "Memory allocated from the wrong region"); in ZTEST() 52 * Allocate 0x100 bytes of non-cacheable memory. in ZTEST() 55 zassert_not_null(block, "Failed to allocate memory"); in ZTEST() 58 * Check that the just allocated memory was allocated from the correct in ZTEST() 59 * memory region. in ZTEST() [all …]
|
/Zephyr-latest/lib/mem_blocks/ |
D | Kconfig | 5 menu "Memory Blocks" 8 bool "(Yet Another) Memory Blocks Allocator" 10 This enables support for memory block allocator where: 11 () All memory blocks have a single fixed size. 17 the associated buffer (unlike memory slab). This allows 18 the buffer to reside in memory regions where these can be 22 bool "Memory Blocks Allocator event notifications" 26 This allows application to listen for memory blocks allocator 27 events, such as memory allocation and de-allocation. 30 bool "Memory blocks runtime statistics" [all …]
|
/Zephyr-latest/modules/lz4/ |
D | Kconfig | 15 int "Lz4 memory usage" 19 Increasing memory usage improves compression ratio, but usually at the 20 cost of speed, due to cache locality. Memory usage 2^value (10 -> 1KB, 24 bool "Disable dynamic memory allocation" 26 Disable lz4 functions that use dynamic memory allocation functions. 29 prompt "How stateless compression functions allocate memory for their hash table" 33 bool "in memory stack" 35 Allocate memory from stack (fastest). 38 bool "in memory heap" 41 Allocate memory from heap (requires malloc()). [all …]
|
/Zephyr-latest/tests/subsys/mem_mgmt/mem_attr/ |
D | app.overlay | 6 #include <zephyr/dt-bindings/memory-attr/memory-attr.h> 7 #include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h> 10 mem_ram: memory@10000000 { 11 compatible = "vnd,memory-attr"; 13 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_FLASH) | DT_MEM_NON_VOLATILE )>; 16 mem_ram_nocache: memory@20000000 { 17 compatible = "vnd,memory-attr"; 19 zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>; 22 mem_ram_disabled: memory@30000000 { 23 compatible = "vnd,memory-attr"; [all …]
|
/Zephyr-latest/include/zephyr/mem_mgmt/ |
D | mem_attr_heap.h | 11 * @brief Memory heaps based on memory attributes 12 * @defgroup memory_attr_heap Memory heaps based on memory attributes 24 * @brief Init the memory pool 26 * This must be the first function to be called to initialize the memory pools 27 * from all the memory regions with the a software attribute. 36 * @brief Allocate memory with a specified attribute and size. 38 * Allocates a block of memory of the specified size in bytes and with a 40 * correct memory heap to allocate memory from. 42 * @param attr capability / attribute requested for the memory block. 45 * @retval ptr a valid pointer to the allocated memory. [all …]
|
/Zephyr-latest/kernel/ |
D | Kconfig.mem_domain | 6 menu "Memory Domains" 9 int "Maximum number of partitions per memory domain" 14 Configure the maximum number of partitions per memory domain. 21 architecture-specific data is needed on a per memory domain basis. 25 when a memory domain is created. 27 Typical uses might be a set of page tables for that memory domain. 34 modifying a memory domain's partitions at runtime, or changing 35 a memory domain's thread membership requires synchronous calls 47 members of memory domains, they have no implications on supervisor 48 thread access to memory. Memory domain APIs may only be invoked from [all …]
|
/Zephyr-latest/include/zephyr/linker/ |
D | devicetree_regions.h | 7 * Generate memory regions from devicetree nodes. 18 * @brief Get the linker memory-region name in a token form 20 * This attempts to use the zephyr,memory-region property (with 28 * sram1: memory@2000000 { 29 * zephyr,memory-region = "MY_NAME"; 31 * sram2: memory@2001000 { 32 * zephyr,memory-region = "MY@OTHER@NAME"; 46 * @return the name of the memory memory region the node will generate 52 * @brief Get the linker memory-region name 54 * This attempts to use the zephyr,memory-region property (with [all …]
|
/Zephyr-latest/include/zephyr/drivers/misc/ft8xx/ |
D | ft8xx_common.h | 22 * @brief FT8xx functions to write and read memory 29 * @brief Write 1 byte (8 bits) to FT8xx memory 31 * @param address Memory address to write to 37 * @brief Write 2 bytes (16 bits) to FT8xx memory 39 * @param address Memory address to write to 45 * @brief Write 4 bytes (32 bits) to FT8xx memory 47 * @param address Memory address to write to 53 * @brief Read 1 byte (8 bits) from FT8xx memory 55 * @param address Memory address to read from 57 * @return Value read from memory [all …]
|
/Zephyr-latest/include/zephyr/multi_heap/ |
D | shared_multi_heap.h | 34 * of memory regions with different capabilities / attributes (cacheable, 39 * can be used by drivers or applications to request memory with certain 45 * framework using @ref shared_multi_heap_pool_init and add the memory 49 * - Each memory region encoded in a @ref shared_multi_heap_region structure. 54 * - When a driver or application needs some dynamic memory with a certain 56 * version) to request the memory by using the opaque parameter to select 57 * the correct set of attributes for the needed memory. The framework will 58 * take care of selecting the correct heap (thus memory region) to carve 59 * memory from, based on the opaque parameter and the runtime state of the 60 * heaps (available memory, heap state, etc...) [all …]
|
/Zephyr-latest/include/zephyr/debug/ |
D | gdbstub.h | 18 /* Access permissions for memory regions */ 29 /** Describe one memory region */ 31 /** Start address of a memory region */ 34 /** End address of a memory region */ 37 /** Memory region attributes */ 54 * Memory region descriptions used for GDB memory access. 56 * This array specifies which region of memory GDB can access 58 * memory read/write in GDB stub to memory that can be 59 * legally accessed without resulting in memory faults. 64 * Number of Memory Regions. [all …]
|
/Zephyr-latest/doc/kernel/usermode/ |
D | memory_domain.rst | 3 Memory Protection Design 6 Zephyr's memory protection design is geared towards microcontrollers with MPU 7 (Memory Protection Unit) hardware. We do support some architectures, such as x86, 8 which have a paged MMU (Memory Management Unit), but in that case the MMU is 15 There are a few different levels on how memory access is configured when 16 Zephyr memory protection features are enabled, which we will describe here: 18 Boot Time Memory Configuration 24 - Any configuration of memory regions which need to have special caching or 26 MPUs have the concept of a default memory access policy map, which can be 27 enabled as a "background" mapping for any area of memory that doesn't [all …]
|
/Zephyr-latest/tests/lib/devicetree/memory_region_flags/ |
D | app.overlay | 11 compatible = "zephyr,memory-region"; 13 zephyr,memory-region = "TEST_REGION_R"; 14 zephyr,memory-region-flags = "r"; 18 compatible = "zephyr,memory-region"; 20 zephyr,memory-region = "TEST_REGION_NRWXAIL"; 21 zephyr,memory-region-flags = "!rwxail"; 25 compatible = "zephyr,memory-region"; 27 zephyr,memory-region = "TEST_REGION_NO_FLAGS"; 31 compatible = "zephyr,memory-region"; 33 zephyr,memory-region = "TEST_REGION_NONE"; [all …]
|