yocto eval board device tree works, known-good device tree doesn't

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

yocto eval board device tree works, known-good device tree doesn't

1,042 Views
dluberger
Contributor V

I know the device tree blob file i have works fine when i use it with multiple other kernel builds of various versions, even when i build the linux-imx 4.9.11 provided at git.freescale.com.  That's when I build the kernel directly from source, using make imx_v7_defconfig, then make menuconfig, then make from within in the kernel source directory.

But once again, yocto is proving to be the bane of my existence.  I ran the yocto build for fsl-validation-gui with the machine set as imx6ul-14x14-evk and it comes right up on the imx6ull eval board (yes, that's ULL, not UL board but the machine setting in yocto is UL not ULL, because my custom board uses a UL).  Once again, I had to wait all night for the build to finish, and I put the sd card image on my sd card and the ULL eval board comes right up, everything on it works. However, when I use my custom device tree file that I know works with any other kernel build, i get errors all over the place when the kernel comes up (see below).  it seems that my device tree isn't working at all. None of the pinctrl groups are being seen, and so naturally even the filesystem can't come up because it can't see the SD card.  Again, this exact same device tree blob file works perfectly fine on other builds when building directly from source, and this kernel works on the ULL eval board when i use the device tree provided by yocto.  I tried running "make" from the yocto kernel source directory, and it gives me nothing but errors, so it seems i'm stuck with whatever the yocto build provides, and as always, there's no documentation anywhere that gives me a clear concise process for modifying yocto in order to work with my custom hardware (albeit hardware based directly on the eval board).

Help!

Starting kernel ...

Booting Linux on physical CPU 0x0 Linux version 4.1.15+gb63f3f5 (user@user-desktop) (gcc version 5.3.0 (GCC) ) #1 SMP PREEMPT Tue Oct 9 12:42:18 EDT 2018 CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine model: Meriam 6150 Embedded Computing Platform Reserved memory: created CMA memory pool at 0x9c000000, size 64 MiB Reserved memory: initialized node linux,cma, compatible id shared-dma-pool Memory policy: Data cache writealloc PERCPU: Embedded 12 pages/cpu @9bbb1000 s16908 r8192 d24052 u49152 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw PID hash table entries: 2048 (order: 1, 8192 bytes) Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 442036K/524288K available (7725K kernel code, 425K rwdata, 2828K rodata, 428K init, 440K bss, 16716K reserved, 65536K cma-reserved, 0K highmem) Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0xa0800000 - 0xff000000 (1512 MB) lowmem : 0x80000000 - 0xa0000000 ( 512 MB) pkmap : 0x7fe00000 - 0x80000000 ( 2 MB) modules : 0x7f000000 - 0x7fe00000 ( 14 MB) .text : 0x80008000 - 0x80a569f8 (10555 kB) .init : 0x80a57000 - 0x80ac2000 ( 428 kB) .data : 0x80ac2000 - 0x80b2c520 ( 426 kB) .bss : 0x80b2f000 - 0x80b9d250 ( 441 kB) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Preemptible hierarchical RCU implementation. Additional per-CPU info printed with stalls. RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1. RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1 NR_IRQS:16 nr_irqs:16 16 mxc_clocksource_init 3000000 Switching to timer-based delay loop, resolution 333ns sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns Console: colour dummy device 80x30 Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok /cpus/cpu@0 missing clock-frequency property CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 Setting up static identity map for 0x80008280 - 0x800082d8 Brought up 1 CPUs SMP: Total of 1 processors activated (6.00 BogoMIPS). CPU: All CPU(s) started in SVC mode. devtmpfs: initialized VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns pinctrl core: initialized pinctrl subsystem NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations cpuidle: using governor ladder cpuidle: using governor menu hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. hw-breakpoint: maximum watchpoint size is 8 bytes. imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/csi1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/dvfsgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/enet1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/enet2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/flexcan1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/flexcan2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/i2c1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/i2c2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/lcdifdatgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/lcdifctrlgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/qspigrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/sai2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/pf1550 imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/pwm1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/sim2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/spi4grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/tscgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/uart1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/uart2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/uart2dtegrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usbotg1idgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc1grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc1grp100mhz imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc1grp200mhz imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc2grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc2grp_8bit imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc2grp_8bit_100mhz imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/usdhc2grp_8bit_200mhz imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/wdoggrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/sim2grp-1 imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/kppgrp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/tsc2007grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/tca8418grp imx6ul-pinctrl 20e0000.iomuxc: no groups defined in /soc/aips-bus@02000000/iomuxc@020e0000/wifigrp imx6ul-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver mxs-dma 1804000.dma-apbh: initialized imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node dvfsgrp vgaarb: loaded SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node i2c1grp i2c i2c-0: IMX I2C adapter registered i2c i2c-0: can't use DMA Linux video capture interface: v2.00 pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> PTP clock support registered MIPI CSI2 driver module loaded Advanced Linux Sound Architecture Driver Initialized. Bluetooth: Core ver 2.20 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: L2CAP socket layer initialized Bluetooth: SCO socket layer initialized Switched to clocksource mxc_timer1 NET: Registered protocol family 2 TCP established hash table entries: 4096 (order: 2, 16384 bytes) TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096) UDP hash table entries: 256 (order: 1, 8192 bytes) UDP-Lite hash table entries: 256 (order: 1, 8192 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. imx rpmsg driver is registered. Bus freq driver module loaded futex hash table entries: 256 (order: 2, 16384 bytes) VFS: Disk quotas dquot_6.6.0 VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) NFS: Registering the id_resolver key type Key type id_resolver registered Key type id_legacy registered jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. fuse init (API version 7.23) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) imx-weim 21b8000.weim: Driver registered. imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node pwm1grp backlight supply power not found, using dummy regulator MIPI DSI driver module loaded MIPI DSI driver module loaded imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node lcdifdatgrp 21c8000.lcdif supply lcd not found, using dummy regulator mxsfb 21c8000.lcdif: failed to find mxc display driver imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node lcdifdatgrp mxsfb: probe of 21c8000.lcdif failed with error -22 imx-sdma 20ec000.sdma: no event needs to be remapped imx-sdma 20ec000.sdma: loaded firmware 3.3 imx-sdma 20ec000.sdma: initialized imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node uart1grp 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 19, base_baud = 5000000) is a IMX console [ttymxc0] enabled imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node uart2grp 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 216, base_baud = 5000000) is a IMX imx sema4 driver is registered. [drm] Initialized drm 1.1.0 20060810 [drm] Initialized vivante 1.0.0 20120216 on minor 0 brd: module loaded loop: module loaded imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node qspigrp CAN device driver interface ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-pci: EHCI PCI platform driver ehci-mxc: Freescale On-Chip EHCI Host driver usbcore: registered new interface driver usb-storage usbcore: registered new interface driver usb_ehset_test 2184800.usbmisc supply vbus-wakeup not found, using dummy regulator imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usbotg1idgrp imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usbotg1idgrp 2184000.usb supply vbus not found, using dummy regulator mousedev: PS/2 mouse device common for all mice imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node kppgrp input: 20b8000.kpp as /devices/platform/soc/2000000.aips-bus/20b8000.kpp/input/input0 input: 20cc000.snvs:snvs-powerkey as /devices/platform/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input1 imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node tsc2007grp input: TSC2007 Touchscreen as /devices/platform/soc/2100000.aips-bus/21a0000.i2c/i2c-0/0-0049/input/input2 snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0 i2c /dev entries driver IR NEC protocol handler initialized IR RC5(x/sz) protocol handler initialized IR RC6 protocol handler initialized IR JVC protocol handler initialized IR Sony protocol handler initialized IR SANYO protocol handler initialized IR Sharp protocol handler initialized IR MCE Keyboard/mouse protocol handler initialized IR XMP protocol handler initialized pxp-v4l2 pxp_v4l2: initialized imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node wdoggrp imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0) Bluetooth: HCI UART driver ver 2.3 Bluetooth: HCI UART protocol H4 registered Bluetooth: HCI UART protocol BCSP registered Bluetooth: HCI UART protocol ATH3K registered usbcore: registered new interface driver bcm203x usbcore: registered new interface driver btusb usbcore: registered new interface driver ath3k sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pltfm: SDHCI platform and OF driver helper imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usdhc1grp imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usdhc1grp sdhci-esdhc-imx: probe of 2190000.usdhc failed with error -22 imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usdhc2grp imx6ul-pinctrl 20e0000.iomuxc: unable to find group for node usdhc2grp sdhci-esdhc-imx: probe of 2194000.usdhc failed with error -22 snvs-secvio 20cc000.caam-snvs: can't get snvs clock snvs-secvio 20cc000.caam-snvs: violation handlers armed - non-secure state usbcore: registered new interface driver usbhid usbhid: USB HID core driver fsl-asrc 2034000.asrc: failed to get dma script clock fsl-asrc: probe of 2034000.asrc failed with error -2 NET: Registered protocol family 26 NET: Registered protocol family 10 sit: IPv6 over IPv4 tunneling driver NET: Registered protocol family 17 can: controller area network core (rev 20120528 abi 9) NET: Registered protocol family 29 can: raw protocol (rev 20120528) can: broadcast manager protocol (rev 20120528 t) can: netlink gateway (rev 20130117) max_hops=1 Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 Bluetooth: BNEP (Ethernet Emulation) ver 1.3 Bluetooth: BNEP filters: protocol multicast Bluetooth: BNEP socket layer initialized Bluetooth: HIDP (Human Interface Emulation) ver 1.2 Bluetooth: HIDP socket layer initialized 8021q: 802.1Q VLAN Support v1.8 Key type dns_resolver registered Failed to disable 696MHz OPP snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0) gpio_dvfs: disabling wlreg_on: disabling ALSA device list: No soundcards found. Waiting for root device /dev/mmcblk0p2...

0 Kudos
2 Replies

702 Views
gusarambula
NXP TechSupport
NXP TechSupport

Hello David Luberger,

The device tree should work on any newer kernel version in theory, but it’s not a bad idea to compile it within the kernel you will want to run on your final application.

I’m sorry to hear you are having problems using Yocto. Yocto is meant as a mean of distribution for customized Linux images so it is not optimized for development. There are a couple of documents that may help in general terms like the Yocto Project Reference Manual and the Yocto Project BSP Guide (links below).

https://www.yoctoproject.org/docs/2.4/bsp-guide/bsp-guide.html

https://www.yoctoproject.org/docs/2.4/ref-manual/ref-manual.html

Regards,

0 Kudos

702 Views
dluberger
Contributor V

Actually by some miracle I've managed to get through a complete yocto build that works (for the most part) on my board.  I even managed to add meta-mono so I can develop a gui for my target machine with visual studio.  Really the last of my problems have been with the Murata wireless module.  I have to say that, even though this module seems to be recommended by NXP and Murata touts this product line as their "NXP i.mx wireless" modules, they require a LOT of distro customization to get it working, including hefty mods to the device tree, none of which I was able to replicate with any success.

Instead of running yocto on a virtual machine, i bought a beefy pc running ubuntu and will be doing a fresh yocto build over the weekend.  Starting next week, I'll work on spinning a new board that more closely match the eval board (i mistakenly modified GPIO usages, swapped sd ports, and other changes), and I'm getting rid of the Murata module and using a Redpine USB-connected module, so hopefully this time I'll just only have to disable unused devices, and add a couple i2c devices which have been working.  So I still need to learn how to modify the kernel and device tree from within the yocto build, but so far documentation i've seen has looked pretty complicated.

Ultimately the problems I've had a the result of what I feel is fairly vague and convoluted documentation, and it's simply been way too difficult to get answers on how to do things specific to my custom board.  hopefully I'll have better luck on the next version of the board.

0 Kudos