feat: B7 APIC/IOAPIC接管 + NVMe写路径 + virtio_net virtqueue + PE兼容层修复 + QEMU测试套件全自动化
中断路由 (B7): - apic.drv: LAPIC enable + IOAPIC重定向表编程(MADT ISO感知) + apic_route/apic_route_legacy/apic_diag开关 - UTSM: LAPIC EOI钩子(register_apic_eoi, ABI尾部追加) + IDT 0-255全覆盖 + spurious 0xFF特判 - FUCK: apic_route=0默认PIC(零回归) / =1 IOAPIC->LAPIC接管(失败完整降级) / legacy放开IRQ1/12/11 存储: - nvme.drv: 写路径 + PRP list + 读回校验 + MSI/MSI-X中断驱动(nvme_msi开关, 回退纯轮询) - build.ps1: apic.drv纳入构建(原为预置二进制) 网络: - virtio_net: virtqueue RX/TX + netdev注册 + DHCP自测(slirp真实OFFER) PE兼容层: - pe_shim: guest->host指针转换(g_emu_mem_base + gp()) + shim fn32列补齐 - gen_pe.py: PE32+ RVA偏置修复(BUG-004) + cmd.exe生成 - desktop_app.h: da_mouse_poll先判AUX位 + da_mouse_init冲刷残留(BUG-003/008) - shell: Ctrl修饰键跟踪(BUG-001) + g_run_image扩至1MB(BUG-002) QEMU测试套件: - 9用例全自动化(Run-All.ps1): boot-regression/driver-matrix/linux-compat/pe-compat/deaicup-e2e/userapps-matrix/network-e2e/performance-baseline/x86emu32-coverage - QemuTest.ps1公共库: 串口断言/monitor sendkey/screendump/HTTP服务器/并发隔离 文档: - CLAUDE.md: APIC/IOAPIC能力 + kernel_api暴露 + IRQ后端升级状态 - LESSONS_LEARNED.md: B7 LAPIC/IOAPIC经验教训(2条) - Bug记录.txt: BUG-20260801-001~008 + BUG-20260803-009(9条) - test-cases/*.md: 全部补充自动化脚本小节 - 桌面设计.md: .lnk快捷方式 + LINUXAPP.CNF Linux应用图标 - 系统开发策划.md: NVMe/virtio_net标完成 + B2/B7标已解决 + M2进度列
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
# Deshab Linux desktop apps (LINUXAPP.CNF)
|
||||
# Format per line: DISPLAY_NAME|linux command
|
||||
# - '#' starts a comment, blank lines are ignored
|
||||
# - display name <= 11 chars, command <= 63 chars, args split on spaces
|
||||
# - command runs in the Linux guest via the compat layer (see dsl command)
|
||||
HELLO|/bin/echo hello from deshab linux
|
||||
UNAME|/bin/uname -a
|
||||
LS|/bin/ls -l /
|
||||
@@ -1,2 +1,2 @@
|
||||
:: Deshab CMD 启动批处理 — 自动运行 Deaicup Software PE64 GUI
|
||||
deaicup
|
||||
ver
|
||||
exit
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -40,6 +40,28 @@ ps2kbd=1
|
||||
ioapic_init=1
|
||||
# lapic_enable=0 可禁用 LAPIC software enable (留 firmware 状态)
|
||||
lapic_enable=1
|
||||
# B7: APIC 路由接管开关 (apic.drv 自解析, 缺失=0)
|
||||
# 0=保持 8259 PIC 路由 (默认, 现状不回归)
|
||||
# 1=IOAPIC->LAPIC 接管: 注册 LAPIC EOI 钩子 + PIC IMR 全屏蔽 + TPR=0
|
||||
# + tick 链路自验 (vector 0x20, 失败自动完整降级回 PIC 并注销钩子)
|
||||
apic_route=0
|
||||
# B7 阶段2: 随 apic_route=1 额外放开 legacy IRQ1(键盘)/12(鼠标)/11(e1000)
|
||||
# UTSM EOI 钩子已落地, 这些线可持续投递 (ISA 线 edge/high, e1000 强制
|
||||
# level/active-low 按 PCI INTx 规范), 默认 0 关闭
|
||||
# QEMU 全链路已验证 (B1 向导按键/B2 启动/e1000 IRQ11), 真机冒烟前可回 0
|
||||
apic_route_legacy=1
|
||||
# B7 阶段3: NVMe MSI/MSI-X 中断驱动开关 (nvme.drv 自解析, 缺失=1)
|
||||
# 1=自动尝试: 先 MSI cap, 缺则 MSI-X (QEMU nvme 只有 MSI-X) — 表项编程
|
||||
# + 动态向量 (0x40-0xDF 池) + Create IOCQ IEN=1/IV=0 + INTMC 解除;
|
||||
# 任何前提缺失 (无 MSI/MSI-X cap/旧内核无向量分配器/回读不符)
|
||||
# 自动回退纯轮询, 行为与旧版一致
|
||||
# 0=强制纯轮询 (CQE phase bit), 与 B7 阶段3 之前完全一致
|
||||
nvme_msi=1
|
||||
# B7 诊断 (apic.drv): 1=启用 HPET 绝对时基对拍 (tick 2x 定论实验) +
|
||||
# IRQ12 鼠标流观察窗 (配合 QEMU monitor mouse_move), 只增观测不改路由语义
|
||||
# 每次启动 +10s (6s 观察窗), 定论已完成 (PIT mode3 IOAPIC edge 双触发
|
||||
# ~200Hz), 常规构建保持 0
|
||||
apic_diag=0
|
||||
|
||||
[utsm]
|
||||
max_segments=1024
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1,2 @@
|
||||
1
|
||||
1
|
||||
Reference in New Issue
Block a user