Having looked at multiple implementations of DRAM initialization code for different platforms, both in binary and source form, I have started to see certain patterns occur. In this talk, we will focus on the binary form, since it is how that code is often distributed these days, and thus useful to gain an understanding of how modern DRAM controllers work and how they are integrated in contemporary platforms. We will walk through the process of finding data and data structures that are used in the code, and see how we can make sense of them, so that we can extract them as pure facts, or come up with simpler solutions for some of them when implementing our own initialization procedures. To assist us with different aspects of analysis, we will feature helpful tools and techniques for certain steps, and conclude with achievements made so far.
Licensed to the public under https://creativecommons.org/licenses/by/4.0/
about this event: https://cfp.gulas.ch/gpn23/talk/CKHL93/