Software architecture for display controller and operating system interaction
Konstantin V. Pugin, Kirill A. Mamrosenko, Alexander M. Giatsintov
Center of Visualization and Satellite Information Technologies, Federal Scientific Center Scientific Research Institute of System Analysis of the RAS, https://niisi.ru/
36/1, Nachimovsky av., Moscow 117218, Russian Federation
E-mail: firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
Received January 15, 2021, peer-reviewed January 22, 2020, accepted January 29, 2020
Article describes solutions for developing programs that provide interaction between Linux operating system and multiple display controller hardware blocks (outputs), that use one clock generation IP-block with phase-locked loop (PLL). There is no API for such devices in Linux, thus new software model was developed. This model is based on official Linux GPU developer driver model, but was modified to cover case described earlier. Article describes three models for display controller driver development – monolithic, component and semi-monolithic. These models cannot cover case described earlier, because they assume that one clock generator should be attached to one output. A new new model was developed, that is based on component model, but has additional mechanics to prevent race condition that can happen while using one clock generator with multiple outputs. Article also presents modified model for bootloaders graphics drivers. This model has been simplified over developed Linux model, but also has component nature (with less components) and race prevention mechanics (but with weaker conditions). Hardware interaction driver components that are developed using provided software models are interchangeable between Linux and bootloader.
: drivers, embedded, KMS, kernel module, development
, 2021, 13(1):89-94.
Full-text electronic version of this article - web site http://en.rensit.ru/vypuski/article/372/13(1)87-94e.pdf