heyuanjie87
b09a9784f9
[libcpu/c906]与virt同步 ( #9095 )
2024-06-26 12:16:37 +08:00
heyuanjie87
a5a89c439f
[rv]修正signal退出后用户态sp少8的问题 ( #9080 )
2024-06-24 21:36:32 +08:00
heyuanjie87
06ad67d549
[rv]信号处理进入用户态前恢复gp ( #9072 )
...
* [rv/virt/stackframe.h]添加GP寄存器保存偏移量宏
* 【rv/c906/stackframe.h]定义GP寄存器存储偏移量
* [rv]信号处理切换到用户态前恢复gp
2024-06-21 09:09:41 +08:00
Shell
65c9947225
[libcpu] rv64: support for ARCH_REMAP_KERNEL ( #9067 )
...
* [libcpu] support for ARCH_REMAP_KERNEL
These changes introduce support for the ARCH_REMAP_KERNEL configuration,
which isolates kernel space in high virtual address regions. This feature
is necessary to enhance memory protection and management by segregating
user and kernel spaces more effectively.
Changes:
- Updated conditional macros to check for ARCH_REMAP_KERNEL instead of
ARCH_KERNEL_IN_HIGH_VA in board initialization files to reflect the new
configuration option.
- Modified qemu-virt64-riscv Kconfig and SConstruct files to include and
utilize ARCH_REMAP_KERNEL.
- Created a new linker script `link_smart.lds` for smart linking in qemu-virt64-riscv.
- Updated rtconfig.py to use a more flexible execution path setup.
- Enhanced user address space definitions in `lwp_arch.h` to support the
new virtual address mappings.
- Adjusted kernel memory initialization and mapping logic in `c906/mmu.c`
and `virt64/mmu.c` to account for high virtual address regions.
- Added Kconfig option to enable ARCH_REMAP_KERNEL for RISCV64 architectures.
- Enhanced memory setup functions to support new mapping scheme, including
updates to early page table setup and address relocation logic.
These modifications ensure that the system can utilize high memory
addresses for the kernel, improving memory isolation and system stability.
Signed-off-by: Shell <smokewood@qq.com>
* fixup: CI run failed
* bsp: default config without using smart
* fixup: static checks
* restore rt_hw_mmu_kernel_map_init for D1
---------
Signed-off-by: Shell <smokewood@qq.com>
2024-06-18 11:15:59 +08:00
zhangyan
842b555358
[bsp/phytium]c++支持,gpio,qspi驱动修改 ( #9059 )
...
* GPIO驱动与QSPI驱动适配
* C++支持
* update
---------
Co-authored-by: 张衍 <zhangyan1491@phytium.com.cn>
2024-06-16 15:42:37 +08:00
Shell
e5b7f3fdd8
[kservice] Enhance support for backtrace service ( #9037 )
...
[feat] Enhance support for backtrace service
rt_backtrace_formatted_print() and rt_backtrace_to_buffer() to help
debug routines.
Also, following modification are included:
- make rt_backtrace_frame patchable with weak attr
- replace lwp backtrace with sync output
Signed-off-by: Shell <smokewood@qq.com>
2024-06-13 08:55:53 +08:00
Shell
a12736e4c8
[libcpu] arm64: implement cpuid get by assembly ( #9052 )
2024-06-11 17:21:47 +08:00
Shell
f00db6381a
[mm] precise & readable mm fault type ( #9047 )
...
* [smart] fixup: precise mm fault type
Also, fixup arm64 read access fault
* arm64: using meaningful macro on trap
* fixup: renaming macro
2024-06-07 21:34:03 +08:00
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
tangzz98
acc66c5479
实现MPU抽象层 ( #8080 )
...
- 为RT-Thread设计MPU抽象层,支持ARMV7-M,ARMV8-M架构,让用户使用MPU检测栈溢出等内存问题,实现线程内存隔离
- 在components/mp目录下提供通用的API,libcpu目录下提供各处理器架构的具体实现
- 在STM32U575 NUCLEO, STM32H75 NUCLEO开发板测试通过
2023-10-30 08:24:55 -04:00
xqyjlj
3283f54c7a
🎈 perf: perf rt_hw_interrupt_disable/enable ( #8042 )
...
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: Shell <smokewood@qq.com>
2023-10-25 20:31:25 +08:00
Shell
fb78a71020
[smart] replace varea pgmgr and fixup of dfs mmap ( #8184 )
...
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-10-25 14:59:48 +08:00
Raman
adbb5fd94a
AT32UC3B: Rewire _intx for updated exceptions file from Microchip ( #8182 )
2023-10-25 09:28:03 +08:00
Shell
70a8d1d465
[kservice] improve backtrace service in kernel ( #8144 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-10-21 20:14:45 +08:00
Shell
1d678e5596
[smart] fixup: mmap support ( #8154 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-10-20 13:28:20 +08:00
Shell
07b23ecbb1
[libcpu] fix symbol of kernel entry point ( #8159 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-10-20 13:27:38 +08:00
Raman Gopalan
265a55303e
Implement UART driver files for AT32UC3B: Working commit
2023-10-17 11:22:07 -04:00
geniusgogo
ecd29fda60
Sync dfs lwp ( #8123 )
2023-10-17 13:07:59 +08:00
guozhanxin
d8a2084c05
[libcpu/cortex-a] Fix the problem of circular include of cpuport.h
2023-09-27 10:16:46 +08:00
zhkag
b2433129b2
[tools]fix scons --dist , menuconfig will error ( #8069 )
2023-09-26 11:35:27 +08:00
Meco Man
47a3139b63
[iar]修复__LDREX 和 __STREX 报 declared implicitly 警告
...
related: https://github.com/RT-Thread/rt-thread/issues/7381
2023-09-20 10:01:25 +08:00
Shell
b0deb61bc4
[libcpu/aarch64] fix compile error ( #8045 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-09-16 11:52:42 +08:00
geniusgogo
e8e980879e
change aarch64 trap backtrace & coredump priority rating. ( #8008 )
2023-09-11 14:05:41 +08:00
Shell
47b183a297
[smart/syscall] fix exit(2) and add exit_group(2) ( #8005 )
...
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-09-09 09:35:56 +08:00
aozima
3e91307326
fixed stack setup when using SMP. ( #7978 )
2023-08-26 07:36:25 +08:00
Wayne Lin
86f72ed6da
Update NuMaker-M2354 BSP building.
...
1. Remove rt_hw_cpu_reset implementation in libcpu.
2. Update configuration.
3. Add drv_log.h for building.
4. Fix warnings.
2023-08-24 12:54:19 -04:00
Shell
d862816a51
[components/mm] add unmap page API ( #7834 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-08-16 15:38:59 +08:00
Fan YANG
5308cc4716
[libcpu][risc-v][common] Fix application crash on risc-v soc if FPU is
...
enabled
- Defined ARCH_RISCV_FPU once the __riscv_flen macro was detected
Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2023-08-11 21:20:28 -04:00
Fan YANG
5ac509b6d0
[libcpu][risc-v][common] Avoid using t0 before being saved
...
- Fixed the issue that t0 was modified unexpectedly before being saved
Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2023-08-09 01:07:11 -04:00
Meco Man
c6a2f5b7bd
rt_hw_cpu_shutdown: implement default weak function
...
and remvoe duplicated default functions in each cpu/bsp level
2023-08-08 22:34:25 -04:00
Meco Man
cb810dfe75
rt_hw_cpu_reset: remove all other rt_weak
2023-08-08 22:34:25 -04:00
geniusgogo
4d20416b2f
update components & lwp. ( #7888 )
2023-08-07 12:22:14 -04:00
GUI
d3417aa0d7
Prepare some api for DM ( #7894 )
...
Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-08-02 12:48:24 +08:00
guo
51100ae4a6
[libcpu/Kconfig] add ARCH_ARM_CORTEX_M23 define ( #7895 )
2023-08-01 00:00:49 +08:00
xqyjlj
d23dd56692
🐞 fix(ktime): fix wrong boottime
...
因为tick从中断到设置中间的时延特别大,因此暂不采用tick做基准时间,直接取gtime的cnt做基准时间
2023-07-27 11:35:29 +08:00
GUI
6f119d4ce9
AArch64: support public linker scripts ( #7831 )
...
Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-07-25 21:31:44 +08:00
GUI
ff0c148244
AArch64: fixup HW atomic_t ops type from dword to qword ( #7861 )
...
Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-07-25 15:34:57 +08:00
Shell
acfa74f078
[libcpu/arm] fix race condition with ldrex,strex ( #7842 )
...
Signed-off-by: Shell <smokewood@qq.com>
2023-07-25 14:07:44 +08:00
Man, Jianting (Meco)
244b903e5d
[debug] 整理debug宏并增加RT_DEBUGING_CONTEXT ( #7805 )
2023-07-22 10:36:42 +08:00
yby
8f164529a3
[libcpu][arc]修复arc架构线程切换bug ( #7825 )
2023-07-18 00:09:51 +08:00
xqyjlj
0eb75ced70
[time]时钟框架重构 ( #7794 )
2023-07-17 20:11:58 +08:00
GUI
b424169e17
AArch64: fixup fpu storage's size in stack and append Q16 ~ Q31 ( #7815 )
...
Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-07-15 15:21:23 +08:00
lepus
2741bec8f7
[libcpu][cortex-a]modified start_gcc.S ( #7810 )
2023-07-14 23:12:04 +08:00
Supper Thomas
350626841a
[libcpu]fix RT_ASSERT undefine ( #7816 )
2023-07-14 09:47:02 +08:00
Meco Man
237bbfd968
[debug] remove RT_DEBUG_xxx
...
remove RT_DEBUG_THREAD RT_DEBUG_SCHEDULER RT_DEBUG_IPC RT_DEBUG_TIMER RT_DEBUG_IRQ RT_DEBUG_MEM RT_DEBUG_SLAB RT_DEBUG_MEMHEAP
2023-07-09 00:19:29 -04:00
guo
78867912c1
Merge pull request #7788 from ErikChanHub/master
...
【dd2.0】Support Open Firmware API
2023-07-06 16:52:30 +08:00
zhkag
c7be260665
[simulator] 修复函数定义不一致
2023-07-06 01:34:53 -04:00
wusongjie
3b7e46de7e
AArch64: support hardware atomic
...
Support aarch64 rt_hw_atomic_* api.
Add atomic implemente by rt_atomic api:
rt_atomic_dec_and_test
rt_atomic_fetch_add_unless
rt_atomic_add_unless
rt_atomic_inc_not_zero
Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
2023-07-05 13:38:29 +08:00
wangqinglin
e0b2b8fecd
修复aarch64 smp启动失败问题 ( #7760 )
2023-07-01 22:46:43 +08:00
flyingcys
c78f646891
[bsp]add cv1800b ( #7753 )
2023-06-30 00:05:55 +08:00
Shicheng Chu
e2c031643c
[include][dbg]update: no longer use RT_DEBUG_LOG in rtdebug.h ( #7750 )
2023-06-29 11:24:25 -04:00