DDR4 PHY training binary-blob reverse engineering/ libre reimplementation call to action - Librem 5
Zenaan Harkness
zen at freedbms.net
Fri Jul 27 00:56:55 PDT 2018
For those with knowledge, capacity, and will, here is a task for the
TODO list, if it's not beyond your ability:
Apparently all DDR PHY manifestations require DDR4 "training" to work
with DDR4 RAM.
Training firmware blobs are currently all proprietary, binary only.
The Librem 5 phone folks are not currently with someone who can
reverse engineer and/ or reimplement such training firmware, and so
are using an i.MX8 secondary CPU to perform this function, using the
existing binary blobs.
The ideal situation would be someone with enough knowledge etc
solving this particular problem with a libre “training firmware”
implementation.
(Also, TPM-free Purism laptop models currently available on runout
sale at ~$300 off - a very rare Purism sale (the TPM chip was so
popular, all new models have it included by default).)
Solving the first FSF RYF hurdle for the Librem 5
https://puri.sm/posts/librem5-solving-the-first-fsf-ryf-hurdle/
…
In U-Boot there are a number of firmware blobs that need to be
loaded into the DDR PHY so that it can be trained to work with DDR4.
This training is done on every boot.
The normal boot sequence for the i.MX 8 is that the internal ROM
loader loads the Secondary Program Loader (SPL) which, in this case,
is a small version of U-Boot that can initialize the DDR and load
the full U-Boot into DDR to finish the boot process. Very early in
the SPL, the training blobs get loaded into the DDR PHY and the
training sequence is run. The DDR training procedure is completely
un-documented so re-writing the firmware blobs with free/libre or
open source versions would be an arduous process.
We can’t ignore the DDR PHY because it is interface between the i.MX
8 internal buses and the DDR4 chips outside of the SOC. The DDR PHY
is also part of the i.MX 8 silicon so we can’t just replace the DDR
PHY with a different one. It also appears that all DDR PHY’s
required this training to work with DDR4, so going to a different
SOC wouldn’t solve it either.
...
More information about the cypherpunks
mailing list