summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-09-13feat: remove redundant codes under virt64, c906Shell
Changes: - create new folder name `common64` and save all common codes of rv64 inside Signed-off-by: Shell <[email protected]>
2024-09-13[FEATURE/OFW] add address reverse/translate for DMA/CPU's addressGuEe-GUI
DMA and CPU address view is different, we need to convert them: +--------+ +--------+ +---------+ +--------+ | | | | | | | | | CPUs | | DEV0 | | IOMMU <----+ | DEV1 | | | | | | | | | | +----+---+ +----+---+ +----+----+ | +----+---+ | | | | | 0x200000 | 0x1000 | 0x1000 | | 0x8000 | | | | | | +-------------+-----------+ +----------+ | | +--------v----------------------------------------------------+ | | | Address BUS | | | +-------------------------------------------------------------+ Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FEATURE/FDT] Add bootargs select in earlyGuEe-GUI
Maybe use for memory/DMA buffer init before ofw_node unflatten. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FIXUP/OFW] ofw_parse_object failGuEe-GUI
The ofw parse should: 1. Check obj_name EQU the current node's rt_data. 2. Find the next object name. 3. goto "2" until obj_name EQU the cmp_cell's obj_name. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FIXUP/OFW] remove the last empty string for bootargsGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FIXUP/OFW] DTS version header always v1.0GuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FIXUP/OFW] Increase append child node's ref_countGuEe-GUI
rt_ofw_append_child append a new child node and return, ref_get is necessary. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[FIXUP/OFW] rt_ofw_foreach_node_by_compatible argsGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-09-13[components][sal]replace netdev's spin_lock_irqsave to spin_lockzms123456
netdev的函数不会在中断中调用,无需关中断
2024-09-13[component][net]add more socket flagzms123456
2024-09-13[bsp][gd32]Fix the problem that uartv2 does not enable dma compilation error.Rbb666
2024-09-13[components][lwip]fix lwip poll macro conflictzms123456
2024-09-13[lwp] 取消脚本中限制rv的具体cpu类别heyuanjie87
此目录中为rv64通用代码
2024-09-12bsp: nxp/mcx/mcxc/mcxc444: Add SPI driver support.Yilin Sun
Signed-off-by: Yilin Sun <[email protected]>
2024-09-12[action][cppcheck] add summary (#9426)Supper Thomas
* [action][cppcheck] add summary 添加summary 方便查看出错信息
2024-09-11[action][ci] add cppcheck new featureSupper Thomas
'--check-level=exhaustive' 这个选项可以更深入的在分支中检测,但是会耗时比较久一些。
2024-09-11feat: libcpu/risc-v: unify low-level bringupsShell
This patch consolidates the separated architecture-specific code for rv64 (virt64 and c906) under a more unified approach. The changes aim to enhance maintainability and code reuse, reducing duplication between these two architectures while adding small improvements in porting compatibility. Changes: - Modified build scripts (SConscript) for both virt64 and c906 to remove ASID and vector dependencies when not required. - Updated c906's sbi.c and sbi.h to use standard integer types (uint32_t) and include the missing <stdint.h> header. - Unified inline function declaration for `sbi_call` across both c906 and virt64 using `rt_inline`. - Disabled FPU and vector in c906's startup assembly file, aligning it with the virt64 handling. - Corrected syscall handler type definitions in c906 for consistency. Signed-off-by: Shell <[email protected]>
2024-09-11feat: libcpu/risc-v: unify interrupt & IO on rv64Shell
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 <[email protected]>
2024-09-11feat: libcpu/risc-v: unify mmu related worksShell
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 <[email protected]>
2024-09-11feat: libcpu/risc-v: unify context on c906, virt64Shell
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 <[email protected]>
2024-09-11feat: bsp: qemu risc-v64: fit into common64Shell
2024-09-11[utest]fix race in mutex tc & add recurse lock tczms123456
2024-09-11[components][lwp]remove extra check in sys_bindzms123456
2024-09-11[kernel][mutex] fix bug of thread exit without releasing mutex & add error ↵zms123456
check log
2024-09-11[DM/MISC] Add error no for ptrGuEe-GUI
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 <[email protected]>
2024-09-10[bsp][hpmicro]添加utest相关段信息,修复scons编译问题Rbb666
2024-09-10[components][sensor]增加电源检测类型CYFS
2024-09-10[bsp/n32] 修复每次上电都初始化RTC导致上电时间被重置的问题liangzohar
2024-09-09[components][sal][at] _gethostbyname_by_device 添加注释ryancw
2024-09-09[components][sal][at] netdb添加at_gethostbyname_rryancw
2024-09-09[component][at_socket] ↵ryancw
udp一个socket跟多个地址通讯bug修复、DNS加锁防止多线程错乱、实现at_gethostbyname_r、稳定性优化
2024-09-09[action] fix cppcheck build dir (#9406)Supper Thomas
2024-09-06修复audio_pipe中函数在开启POSIX IPC时与 POSIX PIPE冲突问题SeliverWang
2024-09-06[DM/Feature] Basic PCI/PCIe (Peripheral Component Interconnect Express) busGuEe-GUI
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 <[email protected]>
2024-09-06[DM] Extended drivers MISC interfaceGuEe-GUI
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 <[email protected]>
2024-09-06[utest]add mutex_pi_tczms123456
* add mutex_pi * fix assertion error when thread wakeup while waiting mutex
2024-09-05[action] add cppcheck project and action debugSupper Thomas
2024-09-05bsp: cvitek: clean up useless variable assignments in SConstructChen Wang
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 <[email protected]>
2024-09-05[bsp/phytium]默认配置修改zhangyan
2024-09-05[components][at_socket] 添加errno设置RyanCW
2024-09-05fix README typoyandld
2024-09-05[bsp][mcxc444] update README and keil projectyandld
2024-09-04fix the cfg pathSupper Thomas
2024-09-04bsp: nxp/mcx/mcxc: FRDM-MCXC444: Kconfig: Add I2C support.Yilin Sun
2024-09-04bsp: nxp/mcx/mcxc: Add I2C driver support.Yilin Sun
2024-09-03fixup: ipc: protect taken_list on shared lockShell
为什么提交这份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 <[email protected]>
2024-09-03bsp: cvitek: fix cvitek uart driver can not repeat configureZ8MAN8
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 <[email protected]> Reviewed-by: Chen Wang <[email protected]>
2024-09-03[action] update cppcheck versionSupper Thomas
2024-09-03Fixup platform not free device in OFWGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-09-03Fixup bus remove device optionGuEe-GUI
The bus should call driver's `remove` callback not instead of `shutdown` in rt_bus_remove_device. Signed-off-by: GuEe-GUI <[email protected]>