-
Notifications
You must be signed in to change notification settings - Fork 52
Open
Labels
enhancementNew feature or requestNew feature or request
Description
背景
当前依赖设备树 reg 属性进行 MMIO 地址自动映射的方案存在局限性。部分设备的 reg 可能用于定义非 MMIO 地址(如配置空间、特殊功能寄存器等),导致映射不准确,可能引发访问异常或设备模拟错误。
重构目标
建立更灵活、可配置的地址映射机制,区分不同虚拟机使用场景,确保 MMIO 映射的准确性与安全性。
设计方案
1. 配置两种基本映射模式(map_method_base)
默认全不映射
适用于全模拟设备或无需直接硬件访问的客户机,所有地址均由虚拟设备模拟处理。
默认全直通
适用于驱动代理型客户机,允许直接访问物理设备地址,仅对特定区域进行拦截或模拟。
2. 默认全直通模式的处理逻辑
初始化阶段,基于物理地址范围(pa-range)创建全局地址范围管理器。
按以下顺序在地址范围内“打洞”(即排除不直通的区域):
客户机内存区域(memory)
模拟设备占用的地址范围
配置文件中明确禁止直通的地址区间
剩余被分割的多个地址区间,将采用直通方式映射到客户机,允许其直接访问对应物理设备。
优势
明确区分模拟与直通场景,减少误映射风险。
通过范围管理机制,灵活支持复杂地址布局。
提升虚拟机对不同设备类型的兼容性与运行稳定性。
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request