Re: Latest build of fsl-community-bsp kernel hangs booting imx8mmevk

Brian Hutchinson

On Thu, Jul 30, 2020 at 01:41 AM, Andrey Zhizhikin wrote:

I guess your SD Card image is corrupted during flashing, all log
details actually point to that fact.

I don't think so.  The core-image-minimal image I built with poky as distro boots clean when I replace the kernel with the one where I went into make menuconfig and turned off PCI and some other things.  I think systemd just isn't happy with the core-image-base built with fslc-wayland distro as I have a plain, bare imx8mmevk ... normally that have video card, touch screen and other stuff hooked up to them ... so none of that stuff is started properly.
On Thu, Jul 30, 2020 at 1:46 AM Brian Hutchinson <b.hutchman@...> wrote:

I went into kernel config and gutted a bunch of setting for things I don't care about (wow ... 5.4 sure has a bunch of new stuff). I turned off PCI, bluetooth, wifi etc. I really think turning off PCI is what made it work after looking at device tree source.

I simply replaced Image on the sdcard. Didn't mess with anything else.

Kernel boots now but systemd not happy so goes into emergency mode ... here is what it looks like now:
This happens because rootfs partition cannot be mounted as it appears
to be corrupted, you can see the timeout down in your boot log.

U-Boot SPL 2019.04-lf-5.4.y_v2019.04+g228843cdf5 (Feb 22 2020 - 12:25:23 +0000)
DDRINFO: start DRAM init
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC1

U-Boot 2019.04-lf-5.4.y_v2019.04+g228843cdf5 (Feb 22 2020 - 12:25:23 +0000)

CPU: Freescale i.MX8MMQ rev1.0 at 1200MHz
CPU: Commercial temperature grade (0C to 95C) at 34C
Reset cause: POR
Model: FSL i.MX8MM EVK board
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x52]
Power supply on USB2
TCPC: Vendor ID [0x1fc9], Product ID [0x5110], Addr [I2C1 0x50]
Loading Environment from MMC... Run CMD11 1.8V switch
*** Warning - bad CRC, using default environment

No panel detected: default to MIPI2HDMI
adv7535_init: Can't find device id=0x3d, on bus 1
Display: MIPI2HDMI (1920x1080)
Video: 1920x1080x24
In: serial
Out: serial
Err: serial

- ATF 7b3389d
- U-Boot 2019.04-lf-5.4.y_v2019.04+g228843cdf5

Run CMD11 1.8V switch
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Run CMD11 1.8V switch
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
Run CMD11 1.8V switch
switch to partitions #0, OK
mmc1 is current device
Run CMD11 1.8V switch
22872576 bytes read in 535 ms (40.8 MiB/s)
Booting from mmc ...
43520 bytes read in 5 ms (8.3 MiB/s)
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
Using Device Tree in place at 0000000043000000, end 000000004300d9ff

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.4.3+g6b4142385e53 (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT Wed Feb 26 09:13:26 UTC 2020
This still puzzles me the most... How do you build your kernel? It
appears that you're using linux-imx kernel recipe, and not
linux-fslc-imx one. Also the build timestamp looks really odd, as it
should be at least in July - yours is still from February. Are you
sure you build the kernel and didn't take a stale binary instead?
Well, when I changed the .config I just did bitbake -c clean virtual/kernel, bitbake -c menuconfig virtual/kernel, bitbake virtual/kernel then copy Image to FAT of SD Card.

[ 1.878277] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 3 mkt segment 0 supported-hw 0x8 0x1
[ 1.890565] mmc0: CQHCI version 5.10
[ 1.924777] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[ 1.932851] mmc1: CQHCI version 5.10
[ 1.936499] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[ 1.978352] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
See right there, mmc1 is discovered this time!

[ 2.523713] Waiting for root device /dev/mmcblk1p2...
[ 2.615777] mmc1: new ultra high speed DDR50 SDHC card at address e624
[ 2.623789] mmcblk1: mmc1:e624 SU16G 14.8 GiB
[ 2.641847] mmcblk1: p1 p2
[ 2.762779] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[ 2.770948] VFS: Mounted root (ext4 filesystem) on device 179:98.
[ 2.779600] devtmpfs: mounted
[ 2.783188] Freeing unused kernel memory: 2496K
See mmcblk1 p1 & p2 are seen this time ... and mounted ... otherwise systemd couldn't run!

[ 2.787865] Run /sbin/init as init process
[ 3.023107] systemd[1]: System time before build time, advancing clock.
[ 3.046136] systemd[1]: systemd 244.3+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
[ 3.068213] systemd[1]: Detected architecture arm64.

Welcome to FSLC Wayland 3.1 (dunfell)!
This is also a strange part: you selected fslc-wayland distro, so you
should be having a linux-fslc kernel built. Instead, you have a
linux-imx kernel... Please inspect your distro/machine configs to see
if you're not re-defining the preferred provider and version for the
kernel package.

Thanks for pointing that out, but I didn't do anything out of the ordinary so there must be an issue in the local.conf or a recipe somewhere.

Here is exactly what I did:

I made a directory for Freescale Community BSP for Poky core-image-minimal and another directory for core-image-base fslc-wayland build.

In both directories I followed instructions on the Freescale Community BSP web site:

repo init -u -b dunfell
repo sync

In one directory I ran:

MACHINE=imx8mmevk DISTRO=fslc-wayland source setup-environment build

In the other I ran:

MACHINE=imx8mmevk DISTRO=poky source setup-environment build

For fslc-wayland distro I then ran bitbake core-image-base without changing a thing in bblayers.conf or local.conf

For poky distro I ran bitbake core-image-minimal without changing a thing in bblayers.conf or local.conf

I then used the same SD Card and flashed both resulting images and tried them and both hung in same spot.

I suspected device tree or kernel config issues so I rebuilt kernel and replaced the Image in FAT partition.  That's the only change I made, then board booted the core-image-base image and systemd went into emergency mode (the logs I posted).

I then used same SD Card and dd core-image-minimal image and again replaced the Image in FAT partition with kernel I did menuconfig on to turn off PCI, wifi, graphics etc. and it booted up super clean with no issues at all (Sys V init, now systemd).  Again, all I changed in both cases was the kernel.

So if I'm not getting the right kernel, maybe I need a Preferred provider in my local.conf (but shouldn't that be there to start with if that's the case?).  All I did was follow the web site instructions then set off building and flashing and testing.

[ *** ] A start job is running for /dev/mmcblkp1 (58s / 1min 30s)
[ 62.475931] imx-sdma 302c0000.dma-controller: external firmware not found, using ROM firmware
[ 62.476110] imx-sdma 302b0000.dma-controller: external firmware not found, using ROM firmware
[ 62.495119] imx-sdma 30bd0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[ TIME ] Timed out waiting for device /dev/mmcblkp1.
This is the timeout I was referring to above: MMC1 (SD Card) cannot be
initialized - no rootfs available for you. Systemd falls into
"recovery mode".

Don't know what that's about but /dev/mmcblk1p2 is mounted or systemd would not be running right now!  And what is /dev/mmcblkp1 supposed to be anyway?  Looks like typeo to me.  Should be referring to /dev/mmcblk1p1 or /dev/mmcblk1p2



Join to automatically receive all group messages.