Commit Graph

127 Commits

Author SHA1 Message Date
ache
36bf8f656b feat:clang format ignore migration 2025-10-28 14:13:56 +08:00
kurisaw
e2aed47b6c [format][version]: synchronize bsp version configuration 2025-10-23 22:06:51 +08:00
Chen Wang
ef354df2e3 bsp/cvitek: Increase the value of RT_NAME_MAX
Otherwise report runtime error:
[E/kernel.obj] Object name sys workq exceeds RT_NAME_MAX=8, consider increasing RT_NAME_MAX.
(obj_name_len <= RT_NAME_MAX - 1) assertion failed at function:rt_object_allocate, line number:520

Increase the value of RT_NAME_MAX to 16 for c906B.
The value of RT_NAME_MAX for BSP of C906L and ARM core already meet
the requirement of more than 8.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-09-25 13:03:00 +08:00
flyingcys
f4168669a7 Fix the crash of the SPI driver under the smart mode
Signed-off-by: flyingcys flyingcys@163.com
2025-07-04 20:51:04 +08:00
沐攸
5f9f522285 format: update all series of BSP configuration items (#10406) 2025-06-17 15:42:49 +08:00
Chen Wang
e7d870bb71 bsp: cvitek: riscv: use marco for linker script
Regarding link script, some memory offsets and sizes are different
between the standard version and the smart version (such as
"__STACKSIZE__", kernel start address, kernel memory size, etc.).
Original solution is replacing link scripts and use INCLUDE,
which is relatively complicated.

This improvement uses macros to replace constants in the link
script. The preprocessing mechanism provided by gcc is used
to dynamically replace constant values during the build process.

In addition, the kernel load address (the corresponding
KERNEL_VADDR_START for smart) was originally configured as
0xFFFFFFC000200000, which is default value of riscv with
kernelmap enabled (0xffffffc000000000) plus offset to skip over
bootloader (0x200000). This caused a trouble: due to
default bsp configuration is for smart, if we switched to the
standard version and build, and then switched back to the smart
version, the value of KERNEL_VADDR_START will be default back to
0xffffffc000000000, which is different from the original configuration
value, resulting in the need to manually reconfigure it, which
is easy to forget and cause problems.

The current solution is to use the default value
0xffffffc000000000 in the configuration. Add offset to the code
and link script when using it.

This patch update the default .config and rtconfig.h for cv18xx_riscv.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-04-22 09:48:53 +08:00
jojoandgyc
15ef367477 bsp: cvitek: use rttpkgtool for aarch64
Fixed  #9968

1.Using scripts in rttpkgtool to make firmware.
2.Deleted duplicate prebuild files.
3.Modify README.md

Signed-off-by: YunZhan Huang <1583267844@qq.com>
2025-03-29 08:55:40 +08:00
Chen Wang
5b88c8c207 bsp: cvitek: fix build warnings for spi
See https://github.com/RT-Thread/rt-thread/issues/10138.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-03-24 20:38:08 +08:00
Chen Wang
b583240690 bsp: cvitek: add howto configure pinmux in README (#10142)
Add description on how to configure pinmux in menuconfig for
cvitek products.

Add myself to maintainer list in README.md.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-03-24 15:47:57 +08:00
imcu
6073200d2e [bsp][cvitek] fix spi driver build error
Build error: 'struct _device_spi' has no member named 'base_addr'

Analyze: the name should be dws.regs

Solution: change base_addr to dws.regs

Signed-off-by: zdtyuiop4444 <ign7798540@gmail.com>
2025-03-24 09:24:11 +08:00
yixinghua121
983f02151a 修复 MMCSD 宏拼写错误+内核开启LOG_D编译问题 2025-03-12 16:02:43 +08:00
Chen Wang
58e587bfbc bsp: cvitek: aarch64: add switchto-arm diagram
In actual operation, we often forget how to connect
the wires, so we just put the schematic diagram in
the readme document for quick recall.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-02-27 10:32:55 +08:00
Chen Wang
a77a86d6b2 bsp: cvitek: fix build error for aarch64
This patch fixed the error "bash: mksdimg.sh: No such file
or directory" when building cv18xx_aarch64.

The issue is introduced by commit "bsp: cvitek: removed
useless files after using rttpkgtool".

In addition, in order to unify the logic with riscv as much
as possible, the name of the "milkv-duo256m" directory under
cv18xx_aarch64 is uniformly changed to "duo256m".

This patch also improve the README, adding instructions to
install xz-utils.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-02-03 21:54:57 -05:00
qilian
ffe25c58b9 Update README.md (#9959)
Fixed the issue where the absence of the u-boot-tools package caused rttpkgtools to fail to compile normally.
2025-01-30 20:15:18 +08:00
Chen Wang
3383352cdc bsp: cvitek: c906_littel: fixed build warnings for board.c
When building bsp/cvitek/c906_little, compiler warns:

```
board/board.c: In function 'rt_hw_board_init':
board/board.c:26:5: warning: implicit declaration of
function 'rt_hw_tick_init'; did you mean 'rt_hw_stack_init'?
[-Wimplicit-function-declaration]
   26 |     rt_hw_tick_init();
      |     ^~~~~~~~~~~~~~~
      |     rt_hw_stack_init
board/board.c:29:5: warning: implicit declaration of
function 'rt_hw_uart_init'; did you mean 'rt_hw_board_init'?
[-Wimplicit-function-declaration]
   29 |     rt_hw_uart_init();
      |     ^~~~~~~~~~~~~~~
      |     rt_hw_board_init
```

To remove these build warnings, include header files
which declare these functions.

Plus, remove the decalartion of `tick_isr()`, this
function does not exist.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-29 20:28:38 -05:00
Chen Wang
c3e5152c13 bsp: cvitek: removed useless files after using rttpkgtool
Based on the patch "bsp: cvitek: use rttpkgtool
to replace cvitek_bootloader", continue cleanup useless files.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-26 10:55:44 +08:00
Chen Wang
7e0acaa254 bsp: cvitek: use rttpkgtool to replace cvitek_bootloader
Originally, for riscv big and little cores under bsp/cvitek,
after generating rtthread.bin, the cvitek_bootloader tool
would be used to package it and generate fip.bin and boot.sd
files that can be burned into sdcard. However, the
cvitek_bootloader tool repository is relatively large, and
it compiles and generates firmware such as fsbl, opensbi and
uboot from the source code level. And when using it, it
needs to be downloaded to the bsp/cvitek directory, which
will introduce pollution to source files in the RTT repository
under the original working path.

The new solution uses rttpkgtool, which is similar to
cvitek_bootloader, but it uses prebuilt firmware, so it is
very small and does not introduce pollution to the source file.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-26 10:55:44 +08:00
Chen Wang
7432b0a019 Revert "[action] add cvitek/c906_little ci" (#9945)
Revert "[action] add cvitek/c906_little ci (#9901)"

This reverts commit 969e0e01ef.
2025-01-23 10:37:56 +08:00
Supper Thomas
969e0e01ef [action] add cvitek/c906_little ci (#9901)
* [action] add cvitek/c906_little ci

* Update bsp_buildings.yml

* Update rtconfig.py
2025-01-23 09:35:06 +08:00
imcu
680333fc18 [bsp][cvitek] fix c906_little build warning in cache.c
build warning: passing argument 1 of 'inv_icache_range' makes integer
from pointer without a cast [-Wint-conversion]

Analyze: The passed parameter type is void*, which is a pointer type,
but the required type is uintptr_t, which is an integer type. Therefore,
there will be a 'makes integer from pointer without a cast' warning.

Solution: casting the void* pointer to uintptr_t, ensure that the
function receives the correct type.

Signed-off-by: zdtyuiop4444 <ign7798540@gmail.com>
2025-01-20 14:26:50 +08:00
Chen Wang
ab1f438161 bsp: cvitek: optimze build operations for aarch64
For bsp/cvitek, duo256m, the operation process is
slightly different when building images for riscv
and arm64.

To improve the user experience, unify the building
process and steps of the two as follows:

- Enter c906_little and execute `scons`

- Enter cv18xx_riscv/cv18xx_aarch64 and execute `scons`

That's all. Finally, we can get `fip.bin` and
`boot.sd` under `bsp/cvitek/output/milkv-duo256m`.

Update the README.md accordingly.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-18 00:42:14 -05:00
Chen Wang
2b82ab38a2 bsp/cvitek: print arch info. during boot-up (#9919)
Duo's CPU combination is more complicated:

| BSP           | B/L core| ISA             | UART  |
| ------------- | ------- |---------------- |-------|
| cv18xx_risc-v | Big     | RISC-V C906     | UART0 |
| c906-little   | Littel  | RISC-V C906     | UART1 |
| cv18xx_aarch64| Big     | ARM Cortex A53  | UART0 |

Printing ISA and big and small core information
during the boot process helps developers/testers
determine the CPU and serial port corresponding to
the current console.

In addition, the RTT logo printing has already
distinguished whether it is smart, so the bsp
printing no longer distinguishes.

Updated README to sync with this change.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-16 22:33:55 +08:00
imcu
6cbb2c3ee5 [bsp][cvitek] add cache opration functions for cache coherence
By default, the small core enables D-Cache without ensuring cache
coherence. Therefore, when using shared memory, inconsistencies can
occur in the data read by the small core and the big core.

Solution: Migrate cache-related functions from the official
duo-buildroot-sdk library to implement cache-related operations in
rthw.h. This allows you to either disable D-Cache or call the
flush_dcache_range function before reading and after writing for
synchronization.

It is recommended to use the flush_dcache_range function, as disabling
D-Cache can have a significant performance impact.

Signed-off-by: zdtyuiop4444 <ign7798540@gmail.com>
2025-01-16 09:05:52 +08:00
kenneth.liu
95064ed449 bsp: cvitek: fix bug in setting PLIC_PRIORITY[n]
description: In the bsp/cvitek/c906_little/board/interrupt.c, There is an issue with
setting the PLIC_PRIORITY[n].

analysis: PLIC_PRIORITY[n] each register corresponds to the priority of
a hardware interrupt number.

Solution: Each register is 4 bytes.
Multiply the total number of IRQs by 4 instead of dividing by 4.

Signed-off-by: Liu Gui <kenneth.liu@sophgo.com>
2025-01-16 09:03:26 +08:00
Chen Wang
2322f0154e bsp: cvitek: remove support for spinor/spinand
Confirmed with milkv, only the sd card version is sold
by default for duo in the market. The spi pins are
provided through stamp holes, so that users can solder
the corresponding components on their baseboard during
secondary development.

In order to simplify maintenance work, the mainline
will only support the sd-card version and no longer
support spinor/spinand.

Updated config files the same in this patch.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-08 17:54:14 -05:00
Chen Wang
99577849e6 bsp: cvitek: remove RT_USING_VIRTIO for arm64
duo is a real hardware, no need for virtio.

Disable RT_USING_VIRTIO and update configuration to latest.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-01 19:01:19 -05:00
Chen Wang
8cf5389f5d bsp: cvitek: update README for cv18xx_aarch64
Re-write README.md for aarch64.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00
Chen Wang
7836e6ee4d bsp: cvitek: update combine.sh for arm64
Move the combine.sh to under cv18xx_aarch64, so we can
run this script the same as scons and no need to change
cwd.

Rename the folder boot to prebuild just becuase all the
files under boot are prebuild binaries.
Move the prebuilt fip.bin to under prebuild/milkv-duo256m
because it's only for 256.

Update combine.sh accordingly and output fip.bin to the output
folder where we create fip.bin/boot.sd as other bsp.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00
Chen Wang
b774c9b938 bsp: cvitek: use ioremap for arm64 core
For ARM, RT-smart and RT-standard both enable mmc (see
rt_hw_board_init() in bsp/cvitek/cv18xx_aarch64/board/board.c,
rt_hw_mmu_setup is called both for smart or standard).

So ioremap is must to do for ARM.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00
Chen Wang
e221cd59f4 bsp: cvitek: doc update
Updated README for cvitek.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-26 11:01:08 +08:00
Chen Wang
6a7e797712 bsp: cvitek: remove GPL license declaration
GPL is conflict with Apache, which is used by RTT.

See <https://www.apache.org/licenses/GPL-compatibility.html>

Also clean up and remove some words such "LINUX".

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-19 22:39:47 +08:00
Chen Wang
20d116ed4e bsp: cvitek: update README for ext4 rootfs (#9785)
Now lwext4 package has supported ext4. Add description in README
to introduce how to create rootfs of type ext4.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-18 09:28:36 +08:00
flyingcys
60d7198da0 update cvitek/README.md
Signed-off-by: flyingcys <flyingcys@163.com>
2024-12-04 10:37:33 +08:00
Chen Wang
16475b3c92 bsp: cvitek: fix warning on rtc driver
When RTC is enabled, a warning appear during compiling:
warning: implicit declaration of function 'rtc_alarm_enable' [-Wimplicit-function-declaration]
  366 |     rtc_alarm_enable(alarm->enable);
      |     ^~~~~~~~~~~~~~~~

It's due to _rtc_set_alarm is not covered by RT_USING_ALARM. It's wrong.

Solution: cover all functions including _rtc_get_alarm & _rtc_set_alarm
under RT_USING_ALARM macro conditional defintion.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-11-26 21:45:00 -05:00
Chen Wang
0c910e755d bsp: cvitek: add introduction about rt-smart booting with rootfs
README.md: add introduction about how to make rootfs(fat) and
booting kernel with it.

Plus some cleanup for this documentation.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-11-26 21:45:00 -05:00
Chen Wang
032fe9c3a3 bsp: cvitek: support mount fat/ext rootfs for rt-smart
Support mount rootfs automaticly during booting up.
First try ext, then fat.

Plus some code cleanup, such as remove BSP_USING_ON_CHIP_FLASH_FS,
which is not defined and unused.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-11-26 21:45:00 -05:00
Chen Wang
1052f99537 bsp: cvitek: 906b: romfs -> diskfs
ROMFS is Read-Only Memory Filesystem. But ext4/fat are not read-only.

So renamed:
- mnt_romfs.c -> mnt_diskfs.c
- BSP_ROOTFS_TYPE_ROMFS -> BSP_ROOTFS_TYPE_DISKFS

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-11-26 21:45:00 -05:00
flyingcys
8ed4ae144f support milkv-duo rt-smart
1. switches memory management to SLA

2. use ioremap modification driver

Signed-off-by: flyingcys flyingcys@163.com
2024-11-25 10:48:36 +08:00
Meco Man
8e10983c9b [klibc] add rt_vsnprintf_std.c and rename RT_KLIBC_USING_VSNPRINTF_LONGLONG 2024-11-24 11:29:28 +08:00
flyingcys
0d9185bd5a [bsp][cvitek]fix milkv-duos-sd cann't startup big-core kernel (#9633)
fix milkv-duos-sd cann't startup big-core kernel
milkv-duos-sd use cv1813h folder store ld file
Signed-off-by: flyingcys <flyingcys@163.com>
2024-11-15 12:52:57 +08:00
Alex Imcu
d141d148cf [bsp][cvitek] fix pinmux array order error (#9593) 2024-11-08 15:36:37 +08:00
Yuqiang Wang
b3d59050b0 [kernel] Specification interrupt nested level variable declaration type (#9568) 2024-10-23 17:08:29 -04:00
imcu
633d203fa6 bsp:cvitek:add all function type of pinmux 2024-09-25 21:04:40 -04:00
CXSforHPU
bb91502465 [drivers] Specifies the name of the drivers driver file
https://github.com/RT-Thread/rt-thread/pull/9420
2024-09-13 17:40:40 -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
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
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
heyuanjie87
b3fbddda80 [bsp/cvitek]修正sdhci发送命令超时后触发两次信号量的问题
修正命令超时后触发两次信号量的问题

详解:
中断状态寄存器的BIT0仅表示sdhci处理命令完成,完成结果由其它位指示,当出错时
BIT0也会值1产生中断

Signed-off-by: heyuanjie87 <943313837@qq.com>
2024-08-28 18:33:50 -04:00
Shicheng Chu
66738d71da bsp: cvitek: Add support for duos_sd
Supports both big and little cores of RISC-V C906,
but does not support ARM cores. Currently, only UART
drivers are supported on the peripherals.

Signed-off-by: Shicheng Chu <1468559561@qq.com>
2024-08-27 00:53:15 -04:00
flyingcys
82f30aa54f rename c906 FPU macro (#9290)
1. 修改 ENABLE_FPU 为 ARCH_RISCV_FPU,与libcpu/common 保持统一
2. 对 bsp/cvitek/cv18xx_risc-v 中增加使能 ARCH_RISCV_FPU 的动作。解决了 issue #9075
2024-08-27 00:46:41 -04:00