访问PCI卡的实际帧缓冲区

时间:2015-01-29 11:01:35

标签: linux-device-driver intel framebuffer pci pci-e

我正在尝试访问系统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: 
  1. 当前使用该资源的驱动程序是Intel i915
  2. 因此,当我请求区域或IRQ时,如果没有该驱动程序共享,它可能会发生冲突。
  3. 如果我删除了i915 rmmod它来修改我的驱动程序,我的屏幕会变空。
  4. 请帮忙。

    感谢。

0 个答案:

没有答案