Skip to content

进阶主线:SDRAM 数据区 + 最小 runtime + Bootloader v1 #10

Description

@NoNormalCreeper

背景与地位

当前仓库已经有:

  • BRAM 启动路径
  • MiniSoC 双核本地回归
  • Probe 4a 的 SDRAM smoke 验证

但还没有形成课程“进阶要求”那条完整主线:先把 SDRAM 变成可靠数据空间,再让 runtime 用上它,最后实现一个最小可演示的 bootloader。

这条主线的总体策略是:

Probe 4 full
-> SDRAM data-only 接入 SoC
-> 最小 runtime
-> Bootloader v1
-> mem_wait / benchmark / ISE 资源与时序收口

这样可以避免一开始就把:

  • SDRAM controller
  • SoC 总线改造
  • linker / startup
  • runtime
  • bootloader
  • 板级时序

一次性绑死在同一个 issue 里。

本 issue 要解决什么

  • 明确整个进阶主线的阶段依赖
  • 明确每个 sub-issue 的负责人
  • 固定全局边界与非目标
  • 作为所有后续 issue 的父 issue / 里程碑导航

本 issue 不解决什么

  • 不直接承载具体代码实现
  • 不在这里讨论某一个模块的实现细节
  • 不在这里接受“跳过前置阶段直接做后置阶段”的提议

全局约束

  • Probe 4a 保留,不被 Probe 4 full 覆盖
  • BRAM 继续是唯一可执行区
  • SDRAM 第一阶段只做 data-only,不做执行
  • tinybus_decode 继续只负责 MMIO / accelerator 地址,不直接承载 SDRAM data path
  • 任何新阶段都必须先过本地仿真,再进入 ISE / 上板

测试约定

具体测试样例可以自行设计,但不能只做“理想路径跑通一次”的 smoke。
每个 sub-issue 至少要覆盖与自己相关的验证层次:模块级关注接口和状态机,子系统级关注组合后的握手与边界,SoC 级关注真实软件或真实主设备打通后的行为,回归挂载关注不回归,板级证据关注复位可重复、现象可记录、ISE 报告可导出。
提交 issue 时最好要附带命令、波形或日志、以及一句话说明本次测试覆盖了哪些风险点。

分工建议

  • 上板层负责人:Probe 4 / UCF / ISE / 实验室验证
  • SoC 层负责人:SDRAM data-only 接入 / uart_rx / bootloader_ctrl
  • firmware 层负责人:memtest / benchmark / runtime / host loader
  • 集成负责人:维护 MEMORY_MAPtecplus_minisoc_top、最终回归矩阵和里程碑推进节奏

里程碑列表

  • M1 / Probe 4 Full:SDRAM standalone tester
  • M2 / SDRAM data-only 控制器与 MiniSoC 接入
  • M2.5 / SDRAM memtest 与 benchmark baseline
  • M3 / 最小 runtime 与 SDRAM 段布局
  • M4 / Bootloader v1 硬件路径:UART RX + BRAM writer + CPU release
  • M4.5 / Bootloader v1 主机工具与 payload 流程
  • M5 / 收口:mem_wait + benchmark + ISE/PPA + 文档
  • 最终集成与验收收口

建议查阅

  • docs/superpowers/plans/2026-07-07-sdram-data-runtime-bootloader.md
  • docs/MEMORY_MAP.md
  • docs/DEV_FLOW.md
  • docs/PROBES.md
  • docs/darkriscv_wrapper_summary.md

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions