November 23, 2025, 03:10:07 AM

Mainline buildroot / iMX8MP SOM

Started by cushychicken, February 28, 2025, 04:23:30 PM

Previous topic - Next topic

cushychicken

Just an FYI to all the folks here that the Olimex iMX8MP SOM is capable of booting and running mainline `buildroot` using the `freescale_imx8mpevk_defconfig` image as a starting point.

I used the iMX8MP SOM as a starting point for a design and was having trouble getting PCIe functionality out of the board with the newer kernel. The buildroot-imx configuration provided by Olimex worked flawlessly. (We had to upgrade kernels due to some interop and security concerns.)

Anyway - I'll save the trouble of a long response, but it does seem that the freescale_imx8mpevk_defconfig works, and helps resolve some compatibility issues between the DTS files. There were significant changes in DTS formats and syntax between kernel version 5 and 6 that seem to affect the PCIe phy configuration. Mainline DTS and kernel on buildroot 2024.08 works like a charm.

The mainline buildroot 2024.08 also adds ethernet functionality in Uboot, which is great when you want to tftp upgrades to the board instead of preparing and flashing a brand new image each time.

No response needed - just wanted to pass this guidance along to others.

Thank you again for such a superb piece of open hardware!

LubOlimex

#1
We published official Armbian-based Debian 12 images and I've updated the links at the product pages of iMX8MP-SOM-4GB-IND and iMX8MP-SOM-EVB-IND. There is also a link to the sources at our GitHub.

Most things seems to be working fine from what we've tested so far (HDMI + HDMI audio, both GbE connectors, USB 3.0, EMMC/Flash extension header, m2 nVME slot, both CAN drivers and connector, etc).

The only thing that we can confirm is NOT working and NOT supported at the moment is the ES8388 audio - neither the input nor the output (HDMI audio works tho). If someone can get that working we would appreciate it.
Technical support and documentation manager at Olimex

cushychicken

I haven't tried your Armbian image, but I can confirm that both PCIe and USB work on the freescale_imx8mpevk_defconfig image from buildroot 2024.08, and that's what I really needed to work!

mike105105

There seems to be an issue with every dts patch I have found for this board, even the one in the olimex buildroot-imx repo. The ethernet reset GPIOs are swapped between the 2 interfaces.  For example, buildroot-imx/board/olimex/imx8mp/linux/0001-dts-add-imx8mp-olimex.patch:
&eqos {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_eqos>;
    phy-mode = "rgmii-id";
    phy-handle = <&ethphy0>;
        phy-reset-gpios = <&gpio4 02 GPIO_ACTIVE_LOW>;
        .
        .
        .
pinctrl_eqos: eqosgrp {
        fsl,pins = <
            .
                        .
                        .
            MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22        0x19
        >;
    };

I was wondering why my yocto build only had 1 ethernet port come up, the patch I was using was messed up slightly different and managed to have the second ethernet configured close enough to work.

LubOlimex

Sorry can you elaborate further? I am not sure if I understand the problem clearly. They are GPIOs how can these be swapped?
Technical support and documentation manager at Olimex

mike105105

I mean, just look at the dts section I pasted.  The phy reset gpio is being set to gpio4 02, but the pinctrl for it is specifying gpio4 22. The node for the other ethernet is swapped as well.  The correct gpio is specified in the pinctrl, but the wrong one is specified for the reset.  They are each set to the others reset gpio.

Michael