XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8

RTX 5090 实体诊断照片与资源交接定位(2026-10-17)

用户提供了实体 XFESystem 桌面中打开 Gpu.txt 的照片。照片 SHA256 为 5d51061da6ffcc0f1e1e41e696130e5d5e6b4e97cc7e1ee44df8c278a9e82776;原始私人照片不随源码提交。以下是照片中的可见文字转录,不是从设备新采集的寄存器转储:

Scope: XFESystemGuest
CUDA: unavailable
GPU rasterization: unavailable
Discovery state: 2; devices: 1
PCI 1:0.0; Vendor 0x10DE; Device 0x2B85
BAR0 0xD8000000; bytes 0; size source 0
BAR1 0xF000000000; bytes 34359738368; size source 1
BAR2 0x0; bytes 0; size source 0
BAR3 0xF800000000; bytes 0; size source 0
BAR4 0x0; bytes 0; size source 0
BAR5 0xF000; bytes 0; size source 0
GB202 boot probe state: 2; FSP scratch 0x00000000

可以确认的结论

PCI 枚举已经发现 10de:2b85,地址为 01:00.0。Discovery state 2 是枚举完成状态;后面的 GB202 probe state 2 是另一套状态码,表示寄存器读取前的资源检查没有通过。

BAR0 长度为 0、来源为 0,表示长度未知,不表示显卡没有显存。BAR1 的 34359738368 字节是经过 ReBAR 能力读取的 32 GiB PCI 地址窗口,不能据此证明 CUDA、显存分配或 GPU 绘制可用,也不能拿 BAR1 的大小推断 BAR0。

当前 NvidiaBootProbe.Initialize 只有在 TryRegisterPage 通过后才调用 MMIO 读取;状态 2 路径没有执行这次读取。因此照片中的 FSP scratch 0 是未赋值的初始值,不能解释为从显卡读到了零、FSP 启动失败或显卡损坏。FSP 观察与电脑 UEFI Secure Boot 设置也不是同一项状态。

照片至少证实缺少一个必要条件:BAR0 必须有与当前 PCI 分配一致的固件长度。它没有显示 PCIe、命令寄存器和 UEFI 交接阶段,不能证明其他所有前提都已满足,也不能区分“固件查询没有返回可接受的描述符”和“表在交接、映射、校验、设备匹配过程中被拒绝”。目前仍没有完成 GSP/RM、通道、CUDA 或 GPU 渲染移植。

本轮代码改动

资源读取规则保持不变。新增只含整数的诊断字段,记录 EFI 系统表、配置表数组、GPU 配置表的映射和校验阶段,以及 RTX 5090 的 PCI 匹配、BAR0 描述符应用阶段。探测函数保留原有接受条件,另外给出第一个拒绝原因;没有添加写 BAR 探测、猜测窗口大小、GPU 固件启动或寄存器写操作。

报告区分实际 MMIO 采样和未读取状态。只有读取真正返回后才显示寄存器值;旧内核状态 2 的报告也显示 FSP scratch: not read。新增字段是原整数 ABI 的追加,原结构布局与加速不可用标志不变。Console 版本也链接同一报告格式器,仍分别构建为单系统。

参考协议及实现:

受控宿主场景使用照片中可见的 BAR0/BAR1 数值,其他字段是明确构造的合法测试数据。它验证 BAR1 无法授权 BAR0 读取,并不是实体硬件回放或 CUDA 运行测试。

下一次实体确认

补充诊断版本启动后,请读取这次启动新生成的 X:\System\Diagnostics\Gpu.txt。桌面检测到 RTX 5090 时会自动打开它;Documents 中手动保存的旧副本可能仍是之前的报告。

重点保留 UEFI resource handoff、RTX 5090 firmware match、BAR0 firmware resource 和 Probe stopped before MMIO 几行。它们用于确定后续该修复的具体阶段,不能预先算作实体资源交接或 CUDA 已通过。

构建、验收、镜像和介质结果另见同名 JSON 摘要;未获得新的实体 GPU 执行证据前,FullReleaseQualified 保持 false。

当前交付状态

17 组、1676 项宿主检查,63 组/200 项固件场景断言、108 项资源检查通过;928 个宿主/来宾合并输入与工作区、Git 暂存字节完全一致。完整 Desktop 同一镜像通过启动动画、Bing 两次查询和连续滚动、Monaco 实际编辑、Markdown 八阶段、经典终端、新诊断文本回读、私有 USB 双冷启动和五卷独立回读,QEMU 退出码 0。

源码位于 codex/rtx5090-resource-diagnostics,以当前已提交的 codex/csharp-system 为基线;主目录另有正在进行的多屏改动,没有混入本镜像。

交付标签 0.3.0-dev.4-gpu-report.1。源镜像 SHA256 为 071d5f4c7427cf9b5f956229adb04cad9c95a029431875c4af8415b0e3d27d9b;ZIP SHA256 为 f3e3745c0de0d9d8f987ca89dbaefca1ba9db0f01b3c4a2bcbdc023619151797。ZIP 完整回读、E 盘 1619 个清单文件解压哈希和 Windows PowerShell 5.1 重定位启动计划通过。包位于 E:\XFESystemArtifacts\GpuReport20261017-1792200770239\。

写盘计划已按同一专用设备和上一版成功回执重新核对;Windows 管理员提升返回“操作已被用户取消”。辅助写盘进程没有启动,没有打开或改写实体磁盘,本次没有更新 U 盘。失败事实与 fresh 非系统/启动盘、离线身份核对保存在 E 盘 Usb/NotWritten.json 和 Postflight.json;已禁用取消的旧辅助脚本。恢复写入须重新核对身份、创建新计划/token 和新辅助脚本,继续备份恢复工作区。不能把镜像完成记作 U 盘已经更新。

外层宿主壳程序误传播了 RTC 负向测试预期的 254;逐项 TRX、原生主测试退出码 0、两项预期 254 与哈希绑定回执已独立审计,17 组检查本身无失败。首个 Console 构建参数错误、错误的原生入口测试参数、缺失磁盘 fixture 构建,以及首次引用不存在的 Launch.ps1 的失败留存,未计为通过。

C 盘空间下降后,跨盘迁移并删除已复制构建副本的操作被自动审批拒绝,只返回 blocked by policy。该命令没有执行。未移动或删除现有 C 盘文件;后续包导出、解压、启动计划和写盘日志/备份直接放到 E 盘。

已从 E 盘完整解压包打开 SDL QEMU 测试窗口,PID 23248、非零窗口句柄和实际桌面首帧日志已确认。该虚拟机没有实体 RTX 5090,GPU/CUDA 仍为 0;交互窗口启动不另算新的完整验收。源码提交 b430f86 已推送。