On Tue, 18 Mar 2025 14:36:23 +0100 "pelzflorian (Florian Pelz)" <pelzflor...@pelzflorian.de> wrote:
> Hello all; regarding dystopian direction; > > Christine Lemmer-Webber <cweb...@dustycloud.org> writes: > > The modularity of the Reform design is the most hope I have for a > > FOSS future on the otherwise largely dystopian direction of > > hardware lately. Hopefully we will get better and better options > > over time for the SoCs too. > > I guess DDR4 RAM suffers from board-specific cross-talk and that is > the main reason for free software support getting worse. Maybe > firmware is made with proprietary board information to avoid > cross-talk. Maybe free firmware could be made with time-intensive > testing of the particular board, each time the firmware is built. > Maybe instead of the real board, a virtual board “digital twin” could > be used for training, which would be free software if the virtual > board would only coarsely resemble the real non-free board. If I remember well what phcoder did for the ThinkPad X201, the trick to write DDR3 RAM init was to make it work without optimizing anything at first. For DDR3 you need to do training to precisely configure the delays to have good performances, but once how the RAM controller work is understood, you could simply configure it to use very big delays. Basically delays tell the RAM controller how much time it needs to wait for all the signals to have arrived. And to understand how the hardware works, tracing what nonfree binary do is a possible option but it also require some software that can run the blob in a way that can trace the hardware accesses. For instance in Coreboot there is something called SerialICE that can run the nonfree BIOS and print the MIMO accesses for instance. neox also wrote a paper on DDR3 RAM initialization for the KGPE-D16 but it's not public yet (and it needs some improvements as well), so if you want to help review it you need to write to him. Once released, it will be published under one or more free licenses. Compared to DDR3, DDR4 might require additional things, but similar tricks could probably be used to at least make it work in non-optimized ways first. For instance if we configure the RAM controller to be very lax, then we might not need to re-calibrate constantly because of temperature changes and so on. > Maybe USB3 has similar cross-talk? A lot of the hardware (HDMI, probably USB3) nowadays do require training. Denis.
pgpjIJNVknkT6.pgp
Description: OpenPGP digital signature