Issues with the PICO-PI-IMX7

Hi Joris,

Thanks a lot for this tutorial, it helped me make my first steps in Mender and some of the Technexion/Yocto related things. I have followed all the steps but I think I have made a mistake somewhere. I am a beginner so hopefully I can explain the issue clearly.

After the last step (dd) I have tried to reset the board but it did not boot.

I then put the board back in serial mode to repeat the imx_usb steps. After loading u-boot.img with imx_usb, the autoboot routine actually booted the image. Another reset, but no boot (no activity on the serial console).
Now I have repeated the above again (imx_usb steps), and also run the dfu-util commands again.
After putting the board back in EMMC mode, everything booted automatically.

I have started from scratch and could repeat this behaviour.
It’s almost like writing the sdimg with dd did something to the u-boot area in memory.

So my steps to get it to boot were:
(serial mode) imx_usb -> dfu -> (emmc mode) -> ums -> dd -> (serial mode) -> imx_usb -> dfu -> (emmc mode)
I must have done something wrong, and hopefully one of you could teach me what it is.

If you need more information please let me know.

Thanks in advance!

It’s a pleasure for the tutorial, it’s one of my favorite boards.
For the steps:
(serial mode) imx_usb -> ums -> dd -> dfu

In fact the SPL and the U-Boot are stored on the emmc. So you have to flash the rootfs first and then update the SPL and U-Boot via dfu.

It’s a mistake on my part I encourage you to contribute by modifying the doc

Hi Joris,

Thanks for your reply. Your suggestion worked (for thud).

I could not get DHCP working on eth0 on thud so I switched to sumo.
Now the above suggestion does not work anymore and I can only get the board to boot through imx_usb and then let autoboot do it’s thing. I can write SPL and u-boot with dfu after ums but no boot.

DHCP works now though :wink:

Thanks, and if we sort it out completely I will definitely try and contribute to the tutorial.

On a sidenote I could not get warrior to build at all with Yocto because of a compatibility issue with boundary-layer? Because warrior seemed compatible reading your tutorial I thought I’d give it a try.

Hi Bart,

I don’t remember having a problem with DHCP on thud.

For warrior I recently made a compilation and I did not have an error

I will try baking thud again tomorrow and provide some DHCP test results.

A fresh install of warrior resulted in:

$ bitbake core-image-base
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session (/home/bart/mender-nxp-warrior/build/bitbake-cookerdaemon.log):
--- Starting bitbake server pid 20249 at 2020-09-03 21:28:55.769187 ---
Traceback (most recent call last):
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/cookerdata.py", line 276, in parseBaseConfiguration
    self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/cookerdata.py", line 396, in parseConfigurationFiles
    % (c, " ".join(layerseries), " ".join(compat)))
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/__init__.py", line 110, in fatal
    raise BBHandledException()
bb.BBHandledException

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/daemonize.py", line 87, in createDaemon
    function()
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/server/process.py", line 459, in _startServer
    self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/cooker.py", line 199, in __init__
    self.initConfigurationData()
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/cooker.py", line 364, in initConfigurationData
    self.databuilder.parseBaseConfiguration()
  File "/home/bart/mender-nxp-warrior/sources/poky/bitbake/lib/bb/cookerdata.py", line 311, in parseBaseConfiguration
    raise bb.BBHandledException
bb.BBHandledException
ERROR: Layer boundary-layer is not compatible with the core layer which only supports these series: warrior (layer is compatible with thud sumo)

I could not find a reference to boundary-layer online. I’m on 16.04.7 LTS and re-checked the required packages section. Hopefully a part of this error message gives you a hint.

Ok I did

git checkout warrior

inside the meta-boundary directory and now I can use bitbake.

It seems the manifest-nxp.xml for the warrior branch points to a specific revision for meta-boundary:

14d7a54464450e50bdd28b6cba505d1263bc1b41

I guess there is a specific reason for that? Sorry lots to learn for me at the moment…

I have just modified the doc, hopefully correctly.

Hi, I’m trying to solve an issue with sdma. Running core-image-base I get the following message:

root@imx7d-pico:~# dmesg | grep sdma
[    0.914653] imx-sdma 30bd0000.sdma: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[    0.914773] imx-sdma 30bd0000.sdma: Falling back to syfs fallback for: imx/sdma/sdma-imx7d.bin
[   64.492383] imx-sdma 30bd0000.sdma: external firmware not found, using ROM firmware

I have added ‘firmware-imx’ to the build, and after that I can confirm the requested binary is added to the image:

root@imx7d-pico:/lib/firmware/imx/sdma# ls
sdma-imx6q.bin  sdma-imx7d.bin

After a lot of googling I thought i’d ask you for help. Reason I’m asking is that I would like to get the unit to boot up without any failures before continuing development, I also don’t know how important this error is.