summaryrefslogtreecommitdiff
path: root/components/drivers
AgeCommit message (Collapse)Author
2024-11-18add ofw api to of net,driver writer can use this api get phy modes or get ↵zhujiale
mac address
2024-11-13fix:[CAN][STM32]open时立刻启动can_start,还未完成其他配置,可能 ↵wdfk-prog
导致异常
2024-11-03:truck: renaming: move `smp` to `smp_call`Shell
2024-11-03feat: smp_call: added signaling call_reqShell
This patch introduces `rt_smp_call_request` API to handle queued requests across cores with user provided data buffer, which provides a way to request IPI through a non-blocking pattern. It also resolved several issues in the old implementation: - Multiple requests from different cores can not be queued in the work object of the target core. - Data racing on `rt_smp_work` of same core. If multiple requests came in turns, or if the call is used by the target cpu, while a new request is coming, the value will be overwrite. - Memory vulnerability. The rt_smp_event is allocated on stack, though the caller may not wait until the call is done. - API naming problem. Actually we don't provide a way to issue an IPI to ANY core in mask. What the API do is aligned to MANY pattern. - FUNC_IPI registering to PIC. Changes: - Declared and configured the new `RT_SMP_CALL_IPI` to support functional IPIs for task requests across cores. - Replaced the single `rt_smp_work` array with `call_req_cores` to manage per-core call requests safely. - Added `_call_req_take` and `_call_req_release` functions for atomic handling of request lifetimes, preventing data race conditions. - Replaced single event handling with a queue-based approach (`call_queue`) for efficient multi-request processing per core. - Introduced `rt_smp_call_ipi_handler` to process queued requests, reducing IPI contention by only sending new requests when needed. - Implemented `_smp_call_remote_request` to handle remote requests with specific flags, enabling more flexible core-to-core task signaling. - Refined `rt_smp_call_req_init` to initialize and track requests with atomic usage flags, mitigating potential memory vulnerabilities. Signed-off-by: Shell <[email protected]>
2024-10-24add missing extern "C" in header to support cppKai
2024-10-19update(cherryusb): update to v1.4.1sakumisu
2024-10-11[components][smp]remove redundant memset & unlock in smpzms123456
2024-10-09[drivers][spi] Fixed an issue that caused spi bus deadlock in the spi ↵Yuqiang Wang
configuration
2024-10-08[doxygen][rsoc]add pwm touch can i2c spi driver example for doxygenCYFS
2024-10-06feat:[drivers][spi] rt_spi_configure 添加互斥保护Meco Man
2024-10-06feat:[drivers][spi] rt_spi_bus_configure 添加 -RT_EBUSY ↵wdfk-prog
返回值,并增加说明注释
2024-10-05[doxygen]add pin driver example for doxygenCYFS3
2024-10-05[feat] add pci api,the pci/pcie driverzhuzhuzhu
add pci api,the pci/pcie driver writer can use this to get resource of current device with flag,there are three flag : 1. PCI_BUS_REGION_F_MEM it mean memory space 2. PCI_BUS_REGION_F_IO it mean io space 3. PCI_BUS_REGION_F_PREFETCH it mean prefetchable memory
2024-10-04[components][i2c] 修改为debug等级打印wdfk-prog
2024-09-29fix rtc alarm thread parameters issuemilo
2024-09-29[bsp][nxp][rsoc] Fix compilation issues with bsp of nxp/lxp serieshydevcode
2024-09-29[dev] make RTC alarm internal thread's attributes configurablemilo
2024-09-29[doxygen][rsoc]add dac driver example for doxygen (#9483)CYFS
2024-09-26[doxygen]add rtc devices example for doxygenCYFS
2024-09-25[doxygen]add dac driver example for doxygenCYFS
2024-09-25[doxygen][rsoc] add adc driver example for doxygen (#9465)CYFS
* [doxygen] add adc driver example for doxygen * add data structures
2024-09-24smpzhujiale
2024-09-24smpzhujiale
2024-09-24smpzhujiale
2024-09-24smpzhujiale
2024-09-24smpzhujiale
2024-09-24smpzhujiale
2024-09-19[DM/FDT] Fixup memory address reserved and translate in earlyGuEe-GUI
1.Fixup `fdt_reserved_memory_reg` loop time. 2.Fixup `rt_fdt_translate_address` cells value reader. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[DRIVER/PIC] Add ARM GICv2/v3 V2M, ITS support.GuEe-GUI
Fix some code style and init for V2M, ITS. V2M is the PCI MSI/MSI-X for GICv2. ITS is the PCI MSI/MSI-X for GICv3/v4. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[FEATURE/PIC] support PIC cancel (only in debug)GuEe-GUI
PIC may free because some wrongs in debug. We should remove in PIC list or there are some undefined behavior will happen. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[FIXUP/PIC] pirq's child handler should lock lessGuEe-GUI
When call the child handler, the PIC ops needn't lock again. Critical zone protection by PIC implementers. Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[FIXUP/PIC] set interrupt status when do trapsGuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[PIC/FIXUP] pirq reinit failGuEe-GUI
don't reinit pirq's list if cascade Signed-off-by: GuEe-GUI <[email protected]>
2024-09-19[fix]:fix log format and reopen with a different oflag issue (#9452)milo
fix log format and reopen with a different oflag issue
2024-09-15[doxygen] add driver example for doxygen (#9446)Supper Thomas
2024-09-13[drivers] Specifies the name of the drivers driver fileCXSforHPU
https://github.com/RT-Thread/rt-thread/pull/9420
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-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[components][sensor]增加电源检测类型CYFS
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-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]>