Native Intel graphics: Difference between revisions

no edit summary
[unchecked revision][unchecked revision]
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 10:
===Prerequisites===
 
Before trying to implement a native driver for your OS, make sure toyou understand the basics first.
 
* Read the [[VGA Hardware]] page. Especially the part about display timings it is still relevant for modern graphics cards. You should know what horizontal/vertical active, total, sync start/end and blanking start/end values mean.; You also need to knowand what a pixel clock is.
* You need to be able to access [[PCI]] configuration space and find MMIO regions that are determined by BARs.
 
Line 53:
 
* Intel's documentation is available [https://01.org/linuxgraphics/documentation/hardware-specification-prms here]. We are primarily interested in the [https://01.org/sites/default/files/documentation/g45_vol_3_register_0_0.pdf G45: Volume Three: Display Register] that describes the display registers. [https://01.org/sites/default/files/documentation/g45_vol_1a_core_updated.pdf G45: Volume 1a Graphics Core] documents the graphics memory interface and the PCI configuration space. The [https://01.org/sites/default/files/documentation/965_g35_vol_3_display_registers_updated.pdf G35: Volume Three: Display Registers] contains a few registers that are undocumented in the G45 manual but still must be programmed by the driver.
* The [http://lxr.free-electrons.com/source/drivers/gpu/drm/i915 i915 driver] of the Linux kernel. Almost all of the mode setting logic is in [httphttps://lxrelixir.free-electronsbootlin.com/linux/latest/source/drivers/gpu/drm/i915/display/intel_display.c intel_display.c].
 
===Mode setting===
Line 164:
 
The VGA emulation is controlled via the <code>VGACNTRL</code> register. For non-VGA modes the <code>VGA Display Disable</code> bit should be set. Likewise the <code>VGA Centering Enable</code> bits should be set to 0.
 
==Intel HD Graphics==
 
See [[Intel HD Graphics]].
 
==Debugging tips==
Anonymous user