feat[bsp][xuantie]: c908 support rt-smart; - #11719
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: libcpu_riscvReviewers: @Yaochenger Changed Files (Click to expand)
🏷️ Tag: workflowReviewers: @Rbb666 @kurisaW @supperthomas Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-08-19 10:39 CST)
📝 Review Instructions
|
|
@rcitach 帮忙review下,谢谢~ |
There was a problem hiding this comment.
Pull request overview
This PR adds a new BSP for Xuantie virt64 C908 with RT-Thread Smart (rt-smart) + SMP support, and adjusts the RISC-V common64 MMU implementation to better support SMP user address spaces.
本 PR 新增 Xuantie virt64 C908 的 BSP,并支持 RT-Thread Smart(rt-smart)+ SMP,同时对 RISC-V common64 MMU 做了 SMP 相关适配以更好支持用户态地址空间。
Changes / 变更点:
- Add new BSP
bsp/xuantie/virt64/c908with build scripts, linker scripts, QEMU run script, and basic UART/VirtIO support.
新增bsp/xuantie/virt64/c908BSP(构建脚本、链接脚本、QEMU 运行脚本、UART/VirtIO 基础支持)。 - Update
libcpu/risc-v/common64/mmu.cto optimize SMP behavior for user address spaces (share L2/L3, sync L1 across harts; SMP-aware page table allocation/free).
更新libcpu/risc-v/common64/mmu.c:面向 SMP 的用户地址空间优化(共享 L2/L3,并在各 hart 间同步 L1;SMP 下页表分配/释放适配)。 - Provide BSP docs in English/Chinese and default configs (
.config,rtconfig.h).
提供中英文 BSP 文档与默认配置(.config、rtconfig.h)。
PR metadata checks / PR 元信息检查:
- PR Title / PR 标题: The current title
feat[bsp][xuantie]: c908 support rt-smart;does not follow the repo’s recommended lowercase prefix style like[module][subsystem] Description.
当前标题不符合仓库建议的前缀格式(如小写的[module][subsystem] 描述),建议改为类似:[bsp][xuantie] Add virt64 c908 RT-Smart support(示例)。 - CI list claim / CI 列表声明: The PR description indicates the BSP was added to
.github/ALL_BSP_COMPILE.json, but no matching entry was found (see review comment).
PR 描述中勾选了已加入.github/ALL_BSP_COMPILE.json,但当前未检索到对应条目(见审查评论)。
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| libcpu/risc-v/common64/mmu.c | SMP + rt-smart related MMU/page-table behavior updates for user/kernel spaces |
| bsp/xuantie/virt64/c908/SConstruct | BSP build entry; generates linker helper scripts and supports Smart linker script |
| bsp/xuantie/virt64/c908/SConscript | Top-level module aggregation for BSP subdirectories |
| bsp/xuantie/virt64/c908/run.sh | QEMU run script with C908 CPU selection and optional SMP -smp |
| bsp/xuantie/virt64/c908/rtconfig.py | Toolchain/build flags for this BSP |
| bsp/xuantie/virt64/c908/rtconfig.h | Generated configuration header for the provided default config |
| bsp/xuantie/virt64/c908/README.md | English BSP user guide (build/run, Smart notes) |
| bsp/xuantie/virt64/c908/README_cn.md | 中文 BSP 使用说明(构建/运行、Smart 说明) |
| bsp/xuantie/virt64/c908/link.lds | Standard edition linker script using generated stack/cpu parameters |
| bsp/xuantie/virt64/c908/link_smart.lds | Smart edition linker script (high kernel mapping layout) |
| bsp/xuantie/virt64/c908/link_stacksize.lds | Default stack-size linker include (also regenerated by SCons) |
| bsp/xuantie/virt64/c908/link_cpus.lds | Default CPU-count linker include (also regenerated by SCons) |
| bsp/xuantie/virt64/c908/Kconfig | BSP Kconfig entry points and board options |
| bsp/xuantie/virt64/c908/board/virt.h | VirtIO constants and Smart-only ioremap/mmu includes |
| bsp/xuantie/virt64/c908/board/SConscript | Driver group build script |
| bsp/xuantie/virt64/c908/board/Kconfig | VirtIO-related BSP options |
| bsp/xuantie/virt64/c908/board/drv_virtio.h | VirtIO driver header (placeholder) |
| bsp/xuantie/virt64/c908/board/drv_virtio.c | VirtIO MMIO device probing and init export |
| bsp/xuantie/virt64/c908/board/drv_uart.h | NS16550A UART register definitions and interfaces |
| bsp/xuantie/virt64/c908/board/drv_uart.c | UART serial driver + interrupt hookup; Smart ioremap support |
| bsp/xuantie/virt64/c908/board/board.h | Board-level memory layout/heap/page region definitions |
| bsp/xuantie/virt64/c908/board/board.c | Board init: MMU/page init (Smart), interrupts, UART, tick |
| bsp/xuantie/virt64/c908/applications/SConscript | Applications group build script |
| bsp/xuantie/virt64/c908/applications/mnt.c | Rootfs mount helper (virtio-blk FAT/ext) |
| bsp/xuantie/virt64/c908/applications/main.c | Minimal main entry printing banner |
| bsp/xuantie/virt64/c908/.config | Provided default configuration enabling Smart + SMP and related components |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| src = Glob('*.c') + Glob('*.cpp') + Glob('*_gcc.S') | ||
| src += Glob('*.c') |
| src = Glob('*.c') + Glob('*.cpp') + Glob('*_gcc.S') | ||
| src += Glob('*.c') |
| # make a building | ||
| DoBuilding(TARGET, objs) |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
本PR代为提交,功能为:c908 support rt-smart
原始commit: shuta.lst/rt-thread@53d4922049
你的解决方案是什么 (what is your solution)
新增 bsp/xuantie/virt64/c908支持,并且支持rtt smart模式
SMP适配性修改libcpu/risc-v/common64/mmu.c
请提供验证的bsp和config (provide the config and bsp)
bsp\xuantie\virt64\c908
bsp\xuantie\virt64\c908.config
BSP:
bsp\xuantie\virt64\c908
.config:
bsp\xuantie\virt64\c908.config
action:
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up