Deploying Kernel to an image

Hi @facundo.n.r ,

That’s good to hear! Booting in this way, do you have everything working well?

It is recommended to use a patch since you are trying to do changes into the kernel source code.

Best regards,
Daniel Morais

Hi @daniel_m.tx , how are you?

Finally I could create the image without using the patch, and using the same defconfig from layers/meta-toradex-bsp-common/recipes-kernel/linux/linux-toradex-mainline-git/defconfig.

But I don’t see the changes in the device tree. A file should appear in root@colibri-imx6ull-14938795:~# ls /dev/ called ttymxc2 which corresponds to UART3.

Can you help me with this?

This is my layer
meta-customer.tar (30 KB)

and the .dts for custom the device tree

/dts-v1/;

#include "imx6ull-colibri-wifi-eval-v3.dts"

/ {
        model = "Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3";
        compatible = "toradex,colibri-imx6ull-wifi-eval", "fsl,imx6ull";
};

/*Creo un nodo uart3 para configurar los puertos*/

&pinctrl_gpio1{
    /delete-property/ fsl,pins;
    fsl,pins = <
        MX6UL_PAD_JTAG_TCK__GPIO1_IO14		0x70a0 /* SODIMM 99 */
        MX6UL_PAD_NAND_CE1_B__GPIO4_IO14	0x10b0 /* SODIMM 133 */
        MX6UL_PAD_UART3_CTS_B__GPIO1_IO26	0x10b0 /* SODIMM 100 */
        MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15	0x70a0 /* SODIMM 102 */
        MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07	0x10b0 /* SODIMM 104 */
        MX6UL_PAD_UART3_RTS_B__GPIO1_IO27	0x10b0 /* SODIMM 186 */
    >;
};

&uart3{
    pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	fsl,dte-mode;
    status = "okay";
};

&iomuxc {
    imx6ull-colibri{
        pinctrl_uart3: uart3grp {
            fsl,pins = <
                MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX	0x79 /* SODIMM 135 */
                MX6UL_PAD_UART3_RX_DATA__UART3_DTE_TX	0x79 /* SODIMM 77 */     
            >;
        };
    };
};

Hi @facundo.n.r ,

Good to hear that you can create your image!

Can you check if you are flashing the correct device tree into the module? By default, since this module uses UBI, the dtb that is flashed into the module is defined on the image.json file.

You also can try to flash the .dtb directly using the userspace tool as explained here. Can you please try it just to confirm that your dtb is being flashed?

Also, please share with us the entire dmesg log.

Best regards,
Daniel Morais

Now I included the colibri-imx6ull.inc file in the folder meta-customer, customized it, and then compiled the image. Now my-devicetree.dtb is included in image.json. But there are still no changes in the module.

Hi @daniel_m.tx !

I check the image.jason file, and it does not include the my-devicetree.dtb.

yocto-project@server:~/oe-core/build/deploy/images/colibri-imx6ull$ cat image-Reference-Minimal-Image-upstream.json
{
    "config_format": "2",
    "autoinstall": false,
    "name": "Toradex Embedded Linux Reference Minimal Image (UPSTREAM)",
    "description": "Minimal image without graphical interface that just boots",
    "version": "6.5.0-devel-20240111163547+build.0",
    "release_date": "2024-01-11",
    "u_boot_env": "u-boot-initial-env",
    "prepare_script": "prepare.sh",
    "wrapup_script": "wrapup.sh",
    "marketing": "marketing.tar",
    "icon": "toradexlinux.png",
    "supported_product_ids": [
        "0036",
        "0040",
        "0044",
        "0045"
    ],
    "mtddevs": [
        {
            "name": "u-boot1",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot2",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot-env",
            "erase": true,
            "content": {}
        },
        {
            "name": "ubi",
            "ubivolumes": [
                {
                    "name": "kernel",
                    "size_kib": 12288,
                    "type": "static",
                    "content": {
                        "rawfile": {
                            "filename": "zImage",
                            "size": 5
                        }
                    }
                },
                {
                    "name": "dtb",
                    "content": {
                        "rawfiles": [
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0036"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0040"
                            },
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0044"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0045"
                            }
                        ]
                    },
                    "size_kib": 128,
                    "type": "static"
                },
                {
                    "name": "m4firmware",
                    "size_kib": 896,
                    "type": "static"
                },
                {
                    "name": "rootfs",
                    "content": {
                        "filesystem_type": "ubifs",
                        "filename": "Reference-Minimal-Image-upstream-colibri-imx6ull.tar.xz",
                        "uncompressed_size": 128.25390625
                    }
                }
            ]
        }
    ]
}

Also, I tried to update the device tree and got error.

root@colibri-imx6ull-14938795:~# cat /sys/class/ubi/ubi0_1/name
dtb
root@colibri-imx6ull-14938795:~# ubiupdatevol /dev/ubi0_1 my-devicetree.dtb
ubiupdatevol: error!: stat failed on "my-devicetree.dtb"

Here, I share the dmesg log

root@colibri-imx6ull-14938795:~# dmesg log
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.65-6.5.0-devel+git.c6114c845984 (oe-user@oe-host) (arm-tdx-linux-gnueabi-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP Sun Dec  3 06:32:13 UTC 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 192 MiB at 0x94000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000009fffffff]
[    0.000000] percpu: Embedded 12 pages/cpu s18836 r8192 d22124 u49152
[    0.000000] pcpu-alloc: s18836 r8192 d22124 u49152 alloc=12*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: user_debug=30 ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs ubi.fm_autoconvert=1 console=tty1 console=ttymxc0,115200n8 consoleblank=0 video=mxsfb:640x480M-16@60
[    0.000000] Unknown kernel command line parameters "user_debug=30", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 303496K/524288K available (11264K kernel code, 1238K rwdata, 3900K rodata, 1024K init, 437K bss, 24184K reserved, 196608K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000003] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000044] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.003082] Console: colour dummy device 80x30
[    0.004071] printk: console [tty1] enabled
[    0.004163] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.004254] CPU: Testing write buffer coherency: ok
[    0.004383] pid_max: default: 32768 minimum: 301
[    0.004820] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.004924] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.007122] CPU0: update cpu_capacity 1024
[    0.007218] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.009811] cblist_init_generic: Setting adjustable number of callback queues.
[    0.009912] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.010513] Setting up static identity map for 0x80100000 - 0x80100078
[    0.011031] rcu: Hierarchical SRCU implementation.
[    0.011094] rcu:     Max phase no-delay instances is 1000.
[    0.014062] smp: Bringing up secondary CPUs ...
[    0.014147] smp: Brought up 1 node, 1 CPU
[    0.014200] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.014253] CPU: All CPU(s) started in SVC mode.
[    0.015514] devtmpfs: initialized
[    0.036175] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.036847] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.036967] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.051559] pinctrl core: initialized pinctrl subsystem
[    0.055391] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.073182] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.076200] thermal_sys: Registered thermal governor 'step_wise'
[    0.076404] cpuidle: using governor menu
[    0.076735] CPU identified as i.MX6ULL, silicon rev 1.1
[    0.087078] platform soc: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.106756] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio7grp
[    0.106909] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio4grp
[    0.107021] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio3grp
[    0.107121] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio2grp
[    0.107215] platform 20e0000.pinctrl: Fixed dependency cycle(s) with /soc/bus@2000000/pinctrl@20e0000/gpio1grp
[    0.119629] platform 2290000.iomuxc-snvs: Fixed dependency cycle(s) with /soc/bus@2200000/iomuxc-snvs@2290000/snvsgpio1grp
[    0.121272] platform connector: Fixed dependency cycle(s) with /soc/bus@2100000/usb@2184000/port/endpoint
[    0.122678] platform panel-dpi: Fixed dependency cycle(s) with /soc/bus@2100000/lcdif@21c8000/port/endpoint
[    0.130702] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.130818] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.133285] imx6ul-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[    0.138616] imx6ul-pinctrl 2290000.iomuxc-snvs: initialized IMX pinctrl driver
[    0.166452] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.368122] SCSI subsystem initialized
[    0.368314] libata version 3.00 loaded.
[    0.369004] usbcore: registered new interface driver usbfs
[    0.369186] usbcore: registered new interface driver hub
[    0.369343] usbcore: registered new device driver usb
[    0.373145] i2c i2c-0: IMX I2C adapter registered
[    0.375421] i2c i2c-1: IMX I2C adapter registered
[    0.377008] mc: Linux media interface: v0.10
[    0.377256] videodev: Linux video capture interface: v2.00
[    0.377587] pps_core: LinuxPPS API ver. 1 registered
[    0.377646] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.377743] PTP clock support registered
[    0.379099] Advanced Linux Sound Architecture Driver Initialized.
[    0.381102] Bluetooth: Core ver 2.22
[    0.381296] NET: Registered PF_BLUETOOTH protocol family
[    0.381353] Bluetooth: HCI device and connection manager initialized
[    0.381423] Bluetooth: HCI socket layer initialized
[    0.381479] Bluetooth: L2CAP socket layer initialized
[    0.381562] Bluetooth: SCO socket layer initialized
[    0.384125] clocksource: Switched to clocksource mxc_timer1
[    0.384886] VFS: Disk quotas dquot_6.6.0
[    0.385094] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.413409] NET: Registered PF_INET protocol family
[    0.414209] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.417889] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.418044] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.418131] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.418279] TCP bind hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.418588] TCP: Hash tables configured (established 4096 bind 4096)
[    0.418834] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.418964] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.419423] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.420923] RPC: Registered named UNIX socket transport module.
[    0.421019] RPC: Registered udp transport module.
[    0.421062] RPC: Registered tcp transport module.
[    0.421101] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.421162] PCI: CLS 0 bytes, default 64
[    0.423145] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    0.427388] Initialise system trusted keyrings
[    0.428762] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    0.443163] NFS: Registering the id_resolver key type
[    0.443352] Key type id_resolver registered
[    0.443403] Key type id_legacy registered
[    0.443695] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.443763] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.678578] Key type asymmetric registered
[    0.678669] Asymmetric key parser 'x509' registered
[    0.679019] io scheduler mq-deadline registered
[    0.679083] io scheduler kyber registered
[    0.696492] mxs-dma 1804000.dma-apbh: initialized
[    0.703005] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 199, base_baud = 5000000) is a IMX
[    1.521984] printk: console [ttymxc0] enabled
[    1.529301] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 200, base_baud = 5000000) is a IMX
[    1.540426] 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 201, base_baud = 5000000) is a IMX
[    1.585065] imx_rngc 2284000.rng: Freescale RNGB registered (HW revision 2.129)
[    1.594873] random: crng init done
[    1.614859] Stack Depot allocating hash table of 32768 entries with kvcalloc
[    1.624785] [drm] Initialized mxsfb-drm 1.0.0 20160824 for 21c8000.lcdif on minor 0
[    1.679297] Console: switching to colour frame buffer device 80x30
[    1.706862] mxsfb 21c8000.lcdif: [drm] fb0: mxsfb-drmdrmfb frame buffer device
[    1.754412] brd: module loaded
[    1.778129] loop: module loaded
[    1.793888] nand: device found, Manufacturer ID: 0xc2, Chip ID: 0xdc
[    1.805910] nand: Macronix MX30LF4G28AC
[    1.815150] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 112
[    1.835059] Bad block table found at page 262080, version 0x01
[    1.847571] Bad block table found at page 262016, version 0x01
[    1.859312] nand_read_bbt: bad block at 0x000003bc0000
[    1.870144] nand_read_bbt: bad block at 0x00001be20000
[    1.881116] 5 fixed-partitions partitions found on MTD device gpmi-nand
[    1.893314] Creating 5 MTD partitions on "gpmi-nand":
[    1.903786] 0x000000000000-0x000000080000 : "mx6ull-bcb"
[    1.917887] 0x000000080000-0x000000200000 : "u-boot1"
[    1.931621] 0x000000200000-0x000000380000 : "u-boot2"
[    1.945253] 0x000000380000-0x000000400000 : "u-boot-env"
[    1.958819] 0x000000400000-0x000020000000 : "ubi"
[    1.977125] gpmi-nand 1806000.nand-controller: driver registered.
[    1.993949] CAN device driver interface
[    2.007023] pps pps0: new PPS source ptp0
[    2.022054] fec 20b4000.ethernet eth0: registered PHC device 0
[    2.035925] usbcore: registered new interface driver usb-storage
[    2.058395] input: AD7879 Touchscreen as /devices/platform/soc/2100000.bus/21a4000.i2c/i2c-1/1-002c/input/input0
[    2.082095] rtc-ds1307 0-0068: oscillator failed, set time!
[    2.092982] rtc-ds1307 0-0068: registered as rtc0
[    2.103829] rtc-ds1307 0-0068: hctosys: unable to read the hardware clock
[    2.118824] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc1
[    2.130016] i2c_dev: i2c /dev entries driver
[    2.141066] pxp 21cc000.pxp: Device registered as /dev/video0
[    2.157055] Bluetooth: HCI UART driver ver 2.3
[    2.165978] Bluetooth: HCI UART protocol H4 registered
[    2.175658] Bluetooth: HCI UART protocol LL registered
[    2.187669] sdhci: Secure Digital Host Controller Interface driver
[    2.198456] sdhci: Copyright(c) Pierre Ossman
[    2.207182] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.221250] sdhci-esdhc-imx 2190000.mmc: Got CD GPIO
[    2.235868] sdhci-esdhc-imx 2194000.mmc: allocated mmc-pwrseq
[    2.248507] usbcore: registered new interface driver usbhid
[    2.258756] usbhid: USB HID core driver
[    2.298618] NET: Registered PF_INET6 protocol family
[    2.308563] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[    2.321204] mmc0: SDHCI controller on 2190000.mmc [2190000.mmc] using ADMA
[    2.337326] Segment Routing with IPv6
[    2.346676] In-situ OAM (IOAM) with IPv6
[    2.355551] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.368435] NET: Registered PF_PACKET protocol family
[    2.378177] can: controller area network core
[    2.387151] NET: Registered PF_CAN protocol family
[    2.396459] can: raw protocol
[    2.403835] can: broadcast manager protocol
[    2.412567] can: netlink gateway - max_hops=1
[    2.421482] Key type dns_resolver registered
[    2.434857] Registering SWP/SWPB emulation handler
[    2.442547] Loading compiled-in X.509 certificates
[    2.480134] mmc1: new high speed SDIO card at address 0001
[    2.519860] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    2.527073] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[    2.566914] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    2.582111] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    2.607731] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.633149] usb usb1: Product: EHCI Host Controller
[    2.647447] usb usb1: Manufacturer: Linux 6.1.65-6.5.0-devel+git.c6114c845984 ehci_hcd
[    2.673943] usb usb1: SerialNumber: ci_hdrc.1
[    2.691110] hub 1-0:1.0: USB hub found
[    2.697573] hub 1-0:1.0: 1 port detected
[    2.706433] imx_thermal 20c8000.anatop:tempmon: Industrial CPU temperature grade - max:105C critical:105C passive:95C
[    2.726443] mxs_phy 20c9000.usbphy: vbus is not valid
[    2.738347] ubi0: default fastmap pool size: 200
[    2.745626] ubi0: default fastmap WL pool size: 100
[    2.752939] ubi0: attaching mtd4
[    2.851014] ubi0: attached by fastmap
[    2.857230] ubi0: fastmap pool size: 200
[    2.863537] ubi0: fastmap WL pool size: 100
[    2.880795] ubi0: attached mtd4 (name "ubi", size 508 MiB)
[    2.888819] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    2.898228] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    2.907533] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    2.916993] ubi0: good PEBs: 4058, bad PEBs: 6, corrupted PEBs: 0
[    2.925565] ubi0: user volume: 4, internal volumes: 1, max. volumes count: 128
[    2.937560] ubi0: max/mean erase counter: 79/39, WL threshold: 4096, image sequence number: 509677195
[    2.951581] ubi0: available PEBs: 0, total reserved PEBs: 4058, PEBs reserved for bad PEB handling: 74
[    2.965999] ubi0: background thread "ubi_bgt0d" started, PID 90
[    2.976071] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    2.988728] ALSA device list:
[    2.994365]   No soundcards found.
[    3.001639] UBIFS (ubi0:3): Mounting in unauthenticated mode
[    3.010403] UBIFS (ubi0:3): background thread "ubifs_bgt0_3" started, PID 91
[    3.033951] UBIFS (ubi0:3): recovery needed
[    3.044218] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    3.245395] usb 1-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= b.b3
[    3.274448] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.302271] hub 1-1:1.0: USB hub found
[    3.309713] hub 1-1:1.0: 4 ports detected
[    3.340353] UBIFS (ubi0:3): recovery completed
[    3.348421] UBIFS (ubi0:3): UBIFS: mounted UBI device 0, volume 3, name "rootfs"
[    3.364230] UBIFS (ubi0:3): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[    3.382667] UBIFS (ubi0:3): FS size: 489746432 bytes (467 MiB, 3857 LEBs), max 3868 LEBs, journal size 9023488 bytes (8 MiB, 72 LEBs)
[    3.403365] UBIFS (ubi0:3): reserved for root: 0 bytes (0 KiB)
[    3.413530] UBIFS (ubi0:3): media format: w4/r0 (latest is w5/r0), UUID 3B577993-180D-416B-A603-82E68A15C018, small LPT model
[    3.435667] VFS: Mounted root (ubifs filesystem) on device 0:15.
[    3.445453] devtmpfs: mounted
[    3.453082] Freeing unused kernel image (initmem) memory: 1024K
[    3.462349] Run /sbin/init as init process
[    3.469270]   with arguments:
[    3.469286]     /sbin/init
[    3.469298]   with environment:
[    3.469308]     HOME=/
[    3.469317]     TERM=linux
[    3.469326]     user_debug=30
[    3.644202] usb 1-1.4: new low-speed USB device number 3 using ci_hdrc
[    3.712214] systemd[1]: System time before build time, advancing clock.
[    3.806292] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    3.855132] systemd[1]: Detected architecture arm.
[    3.865918] usb 1-1.4: New USB device found, idVendor=258a, idProduct=0001, bcdDevice= 1.00
[    3.880338] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.893885] usb 1-1.4: Product: USB KEYBOARD
[    3.901239] usb 1-1.4: Manufacturer: SINO WEALTH
[    3.921806] input: SINO WEALTH USB KEYBOARD as /devices/platform/soc/2100000.bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.4/1-1.4:1.0/0003:258A:0001.0001/input/input2
[    3.949767] systemd[1]: Hostname set to <colibri-imx6ull-14938795>.
[    4.015557] hid-generic 0003:258A:0001.0001: input: USB HID v1.10 Keyboard [SINO WEALTH USB KEYBOARD] on usb-ci_hdrc.1-1.4/input0
[    4.070793] input: SINO WEALTH USB KEYBOARD System Control as /devices/platform/soc/2100000.bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.4/1-1.4:1.1/0003:258A:0001.0002/input/input3
[    4.165095] input: SINO WEALTH USB KEYBOARD Consumer Control as /devices/platform/soc/2100000.bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.4/1-1.4:1.1/0003:258A:0001.0002/input/input4
[    4.396094] hid-generic 0003:258A:0001.0002: input,hiddev96: USB HID v1.10 Device [SINO WEALTH USB KEYBOARD] on usb-ci_hdrc.1-1.4/input1
[    4.471741] systemd[93]: /lib/systemd/system-generators/systemd-gpt-auto-generator failed with exit status 1.
[    4.764323] usb 1-1.3: new high-speed USB device number 4 using ci_hdrc
[    4.927165] usb 1-1.3: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 1.10
[    4.942198] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.956084] usb 1-1.3: Product: DataTraveler 3.0
[    4.963930] usb 1-1.3: Manufacturer: Kingston
[    4.971476] usb 1-1.3: SerialNumber: E0D55EA5741CE56149560086
[    4.990745] usb-storage 1-1.3:1.0: USB Mass Storage device detected
[    5.009745] scsi host0: usb-storage 1-1.3:1.0
[    5.433443] systemd[1]: Queued start job for default target Multi-User System.
[    5.520367] systemd[1]: Created slice Slice /system/getty.
[    5.572948] systemd[1]: Created slice Slice /system/modprobe.
[    5.635569] systemd[1]: Created slice Slice /system/serial-getty.
[    5.701709] systemd[1]: Created slice User and Session Slice.
[    5.760484] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    5.829078] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.902721] systemd[1]: Reached target Host and Network Name Lookups.
[    5.958065] systemd[1]: Reached target Path Units.
[    6.008254] systemd[1]: Reached target Remote File Systems.
[    6.068243] systemd[1]: Reached target Slice Units.
[    6.089570] scsi 0:0:0:0: Direct-Access     Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[    6.130509] systemd[1]: Reached target Swaps.
[    6.140689] sd 0:0:0:0: [sda] 121012224 512-byte logical blocks: (62.0 GB/57.7 GiB)
[    6.154487] sd 0:0:0:0: [sda] Write Protect is off
[    6.161848] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[    6.163317] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    6.247786] systemd[1]: Listening on RPCbind Server Activation Socket.
[    6.297838] systemd[1]: Reached target RPC Port Mapper.
[    6.311948]  sda: sda1
[    6.326251] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    6.382143] systemd[1]: Listening on Syslog Socket.
[    6.429563] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    6.514355] systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
[    6.533489] systemd[1]: Listening on Journal Socket (/dev/log).
[    6.581306] systemd[1]: Listening on Journal Socket.
[    6.633459] systemd[1]: Listening on Network Service Netlink Socket.
[    6.693582] systemd[1]: Listening on udev Control Socket.
[    6.750434] systemd[1]: Listening on udev Kernel Socket.
[    6.779663] systemd[1]: Listening on User Database Manager Socket.
[    6.831556] systemd[1]: Huge Pages File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[    6.867257] systemd[1]: POSIX Message Queue File System was skipped because of a failed condition check (ConditionPathExists=/proc/sys/fs/mqueue).
[    6.918076] systemd[1]: Mounting Kernel Debug File System...
[    6.965374] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[    7.017882] systemd[1]: Mounting Temporary Directory /tmp...
[    7.128813] systemd[1]: Starting Create List of Static Device Nodes...
[    7.238371] systemd[1]: Starting Load Kernel Module configfs...
[    7.330386] systemd[1]: Starting Load Kernel Module drm...
[    7.437979] systemd[1]: Starting Load Kernel Module fuse...
[    7.503727] fuse: init (API version 7.37)
[    7.515700] systemd[1]: Starting RPC Bind...
[    7.554948] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[    7.615836] systemd[1]: Starting Journal Service...
[    7.646117] systemd[1]: Load Kernel Modules was skipped because all trigger condition checks failed.
[    7.708480] systemd[1]: Starting Generate network units from Kernel command line...
[    7.777971] systemd[1]: Starting Remount Root and Kernel File Systems...
[    7.855920] systemd[1]: Starting Apply Kernel Variables...
[    7.968237] systemd[1]: Starting Coldplug All udev Devices...
[    8.085293] systemd[1]: Started RPC Bind.
[    8.110084] systemd[1]: Mounted Kernel Debug File System.
[    8.165625] systemd[1]: Mounted Temporary Directory /tmp.
[    8.197718] systemd[1]: Finished Create List of Static Device Nodes.
[    8.264815] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    8.296023] systemd[1]: Finished Load Kernel Module configfs.
[    8.357142] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    8.396305] systemd[1]: Finished Load Kernel Module drm.
[    8.457011] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    8.493309] systemd[1]: Finished Load Kernel Module fuse.
[    8.555567] systemd[1]: Started Journal Service.
[    8.991429] systemd-journald[118]: Received client request to flush runtime journal.
[   11.768258] systemd-journald[118]: Oldest entry in /run/log/journal/2b81d20bf00d456685e126e9a6248c7e/system.journal is older than the configured file retention duration (1month), suggesting rotation.
[   11.941104] mtdblock: MTD device 'mx6ull-bcb' is NAND, please consider using UBI block devices instead.
[   11.985672] mtdblock: MTD device 'u-boot1' is NAND, please consider using UBI block devices instead.
[   12.038048] systemd-journald[118]: /run/log/journal/2b81d20bf00d456685e126e9a6248c7e/system.journal: Journal header limits reached or header out-of-date, rotating.
[   12.066284] mtdblock: MTD device 'u-boot2' is NAND, please consider using UBI block devices instead.
[   12.116779] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   12.227998] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   13.286018] platform 2008000.spi: deferred probe pending
[   13.852753] imx-sdma 20ec000.dma-controller: loaded firmware 3.5
[   14.583699] Bluetooth: vendor=0x2df, device=0x9142, class=255, fn=2
[   15.447864] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   15.797796] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   21.225808] mcp251x spi0.0 can0: MCP2515 successfully initialized.
[   21.786162] using random self ethernet address
[   21.793972] using random host ethernet address
[   22.534472] Bluetooth: FW download over, size 623240 bytes
[   22.575591] usb0: HOST MAC 8e:97:07:86:1f:40
[   22.583020] usb0: MAC 8a:86:af:87:b9:7f
[   22.794675] btmrvl_sdio mmc1:0001:2: sdio device tree data not available
[   22.954470] mwifiex_sdio mmc1:0001:1: WLAN is not the winner! Skip FW dnld
[   23.066703] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   23.290592] mtdblock: MTD device 'u-boot2' is NAND, please consider using UBI block devices instead.
[   23.384657] mwifiex_sdio mmc1:0001:1: WLAN FW is active
[   23.581759] mtdblock: MTD device 'mx6ull-bcb' is NAND, please consider using UBI block devices instead.
[   23.655754] mwifiex_sdio mmc1:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p197)
[   23.669773] mwifiex_sdio mmc1:0001:1: driver_version = mwifiex 1.0 (16.68.1.p197)
[   24.686859] mtdblock: MTD device 'u-boot-env' is NAND, please consider using UBI block devices instead.
[   24.820253] mtdblock: MTD device 'u-boot1' is NAND, please consider using UBI block devices instead.
[   25.373387] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   26.123288] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   26.160467] Bluetooth: BNEP socket layer initialized
[   26.298583] Micrel KSZ8041 20b4000.ethernet-1:02: attached PHY driver (mii_bus:phy_addr=20b4000.ethernet-1:02, irq=POLL)
[   26.635526] Bluetooth: MGMT ver 1.22
[   28.487676] fec 20b4000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   28.496526] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   28.561966] 8021q: 802.1Q VLAN Support v1.8

Here is the image.json file

yocto-project@server:~/oe-core/build/tmp/work/colibri_imx6ull-tdx-linux-gnueabi/tdx-reference-minimal-image/1.0-r0/image-json$ cat image.json
{
    "config_format": "2",
    "autoinstall": false,
    "name": "Toradex Embedded Linux Reference Minimal Image (UPSTREAM)",
    "description": "Minimal image without graphical interface that just boots",
    "version": "6.5.0-devel-20240112112016+build.0",
    "release_date": "2024-01-12",
    "u_boot_env": "u-boot-initial-env",
    "prepare_script": "prepare.sh",
    "wrapup_script": "wrapup.sh",
    "marketing": "marketing.tar",
    "icon": "toradexlinux.png",
    "supported_product_ids": [
        "0036",
        "0040",
        "0044",
        "0045",
        "0046"
    ],
    "mtddevs": [
        {
            "name": "u-boot1",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot2",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot-env",
            "erase": true,
            "content": {}
        },
        {
            "name": "ubi",
            "ubivolumes": [
                {
                    "name": "kernel",
                    "size_kib": 12288,
                    "type": "static",
                    "content": {
                        "rawfile": {
                            "filename": "zImage",
                            "size": 5
                        }
                    }
                },
                {
                    "name": "dtb",
                    "content": {
                        "rawfiles": [
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0036"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0040"
                            },
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0044"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0045"
                            },
                            {
                                "filename": "my-devicetree.dtb",
                                "product_ids": "0046"
                            }
                        ]
                    },
                    "size_kib": 128,
                    "type": "static"
                },
                {
                    "name": "m4firmware",
                    "size_kib": 896,
                    "type": "static"
                },
                {
                    "name": "rootfs",
                    "content": {
                        "filesystem_type": "ubifs",
                        "filename": "Reference-Minimal-Image-upstream-colibri-imx6ull.tar.xz",
                        "uncompressed_size": 128.25390625
                    }
                }
            ]
        }

and my layer

Hi!! I was looking at antoher topic, (Update image.json file and adding a custom device tree during Yocto build - iMX6ULL BSP 6 - #6 by facundo.n.r) and following these step I can compiler.

But the device tree was isnt modification.

I share my meta-customer, and image.json

meta-customer.tar (40 KB)

    "config_format": "2",
    "autoinstall": false,
    "name": "Toradex Embedded Linux Reference Minimal Image (UPSTREAM)",
    "description": "Minimal image without graphical interface that just boots",
    "version": "6.5.0-devel-20240115114045+build.0",
    "release_date": "2024-01-15",
    "u_boot_env": "u-boot-initial-env",
    "prepare_script": "prepare.sh",
    "wrapup_script": "wrapup.sh",
    "marketing": "marketing.tar",
    "icon": "toradexlinux.png",
    "supported_product_ids": [
        "0036",
        "0040",
        "0044",
        "0045",
        "0046"
    ],
    "mtddevs": [
        {
            "name": "u-boot1",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot2",
            "content": {
                "rawfile": {
                    "filename": "u-boot-nand.imx",
                    "size": 1
                }
            }
        },
        {
            "name": "u-boot-env",
            "erase": true,
            "content": {}
        },
        {
            "name": "ubi",
            "ubivolumes": [
                {
                    "name": "kernel",
                    "size_kib": 12288,
                    "type": "static",
                    "content": {
                        "rawfile": {
                            "filename": "zImage",
                            "size": 5
                        }
                    }
                },
                {
                    "name": "dtb",
                    "content": {
                        "rawfiles": [
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0036"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0040"
                            },
                            {
                                "filename": "imx6ull-colibri-eval-v3.dtb",
                                "product_ids": "0044"
                            },
                            {
                                "filename": "imx6ull-colibri-wifi-eval-v3.dtb",
                                "product_ids": "0045"
                            },
                            {
                                "filename": "my-devicetree.dtb",
                                "product_ids": "0046"
                            }
                        ]
                    },
                    "size_kib": 128,
                    "type": "static"
                },
                {
                    "name": "m4firmware",
                    "size_kib": 896,
                    "type": "static"
                },
                {
                    "name": "rootfs",
                    "content": {
                        "filesystem_type": "ubifs",
                        "filename": "Reference-Minimal-Image-upstream-colibri-imx6ull.tar.xz",
                        "uncompressed_size": 128.25390625
                    }
                }
            ]
        }
    ]

Hi @facundo.n.r ,

This issue seems quite strange. Can you please share with me what exactly you want to do with this new device tree? What changes are you expecting to make? So I can do some tests here and prepare what exactly you need to do on your side.

Best regards,
Daniel Morais

Hi! @daniel_m.tx ,
I want customized the device tree for adding an uart3, with the next code:

/dts-v1/;

#include "imx6ull-colibri-wifi-eval-v3.dts"

/ {
        model = "Toradex Colibri iMX6ULL 512MB on Colibri Evaluation Board V3";
        compatible = "toradex,colibri-imx6ull-wifi-eval", "fsl,imx6ull";
};

/*Creo un nodo uart3 para configurar los puertos*/

&pinctrl_gpio1{
    /delete-property/ fsl,pins;
    fsl,pins = <
        MX6UL_PAD_JTAG_TCK__GPIO1_IO14		0x70a0 /* SODIMM 99 */
        MX6UL_PAD_NAND_CE1_B__GPIO4_IO14	0x10b0 /* SODIMM 133 */
        MX6UL_PAD_UART3_CTS_B__GPIO1_IO26	0x10b0 /* SODIMM 100 */
        MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15	0x70a0 /* SODIMM 102 */
        MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07	0x10b0 /* SODIMM 104 */
        MX6UL_PAD_UART3_RTS_B__GPIO1_IO27	0x10b0 /* SODIMM 186 */
    >;
};

&uart3{
    pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	fsl,dte-mode;
    status = "okay";
};

&iomuxc {
    imx6ull-colibri{
        pinctrl_uart3: uart3grp {
            fsl,pins = <
                MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX	0x79 /* SODIMM 135 */
                MX6UL_PAD_UART3_RX_DATA__UART3_DTE_TX	0x79 /* SODIMM 77 */     
            >;
        };
    };
};

Hello @facundo.n.r ,

You should specify “my-devicetree.dtb” to an existing product id which currently are:

  • 0036
  • 0040
  • 0044
  • 0045
  • 0062

Replace imx6ull-colibri-eval-v3.dtb and wifi variant with your device tree in colibri-imx6ull.inc and rebuild the image.

Regards, Mlinar

Hi!! @mlinar , how are you?

Modify colibri-imx6ull.inc file :

yocto-project@server:~/oe-core/layers/meta-customer/conf/machine/include$ cat colibri-imx6ull.inc
IMAGE_CLASSES:append = " image_type_tezi"
IMAGE_FSTYPES:append = " teziimg"
TORADEX_PRODUCT_IDS = "0036 0040 0044 0045 0062"
TORADEX_PRODUCT_IDS[0036] = "my-devicetree.dtb"
TORADEX_PRODUCT_IDS[0040] = "my-devicetree.dtb"
TORADEX_PRODUCT_IDS[0044] = "my-devicetree.dtb"
TORADEX_PRODUCT_IDS[0045] = "my-devicetree.dtb"
TORADEX_PRODUCT_IDS[0062] = "my-devicetree.dtb"
TORADEX_FLASH_TYPE = "rawnand"

WIC_CREATE_EXTRA_ARGS:append = " --no-fstab-update"

MACHINE_NAME = "Colibri-iMX6ULL"

MACHINE_EXTRA_RRECOMMENDS:append = " mwifiexconf"

KERNEL_DEVICETREE:append = " \
    imx6ull-colibri-aster.dtb \
    imx6ull-colibri-iris.dtb \
    imx6ull-colibri-iris-v2.dtb \
    imx6ull-colibri-wifi-aster.dtb \
    imx6ull-colibri-wifi-iris.dtb \
    imx6ull-colibri-wifi-iris-v2.dtb \
"

PREFERRED_PROVIDER_virtual/kernel = "linux-toradex"
PREFERRED_PROVIDER_virtual/kernel:preempt-rt = "linux-toradex"
PREFERRED_PROVIDER_virtual/kernel:use-mainline-bsp = "linux-toradex-mainline"
PREFERRED_PROVIDER_virtual/kernel:use-mainline-bsp:preempt-rt = "linux-toradex-mainline-rt"
PREFERRED_PROVIDER_virtual/dtb:use-mainline-bsp = "device-tree-overlays-mainline"

IMX_DEFAULT_BOOTLOADER:colibri-imx6ull = "u-boot-toradex"
PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot"

MACHINE_FIRMWARE:remove:use-mainline-bsp = "firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d"

UBOOT_DTB_LOADADDRESS:colibri-imx6ull = "0x88200000"
UBOOT_DTBO_LOADADDRESS:colibri-imx6ull = "0x88300000"
UBOOT_ENTRYPOINT:colibri-imx6ull = "0x84200000"
UBOOT_MAKE_TARGET:colibri-imx6ull = "u-boot-nand.imx"
UBOOT_RD_LOADADDRESS:colibri-imx6ull = "0x8A400000"

But there were no changes in the device tree

Hi @facundo.n.r ,

Thanks for sharing what exactly you want to achieve.

I did some tests with the layer you provided to enable the UART3, I will list how exactly I made the changes to help you in the future.

Firstly, I needed the kernel repository to make any changes there, to achieve this I executed the following commands:

yocto@8e4137a0b856:/workdir/bsp6/build$ bitbake virtual/kernel -e | grep ^S=
S="/workdir/bsp6/build/tmp/work-shared/colibri-imx6ull/kernel-source"
yocto@8e4137a0b856:/workdir/bsp6/build$ bitbake virtual/kernel -c patch

The first command will tell me where the source code is being deployed, the second command will ensure that my kernel repository will have all other patches applied by default.

Since you want to only enable the UART3, I chose to create a patch that changes the file imx6ull-colibri.dtsi. This file is a device tree that has all instructions for our SoM and will be inhered by all Carrier Boards’ device trees, for more information about the device tree structure please access this article. Below you can see the entire patch:

diff --git a/arch/arm/boot/dts/imx6ull-colibri.dtsi b/arch/arm/boot/dts/imx6ull-colibri.dtsi
index 336ab2e0534c..046b9d902413 100644
--- a/arch/arm/boot/dts/imx6ull-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6ull-colibri.dtsi
@@ -289,6 +289,13 @@ &uart2 {
 	fsl,dte-mode;
 };
 
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_uart3>;
+	fsl,dte-mode;
+	status = "okay";
+};
+
 /* Colibri UART_C */
 &uart5 {
 	pinctrl-names = "default";
@@ -436,10 +443,8 @@ MX6UL_PAD_JTAG_TMS__GPIO1_IO11		0x30a0	/* SODIMM 71 */
 
 	pinctrl_gpio1: gpio1grp {
 		fsl,pins = <
-			MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25	0x10b0 /* SODIMM 77 */
 			MX6UL_PAD_JTAG_TCK__GPIO1_IO14		0x70a0 /* SODIMM 99 */
 			MX6UL_PAD_NAND_CE1_B__GPIO4_IO14	0x10b0 /* SODIMM 133 */
-			MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24	0x10b0 /* SODIMM 135 */
 			MX6UL_PAD_UART3_CTS_B__GPIO1_IO26	0x10b0 /* SODIMM 100 */
 			MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15	0x70a0 /* SODIMM 102 */
 			MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07	0x10b0 /* SODIMM 104 */
@@ -631,6 +636,14 @@ MX6UL_PAD_UART2_CTS_B__UART2_DTE_RTS	0x1b0b1 /* SODIMM 32 */
 			MX6UL_PAD_UART2_RTS_B__UART2_DTE_CTS	0x1b0b1 /* SODIMM 34 */
 		>;
 	};
+
+        pinctrl_uart3: uart3grp {
+                fsl,pins = <
+			MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX	0x1b0b1 /* SODIMM 135 */	
+			MX6UL_PAD_UART3_RX_DATA__UART3_DTE_TX	0x1b0b1 /* SODIMM 77 */
+                >;
+        };
+
 	pinctrl_uart5: uart5grp {
 		fsl,pins = <
 			MX6UL_PAD_GPIO1_IO04__UART5_DTE_RX	0x1b0b1 /* SODIMM 19 */

Having this patch generated inside the kernel repository, you only have to add it to our kernel recipe to have this applied to the final image, the final layer can be seen below:

.
├── conf
│   └── layer.conf
├── COPYING.MIT
├── README
└── recipes-kernel
    └── linux
        ├── linux-toradex
        │   └── colibri-imx6ull-enable-uart3.patch
        └── linux-toradex-mainline_%.bbappend

The content of the linux-toradex-mainline_%.bbappend can be seen below:

FILESEXTRAPATHS:prepend := "${THISDIR}/linux-toradex:"

SRC_URI:append = "\
        file://colibri-imx6ull-enable-uart3.patch \
        "

You can also download the final layer below:
meta-customer.zip (3.8 KB)

These are the only changes I made to enable the UART3, after flashing the new image it is possible to see the device listed:

root@colibri-imx6ull-14683513:~# ls /dev/ttymxc*
/dev/ttymxc0  /dev/ttymxc1  /dev/ttymxc2  /dev/ttymxc4

Can you please do some tests on your side and let me know if you face any issues?

Best regards,
Daniel Morais

Thank you very much @daniel_m.tx, I appreciate it very much, this way works perfectly.

I have one more question

When creating this command
MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX 0x1b0b1 /* SODIMM 135 */

Where do you look up the parameters for the hexadecimal number 0x1b0b1? Because, in the colibri imx6ull datasheet, I only find the Pad Control Register.

Hi @facundo.n.r ,

Glad to hear that it worked!

You are looking into the right place! The Pad Control Register is defined into the 0x1b0b1, to understand it you have to convert from hexadecimal to binary and you will see all the bits enabled.

Best regards,
Daniel Morais