BAR 计算器
解码 Base Address Register 原始值,规划多 BAR 地址映射
BAR 解码规则速记
- Bit 0 = 0 为 Memory BAR,= 1 为 I/O BAR(I/O 单个 BAR 最大 256 字节)
- Memory BAR:Bit 1 = 1 表示 64 位地址(占用相邻两个 BAR 槽位),Bit 2 = 1 表示可预取
- 大小 = ~(回读值 & 掩码) + 1:Memory 掩码 0xFFFFFFF0,I/O 掩码 0xFFFFFFFC;大小同时就是对齐要求
- 固件分配时按大小对齐放置 BAR,因此某些地址区间会留下对齐空洞(见"地址规划"标签页)
- Resized BAR:若设备带 Resizable BAR Capability(ExtCapID 0x15),BAR 可软件重设为更大粒度