summaryrefslogtreecommitdiff
path: root/libcpu/aarch64/common/mmu.c
AgeCommit message (Collapse)Author
2025-10-21[aarch64] Fix rt_aspace_init error when KERNEL_VADDR_START >= 0x80000000Siwei Xu
2025-10-10[CPU/AARCH64] 增加 libcpu/aarch64 KERNEL_ASPACE_START 配置 #10757zhangyan
针对不同的 Aarch64 BSP 针对 KERNEL_VADDR_START 宏定义进行区分
2025-07-04[CPU/AARCH64] Fixup MMUGuEe-GUI
1. Configure the kernel default vaddr by RAM and TEXT offset. 2. Check the p_addr 2M align when set the stride in `rt_hw_mmu_map`. Signed-off-by: GuEe-GUI <[email protected]>
2025-04-13libcpu: aarch64: Fix NORMAL_NOCACHE_MEM attr (#10180)mouch6131
Signed-off-by: Cliff Chen <[email protected]> Signed-off-by: mouch6131 <[email protected]> Co-authored-by: Cliff Chen <[email protected]>
2025-02-25feat: mm: added affinity pages allocatorShell
This patch introduces a tagged pages allocator to address the existing problems of page aliasing on specific platforms and the requirement of page coloring. It implements an affinity-id aware page manager by separating the runtime page list into two types: a normal single linked-list and a multi-dimensional affinity-list. Changes: - Introduced tagged pages allocator and managing algorithm for affinity pages list - Modified components to support affinity-id list management - Updated page allocation and freeing functions to handle tagged pages - Added configuration options for page affinity block size and debugging - Modified mmap and elf loading to respect affinity settings - Enhanced page list management to support multi-dimensional affinity-list Signed-off-by: Shell <[email protected]>
2024-12-13feat: arm64: mmu: auto-sensing of best paging strideShell
Improves the memory mapping process by dynamically selecting the optimal paging stride (4K or 2M) based on virtual address alignment and mapping size. This eliminates the need for upfront stride determination, enhancing flexibility and maintainability in memory management. Changes: - Replaced fixed stride selection logic with a dynamic decision loop. - Removed `npages` calculation and replaced with `remaining_sz` to track unprocessed memory size. - Added assertions to ensure `size` is properly aligned to the smallest page size. - Adjusted loop to dynamically determine and apply the appropriate stride (4K or 2M) for each mapping iteration. - Updated virtual and physical address increments to use the dynamically selected stride. Signed-off-by: Shell <[email protected]>
2024-11-24feat: arm64 ASID supportShell
Support for ARM64 ASID to enhance virtual memory management efficiency by reducing the need for TLB flushes during address space switches. These changes improve performance especially for multi-process systems. Changes: - Added `ARCH_USING_ASID` configuration in `libcpu/aarch64/Kconfig`. - Defined ASID-related constants in `mmu.h`. - Updated `TLBI_ARG` macro to include ASID manipulation. - Implemented ASID allocation mechanism with spinlock synchronization. - Enhanced TLB invalidation to support ASID-specific operations. - Modified `rt_hw_aspace_switch` to use ASIDs when switching address spaces. - Adjusted debug logging and function documentation to reflect ASID usage. - Refactored AArch64 MMU and TLB handling for ASID integration. Signed-off-by: Shell <[email protected]>
2024-11-17[libcpu] fix No memory higher than 1 GB is mappedzhujiale
2024-06-26[libcpu][aarch64]mmu log fixup (#9078)zms123456
mmu log fixup
2024-06-26[libcpu][aarch64]memory setup using memblock (#9092)zms123456
* memory setup using memblock * map pages later
2024-05-08[libcpu/arm64] dealing with mem region out of kernel space (#8847)Shell
* [ofw] dealing with mem region out of kernel space - Fix parameter checking in _out_of_range() that NULL is excluded for fixed mapping - Split page install with a deferred stage to avoid mapping over ARCH_EARLY_MAP_SIZE Signed-off-by: Shell <[email protected]> * fixup: restrict vstart for using of RT_NULL --------- Signed-off-by: Shell <[email protected]>
2024-04-11[bsp/rpi4] fixup startup failure (#8754)Shell
[bsp/rpi4] fixup startup issues Signed-off-by: Shell <[email protected]>
2024-03-30[fixup] aarch64 UMP compiler error (#8677)Shell
Signed-off-by: Shell <[email protected]>
2024-03-28sync smart & dfs (#8672)Shell
Signed-off-by: xqyjlj <[email protected]> Signed-off-by: Shell <[email protected]> Co-authored-by: xqyjlj <[email protected]>
2024-02-20[ci] open ci check with function declaration warning (#8546)Yuqiang Wang
2024-02-06preventing erroneous optimization of rt_ioremap_earlyzhao maosheng
2024-01-02[kernel] Add hook for malloc servicesShell
Including the patch for memory allocation, testsuites and fixups of static analysis. Signed-off-by: Shell <[email protected]>
2023-12-16[libcpu][aarch64] 使用设备树对内存进行初始化 (#8320)fangjianzhou
2023-10-20[libcpu] fix symbol of kernel entry point (#8159)Shell
Signed-off-by: Shell <[email protected]>
2023-10-17Sync dfs lwp (#8123)geniusgogo
2023-08-16[components/mm] add unmap page API (#7834)Shell
Signed-off-by: Shell <[email protected]>
2023-08-02Prepare some api for DM (#7894)GUI
Signed-off-by: GuEe-GUI <[email protected]>
2023-07-25AArch64: support public linker scripts (#7831)GUI
Signed-off-by: GuEe-GUI <[email protected]>
2023-07-01修复aarch64 smp启动失败问题 (#7760)wangqinglin
2023-06-12修复aarch64-qemu启动失败问题 (#7661)wangqinglin
2023-06-11删除mmu.c对board.h的引用wangqinglin
2023-06-11修改:启动过程和__start解耦,对于RT_AMP_SLAVE 跳过cpu 非0核等待wangqinglin
2023-04-22[components/mm] support for scalable memory management (#7277)Shell
* [mm/page] multi-list page manager [mm/page] page debugger [libcpu/aarch64] hugepage support * [quality] remove void-arith * [format] remove kasan codes
2023-03-23[errno code]fix that use RT_ENOSYS without - (#7084)Zxy
* [errno code]fix that use RT_ENOSYS without - * Update bsp/airm2m/air32f103/libraries/rt_drivers/drv_hwtimer.c --------- Co-authored-by: Man, Jianting (Meco) <[email protected]>
2023-03-03[fix] mm bugs (#7010)Shell
* [fix] implementation fault on avl * [fix] mm may free varea allocated statically * [test] add test and benchmark for avl
2023-02-25[libcpu/aarch64] stop when no page is freewangxiaoyao
2023-02-21[fix] typowangxiaoyao
2023-02-21[fixup] add cache maintenance ops;wangxiaoyao
fix bugs on cache maintenance when starting user app
2023-02-14[rt-smart] PV_OFFSET as a variable (#6904)Shell
* [rt-smart/mem] remove pv_offset * [rt-smart] list kernel space command * [rt-smart] restore ioremap region * [revert] restore kernel space isolation * [rt-smart/pv_off] code format * [rt-smart] add get_pvoff() * [pvoffset] pvoff as constant for C codes * [pvoff] pvoff as interfaces
2023-01-08[rt-smart] kernel virtual memory management layer (#6809)Shell
synchronize virtual memory system works. adding kernel virtual memory management layer for page-based MMU enabled architecture porting libcpu MMU codes porting lwp memory related codes
2022-12-26fix compiling warning.bernard
2022-12-20[smart/aarch64] code sync (#6750)Shell
* [smart/aarch64] sync aarch64
2022-04-20uniform code writing-disable interruptthewon86
2022-01-08[libcpu/aarch64] add smp supportGuEe-GUI
2021-03-27[libcpu] auto formattedMeco Man
2020-04-16add raspi4 bspbigmagic