rt-thread-official/bsp/cvitek
Shell 65c9947225
[libcpu] rv64: support for ARCH_REMAP_KERNEL (#9067)
* [libcpu] support for ARCH_REMAP_KERNEL

These changes introduce support for the ARCH_REMAP_KERNEL configuration,
which isolates kernel space in high virtual address regions. This feature
is necessary to enhance memory protection and management by segregating
user and kernel spaces more effectively.

Changes:
- Updated conditional macros to check for ARCH_REMAP_KERNEL instead of
  ARCH_KERNEL_IN_HIGH_VA in board initialization files to reflect the new
  configuration option.
- Modified qemu-virt64-riscv Kconfig and SConstruct files to include and
  utilize ARCH_REMAP_KERNEL.
- Created a new linker script `link_smart.lds` for smart linking in qemu-virt64-riscv.
- Updated rtconfig.py to use a more flexible execution path setup.
- Enhanced user address space definitions in `lwp_arch.h` to support the
  new virtual address mappings.
- Adjusted kernel memory initialization and mapping logic in `c906/mmu.c`
  and `virt64/mmu.c` to account for high virtual address regions.
- Added Kconfig option to enable ARCH_REMAP_KERNEL for RISCV64 architectures.
- Enhanced memory setup functions to support new mapping scheme, including
  updates to early page table setup and address relocation logic.

These modifications ensure that the system can utilize high memory
addresses for the kernel, improving memory isolation and system stability.

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

* fixup: CI run failed

* bsp: default config without using smart

* fixup: static checks

* restore rt_hw_mmu_kernel_map_init for D1

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-06-18 11:15:59 +08:00
..
c906_little update gpio driver 2024-05-27 11:26:09 +08:00
cv18xx_aarch64 [bsp][cvitek] Initialize the Milk-V Duo 256M using the device tree (#8841) 2024-04-23 23:09:45 +08:00
cv18xx_risc-v [libcpu] rv64: support for ARCH_REMAP_KERNEL (#9067) 2024-06-18 11:15:59 +08:00
drivers update gpio driver 2024-05-27 11:26:09 +08:00
.gitignore support cv181x c906_little (#8680) 2024-03-28 23:35:54 +08:00
README.md [bsp/cvitek]add eth driver 2024-04-29 17:47:50 -04:00
board_env.sh support cvitek bsp spinor flash 2024-04-09 18:09:54 -04:00
combine-fip.sh support cvitek bsp spinor flash 2024-04-09 18:09:54 -04:00
mkimage support cv181x c906_little (#8680) 2024-03-28 23:35:54 +08:00
mksdimg.sh support cvitek bsp spinor flash 2024-04-09 18:09:54 -04:00

README.md

cvitek bsp

支持芯片

针对算能系列 RISC-V 芯片的 bsp包括

  • 大核
芯片名称 芯片架构 内存大小 默认日志串口 备注
cv180x RISC-V C906 64MByte uart0 支持 MMU 支持 RT-Thread 标准版 和 RT-SMART 模式,默认运行 RT-Thread 标准版本
cv181x RISC-V C906 或 Cortex A53 通过硬件 IO 二选一 64MByte uart0 支持 MMU 支持 RT-Thread 标准版 和 RT-SMART 版,默认运行 RT-Thread 标准版本
  • 小核
目录 内存大小 默认日志串口 备注
c906-little 与大核共享 uart1 无 MMU运行 RT-Thread 标准版

注:异构芯片需单独编译每个核的 OS

编译

异构芯片需单独编译每个核的 OS在大/小核对应的目录下,依次执行:

  1. 开发板选择 Linux平台下可以先执行
$ scons --menuconfig

选择当前需要编译的目标开发板类型

Board Type (milkv-duo)  --->
    ( ) milkv-duo
    ( ) milkv-duo-spinor
    (X) milkv-duo256m
    ( ) milkv-duo256m-spinor
  1. 编译
$ scons

运行

编译成功后,会在 bsp/cvitek/output 对应开发板型号目录下自动生成 fip.binboot.sd 文件,其中大核运行文件在 boot.sd 中,小核的运行文件在 fip.bin 中。

  1. 将 SD 卡分为 2 个分区,第 1 个分区用于存放 bin 文件,第 2 个分区用于作为数据存储分区,分区格式为 FAT32
  2. 将根目录下的 fip.binboot.sd 复制 SD 卡第一个分区中。
    • fip.binfsbl、 opensbi、uboot、小核运行文件打包后的 bin 文件
    • boot.sd大核打包后的 bin 文件

驱动支持列表

驱动 支持情况 备注
uart 支持 默认波特率115200
gpio 支持
i2c 支持
adc 支持
spi 支持 默认CS引脚每个数据之间CS会拉高请根据时序选择GPIO作为CS。若读取数据tx需持续dummy数据。
pwm 支持
timer 支持
wdt 支持
sdio 支持
eth 支持

支持开发板

FAQ

  1. 如遇到不能正常编译,请先使用 scons --menuconfig 重新生成配置。

  2. 错误:./mkimage: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

可在 http://security.ubuntu.com/ubuntu/pool/main/o/openssl 下载 libssl1.1_1.1.1f-1ubuntu2_amd64.deb 文件后安装即可解决。 或使用以下命令下载安装:

$ wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
  1. 如发现切换开发板编译正常,但无法正常打包,请切换至自动下载的 cvi_bootloader 目录,并手工运行 git pull 更新,或删除该目录后重新自动下载。

联系人信息

维护人:flyingcys

更多信息请参考 https://riscv-rtthread-programming-manual.readthedocs.io