我正在尝试访问系统VGA控制器卡上的帧缓冲区。
lscpi -vn 给出:
00:02.0 0300: 8086:2a02 (rev 0c) (prog-if 00 [VGA controller])
Subsystem: 1028:022f
Flags: bus master, fast devsel, latency 0, IRQ 45
Memory at fea00000 (64-bit, non-prefetchable) [size=1M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
I/O ports at eff8 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 3
Kernel driver in use: i915
现在,我访问该设备并获得:
fb_base = pci_resource_start( devp, 0 ); **output: FEA00000**
fb_size = pci_resource_len( devp, 0 ); **output: 1MB**
所以帧缓冲的范围是FEA00000 - FEB00000
但是从lspci -vn输出这个区域是不可预取的。
这是否意味着我根本没有指向帧缓冲区。
Is my framebuffer at address E0000000:
请帮忙。
感谢。