

The same can be done using GRUB2’s built in terminal by obtaining the MMIO base address using lspci and then using the read/write commands (read_byte/read_word/read_dword and write_byte/write_word/write_dword) to perform the associated operation on the desired register. This can be very useful, for instance, this method proved invaluable when studying the GMBUS.

One way to do so is to use Intel's graphics debugging utilities (The intel-gpu-tools package), which allow reading and writing to the device registers from the terminal.

There are various tools available to study the behavior of the graphics device for simpler tasks in order to gain an understanding of how something is done. Additionally, the reader is responsible for any damage due to inaccuracies in this documentation. Please note that graphics drivers are complex and while Intel's is on the simpler side, it is still a difficult topic not intended for newcomers, some experience writing drivers for other modern hardware is suggested before attempting this. At the moment this only covers first generation 'Intel HD graphics’, codename Ironlake. This page covers implementing driver support for Intel's integrated graphics technology. 11.4 Blitter - Block Litigated Transfer engine.11.2 Graphics virtual memory configuration.9.1 Getting the EDID from a DisplayPort device.
