Commit Graph

910 Commits

Author SHA1 Message Date
Shell f17f994f8c
[arm64] add hw thread self (#8942)
* [libcpu] arm64: Add hardware thread_self support

This patch introduces hardware-based thread self-identification
for the AArch64 architecture. It optimizes thread management by
using hardware registers to store and access the current thread's
pointer, reducing overhead and improving overall performance.

Changes include:
- Added `ARCH_USING_HW_THREAD_SELF` configuration option.
- Modified `rtdef.h`, `rtsched.h` to conditionally include
  `critical_switch_flag` based on the new config.
- Updated context management in `context_gcc.S`, `cpuport.h`
  to support hardware-based thread self.
- Enhanced `scheduler_mp.c` and `thread.c` to leverage the new
  hardware thread self feature.

These modifications ensure better scheduling and thread handling,
particularly in multi-core environments, by minimizing the
software overhead associated with thread management.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: address suggestion

* fixup: rt_current_thread as global

* scheduler: add cpu object for UP scheduler

Also, maintain the rt_current_thread in cpu object on UP scheduler.

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-28 14:27:55 +08:00
Shell 397cdcd132
[libcpu] discard rt_current_thread (#8976)
* [libcpu] rv64: discard rt_current_thread

* arm: using rt_thread_self to fetch current TCB
2024-05-26 22:00:17 +08:00
Shell e25fc8b511
[libcpu/arm64] add C11 atomic ticket spinlock (#8882)
* [libcpu/arm64] add C11 atomic ticket spinlock

Replace the former implementation of flag-based spinlock which is unfair

Besides, C11 atomic implementation is more readable (it's C anyway),
and maintainable. Cause toolchain can use their builtin optimization and
tune for different micro-architectures. For example armv8.5 introduces a
better instruction. The compiler can help with that when it knows your
target platform in support of it.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: RT_CPUS_NR

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-16 15:45:12 +08:00
Shell 017b2a5a44
[smart] fixup arm64 aspace switch (#8925)
* [smart] fixup arm64 aspace switch

Signed-off-by: Shell <smokewood@qq.com>

* fixup: arm add arch_kernel_mmu_table_get

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-10 09:17:19 +08:00
liYangYang dbf8a26e6c
[libcpu][aarch64] Fixed the rt_hw_secondary_cpu_bsp_start() bug (#8898)
* fix rt_hw_secondary_cpu_bsp_start() bug

* timer init

* comment
2024-05-08 19:48:17 +08:00
Shell 48bd0e49f2
[ipc] support of lockless rt_completion (#8887)
* [ipc] lockless rt_completion implementation

The new rt_completion implemented by lockless algorithm can improve timer resolution for up to ~12%, compare to sem IPC.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: error

* remove useless changes

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-08 09:25:57 +08:00
Shell 9ba6cec663
[libcpu/arm64] dealing with mem region out of kernel space (#8847)
* [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 <smokewood@qq.com>

* fixup: restrict vstart for using of RT_NULL

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-08 09:23:31 +08:00
Fan Yang c21ba6985d
Fix compiling eror in hpmicro bsp (#8889)
- added 'DEVICE' to rtconfig.py
- fixed compiling error cuased by change in interrupt_gcc.S

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2024-04-30 20:11:47 +08:00
flyingcys 2c8c4ccc47
[bsp]support cvitek sdhci drvier (#8849)
support cvitek sdhci drvier
2024-04-24 05:40:22 +08:00
wirano 202bacb44d [cpu_cache] fix function replaced by macro 2024-04-18 20:40:55 -04:00
Meco Man a841091827 [libcpu] remove .asm files in cortex-r52 2024-04-18 20:32:47 -04:00
Rbb666 9a3172540f Delete unnecessary configurations in cortex-r52 2024-04-18 20:32:47 -04:00
zms123456 cc47212b53
[libcpu][aarch64]fix memheap search in setup of aarch64 2024-04-16 19:56:01 -04:00
Rbb666 1497a3117a
[bsp][renesas]Add cortex-r52 rzt2m adaptation 2024-04-10 20:47:53 -04:00
zhangyan 81df7bcdde
[bsp/phytium]中断相关修改 (#8742)
* update smp 4
2024-04-11 00:09:17 +08:00
Shell b14e0c08e1
[bsp/rpi4] fixup startup failure (#8754)
[bsp/rpi4] fixup startup issues

Signed-off-by: Shell <smokewood@qq.com>
2024-04-11 00:02:49 +08:00
zhao maosheng 687eb87a2b fix: code format of serial.c and compile error in aarch64 context_gcc 2024-04-02 08:07:21 -04:00
zms123456 d856f77a55
[components][drivers] fix posix tty, and add more baudrate (#8683)
* serial-tty fix

* v2
2024-04-01 21:23:04 +08:00
Shell 864055bf18
[fixup] aarch64 UMP compiler error (#8677)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-30 17:58:38 +08:00
liYangYang 9a1996ef59
[bsp][art-pi-smart] 关闭内存对齐检查来避免数据访问异常 2024-03-29 21:43:57 -04:00
Shell 83e95bdff4
sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell 751c2ada43
[libcpu/aarch64] improve performance of IRQ dis/en-able (#8687)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-28 23:32:05 +08:00
Shell ea63dd6c57
[libcpu/rv64] fixup for parameter passing on backtrace (#8655)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-21 20:23:36 +08:00
LiuLingze 8120fa5e31 [bsp][cv1800b] fix a implicit-function-declaration warning
Signed-off-by: LiuLingze <luiyanbing@foxmail.com>
2024-03-19 08:10:43 -04:00
LiuLingze 26b40d534c [bsp][cv1800b] fix a int-conversion warning
Signed-off-by: LiuLingze <luiyanbing@foxmail.com>
2024-03-19 08:10:43 -04:00
zhangyan fad78950ea
[bsp/phytium]Adapter aarch64/aarch32 (#8580) 2024-03-13 18:07:03 +08:00
zhangyan 76202e2141
🎯 [libcpu/arm/cortex-a]修改arm/cortex-a启动方式,解决cortex-a开启SMP工作异常问题 (#8517)
Co-authored-by: wangzongqiang <wangzongqiang1322@phytium.com.cn>
2024-03-02 16:06:07 +08:00
Shell 53754ff50a
[fixup] check NULL pointer before access (#8573)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-02 16:05:19 +08:00
fangjianzhou 00c6800e4e
[components/driver] update serial (#8567) 2024-03-01 10:29:21 +08:00
zms123456 6b5058ba5c
[components/drivers]update hwtimer (#8565) 2024-02-29 22:27:38 +08:00
zms123456 195f94ef1d
[components][drivers]add pic-gic (#8388) 2024-02-29 09:39:56 +08:00
Shell 71560bafb5
🎯 Sync smart & scheduler codes (#8537)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-02-23 17:49:15 +08:00
Yuqiang Wang c6bdee3c50
[ci] open ci check with function declaration warning (#8546) 2024-02-20 22:45:04 -05:00
fangjianzhou 66e3faa71f
[libcpu] 修复当开启 RT_USING_SMP ,并且 RT_CPUS_NR = 1 时编译报错问题 2024-02-20 18:25:37 -05:00
Meco Man bd228eb9c5 [ci] fix errors under strick compiling mode 2024-02-20 08:39:05 +08:00
Meco Man 6d4503363a [libcpu][SConscript]规范group名为libcpu 2024-02-20 08:39:05 +08:00
杨熙 41e08084f8
Bsp nxp support (#8530)
Co-authored-by: StackYuan <yuanjyjyj@outlook.com>
2024-02-16 00:30:50 +08:00
zhao maosheng 49b17d01ac preventing erroneous optimization of rt_ioremap_early 2024-02-06 18:34:53 -05:00
flyingcys 3f41bd95d1
add libcpu/risc-v/rv64 (#8511) 2024-01-28 13:39:39 +08:00
Shell cc157baf23
[kernel] fixup of data racing accessing percpu objects (#8475)
Signed-off-by: Shell <smokewood@qq.com>
2024-01-09 23:09:49 +08:00
Shell 3a7903b799 [kernel] Add hook for malloc services
Including the patch for memory allocation, testsuites and fixups of
static analysis.

Signed-off-by: Shell <smokewood@qq.com>
2024-01-02 19:42:46 +08:00
fangjianzhou b233e29bb6
[libcpu][aarch64] 使用设备树对内存进行初始化 (#8320) 2023-12-16 18:08:11 +08:00
fangjianzhou 249871cbbc
[libcpu][aarch64] 使用设备树对CPU进行初始化 (#8221) 2023-11-28 14:20:11 +08:00
Meco Man df29a13d89
[components] remove vmm (#8269) 2023-11-21 13:41:54 +08:00
Meco Man 589641258e [debug] rename RT_DEBUGING_INIT as RT_DEBUGING_AUTO_INIT 2023-11-10 05:24:33 -05:00
geniusgogo df0d8b4230
fix aarch64 backtrace print 2023-11-08 06:11:10 -05:00
zhkag 3db4b3e4ae 修复 bsp/x86 编译问题 2023-11-06 06:23:09 -05:00
Shell c2036e769a
[smart] fixup of lwp recycling and mm varea (#8206)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2023-11-02 20:23:11 +08:00
xqyjlj 1b6f0e88a3
🐞 fix: fix d1s smart build (#8212) 2023-11-02 20:16:02 +08:00
Rbb666 7ace7d0a78 [libcpu][renesas]add cortex-m85 && ek-ra8m1 adapt 2023-10-31 15:09:17 +08:00