Be the first to like this
An SoC is comprised of multiple IP blocks from various vendors. In some cases the sources or models of these hardware blocks are not documented or marketed by the SoC vendor. Nevertheless, there are only a handful of IP vendors for a given application space. Chances are high that these undocumented blocks are compatible with or even the same as those already supported in the Linux kernel.
This talk goes through the various "X-compatible" hardware blocks we have encountered while adding mainline support for Allwinner SoCs, how we integrated support for these into existing drivers, and hopefully, how to spot them in the future. The hardware ranges from the simplest of UARTs to complicated register-obfuscated HDMI and Ethernet controllers.