Commit Graph

16677 Commits

Author SHA1 Message Date
Shell e244c196c4 feat: libcpu/risc-v: unify interrupt & IO on rv64
This patch aims to unify the two currently separated RISC-V 64-bit
architecture ports, 'virt64' and 'c906', into a single generic
'common64' port. The changes include renaming files and updating
includes to use a unified 'interrupt.h' header, as well as making
adjustments to IO and trap handling to be more consistent between the
two architectures.

Changes:
- Renamed 'rt_interrupt.h' to 'interrupt.h' and updated includes accordingly.
- Unified IO register access functions in 'riscv_io.h'.
- Added 'opcode.h' for portable assembly support.
- Updated 'plic.c' and 'plic.h' to handle interrupts in a unified manner.
- Modified 'trap.c' to handle exceptions and interrupts consistently for 'rv64'.

Signed-off-by: Shell <smokewood@qq.com>
2024-09-11 18:06:51 -04:00
Shell a00aaab2ba feat: libcpu/risc-v: unify mmu related works
These changes are designed to standardize the memory management across
'virt64' and 'c906', ensuring efficient handling of address spaces and
page tables.

Changes:
- Creation of ASID management files (`asid.c`) for both 'c906' and
  'virt64' architectures, which is essential for maintaining stability.
- Extensive updates to the MMU configuration and handling in `mmu.c` and `mmu.h` files.
- Addition of functions to manage ASID allocation and switching of page tables.
- For c906, accommodated the early memory setup to the one from virt64.

Signed-off-by: Shell <smokewood@qq.com>
2024-09-11 18:06:51 -04:00
Shell 7528645f59 feat: libcpu/risc-v: unify context on c906, virt64
Changes:
- added config for NEW_CTX_SWITCH
- used new context on c906 sched switch routine
- update _rt_hw_stack_init to fit into NEW_CTX_SWITCH
- separated vector ctx from the generic

Signed-off-by: Shell <smokewood@qq.com>
2024-09-11 18:06:51 -04:00
Shell adbbd24ad7 feat: bsp: qemu risc-v64: fit into common64 2024-09-11 18:06:51 -04:00
zms123456 0edd2e7766
[utest]fix race in mutex tc & add recurse lock tc 2024-09-11 18:04:41 -04:00
zms123456 b423a6b1e3
[components][lwp]remove extra check in sys_bind 2024-09-11 18:04:05 -04:00
zms123456 08221b54d0
[kernel][mutex] fix bug of thread exit without releasing mutex & add error check log 2024-09-11 18:03:43 -04:00
GuEe-GUI f9b632d52d [DM/MISC] Add error no for ptr
When the driver request a API gets RT_NULL which return value is ptr,
they could not know why get a RT_NULL.

some API return RT_NULL, is not error internal maybe, it just not
supported for this platform, but the driver still could work ok,
the API can return (RT_NULL + -RT_EEMPTY) to driver.

on the other hand, the driver can do more behaviors by error no.
When the API return the -RT_EBUSY, driver can wait for a moment and retry.
When the API return the -RT_ENOSYS, driver can try the next mode or request's name.

Signed-off-by: GuEe-GUI <wusongjie@rt-thread.com>
2024-09-11 14:34:13 +08:00
Rbb666 0df9a9f0cc [bsp][hpmicro]添加utest相关段信息,修复scons编译问题 2024-09-10 23:59:59 -04:00
CYFS cb0b5b05ad
[components][sensor]增加电源检测类型 2024-09-10 19:54:03 -04:00
liangzohar 240172609c [bsp/n32] 修复每次上电都初始化RTC导致上电时间被重置的问题 2024-09-10 19:53:01 -04:00
ryancw 9de975fa93 [components][sal][at] _gethostbyname_by_device 添加注释 2024-09-09 18:07:41 -04:00
ryancw e9711d5640 [components][sal][at] netdb添加at_gethostbyname_r 2024-09-09 18:07:41 -04:00
ryancw bac9812cf9 [component][at_socket] udp一个socket跟多个地址通讯bug修复、DNS加锁防止多线程错乱、实现at_gethostbyname_r、稳定性优化 2024-09-09 18:07:41 -04:00
Supper Thomas 3943a3e163
[action] fix cppcheck build dir (#9406) 2024-09-09 14:13:43 +08:00
SeliverWang 66dd03f6c2 修复audio_pipe中函数在开启POSIX IPC时与 POSIX PIPE冲突问题 2024-09-06 23:18:09 -04:00
GuEe-GUI 2168ed8e7d [DM/Feature] Basic PCI/PCIe (Peripheral Component Interconnect Express) bus
PCI/PCIe have better performance and more devices support, such as
NVMe, GPU, Powerful NIC (Like RDMA). PCI/PCIe can access control by
IOMMU that the virtualiztion and userspace driver will more safety.
PCI/PCIe device could hot plugging, no design modifications SoC required,
PCI/PCIe on Embedded SoC is popular now.
We make a simple framework to support them.

Feature Lists:
1.PCI INTx: the INT[A-D] pin IRQ for legacy PCI, work with platform PIC.
2.MSI/MSI-X: the message write IRQ for PCIe, work with platform's PIC.
3.PME: we only support the D0, D1, D2, D3HOT, D3COLD init by framework.
4.Endpoint: a simple EP framework for PCI FPGA or NTB function.
5.OFW: we only support work on OFW SoC, ACPI support in the future maybe.

Host controller:
1. Common PCI host controller on ECAM.
2. Generic PCI host controller on ECAM.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-09-06 17:45:03 -04:00
GuEe-GUI 802a6ed2ca [DM] Extended drivers MISC interface
1. RT_FIELD_PREP: prepare a bitfield element.
2. RT_FIELD_GET: extract a bitfield element.
3. rt_offsetof: member offset of a struct
4. rt_upper_32_bits: high 32 bits of value.
5. rt_lower_32_bits: lower 32 bits of value.
6. rt_upper_16_bits: high 16 bits of value.
7. rt_lower_16_bits: lower 16 bits of value.
8. rt_max_t: fix type of max(...).
9. rt_ilog2: integer logarithm base 2.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-09-06 17:45:03 -04:00
zms123456 9631f04abe
[utest]add mutex_pi_tc
* add mutex_pi
* fix assertion error when thread wakeup while waiting mutex
2024-09-06 17:44:02 -04:00
Supper Thomas 0c16568387 [action] add cppcheck project and action debug 2024-09-05 23:39:30 -04:00
Chen Wang 6fc1fc72b7 bsp: cvitek: clean up useless variable assignments in SConstruct
CV18xx RISC-V C906L.

Configuration value for CPU and ARCH are already defined in rtconfig.py.
Remove these duplication from SConstruct.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-09-05 23:39:06 -04:00
zhangyan 5181857148
[bsp/phytium]默认配置修改 2024-09-05 18:18:27 -04:00
RyanCW 188b87f4d8
[components][at_socket] 添加errno设置 2024-09-05 17:54:50 -04:00
yandld 1cc0fb87df fix README typo 2024-09-05 13:04:16 +08:00
yandld ba7e469772 [bsp][mcxc444] update README and keil project 2024-09-05 13:04:16 +08:00
Supper Thomas 580f3146eb fix the cfg path 2024-09-04 23:35:27 +08:00
Yilin Sun b4165288fc bsp: nxp/mcx/mcxc: FRDM-MCXC444: Kconfig: Add I2C support. 2024-09-04 23:34:40 +08:00
Yilin Sun b76fd6ba0a bsp: nxp/mcx/mcxc: Add I2C driver support. 2024-09-04 23:34:40 +08:00
Shell d2160d352c
fixup: ipc: protect taken_list on shared lock
为什么提交这份PR (why to submit this PR)
Issue: using iperf server with sshd together and the kernel will get stuck occasionally.

taken_list is accessed from other mutex when updating priority.

你的解决方案是什么 (what is your solution)
protect taken_list on shared lock, but not on mutex local spinlock.

Signed-off-by: Shell <smokewood@qq.com>
2024-09-03 22:06:16 -04:00
Z8MAN8 cea7670e7f bsp: cvitek: fix cvitek uart driver can not repeat configure
After first called from uart open, the dw8250_uart_configure
API cannot be called again. Otherwise, this will mess up the
device, and uart will not act properly to interrupt again.

Analysis: Configure uart device will close recive interrupte,
causing uart device to malfunction.

Solution: After configure uart device, enable the device's
recive interrupte.

Signed-off-by: Shicheng Chu <1468559561@qq.com>
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
2024-09-03 20:50:50 -04:00
Supper Thomas 3174fcd77b [action] update cppcheck version 2024-09-03 20:50:31 -04:00
GuEe-GUI 175a2ff954 Fixup platform not free device in OFW
Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-09-03 19:49:47 -04:00
GuEe-GUI 2ec69c3ce4 Fixup bus remove device option
The bus should call driver's `remove` callback not
instead of `shutdown` in rt_bus_remove_device.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-09-03 19:49:47 -04:00
Yaochenger 7469edd165 [fix][device] 修正使用rt_device_create创建设备,使用rt_device_destroy删除失败的问题 2024-09-03 18:24:45 -04:00
flyingcys 2e224b30ad [bsp/cvitek] eth driver support phy link detect
Signed-off-by: flyingcys <flyingcys@163.com>
2024-09-03 18:17:30 -04:00
yandld cf56227000 [bsp][mcxc] add rtc/wdog/uart driver 2024-09-03 18:15:17 -04:00
zhangyan a4882e1d40
[libcpu/aarch64]修改atomic实现 2024-09-03 18:14:06 -04:00
yandld 635e16a8d5 [libc] 修复 ctime()死机问题 2024-09-03 18:13:09 -04:00
Yilin Sun ad256db2c0 bsp: nxp/mcx/mcxc: FRDM-MCXC444: Fix GCC build suport.
This patch fixes GCC build support for FRDM-MCXC444.

* Updated compiler flags to Cortex-M0 without FPU.
* Updated linker script to add RT-Thread const tables.
2024-09-03 15:22:05 +08:00
Yaochenger 5d4f8193aa [add] 修改线程栈大小为UTEST_THR_STACK_SIZE 2024-09-03 14:03:21 +08:00
Yaochenger f33312abe0 [utest] add smp testcases 2024-09-03 14:03:21 +08:00
sakumisu 0d87b028ed
update(cherryusb): add config for bl616 usbdev and usbhost 2024-09-02 22:27:04 -04:00
sheltonyu 6a30ec2625
[bsp/at32] ethernet support phy lan8720 and yt8512 2024-09-02 12:51:06 -04:00
sakumisu 2d266742e0 fix(cherryusb): fix build error 2024-09-02 21:27:47 +08:00
sheltonyu a40f2a62ef
[bsp/at32] 1.add support m412/416 series, 2.add drv_can_v2 driver (support canfd) 2024-09-02 00:41:18 -04:00
sakumisu f7de9de7dd update(cherryusb): add config for hpm6750 usbdev and usbhost 2024-09-02 00:40:29 -04:00
sakumisu 9511e4bd19 update(cherryusb): fix dfs mem leak, add check for lwip stack size, select elmfat when use msc 2024-09-02 00:37:35 -04:00
sakumisu b462daf57e update(cherryusb): add config for mcxn947 usbdev and usbhost 2024-09-02 10:15:43 +08:00
Shell 679761983d fixup: ptyfs: CI reported snprintf type issues 2024-09-01 15:12:34 -04:00
Shell dfd8ccf262 feat: kernel/libcpu: fit into ilp32d 2024-09-01 15:12:34 -04:00