docs(starryos): document LS2K1000 platform support#1581
Conversation
There was a problem hiding this comment.
Pull request overview
本 PR 为 StarryOS 快速上手文档补充 Loongson 2K1000(LS2K1000)物理板支持说明,覆盖所用 target/动态平台路径、关键驱动 crates 列表,以及从构建到 TFTP + U-Boot 启动的实板流程,降低用户从源码/配置/历史 PR 中“拼信息”的成本。
Changes:
- 在 StarryOS quickstart 中新增 2K1000 小节,按子系统梳理相关 crates/feature/实现位置。
- 增补两种构建方式(defconfig 与显式
--config)及实板启动前置条件。 - 提供经实板验证的 U-Boot 启动脚本(TFTP 加载 + 计算入口 +
go传 FDT),并明确当前 CI/QEMU 覆盖边界。
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
评审总结
本 PR 为 StarryOS 快速上手文档补充 Loongson 2K1000 物理板支持说明,覆盖了所用的 target、驱动 crates 列表、构建方式和 U-Boot 启动流程。文档结构清晰,crates 表格分类合理,启动边界说明到位。
验证结果
- Docusaurus 构建:
corepack yarn build成功,唯一的 broken-anchor 警告是仓库原有的 ArceOSconfiguration#appcontext问题,与本次修改无关。 - 引用文件检查:文档中引用的所有源文件路径(
someboot/src/arch/loongarch64/、axcpu/src/loongarch64/、somehal/.../liointc.rs、ax-driver/src/serial/ns16550.rs、ax-driver/src/time/loongson.rs、ax-driver/src/block/ahci.rs、ax-driver/src/net/loongson_gmac.rs)均存在。 - feature 验证:文档提到的
loongarch64-low-va、ls2k1000-ahci、ls2k1000-gmac等 feature 在代码中均有对应定义。 - 板卡配置:
os/StarryOS/configs/board/ls2k1000.toml存在,内容与文档描述一致。 - PR #1368(前置实现):已合并,且文档中引用的实现路径与 PR #1368 的合并内容吻合。
- CI 状态:该 PR 仅修改
docs/**下文件,根据.github/workflows/ci.yml的paths-ignore规则,主 CI 不会触发。docs.yml仅在 push 到main分支时触发,PR 不会运行。这是预期的 CI 行为。 - 重复/重叠分析:搜索了 LS2K1000、starryos docs 相关 open PR,未发现重复或冲突的 PR。
阻塞问题
Copilot 已经指出了两个相同问题,我在此确认并补充分析:
-
输出路径 target triple 不一致(已在 Copilot 评论中指出):文档第 157 行写
target/loongarch64-unknown-linux-musl/release/,但ls2k1000.toml中 target 为loongarch64-unknown-none-softfloat。Cargo 构建的产物会放在target/loongarch64-unknown-none-softfloat/release/。读者按文档路径找不到starryos.bin,应修正为与板卡配置一致的 target triple。 -
U-Boot 脚本缺少
loadaddr和fdt_addr定义(已在 Copilot 评论中指出):脚本中starry_load_tftp使用了${loadaddr},starry_fdt_move和starry_fdt_select使用了${fdt_addr},但文档未给出这两个变量的设置示例。PR #1368 的对应脚本中显式设置了setenv loadaddr 0x9000000098000000和setenv fdt_addr 0x900000000a000000。虽然某些 U-Boot 环境可能预配置了这些变量,但文档应至少给出经验证的值,避免读者在全新 U-Boot 环境下遇到tftpboot地址错误或fdt move失败。
建议在脚本前补上 loadaddr/fdt_addr 的 setenv 示例(可参考 PR #1368 中的经验值),或至少明确说明这两个变量需要用户根据实际板卡内存布局设置。
请修复以上两个问题后重新提交。
Powered by deepseek-v4-pro
There was a problem hiding this comment.
评审总结
本 PR 为 StarryOS 快速上手文档新增 Loongson 2K1000 物理板支持说明(共 2 个 commit)。文档按 crates 表格分类、构建方式、U-Boot 启动流程和支持边界组织,结构清晰,内容以已合并的 PR #1368 实现为准。
上一轮评审问题处理
Copilot 和 mai-team-app[bot] 上轮评审指出的两个阻塞问题已在 commit 84ca35c 中修复:
-
target triple 不一致(原行 157):新 commit 补充了
axbuild将逻辑 targetloongarch64-unknown-none-softfloat映射到scripts/targets/std/pie/loongarch64-unknown-linux-musl.json的说明,解释了产物路径target/loongarch64-unknown-linux-musl/release/的来源。经验证,该 target JSON 文件确实存在,映射关系正确。 -
U-Boot 脚本缺少
loadaddr/fdt_addr定义(原行 183):新 commit 在脚本前补充了setenv loadaddr 0x9000000098000000和setenv fdt_addr 0x900000000a000000,并附上 PR #1368 引用和内存布局注意事项。
两个 Copilot inline 评论指向的行都已被新代码替换,建议在合并前手动 resolve 这两个 review thread。
验证结果
- Rust 代码:本 PR 为纯文档修改(
docs/docs/quickstart/starryos.md),无 Rust 代码变更,无需cargo fmt/cargo clippy/cargo test。 - Docusaurus 构建:作者报告
corepack yarn build成功。当前容器环境缺少 Node.js/yarn,无法复现,但考虑到纯 Markdown 文档变更且构建工具链与 PR 内容无关,接受作者验证结果。 - 引用路径验证:文档中引用的 crate 路径、feature 名称和配置文件路径均已核对存在。
- CI 状态:PR 仅修改
docs/**,主 CI 的paths-ignore规则排除了 docs 路径,docs.yml仅在 push 到main时触发。0 个 check run 是预期行为,不阻塞合并。
重复/重叠分析
搜索了与 LS2K1000、StarryOS docs、2K1000 相关的 open PR,未发现重复或冲突的 PR。
- PR #1368(LS2K1000 平台支持)已合并,本 PR 是其文档补充。
- PR #1580(StarryWRT)、#1520(nixpkgs)、#1321(memcached test)等与本文档无重叠。
- 基分支
dev中不存在与本文档内容重复的 LS2K1000 小节。
结论
文档内容准确,结构合理,上一轮阻塞问题已全部修复。无剩余阻塞问题,建议合并。
Powered by deepseek-v4-pro
There was a problem hiding this comment.
评审总结
本 PR 为 StarryOS 快速上手文档新增 Loongson 2K1000 物理板支持说明(共 2 个 commit,修改 docs/docs/quickstart/starryos.md,+96/-1)。文档按 crates 表格分类、构建方式、U-Boot 启动流程和支持边界组织,结构清晰,内容以已合并的 PR #1368 实现为准。
上一轮评审问题处理
Copilot 和 mai-team-app[bot] 上轮评审指出的两个阻塞问题已在 commit 84ca35c 中修复:
-
target triple 不一致(原行 157):新 commit 补充了
axbuild将逻辑 targetloongarch64-unknown-none-softfloat映射到scripts/targets/std/pie/loongarch64-unknown-linux-musl.json的说明,解释了产物路径target/loongarch64-unknown-linux-musl/release/的来源。经验证,该 target JSON 文件确实存在,映射关系正确。 -
U-Boot 脚本缺少
loadaddr/fdt_addr定义(原行 183):新 commit 在脚本前补充了setenv loadaddr 0x9000000098000000和setenv fdt_addr 0x900000000a000000,并附上 PR #1368 引用和内存布局注意事项。
两个 Copilot inline 评论指向的行都已被新代码替换,建议在合并前手动 resolve 这两个 review thread。
验证结果
- Rust 代码:本 PR 为纯文档修改,无 Rust 代码变更,无需
cargo fmt/cargo clippy/cargo test。 - 引用路径验证:文档中引用的所有 crate 路径、feature 名称和配置文件路径均已核对存在(
platforms/someboot/src/arch/loongarch64/、platforms/somehal/src/arch/loongarch64/liointc.rs、drivers/ax-driver/src/serial/ns16550.rs、drivers/ax-driver/src/time/loongson.rs、drivers/ax-driver/src/block/ahci.rs、drivers/ax-driver/src/net/loongson_gmac.rs、os/StarryOS/configs/board/ls2k1000.toml、scripts/targets/std/pie/loongarch64-unknown-linux-musl.json均存在)。 - Docusaurus 构建:作者报告
corepack yarn build成功。当前容器环境缺少 Node.js/yarn,无法复现,但考虑到纯 Markdown 文档变更且构建工具链与 PR 内容无关,接受作者验证结果。 - CI 状态:PR 仅修改
docs/**,主 CI 的paths-ignore规则排除了 docs 路径,docs.yml仅在 push 到main时触发。0 个 check run 是预期行为,不阻塞合并。
重复/重叠分析
搜索了与 LS2K1000、StarryOS docs、2K1000 相关的 open PR,未发现重复或冲突的 PR。
- PR #1368(LS2K1000 平台支持)已合并,本 PR 是其文档补充。
- PR #1580(StarryWRT)、#1577(perf)、#1573(sysfs)、#1570(py-sci2)、#1568(UDP)、#1566(TUN/TAP)等与本文档无重叠。
- 基分支
dev中不存在与本文档内容重复的 LS2K1000 小节。
结论
文档内容准确,结构合理,上一轮阻塞问题已全部修复。无剩余阻塞问题,建议合并。
Powered by deepseek-v4-pro
背景
PR #1368 已为 StarryOS 增加 Loongson 2K1000 物理板支持,包括动态平台启动、LIOINTC、AHCI、GMAC、RTC、串口和低用户虚拟地址布局等能力。
现有 StarryOS 快速上手文档尚未说明 2K1000 使用了哪些平台与驱动 crates,也没有记录从构建
starryos.bin到通过 TFTP 和 U-Boot 启动的完整流程,使用者需要从板级配置、驱动源码和原 PR 记录中分别查找信息。修改内容
在 StarryOS 快速上手文档中新增 Loongson 2K1000 小节。
说明 2K1000 使用的 LoongArch64 target、动态平台路径和 SATA ext4 rootfs。
按平台、CPU、中断控制器、设备发现、串口、RTC、SATA、网络和文件系统分类列出相关 crates。
补充两种构建方式:
cargo starry defconfig ls2k1000后执行cargo starry build;--config os/StarryOS/configs/board/ls2k1000.toml构建。说明
starryos.bin、SATA ext4 rootfs、TFTP 和串口等实板启动前置条件。记录经过实板验证的 U-Boot 环境变量和
boot_starry启动脚本。明确当前支持边界:
ls2k1000-board.toml或对应的 StarryOS test-suit 板测配置;qemu-loongarch64只能验证 LoongArch64 通用路径,不能替代 2K1000 实板验证。实现逻辑
文档内容以当前
os/StarryOS/configs/board/ls2k1000.toml、someboot、somehal和ax-driver实现为准。启动路径按照实际依赖关系组织:
go启动内核并传入 FDT。someboot解析 FDT、建立页表并准备 SMP。somehal从 FDT 探测 LS2K1000 LIOINTC。rdrive和ax-driver探测 NS16550、RTC、AHCI 和 GMAC。ax-fs-ng从 AHCI block device 扫描并挂载 ext4 rootfs。验证
corepack yarn buildconfiguration#appcontextbroken-anchor 警告,与本次修改无关。