Commit Graph

16111 Commits

Author SHA1 Message Date
Shell a12736e4c8
[libcpu] arm64: implement cpuid get by assembly (#9052) 2024-06-11 17:21:47 +08:00
sp-cai 47ee23510c
[BSP] HC32F460 在 SConscript 补充几个源文件 (#9042)
[BSP] HC32F460 工程中增加几个源文件
2024-06-10 16:15:04 +08:00
maosql 564121050c fix DeprecationWarning: invalid escape sequence. 2024-06-10 14:26:44 +08:00
LaterComer fe950fd1c2
[fixed]qemu-vexpress-a9/drv_smc911x.c没有包含相应的头文件 (#9040)
Update drv_smc911x.c

代码中用到udelay和mdelay函数,但是没有包含头文件
2024-06-07 21:38:16 +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
yangpeng 479fab7775 [ipc]修复pipe创建失败时的资源异常释放 2024-06-06 09:42:16 +08:00
Rbb666 69be78ffba
[log]Update V5.1.0 Released Changelog. (#9038) 2024-06-05 16:42:40 +08:00
Chen Wang f0af6ef809
component:mm: improve sconscript (#9028)
There is no next-level directory under the components/mm/
directory. Do not need to enter the next-level directory
to process the SConscript file.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-06-05 10:04:32 +08:00
heyuanjie87 f778a66d6e
[bsp/qemu-riscv]修正打开串口后中断被关闭的问题 (#9035) 2024-06-05 09:52:32 +08:00
Fan YANG ca78a4f025 [bsp][hpmicro] remove invalid reference in board KConfig
- removed invalid reference in board KConfig

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2024-06-04 11:11:58 +08:00
Shell 6ca327d8ce
[smart] add CPU/thread usage tracing config (#8947)
* [smart] add CPU usage tracing config

This patch introduces following features:

- Added CPU usage tracing functionality, enabled by default, for
  applications like 'top'
- update time as smart independent

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

* fixup: add ump idle thread

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-06-04 00:06:41 +08:00
Fan YANG e03342ff6b [bsp][hpmicro] add HPM5300EVK,HPM5301EVKLITE and HPM6800EVK support & update hpm_sdk
- added new boards: hpm5300evk, hpm5301evklite and hpm6800evk
- upgaded hpm_sdk
- driver updates and bugfixes
- add hpmicro BSPs to CI

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2024-06-03 18:05:20 +08:00
sp-cai 884e391954 [fix][misc][adc] 修复 ADC 电压转换的计算错误 2024-06-03 11:31:30 +08:00
sakumisu 62d321caa0
refactor(drivers/usb):replace rtt usb stack with cherryusb (#8799) 2024-06-02 11:20:13 +08:00
LaterComer 658813213e
[fixed]解决pull_request_template.md不小心移动到了issue_template目录 (#9021)
解决pull_request_template.md不小心移动到了issue_template目录
2024-06-02 00:07:22 +08:00
GUI 1d614a819d
[DM/feature] Implement PIC irq state { get; set } (#9006)
* [DM/feature] Implement PIC irq state { get; set }

There are some common state for irq:
1. Pending: IRQ was triggered, but software not ACK.
2. Active: IRQ was ACK, but not EOI.
3. Masked: IRQ was masked or umasked.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [DM/pic] Support IRQ state { get; set } for ARM GICv2/v3

Signed-off-by: GuEe-GUI <2991707448@qq.com>

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-31 17:37:39 +08:00
Shicheng Chu aa81fd4a88
[bsp][pico] update README.md (#9018) 2024-05-31 17:34:56 +08:00
zms123456 ef184d2157
[fix]fix compile err in pic-gic (#9015)
fix compile err in pic-gic
2024-05-31 17:33:34 +08:00
LaterComer b0f460cbad
[feature]更新issue模板,采用议题表单模式 (#9011)
更新issue模板,采用议题表单模式
2024-05-31 17:32:41 +08:00
Shell e5cf86267b
[smart] fixup of script execution (#9009)
This patch fixup the script execution capabilities on argv passing
and adds support for arguments larger than 4k.

According to POSIX, the script parameter is quiet different
from the current implementation. Especially on the way it inserts
the path of executables. At the end, when you execute a script
from `$PATH`, it always fails.

For the script, interpreter will be invoked with the following
arguments: `{interpreter [optional-arg] pathname arg...}`
where pathname is the pathname of the file specified as the first
argument of execve(), and arg...  is the series of words pointed
to by the argv argument of execve(), starting at argv[1].  Note that
there is no way to get the argv[0] that was passed to the
execve() call.

The changes include:

- Separating argument, environment variable, and auxiliary vector
  processing into a new lwp_args.c file.
- Fixing bugs in script argument processing and supporting arguments
  larger than 4k.
- Updating lwp_execve to use the new argscopy function and removing
  the old lwp_argscopy function.
- Making various modifications to lwp_load and elf_aux_fill to work
  with the new argument processing.
- Removing unnecessary code related to dynamic loading and interpreter
  scripts.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-31 17:32:19 +08:00
rcitachi 85b428df42
[lwp]list_process can print tid (#8991)
* list_process can print tid

* fix-ci

* update list_process

* Update lwp_pid.c
2024-05-31 17:30:46 +08:00
Shell e0df85c819
dev: random should copy size bytes of data to buffer (#9012) 2024-05-30 20:09:02 +08:00
GUI e7cddf3a52
[Feature] Support simple power domain API (#9005)
* [Feature] Power domain for device

1.Support device power on/off.
2.Support attach/detach device.
3.Support power domain driver api.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [DM/platform] Enhanced platform bus

1.Add power domain for device.
2.Support `remove` and `shutdown` bus interface.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-30 15:30:40 +08:00
LaterComer 2cbe8bdae0
解决ktime部分函数计算时unsigned long溢出 (#9008)
* 解决ktime部分函数计算时unsigned long溢出

* 恢复部分不需要ktime中部分rt_uint64_t类型的为unsigned long
2024-05-30 12:04:33 +08:00
Jiading Xu 2fcf151a8e [components][drivers][include][phy] add one more parameter for mulitiple phys
- add parameter phy to specify multiple-phy instance

Signed-off-by: Jiading Xu <Jiading.Xu@hpmicro.com>
2024-05-29 22:22:51 +08:00
wdfk-prog 8e54e31c74
[IDLE] 修改注释,避免造成歧义 (#9010) 2024-05-29 22:18:13 +08:00
WKJay 2fd9ff56dc [BSP][stm32f103-100ask-pro]add ext_sram driver to stm32f103-100ask-pro 2024-05-29 20:19:46 +08:00
lzh 07d7b71345 code format adjustment 2024-05-29 20:18:18 +08:00
lzh b764055018 xmac port code update 2024-05-29 20:18:18 +08:00
lzh 7d7a53ebc1 aarch32 config update tcp pri 12->16 2024-05-29 20:18:18 +08:00
lzh e2c98c9e63 aarch64 config update tcp pri 12->16 2024-05-29 20:18:18 +08:00
lzh 6dc3d7f968 aarch32 menuconfig all update 2024-05-29 20:18:18 +08:00
lzh 65b5735178 ping test e2000d pass 2024-05-29 20:18:18 +08:00
lzh 214f187821 gpio disabled 2024-05-29 20:18:18 +08:00
lzh 601b29967a aarch64 config update all 2024-05-29 20:18:18 +08:00
Shell 63591d935e
[smart] fixup errno passing on sys_mkdir() (#9007)
Use _SYS_WRAP to fetch errno on return of mkdir to avoiding overriding
of it on other system APIs.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 18:06:54 +08:00
Shell f179ce12b7
[smart] update sched_setaffinity() to use thread(task) ID (#9004)
Correct `sched_setaffinity()` to use the thread IDs (TIDs) instead of
process IDs (PIDs). The previous implementation used PIDs, which
caused issues since affinity settings need to be applied at the
thread level.

As the manual documented, the signature is:

>        int sched_setaffinity(pid_t pid, size_t cpusetsize,
>                             const cpu_set_t *mask);

Yes, it's tricky, the identification passing in is called **'PID'**.
But when we talk about 'pid' from GNU libc, it's the **'task-id'**,
aka, `thread->tid` known in kernel.

Changes were made by updating the function signatures and logic in
`lwp.h`, `lwp_pid.c`, and `lwp_syscall.c` to accept TIDs. Specifically,
the `lwp_setaffinity` function and related internal functions now
operate using thread IDs and adjust thread affinity settings accordingly

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 06:53:22 +08:00
heyuanjie87 326150e2f4
[lwp/riscv]进入libc前初始化用户态sp (#8997) 2024-05-29 06:52:38 +08:00
LZerro 3172d37db7 [BSP][Infineon]Change Readme 2024-05-28 16:39:16 +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
GUI b45fb59df2
[OFW] io ranges use list to storage without ofw data (#8993)
[OFW] io ranges use ptr array to storage without ofw data

ofw data is private data for every ofw node that
the drivers of ofw node will use item.
replace the ranges supported to a ptr array.

the ptr array size is config by `RT_USING_OFW_BUS_RANGES_NUMBER`

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 14:25:09 +08:00
GUI 6f6b0c3ba0
[DM/feature] Simple NUMA (Non-Uniform Memory Access) (#9000)
For some CPU memory access devices, that the drivers
will find memory and CPU affinity to config device.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 14:08:33 +08:00
Shell 952f2c43f8
[smart] add FIONREAD ioctl support for tty (#8996)
Signed-off-by: Shell <smokewood@qq.com>
2024-05-28 09:56:10 +08:00
GUI de352aee62
[PIC] Make affinity helper interface (#8995)
* [PIC] Make affinity helper interface

Signed-off-by: GuEe-GUI <2991707448@qq.com>

* [PIC/GIC] Fixup GIC affinity init

GICv2 is not support if current CPU is not startup,
but RT-Thread SMP is startup after the devices init
in the `main` thread.

This patch fixup the cpumask to init once and check
the init status in affinity interface.

Signed-off-by: GuEe-GUI <2991707448@qq.com>

---------

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 09:55:24 +08:00
GUI f035188094
[OFW] Support ID map interface (#8994)
The OFW map id is always use in DMA, PCI, IOMMU
bus system to find the device identity. this is
a access interface.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 09:54:03 +08:00
GUI 8c6c9205b0
[OFW] Fixup irq parse map and map mask (#8992)
`map_len` and `map_mask_len` is the count of elements,
not the bytes size of elements.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 09:52:10 +08:00
GUI 754c59a411
[Feature] DFS mount auto by kernel parameters (#8989)
DFS mount auto by kernel parameters

1.Mount the rootfs options by parameters:
- root=: root device, like vda1, sda1, sd0p1, nvme0n0p1...
- rootfstype=: root file system type, like elm, ext, crom...
- rw/ro: root is readonly or all enable, if not have 'rw' flag,
         the 'ro' flag is default.
- rootwait: always wait for root device status is OK.
- rootdelay=: mount rootfs delay amount of time (millisecond).

2.Mount the other fs options by `fstab.sh`, it will read the script
after root mount is OK, it's format is a list of mount cmds in MSH:

mount vda2 /mnt elm
mount 192.168.1.1:/ /mnt/remote nfs

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-05-28 00:26:57 +08:00
Rbb666 ae6a3287e6 Add psoc62、61 config. 2024-05-27 21:20:13 +08:00
LZerro b65b922f6c Adjust the PKG selection position. 2024-05-27 21:20:13 +08:00
LZerro 0d2d5e88c7 Format some file 2024-05-27 21:20:13 +08:00