summaryrefslogtreecommitdiff
path: root/libcpu/aarch64/common/setup.c
AgeCommit message (Collapse)Author
2025-12-19[libcpu][aarch64] Update for DMGuEe-GUI
1. PSCI port to system power. 2. Support builtin fdt. 3. Update system aspace size. 4. Support DMA memory probe. 5. Fixup not backtrace in Serror for device bus fault. Signed-off-by: GuEe-GUI <[email protected]>
2024-11-17[libcpu] fix No memory higher than 1 GB is mappedzhujiale
2024-11-17[libcpu] fix No memory higher than 1 GB is mappedzhujiale
2024-11-03:truck: renaming: move `smp` to `smp_call`Shell
2024-11-03feat: smp_call: added signaling call_reqShell
This patch introduces `rt_smp_call_request` API to handle queued requests across cores with user provided data buffer, which provides a way to request IPI through a non-blocking pattern. It also resolved several issues in the old implementation: - Multiple requests from different cores can not be queued in the work object of the target core. - Data racing on `rt_smp_work` of same core. If multiple requests came in turns, or if the call is used by the target cpu, while a new request is coming, the value will be overwrite. - Memory vulnerability. The rt_smp_event is allocated on stack, though the caller may not wait until the call is done. - API naming problem. Actually we don't provide a way to issue an IPI to ANY core in mask. What the API do is aligned to MANY pattern. - FUNC_IPI registering to PIC. Changes: - Declared and configured the new `RT_SMP_CALL_IPI` to support functional IPIs for task requests across cores. - Replaced the single `rt_smp_work` array with `call_req_cores` to manage per-core call requests safely. - Added `_call_req_take` and `_call_req_release` functions for atomic handling of request lifetimes, preventing data race conditions. - Replaced single event handling with a queue-based approach (`call_queue`) for efficient multi-request processing per core. - Introduced `rt_smp_call_ipi_handler` to process queued requests, reducing IPI contention by only sending new requests when needed. - Implemented `_smp_call_remote_request` to handle remote requests with specific flags, enabling more flexible core-to-core task signaling. - Refined `rt_smp_call_req_init` to initialize and track requests with atomic usage flags, mitigating potential memory vulnerabilities. Signed-off-by: Shell <[email protected]>
2024-09-24smpzhujiale
2024-09-24SMPzhujiale
2024-09-24smp_ipizhujiale
2024-07-17[libcpu] quality: call PV_OFFSET on entry for onceShell
This patch improves the efficiency and readability of the AArch64 common setup code by calculating the `PV_OFFSET` once at the start and reusing the value. This change reduces redundant calculations. Signed-off-by: Shell <[email protected]>
2024-07-16[libcpu][setup]fix fdt_ptr error (#9138)zms123456
fix fdt_ptr error
2024-06-26[libcpu][aarch64]memory setup using memblock (#9092)zms123456
* memory setup using memblock * map pages later
2024-05-08[libcpu][aarch64] Fixed the rt_hw_secondary_cpu_bsp_start() bug (#8898)liYangYang
* fix rt_hw_secondary_cpu_bsp_start() bug * timer init * comment
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-16[libcpu][aarch64]fix memheap search in setup of aarch64zms123456
2024-03-02[fixup] check NULL pointer before access (#8573)Shell
Signed-off-by: Shell <[email protected]>
2024-03-01[components/driver] update serial (#8567)fangjianzhou
2024-02-29[components/drivers]update hwtimer (#8565)zms123456
2024-02-29[components][drivers]add pic-gic (#8388)zms123456
2023-12-16[libcpu][aarch64] 使用设备树对内存进行初始化 (#8320)fangjianzhou
2023-11-28[libcpu][aarch64] 使用设备树对CPU进行初始化 (#8221)fangjianzhou