第三十三周:K3 GMAC 网卡驱动调通 + AMP IPC 真板闭环
一、本周完成
驱动
- GMAC 网卡(DWMAC 5.10a + RTL8211F,tgoskits feat/k3-gmac-net):修复三个 寄存器定义错误(TSF 位、DMA 软复位缺失、MTL 通道基址)后 DHCP / ping 通过。 排查复盘见技术报告《K3 GMAC 网卡驱动调试教训》
- rt_shm(AP 侧 /dev/rt_shm):定案 X100 上 PBMT 不生效——改为四处 CBO 缓存同步点;mailbox ack 改 FIFO 排空循环;AWAIT 锁内重查前二次作废
- IMSIC(tgoskits):stopei claim+complete 合并为单条 csrrw(对齐 Linux), 修复读写分离窗口吞 MSI
部件 / 推进
- 共享内存窗口定案:SRAM 起始 0xc0800000 / 0x19000(amp.toml 与两侧 dts 对齐);补启动期防护——3s 写入门控(SPL 执行区 + U-Boot 清窗)+ magic 自愈看门狗;QEMU 窗口同步扩到 0x19000
- AMP IPC 推进到真板闭环:user-test-ipc 三轮 RPC(通知回显 + ADD 断言) 100% 通过。挂死根因为 ov-rpc NOTIFY_FLAG 缺失(Quiet 回包无门铃),三层 排查过程见技术报告《一次 AMP IPC 挂死的三层排查》
- tgoskits 分支栈重构(riscv-aia ← k3-board-support ← rt-async-amp)并 force-push;三仓收束提交(调试期无效修改全撤 + subagent 审阅)
二、待办
- tgoskits 走双仓合并流程(先子后主)回集成分支
- menvcfg.PBMTE 调研:修通后可省逐操作 CBO 开销
- RP boot #1 偶发静默死亡观察
三、本周技术报告
- K3 GMAC 网卡驱动调试教训: 三个寄存器定义错误的定位过程与弯路复盘
- 一次 AMP IPC 挂死的三层排查: 缓存属性(PBMT 不生效)/ 中断原子性(stopei csrrw)/ 协议标志位 (NOTIFY_FLAG)三层根因与 wget 掩蔽效应
四、提交位置
| 仓库 | 位置 | 内容 |
|---|---|---|
| tgoskits | feat/riscv-aia | IMSIC csrrw 修复 |
| tgoskits | feat/rt-async-amp | rt_shm 修复 + 共享窗收回 0x19000 |
| rt-async-amp | master | 窗口落位 + 启动期防护 + NOTIFY_FLAG 修复 + QEMU 窗口 |
| tgoskits-k3-gmac | feat/k3-gmac-net | GMAC 驱动(诊断代码待清理) |