跳到主要内容

构建配置

Feature 的职责从“选择 ax-driver 子模块和单个 Ax*Device 类型”调整为“选择要链接的 rdrive probe module、driver core、rdif 能力和 runtime wrapper”。构建配置通过 axbuild 把上层 app/system 的需求映射到具体的 ax-driver feature。

Feature 映射

旧 feature 语义新 feature 语义
ax-driver启用宿主设备 probe 主线,即 rdrive
nvme链接 PCI NVMe probe、rdif-block 控制器和 IRQ-driven block runtime
virtio-net链接 VirtIO probe 和 rdif-eth 注册
virtio-gpu链接 rdif-display / rd-display probe
virtio-input链接 rdif-input / rd-input probe
virtio-socket链接 rdif-vsock / rd-vsock probe
driver-*链接具体硬件 driver core 和 OS glue probe
bus-*链接总线枚举或控制器 probe,例如 PCIe
动态平台通过 FDT/ACPI/somehal 平台事实发现设备,不走 ax_driver_*Ops 回灌

MMIO 与 PCI feature 要分开表达,例如 virtio-gpu-mmiovirtio-gpu-pci 都是 probe module,而不是上层设备类型选择。

ax-driver Feature

drivers/ax-driver/Cargo.toml 定义了按领域能力和具体硬件组织的 feature。基础 feature 选择能力边界和 runtime:

feature启用
blockrdif-block、block OS glue
netrd-net、net OS glue
displayrdif-display、display OS glue
inputrdif-input、input OS glue
vsockrdif-vsock、vsock OS glue
pciPCIe controller、PCI endpoint 枚举
pinctrlrdif-pinctrl
irqIRQ binding resolver
serialrdif-serialsome-serial

VirtIO feature 组合能力边界和 PCI transport:

feature组合
virtio-netnet + virtio + pci
virtio-gpudisplay + virtio + pci
virtio-inputinput + virtio + pci
virtio-socketvsock + virtio + pci

具体硬件 feature 链接对应的 driver core:

featuredriver core
nvmenvme-driver
rockchip-sdhciRK3568/RK3588 DWCMSHC + sdhci-host + sdmmc-protocol
cv181x-sdhciCV181x/SG2002 SDHCI + sdhci-host + sdmmc-protocol
fxmacfxmac_rs
intel-neteth-intel
realtek-rtl8125realtek-rtl8125
aic8800-wifiaic8800 + sdhci-cv1800 + sdio-host
rknpurockchip-npu
rgarockchip-rga
jpegrockchip-jpeg
rk3588-pcierk3588-pci
rk3588-pwmrockchip-pwm + rdif-pwm
rockchip-dwc-xhcicrab-usb + Rockchip SoC

块设备只公开已经迁移到 owned-DMA、IRQ-only BlockController/HardwareQueue 合同并通过实机写入矩阵的注册入口。JH7110 DWMMC、Phytium MCI、Rockchip DWMMC、ramdisk、AHCI、VirtIO block、K230 SDHCI 以及其他尚未迁移或尚无完整硬件验证的 driver core 可以保留源码,但没有 公开 feature 或注册入口。传统 SDHCI/DWMMC/MCI 的硬件队列深度和最大提交批次 均为 1;这不是伪造的多队列能力。 | xhci-mmio / xhci-pci | crab-usb + MMIO/PCI transport |

配置原则

  • 能力边界优先:feature 应先表达领域能力(block/net/display/...),再表达具体硬件(nvme/fxmac/...)。
  • transport 分离:MMIO 和 PCI transport 独立 feature,避免隐式耦合。
  • SoC 依赖显式:Rockchip 等平台依赖通过 rockchip-socrockchip-pm 显式声明,不隐式引入。
  • feature 不选平台路径:feature 选择链接哪些 probe module,不选择 FDT/ACPI/Static 平台来源。平台来源由 rdrive::init(Platform::...) 决定。