I am using HummingBoard Pulse with iMX8M Plus SOM.
For my application I am trying to build Yocto distribution image and communicate with the Basler camera.
I followed the guide on this link, prebuilt image works as expected, I can communicate with the camera.
The problem comes when I try to use the Yocto image that I built myself (using bitbake imx-image-full command), there are tons of errors in the boot messages, among them is a message
mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36.
Below is the output emmited during boot:
U-Boot SPL 2020.04-00009-g0bbe6665e9 (Feb 02 2022 - 12:52:09 +0100) Training for 3GByte Micron DDRINFO: start DRAM init DDRINFO: DRAM rate 3000MTS Training FAILED Re-training for 1GByte Samsung memory DDRINFO: start DRAM init DDRINFO: DRAM rate 4000MTS DDRINFO:ddrphy calibration done DDRINFO: ddrmix config done Normal Boot Trying to boot from BOOTROM image offset 0x0, pagesize 0x200, ivt offset 0x0 NOTICE: BL31: v2.2(release):rel_imx_5.4.70_2.3.0-0-gf1d7187f2 NOTICE: BL31: Built : 12:15:32, Feb 2 2022 U-Boot 2020.04-00009-g0bbe6665e9 (Feb 02 2022 - 12:52:09 +0100) CPU: i.MX8MP rev1.1 1800 MHz (running at 1200 MHz) CPU: Commercial temperature grade (0C to 95C) at 39C Reset cause: POR Model: NXP i.MX8MPlus LPDDR4 SolidRun board DRAM: 1 GiB MMC: FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... *** Warning - bad CRC, using default environment [*]-Video Link 0probe video device failed, ret -2  lcd-controller@32e80000, video  mipi_dsi@32e60000, video_bridge  adv7535@39, panel probe video device failed, ret -2 In: serial Out: serial Err: serial BuildInfo: - ATF f1d7187 - U-Boot 2020.04-00009-g0bbe6665e9 switch to partitions #0, OK mmc2(part 0) is current device flash target is MMC:2 Net: Warning: ethernet@30bf0000 (eth1) using random MAC address - 02:fe:b3:99:32:eb eth1: ethernet@30bf0000 [PRIME] Fastboot: Normal Normal Boot Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device Scanning mmc 1:1... Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf 241 bytes read in 16 ms (14.6 KiB/s) 1: NXP i.MX Release Distro Retrieving file: /extlinux/../Image 26274304 bytes read in 1135 ms (22.1 MiB/s) append: root=/dev/mmcblk1p2 rootwait rw quiet console=ttymxc1,115200 rootwait rw console=ttymxc1,115200,115200 Retrieving file: /extlinux/../imx8mp-hummingboard-pulse.dtb 61717 bytes read in 26 ms (2.3 MiB/s) ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Using Device Tree in place at 0000000043000000, end 0000000043012114 probe video device failed, ret -2 Starting kernel ... [ 0.168862] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517 [ 0.169014] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock [ 0.176029] clk: failed to reparent gic to sys_pll2_500m: -16 [ 0.183798] reg-userspace-consumer power-m2-mpcie: Failed to get supplies: -517 [ 0.183846] reg-userspace-consumer power-usb-port1: Failed to get supplies: -517 [ 0.183887] reg-userspace-consumer power-usb-port2: Failed to get supplies: -517 [ 0.236459] imx-lcdifv3 32e80000.lcd-controller: No pix clock get: -517 [ 0.243830] imx-lcdifv3 32e90000.lcd-controller: No pix clock get: -517 [ 0.250772] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517 [ 0.260890] imx-hdmi-pavi 32fc4000.hdmi-pai-pvi: No pvi clock get [ 0.304503] sdhci-esdhc-imx 30b40000.mmc: voltage-ranges unspecified [ 0.316699] imx-dsp-rproc 3b6e8000.dsp: Failed to get clock dsp_clk1 [ 0.323084] imx-dsp-rproc 3b6e8000.dsp: failed on imx_dsp_rproc_clk_get [ 0.518313] samsung-hdmi-phy 32fdff00.hdmiphy: failed to get phy apb clk: -517 [ 0.544614] imx-lcdifv3 32fc6000.lcd-controller: No irq get, ret=-517 [ 0.564998] sdhci-esdhc-imx 30b40000.mmc: voltage-ranges unspecified [ 0.581999] imx6q-pcie 33800000.pcie: invalid resource [FAILED] Failed to start Terminate Psplash Boot Screen. [ 2.368198] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6 [ 2.382521] imx8_media_dev: module is from the staging directory, the quality is unknown, you have been warned. [ 2.388962] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Mar 3 2019 19:47:25 version 7.45.184 (r712131 CY) FWID 01-b363c0a0 [ 2.407895] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 2.454270] mx8-img-md: Unregistered all entities [ 2.498394] Bluetooth: hci0: BCM: chip id 107 [ 2.503203] Bluetooth: hci0: BCM: features 0x2f [ 2.509075] Bluetooth: hci0: BCM4345C0 [ 2.513121] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000 [ 2.520060] Bluetooth: hci0: BCM: firmware Patch file not found, tried: [ 2.526791] Bluetooth: hci0: BCM: 'brcm/BCM4345C0.hcd' [ 2.531998] Bluetooth: hci0: BCM: 'brcm/BCM.hcd' [ 2.544893] input: audio-hdmi HDMI Jack as /devices/platform/sound-hdmi/sound/card0/input0 [ 2.560691] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 2.568058] mx8-img-md: Unregistered all entities [ 2.591150] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 2.598701] mx8-img-md: Unregistered all entities [ 2.694978] audit: type=1006 audit(1647942535.004:2): pid=438 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1 [ 2.757038] 8021q: adding VLAN 0 to HW filter on device eth0 [ 3.102270] caam algorithms registered in /proc/crypto [ 3.110545] caam 30900000.crypto: caam pkc algorithms registered in /proc/crypto [ 3.118230] caam 30900000.crypto: registering rng-caam [ 3.124408] audit: type=1006 audit(1647942535.432:3): pid=360 uid=0 old-auid=4294967295 auid=0 tty=tty7 old-ses=4294967295 ses=2 res=1 [ 3.138489] Device caam-keygen registered [ 3.144149] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 3.151573] mx8-img-md: Unregistered all entities [ 3.152198] random: crng init done [ 3.159860] random: 7 urandom warning(s) missed due to ratelimiting [ 3.176722] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 3.184160] mx8-img-md: Unregistered all entities [ 3.213870] imx-dwmac 30bf0000.ethernet eth1: PHY [stmmac-0:00] driver [ADIN1300] (irq=POLL) [ 3.220545] mx8-img-md: Can't find i2c client device for basler_camera_vvcam@36 [ 3.233347] mx8-img-md: Unregistered all entities [ 3.253802] imx-dwmac 30bf0000.ethernet eth1: No Safety Features support found [ 3.262285] imx-dwmac 30bf0000.ethernet eth1: IEEE 1588-2008 Advanced Timestamp supported [ 3.271502] imx-dwmac 30bf0000.ethernet eth1: registered PTP clock [ 3.278386] imx-dwmac 30bf0000.ethernet eth1: configuring for phy/rgmii-id link mode [ 3.287600] 8021q: adding VLAN 0 to HW filter on device eth1 [ 3.368368] NET: Registered protocol family 38 [ 3.527077] ext2 filesystem being mounted at /run/media/mmcblk2p2 supports timestamps until 2038 (0x7fffffff) NXP i.MX Release Distro 5.10-hardknott imx8mpsolidrun ttymxc1 imx8mpsolidrun login: [ 10.720393] imx-drm display-subsystem: [drm] Cannot find any crtc or sizes
I have built the image according to the instruction on your repo: GitHub - SolidRun/meta-solidrun-arm-imx8 at hardknott-imx8mp, I did use hardknott branch for this.
Things that I have tried so far:
- I have built image with command
bitbake imx-image-full, does not work
- I have built image with command
bitbake imx-image-core, does not work
- I have tried to flash the sdcard with various dd arguments such as
bs=4K conv=fdatasync, or
bs=1M, no difference
- I have built Yocto image first directly on the server and then in the Docker container, no difference.
Generally I have been flashing the sd card with the command given in your GIthub repo:
bunzip2 -c tmp/deploy/images/imx8mpsolidrun/imx-image-full-imx8mpsolidrun.wic.bz2 | sudo dd of=/dev/sdX bs=1M
What would I like to know:
- How does my image differ from the one that is prebuilt by Solidrun?
- How can I debug this issue?
- Is the problem on my side?