/Zephyr-Core-3.5.0/doc/kernel/memory_management/ |
D | demand_paging.rst | 8 conceptually divided in page-sized page frames as regions to hold data. 10 * When the processor tries to access data and the data page exists in 11 one of the page frames, the execution continues without any interruptions. 13 * When the processor tries to access the data page that does not exist 14 in any page frames, a page fault occurs. The paging code then brings in 15 the corresponding data page from backing store into physical memory if 16 there is a free page frame. If there is no more free page frames, 17 the eviction algorithm is invoked to select a data page to be paged out, 18 thus freeing up a page frame for new data to be paged in. If this data 19 page has been modified after it is first paged in, the data will be [all …]
|
/Zephyr-Core-3.5.0/kernel/include/ |
D | mmu.h | 19 * At present, page frame management is only done for main system RAM, 60 * Macros and data structures for physical page frame accounting, 69 /** This page contains critical kernel data and will never be swapped */ 72 /** This physical page is reserved by hardware; we will never use it */ 76 * This physical page is mapped to some virtual memory address 78 * Currently, we just support one mapping per page frame. If a page frame 84 * This page frame is currently involved in a page-in/out operation 89 * This page frame has a clean copy in the backing store 94 * Data structure for physical page frames 96 * An array of these is instantiated, one element per physical RAM page. [all …]
|
D | kernel_arch_interface.h | 257 * will be established. If the page tables already had mappings installed 260 * If the target architecture supports multiple page sizes, currently 261 * only the smallest page size will be used. 269 * Architectures are expected to pre-allocate page tables for the entire 279 * @param virt Page-aligned Destination virtual address to map 280 * @param phys Page-aligned Source physical address to map 281 * @param size Page-aligned size of the mapped memory region in bytes 290 * When this completes, the relevant page table entries will be updated as 293 * page tables. 302 * and it is not necessary to free any paging structures. Empty page tables [all …]
|
/Zephyr-Core-3.5.0/subsys/bluetooth/mesh/ |
D | large_comp_data_srv.c | 48 uint8_t page; in handle_large_comp_data_get() local 56 page = bt_mesh_comp_parse_page(buf); in handle_large_comp_data_get() 59 LOG_DBG("page %u offset %u", page, offset); in handle_large_comp_data_get() 62 net_buf_simple_add_u8(&rsp, page); in handle_large_comp_data_get() 65 if (atomic_test_bit(bt_mesh.flags, BT_MESH_COMP_DIRTY) && page < 128) { in handle_large_comp_data_get() 69 err = bt_mesh_comp_read(&temp_buf, page); in handle_large_comp_data_get() 71 LOG_ERR("Could not read comp data p%d, err: %d", page, err); in handle_large_comp_data_get() 85 total_size = bt_mesh_comp_page_size(page); in handle_large_comp_data_get() 89 err = bt_mesh_comp_data_get_page(&rsp, page, offset); in handle_large_comp_data_get() 91 LOG_ERR("Could not read comp data p%d, err: %d", page, err); in handle_large_comp_data_get() [all …]
|
D | large_comp_data_cli.c | 42 uint8_t page; in data_status() local 50 page = net_buf_simple_pull_u8(buf); in data_status() 55 rsp->page = page; in data_status() 69 .page = page, in data_status() 126 static int data_get(uint16_t net_idx, uint16_t addr, uint32_t op, uint32_t status_op, uint8_t page, in data_get() argument 139 net_buf_simple_add_u8(&msg, page); in data_get() 145 int bt_mesh_large_comp_data_get(uint16_t net_idx, uint16_t addr, uint8_t page, in bt_mesh_large_comp_data_get() argument 149 page, offset, rsp); in bt_mesh_large_comp_data_get() 152 int bt_mesh_models_metadata_get(uint16_t net_idx, uint16_t addr, uint8_t page, in bt_mesh_models_metadata_get() argument 156 page, offset, rsp); in bt_mesh_models_metadata_get()
|
/Zephyr-Core-3.5.0/include/zephyr/sys/ |
D | mem_manage.h | 77 * Note that when demand paging is active, these will only work with page 109 /** Number of page faults */ 112 /** Number of page faults with IRQ locked */ 115 /** Number of page faults with IRQ unlocked */ 119 /** Number of page faults while in ISR */ 171 /* TODO add assertion that this page is pinned to boot mapping, in z_mem_phys_addr() 189 /* TODO add assertion that this page frame is pinned to boot mapping, in z_mem_virt_addr() 208 * This function alters the active page tables in the area reserved 226 * It is highly discouraged to use this function to map system RAM page 251 * This function alters the active page tables in the area reserved [all …]
|
/Zephyr-Core-3.5.0/drivers/mm/ |
D | mm_drv_common.h | 24 * is assumed to be page aligned. 26 * @param virt Page-aligned virtual address 36 * @brief Test if address is page-aligned 40 * @retval true if page-aligned 41 * @retval false if not page-aligned 49 * @brief Test if address is page-aligned 53 * @retval true if page-aligned 54 * @retval false if not page-aligned 62 * @brief Test if size is page-aligned 66 * @retval true if page-aligned [all …]
|
/Zephyr-Core-3.5.0/arch/x86/include/ |
D | x86_mmu.h | 40 #define MMU_PWT BITL(3) /** Page Write Through */ 41 #define MMU_PCD BITL(4) /** Page Cache Disable */ 44 #define MMU_PS BITL(7) /** Page Size (non PTE)*/ 45 #define MMU_PAT BITL(7) /** Page Attribute (PTE) */ 60 /* Page fault error code flags. See Chapter 4.7 of the Intel SDM vol. 3A. */ 61 #define PF_P BIT(0) /* 0 Non-present page 1 Protection violation */ 73 * Dump out page table entries for a particular virtual memory address 78 * @param ptables Page tables to walk 84 * Fetch the page table entry for a virtual memory address 88 * @param val Value stored in page table entry, with address and flags [all …]
|
/Zephyr-Core-3.5.0/include/zephyr/xen/ |
D | memory.h | 11 * Add mapping for specified page frame in Xen domain physmap. 17 * @param gpfn page frame where the source mapping page should appear. 24 * Add mapping for specified set of page frames to Xen domain physmap. 31 * @param size number of page frames being mapped. 33 * @param gpfns array of page frames where the mapping should appear. 42 * Removes page frame from Xen domain physmap. 44 * @param domid domain id, whose page is going to be removed. For unprivileged 46 * @param gpfn page frame number, that needs to be removed 52 * Populate specified Xen domain page frames with memory. 58 * @param nr_extents number of page frames being populated. [all …]
|
D | gnttab.h | 12 * Assigns gref and permits access to 4K page for specific domain. 15 * @param gfn - guest frame number of page, where grant will be located 33 * Allocates 4K page for grant and share it via returned 44 * Provides interface to acquire free page, that can be used for 48 * @return - pointer to page start address, that can be used as host_addr 54 * Releases provided page, that was used for mapping foreign grant frame, 57 * @param page_addr - pointer to start address of used page. 67 * also per-page status will be set in map_ops[i].status (GNTST_*) 69 * To map foreign frame you need 4K-aligned 4K memory page, which will be 77 * each page, that was successfully unmapped. [all …]
|
/Zephyr-Core-3.5.0/include/zephyr/drivers/mm/ |
D | system_mm.h | 64 * @brief Map one physical page into the virtual address space 66 * This maps one physical page into the virtual address space. 68 * is assumed to be page aligned. 75 * @param virt Page-aligned destination virtual address to map 76 * @param phys Page-aligned source physical address to map 90 * are assumed to be page aligned. 97 * @param virt Page-aligned destination virtual address to map 98 * @param phys Page-aligned source physical address to map 99 * @param size Page-aligned size of the mapped memory region in bytes 114 * are assumed to be page aligned. [all …]
|
/Zephyr-Core-3.5.0/doc/hardware/arch/ |
D | x86.rst | 9 This page contains information on certain aspects when developing for 15 During very early boot, page tables are loaded so technically the kernel 36 possible as the page table generation script 38 at the page directory level, in addition to mapping virtual addresses 40 the entries for identity mapping at the page directory level are 45 is done at the page directory level, there is no need to allocate 46 additional space for the page table. However, additional space may 47 still be required for additional page directory table. 52 required as the entries in page directory table will be cleared. 58 (Page Directory Pointer) covers 1GB of memory. For example: [all …]
|
/Zephyr-Core-3.5.0/drivers/flash/ |
D | flash_stm32g0x.c | 110 int page; in erase_page() local 131 page = offset / STM32G0_FLASH_PAGE_SIZE; in erase_page() 136 /* big page-nr w/o swap or small page-nr w/ swap indicate bank2 */ in erase_page() 137 if ((page >= STM32G0_PAGES_PER_BANK) != swap_enabled) { in erase_page() 138 page = (page % STM32G0_PAGES_PER_BANK) + STM32G0_BANK2_START_PAGE_NR; in erase_page() 140 LOG_DBG("Erase page %d on bank 2", page); in erase_page() 142 page = page % STM32G0_PAGES_PER_BANK; in erase_page() 144 LOG_DBG("Erase page %d on bank 1", page); in erase_page() 148 /* Set the PER bit and select the page you wish to erase */ in erase_page() 151 tmp |= ((page << FLASH_CR_PNB_Pos) & FLASH_CR_PNB_Msk); in erase_page() [all …]
|
/Zephyr-Core-3.5.0/subsys/demand_paging/eviction/ |
D | Kconfig | 7 prompt "Page frame eviction algorithms" 18 bool "Not Recently Used (NRU) page eviction algorithm" 20 This implements a Not Recently Used page eviction algorithm. 22 When a page frame needs to be evicted, the algorithm will prefer to 23 evict page frames using an ascending order of priority: 38 pages that are capable of being paged out. At eviction time, if a page
|
D | nru.c | 13 /* The accessed and dirty states of each page frame are used to create 14 * a hierarchy with a numerical value. When evicting a page, try to evict 15 * page with the highest value (we prefer clean, not accessed pages). 36 /* Clear accessed bit in page tables */ in nru_periodic_update() 63 /* Implies a mismatch with page frame ontology and page in k_mem_paging_eviction_select() 67 "non-present page, %s", in k_mem_paging_eviction_select() 73 /* If we find a not accessed, clean page we're done */ in k_mem_paging_eviction_select() 85 /* Shouldn't ever happen unless every page is pinned */ in k_mem_paging_eviction_select() 86 __ASSERT(last_pf != NULL, "no page to evict"); in k_mem_paging_eviction_select()
|
/Zephyr-Core-3.5.0/subsys/bluetooth/mesh/shell/ |
D | large_comp_data.c | 25 "%s [0x%04x]: page: %u offset: %u total size: %u", msg, addr, rsp->page, in status_print() 36 uint8_t page; in cmd_large_comp_data_get() local 42 page = shell_strtoul(argv[1], 0, &err); in cmd_large_comp_data_get() 51 bt_mesh_shell_target_ctx.dst, page, offset, &rsp); in cmd_large_comp_data_get() 63 uint8_t page; in cmd_models_metadata_get() local 69 page = shell_strtoul(argv[1], 0, &err); in cmd_models_metadata_get() 78 bt_mesh_shell_target_ctx.dst, page, offset, &rsp); in cmd_models_metadata_get() 86 SHELL_CMD_ARG(large-comp-data-get, NULL, "<page> <offset>", cmd_large_comp_data_get, 3, 0), 87 SHELL_CMD_ARG(models-metadata-get, NULL, "<page> <offset>", cmd_models_metadata_get, 3, 0),
|
/Zephyr-Core-3.5.0/dts/bindings/mtd/ |
D | gd,gd32-nv-flash-v2.yaml | 21 description: Max erase time(millisecond) of a flash page 23 bank0-page-size: 26 description: Flash memory page size for bank0 28 bank1-page-size: 31 description: Flash memory page size for bank1
|
/Zephyr-Core-3.5.0/kernel/ |
D | Kconfig.vm | 28 this for non-pinned page frames). 42 page tables are in use, they all have the same virtual-to-physical 54 in page tables, the equation: 70 how much total memory can be used for page tables. 111 hex "Size of smallest granularity MMU page" 115 support multiple page sizes, put the smallest one here. 127 bool "Allow interrupts during page-ins/outs" 131 latency, but any code running in interrupt context that page faults 137 If this option is disabled, the page fault servicing logic 139 ISRs may also page fault. [all …]
|
D | mmu.c | 25 * - A page frame is a page-sized physical memory region in RAM. It is a 26 * container where a data page may be placed. It is always referred to by 29 * every page frame. 31 * - A data page is a page-sized region of data. It may exist in a page frame, 33 * up in the CPU's page tables (or equivalent) by virtual address. 38 /* Spinlock to protect any globals in this file and serialize page table 44 * General page frame management 47 /* Database of all RAM page frames */ 57 /* Add colors to page table dumps to indicate mapping type */ 147 * purposes and does not otherwise affect page frame accounting or flags; [all …]
|
/Zephyr-Core-3.5.0/include/zephyr/bluetooth/mesh/ |
D | large_comp_data_cli.h | 26 /** Page number. */ 27 uint8_t page; member 28 /** Offset within the page. */ 30 /** Total size of the page. */ 94 * This API is used to read a portion of a Composition Data Page. 106 * @param page Composition Data Page to read. 107 * @param offset Offset within the Composition Data Page. 113 int bt_mesh_large_comp_data_get(uint16_t net_idx, uint16_t addr, uint8_t page, 118 * This API is used to read a portion of a Models Metadata Page. 130 * @param page Models Metadata Page to read. [all …]
|
/Zephyr-Core-3.5.0/samples/subsys/usb/webusb/ |
D | README.rst | 5 Receive and echo data from a web page using WebUSB API. 18 based web application (web page) running in the browser at host. 44 This sample application requires the latest Google Chrome, a web page 46 http server running on localhost to serve the web page. 49 only to secure origins. This means the web page/site that is used to 56 #. Implement a web app (web page) using WebUSB API and run 62 This sample web page demonstrates how to create and use a WebUSB 66 There are two ways to access this sample page: 70 * Host the demo page locally: Start a web server 83 to open demo page. [all …]
|
/Zephyr-Core-3.5.0/arch/xtensa/core/ |
D | xtensa_mmu.c | 18 /* Fixed data TLB way to map the page table */ 24 /* Level 1 contains page table entries 25 * necessary to map the page table itself. 29 /* Level 2 contains page table entries 30 * necessary to map the page table itself. 40 * Level 1 page table has to be 4Kb to fit into one of the wired entries. 48 * covering a 4Kb page. 131 uint32_t page, *table; in map_memory_range() local 133 for (page = start; page < end; page += CONFIG_MMU_PAGE_SIZE) { in map_memory_range() 134 uint32_t pte = Z_XTENSA_PTE(page, Z_XTENSA_KERNEL_RING, attrs); in map_memory_range() [all …]
|
/Zephyr-Core-3.5.0/doc/ |
D | 404.rst | 5 Sorry, Page Not Found 14 Sorry, the page you requested was not found on this site. 20 document.write("<p>Sorry, the page you requested: " + 24 document.write("<p>Sorry, the page you requested was not found on this site.</p>") 31 It's also possible we've removed or renamed the page you're looking for. 33 Please try using the navigation links on the left of this page to navigate
|
/Zephyr-Core-3.5.0/arch/x86/core/ |
D | userspace.c | 15 /* Update the to the incoming thread's page table, and update the location of 21 * active page tables are the kernel's page tables. If the incoming thread is 28 * switching page tables. 48 __ASSERT(ptables_phys != 0, "NULL page tables for thread %p\n", in z_x86_swap_update_page_tables() 113 * Unconditionally page in the stack instead of in arch_user_mode_enter() 114 * relying on page fault to speed up a little bit in arch_user_mode_enter() 117 * Note that this also needs to page in the reserved in arch_user_mode_enter() 118 * portion of the stack (which is usually the page just in arch_user_mode_enter() 131 /* With hardware stack protection, the first page of stack in arch_user_mode_enter() 132 * is a guard page. So need to skip it. in arch_user_mode_enter()
|
D | x86_mmu.c | 30 * partitions to page tables when the partitions are removed. 43 * page table bit effecting the policy and also the backup bit. 51 * - If the entire entry is zero, it's an un-mapped virtual page 52 * - If PTE_ZERO is set, we flipped this page due to KPTI 53 * - Otherwise, this was a page-out 65 * sure all memory mappings are the same across all page tables when invoking 121 /* Page Map Level 4 */ 132 /* Page Directory Pointer Table */ 147 /* Page Directory */ 163 /* Page Table */ [all …]
|