
On 2021-11-11, Patrick Wildt wrote:
On Thu, Nov 11, 2021 at 12:21:26PM +0100, Patrick Wildt wrote:
On Wed, Nov 10, 2021 at 02:26:54PM -0800, Vagrant Cascadian wrote:
On 2021-09-02, Patrick Wildt wrote:
The MNT Reform 2 is a modular DIY laptop. In its initial version it is based on the BoundaryDevices i.MX8MQ SoM. Some parts have been lifted from BoundaryDevices official U-Boot downstream project.
...
Both simply hanging with:
U-Boot SPL 2021.10 (Jan 01 1970 - 00:00:01 +0000)
Still hanging with the below patch...
There have been a few changes in U-Boot since I sent my patchset, it's possible the diff by itself might not be enough.
I will send out a new patchset soon, but the move to Binman doesn't work for me yet. It's weird, because I don't see a diff to other i.MX8MQ platforms, so I'm still debugging that. Maybe the other i.MX8MQ boards don't work with Binman either?
Keep note that the build procedure (how to supply bl31) changes once Binman is used.
I have fixed the issue. My changes depend on Peng's patchset to change i.MX8MQ to Binman, so I will re-issue a v3 of the patchset as soon as that is done (to not interfere any further with his patchset).
'Attached' you'll find a complete diff you can apply to origin/master, which includes some of Peng's changes. Let me know how it goes for you.
To get it to build, I needed to add this:
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 07954bc201..e51b5317fc 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -161,9 +161,9 @@ spl/u-boot-spl.cfgout: $(IMX_CONFIG) FORCE $(Q)mkdir -p $(dir $@) $(call if_changed_dep,cpp_cfg)
-spl/u-boot-spl-ddr.bin: spl/u-boot-spl.bin spl/u-boot-spl.cfgout FORCE +u-boot-spl-ddr.bin: spl/u-boot-spl.bin spl/u-boot-spl.cfgout FORCE
-flash.bin: spl/u-boot-spl-ddr.bin u-boot.itb FORCE +flash.bin: u-boot-spl-ddr.bin u-boot.itb FORCE $(call if_changed,mkimage) endif
Is the flash.bin step unecessary? I see DDR timing code in the patch series; are corresponding lpddr4*.bin no longer necessary?
The flash.bin has all bits: U-Boot, U-Boot SPL, lpddr4*.bin and bl31.bin
lpddr4*.bin is the firmware for the DDR controller. So you need the timing information *and* the firmware.
I also tried building with an old version of arm-trusted-firmware (v2.2), as that was the most recent upstream version that successfully built. This seems to be a fork of ATF that has support for iMX8MQ, but it is unclear which branch/tag/etc. should be used with the mnt/reform:
Not sure right now, but I think I was using the one that's build on OpenBSD-current, which seems to be arm-trusted-firmware 2.5. I'll check it.
I can't get atf 2.5 for imx8mq to build on Debian or GNU Guix; it seems that maybe it is no longer supported upstream:
https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/commit/?id=e3c07...
Though it's not exactly clear what works...
It would be nice to include a board README in the next patch revision to spell out some of the details of exactly which other projects and versions/comments/branches are expected to work with MNT Reform2.
This is nothing specific to the MNT Reform2. It's the same for all i.MX8MQ boards. ATF+DDR+U-Boot have to work together, and it doesn't matter which board it is. Hence I don't believe providing that kind information in a Reform-specific README makes sense.
I guess we need a workable README for i.MX8MQ or something, and only boards that differ from that process document the differences?
But at the moment, it appears to still be guesswork.
live well, vagrant