I'm trying to get a good understanding of how a graphics adapter works and how a graphics driver is built.
So far I've read intel's (very technical) documentation, looked into linux i915 drm driver, and searched the net for more information for weeks. The platform I'm testing with is a Minnowboard MAX (64-bit Intel®Atom™ E38xx Series SoC - valleyview graphics) and I have the tools and knowledge to change and flash the UEFI firmware (using EDK2 - https://github.com/tianocore/tianocore.github.io/wiki/MinnowBoard). So my questions are:
1) I've read that issuing commands to the graphics adapter happens via the ringbuffer (by issuing batch buffers), is a ringbuffer initialized in the firmware found in the git repository?
2) If not than what are the steps to initialize one?
3) If it is initialized and the console output is generated with the help of the graphics adapter - how can I find the address to which I should write the batch buffers?
Any help or pointers would be greatly appreciated.