Librem 5 RAM initialization firmware

The upstream U-Boot documented installation of the following DDR firmware for Librem 5. Only 4 files are needed. The rest, apparently, are copies and older versions. The files are quite small.

~/firmware-imx-8.15/firmware/ddr/synopsys$ LC_ALL=C ls lpddr* -la | cut -f 5- -d ' '
 1668 Feb  8  2022 lpddr4_pmu_train_1d_dmem.bin
 1668 Feb  8  2022 lpddr4_pmu_train_1d_dmem_201904.bin
 1660 Feb  8  2022 lpddr4_pmu_train_1d_dmem_202006.bin
32244 Feb  8  2022 lpddr4_pmu_train_1d_imem.bin
32632 Feb  8  2022 lpddr4_pmu_train_1d_imem_201904.bin
32364 Feb  8  2022 lpddr4_pmu_train_1d_imem_202006.bin
 1380 Feb  8  2022 lpddr4_pmu_train_2d_dmem.bin
 1400 Feb  8  2022 lpddr4_pmu_train_2d_dmem_201904.bin
 1404 Feb  8  2022 lpddr4_pmu_train_2d_dmem_202006.bin
23232 Feb  8  2022 lpddr4_pmu_train_2d_imem.bin
24308 Feb  8  2022 lpddr4_pmu_train_2d_imem_201904.bin
25456 Feb  8  2022 lpddr4_pmu_train_2d_imem_202006.bin

They are accompanied with “Software Content Register” file, which inidicates that the “DDR” component contains proprietary software from Synopsys company. There is no separate license for Synopsys DDR in Appendix A, so the terms are the same as in NXP Software License Agreement.

No, it is not NXP. Synopsys holds rights in the DDR PHY according to the above. According to publicly available information, Syponsys is a software company for electronic desing automation (EDA), but they also license IP blocks. Assuming that NXP licensed DDR interface design from them, it probably includes a hardware design and these firmware blobs as a part of that overall design.

The terms explicitely forbid reverse-engineering, decompilation, disassembly of the firmware. So, what we are discussing in this thread must be an attempt to write a substitute from scratch in “clean room” by analysing the hardware, not the blobs, to be legal.

I am now also inclined to think that development of a substitute is practically impossible without technical details from NXP and Synopsys about the hardware design.

In order to succeed, an “AI” tool requires some incremental feedback on what it does. There is no observable feedback that such tool could rely on for guidance in this case.

Let’s start a separate thread in the forum about it. I do not understand why they include it.

1 Like