public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* ARM iMX6sx board fails to boot with kernel 6.17
@ 2025-09-30 15:49 Sergey Organov
  2025-09-30 19:09 ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-09-30 15:49 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ulf Hansson, Shawn Guo, Fabio Estevam, Rob Herring (Arm),
	Anson Huang

Hello,

I'm looking for help with the following issue.

I'm trying to upgrade kernel on my custom iMX6sx board from very old
4.9.146 to resent 6.17. The board has eMMC connected to usdhc4, and
u-boot happily starts kernel from eMMC. The kernel boot sequence,
however, hangs waiting for root file-system as it doesn't see eMMC.

I figured that if I disable DTS "gpc/pgc/pd_pu" node in imx6sx.dtsi one
way or another, the board starts to boot, so it seems that with default
configuration the kernel power or clock management renders either usdhc4
or eMMC inactive.

Two methods to effectively disable "gpc/pgc/pd_pu" I've used to
work-around the problem are:

modified   arch/arm/boot/dts/nxp/imx/imx6sx.dtsi
@@ -800,7 +800,7 @@ gpc: gpc@20dc000 {
                                 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                 interrupt-parent = <&intc>;
                                 clocks = <&clks IMX6SX_CLK_IPG>;
-                                clock-names = "ipg";
+                                /*clock-names = "ipg";*/

                                 pgc {
                                         #address-cells = <1>;

or:

modified   drivers/pmdomain/imx/gpc.c
@@ -311,7 +311,7 @@ static const struct imx_gpc_dt_data imx6sl_dt_data = {
 };

 static const struct imx_gpc_dt_data imx6sx_dt_data = {
-        .num_domains = 4,
+        .num_domains = 1,
         .err009619_present = false,
         .err006287_present = false,
 };

and any of the two gives kernel that boots.

I looked at DTS files in the kernel that use imx6sx.dtsi as well, but
didn't find anything specific that'd help me with the problem.

I'm not sure how to debug this further and actually fix the issue. Any
ideas, please?

Below is success boot log. Failing boot hangs at or sometimes slightly
above the "Waiting for root device /dev/mmcblk0p2..." line, and has
additional

"imx-gpc 20dc000.gpc: probe with driver imx-gpc failed with error -2"

diagnostic due to my hack to disable "gpc" DTS node by commenting-out
"ipg" clock.

The only suspect thing I see in the log is:

/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000

and I'm not sure if it's relevant or expected.

<boot log>
Booting Linux on physical CPU 0x0
Linux version 6.17.0-javad-4 (osv@firman) (arm-javad-linux-gnueabihf-gcc.br_real (Buildroot 2024.11-1178-g8f0639fe6f) 14.2.0, GNU ld (GNU Binutils) 2.43.1) #34 PREEMPT Tue Sep 30 01:23:27 MSK 2025
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: JAVAD TRE-3S
Memory policy: Data cache writeback
Zone ranges:
  Normal   [mem 0x0000000080000000-0x00000000bfffffff]
  HighMem  empty
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000080000000-0x00000000bfffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
OF: reserved mem: Reserved memory: No reserved-memory node in the DT
CPU: All CPU(s) started in SVC mode.
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw panic=30 oops=panic
printk: log buffer data + meta data: 262144 + 819200 = 1081344 bytes
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
Built 1 zonelists, mobility grouping on.  Total pages: 262144
mem auto-init: stack:all(zero), heap alloc:off, heap free:off
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
rcu: Preemptible hierarchical RCU implementation.
rcu: 	RCU event tracing is enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 16 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 16 ways, 256 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76430001
rcu: srcu_init: Setting srcu_struct sizes based on contention.
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=3000)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
pid_max: default: 32768 minimum: 301
LSM: initializing lsm=capability
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
Setting up static identity map for 0x80100000 - 0x80100060
rcu: Hierarchical SRCU implementation.
rcu: 	Max phase no-delay instances is 400.
Memory: 1023036K/1048576K available (9216K kernel code, 1039K rwdata, 2496K rodata, 1024K init, 348K bss, 23868K reserved, 0K cma-reserved, 0K highmem)
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
posixtimers hash table entries: 512 (order: -1, 2048 bytes, linear)
futex hash table entries: 256 (4096 bytes on 1 NUMA nodes, total 4 KiB, linear).
pinctrl core: initialized pinctrl subsystem
NET: Registered PF_NETLINK/PF_ROUTE protocol family
DMA: preallocated 256 KiB pool for atomic coherent allocations
thermal_sys: Registered thermal governor 'step_wise'
cpuidle: using governor menu
/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
imx6sx-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
usb_phy_generic usbphynop1: dummy supplies not allowed for exclusive requests (id=vbus)
i2c i2c-0: IMX I2C adapter registered
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
clocksource: Switched to clocksource mxc_timer1
VFS: Disk quotas dquot_6.6.0
VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
NET: Registered PF_INET protocol family
IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
NET: Registered PF_UNIX/PF_LOCAL protocol family
Initialise system trusted keyrings
workingset: timestamp_bits=30 max_order=18 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
fuse: init (API version 7.44)
Key type asymmetric registered
Asymmetric key parser 'x509' registered
io scheduler mq-deadline registered
io scheduler kyber registered
io scheduler bfq registered
imx-sdma 20ec000.dma-controller: external firmware not found, using ROM firmware
mxs-dma 1804000.dma-controller: initialized
imx-gpc 20dc000.gpc: probe with driver imx-gpc failed with error -2
2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 19, base_baud = 1500000) is a IMX
printk: console [ttymxc0] enabled
21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 20, base_baud = 1500000) is a IMX
21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 21, base_baud = 1500000) is a IMX
21f0000.serial: ttymxc3 at MMIO 0x21f0000 (irq = 22, base_baud = 1500000) is a IMX
21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 23, base_baud = 1500000) is a IMX
22a0000.serial: ttymxc5 at MMIO 0x22a0000 (irq = 24, base_baud = 1500000) is a IMX
brd: module loaded
loop: module loaded
tun: Universal TUN/TAP device driver, 1.6
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usb_ehset_test
snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 2025-09-30T13:57:32 UTC (1759240652)
i2c_dev: i2c /dev entries driver
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 (8000003f) counters available
NET: Registered PF_LLC protocol family
xt_time: kernel timezone is -0000
NET: Registered PF_INET6 protocol family
Segment Routing with IPv6
In-situ OAM (IOAM) with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered PF_PACKET protocol family
Bridge firewalling registered
mmc0: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
Loading compiled-in X.509 certificates
clk: Disabling unused clocks
PM: genpd: Disabling unused power domains
check access for rdinit=/init failed: -2, ignoring
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed DDR MMC card at address 0001
mmcblk0: mmc0:0001 IX2964 58.3 GiB
 mmcblk0: p1 p2 p3 p4 < p5 p6 >
mmcblk0boot0: mmc0:0001 IX2964 4.00 MiB
mmcblk0boot1: mmc0:0001 IX2964 4.00 MiB
mmcblk0rpmb: mmc0:0001 IX2964 4.00 MiB, chardev (246:0)
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem 2562e8d0-a3bb-46ec-ba28-e5ed2f5fc824 r/w with ordered data mode. Quota mode: none.
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel image (initmem) memory: 1024K
Run /sbin/init as init process
</boot log>

-- 
Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-09-30 15:49 ARM iMX6sx board fails to boot with kernel 6.17 Sergey Organov
@ 2025-09-30 19:09 ` Fabio Estevam
  2025-09-30 19:11   ` Fabio Estevam
                     ` (2 more replies)
  0 siblings, 3 replies; 29+ messages in thread
From: Fabio Estevam @ 2025-09-30 19:09 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

Hi Sergey,

On Tue, Sep 30, 2025 at 12:49 PM Sergey Organov <sorganov@gmail.com> wrote:
>
> Hello,
>
> I'm looking for help with the following issue.
>
> I'm trying to upgrade kernel on my custom iMX6sx board from very old
> 4.9.146 to resent 6.17. The board has eMMC connected to usdhc4, and
> u-boot happily starts kernel from eMMC. The kernel boot sequence,
> however, hangs waiting for root file-system as it doesn't see eMMC.

I tried booting 6.17 on an imx6sx-sdb board and it booted successfully:

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.17.0 (fabio@fabio-Precision-3551)
(arm-linux-gnueabihf-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld
(GNU Binutils for Ubuntu) 2.38) #300 SMP Tue Sep 30 16:03:46 -03 2025
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] OF: fdt: Machine model: Freescale i.MX6 SoloX SDB RevA Board
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 64 MiB at 0xbc000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x00000000afffffff]
[    0.000000]   HighMem  [mem 0x00000000b0000000-0x00000000bfffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory
node in the DT
[    0.000000] percpu: Embedded 14 pages/cpu s27212 r8192 d21940 u57344
[    0.000000] Kernel command line: console=ttymxc0,115200
root=PARTUUID=00000000-02 rootwait rw
[    0.000000] printk: log buffer data + meta data: 262144 + 819200 =
1081344 bytes
[    0.000000] Dentry cache hash table entries: 131072 (order: 7,
524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 262144
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=32, 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] RCU Tasks Trace: Setting shift to 0 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76430001
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Switching to timer-based delay loop, resolution 333ns
[    0.000001] sched_clock: 32 bits at 3000kHz, resolution 333ns,
wraps every 715827882841ns
[    0.000020] clocksource: mxc_timer1: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 637086815595 ns
[    0.001475] Console: colour dummy device 80x30
[    0.001526] Calibrating delay loop (skipped), value calculated
using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[    0.001540] CPU: Testing write buffer coherency: ok
[    0.001596] CPU0: Spectre v2: using BPIALL workaround
[    0.001604] pid_max: default: 32768 minimum: 301
[    0.001771] Mount-cache hash table entries: 2048 (order: 1, 8192
bytes, linear)
[    0.001791] Mountpoint-cache hash table entries: 2048 (order: 1,
8192 bytes, linear)
[    0.002740] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.004348] Setting up static identity map for 0x80100000 - 0x80100078
[    0.004671] rcu: Hierarchical SRCU implementation.
[    0.004680] rcu: Max phase no-delay instances is 1000.
[    0.005605] smp: Bringing up secondary CPUs ...
[    0.005634] smp: Brought up 1 node, 1 CPU
[    0.005644] SMP: Total of 1 processors activated (6.00 BogoMIPS).
[    0.005654] CPU: All CPU(s) started in SVC mode.
[    0.005770] Memory: 949784K/1048576K available (14336K kernel code,
1286K rwdata, 4344K rodata, 1024K init, 391K bss, 31384K reserved,
65536K cma-reserved, 196608K highmem)
[    0.006276] devtmpfs: initialized
[    0.014120] VFP support v0.3: implementor 41 architecture 3 part 30
variant 9 rev 4
[    0.014588] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.014622] posixtimers hash table entries: 512 (order: 0, 4096
bytes, linear)
[    0.014654] futex hash table entries: 256 (16384 bytes on 1 NUMA
nodes, total 16 KiB, linear).
[    0.016481] pinctrl core: initialized pinctrl subsystem
[    0.018074] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.024573] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.025789] thermal_sys: Registered thermal governor 'step_wise'
[    0.025879] cpuidle: using governor menu
[    0.032394] /soc/bus@2000000/clock-controller@20c4000: Fixed
dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.032536] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.034758] /soc/bus@2000000/clock-controller@20c4000: Fixed
dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.034894] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.045375] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.057574] /soc/bus@2200000/spba-bus@2240000/lcdif@2220000: Fixed
dependency cycle(s) with /panel
[    0.057688] /panel: Fixed dependency cycle(s) with
/soc/bus@2200000/spba-bus@2240000/lcdif@2220000
[    0.059094] No ATAGs?
[    0.059166] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1
watchpoint registers.
[    0.059179] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.061584] imx6sx-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[    0.066796] kprobes: kprobe jump-optimization is enabled. All
kprobes are optimized if possible.
[    0.068582] gpio gpiochip0: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.071039] gpio gpiochip1: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.073218] gpio gpiochip2: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.075369] gpio gpiochip3: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.077550] gpio gpiochip4: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.079720] gpio gpiochip5: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.082054] gpio gpiochip6: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.092467] SCSI subsystem initialized
[    0.093116] usbcore: registered new interface driver usbfs
[    0.093172] usbcore: registered new interface driver hub
[    0.093222] usbcore: registered new device driver usb
[    0.093410] usb_phy_generic usbphynop1: dummy supplies not allowed
for exclusive requests (id=vbus)
[    0.095428] i2c i2c-0: IMX I2C adapter registered
[    0.096109] i2c i2c-2: IMX I2C adapter registered
[    0.097172] i2c i2c-3: IMX I2C adapter registered
[    0.097952] mc: Linux media interface: v0.10
[    0.098037] videodev: Linux video capture interface: v2.00
[    0.098172] pps_core: LinuxPPS API ver. 1 registered
[    0.098180] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti@linux.it>
[    0.098202] PTP clock support registered
[    0.098983] Advanced Linux Sound Architecture Driver Initialized.
[    0.100422] Bluetooth: Core ver 2.22
[    0.100484] NET: Registered PF_BLUETOOTH protocol family
[    0.100491] Bluetooth: HCI device and connection manager initialized
[    0.100507] Bluetooth: HCI socket layer initialized
[    0.100516] Bluetooth: L2CAP socket layer initialized
[    0.100533] Bluetooth: SCO socket layer initialized
[    0.101476] vgaarb: loaded
[    0.101970] clocksource: Switched to clocksource mxc_timer1
[    0.102328] VFS: Disk quotas dquot_6.6.0
[    0.102383] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.115216] NET: Registered PF_INET protocol family
[    0.115511] IP idents hash table entries: 16384 (order: 5, 131072
bytes, linear)
[    0.117359] tcp_listen_portaddr_hash hash table entries: 512
(order: 0, 4096 bytes, linear)
[    0.117397] Table-perturb hash table entries: 65536 (order: 6,
262144 bytes, linear)
[    0.117698] TCP established hash table entries: 8192 (order: 3,
32768 bytes, linear)
[    0.117788] TCP bind hash table entries: 8192 (order: 5, 131072
bytes, linear)
[    0.118029] TCP: Hash tables configured (established 8192 bind 8192)
[    0.118179] UDP hash table entries: 512 (order: 2, 28672 bytes, linear)
[    0.118258] UDP-Lite hash table entries: 512 (order: 2, 28672 bytes, linear)
[    0.118501] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.119221] RPC: Registered named UNIX socket transport module.
[    0.119235] RPC: Registered udp transport module.
[    0.119239] RPC: Registered tcp transport module.
[    0.119244] RPC: Registered tcp-with-tls transport module.
[    0.119248] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.120819] PCI: CLS 0 bytes, default 64
[    0.122622] Initialise system trusted keyrings
[    0.122971] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.123839] NFS: Registering the id_resolver key type
[    0.123885] Key type id_resolver registered
[    0.123892] Key type id_legacy registered
[    0.123924] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.123931] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver
Registering...
[    0.124001] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.124405] fuse: init (API version 7.44)
[    0.327260] Key type asymmetric registered
[    0.327276] Asymmetric key parser 'x509' registered
[    0.327351] io scheduler mq-deadline registered
[    0.327362] io scheduler kyber registered
[    0.327394] io scheduler bfq registered
[    0.341926] mxs-dma 1804000.dma-controller: initialized
[    0.352497] pfuze100-regulator 0-0008: Full layer: 2, Metal layer: 1
[    0.353080] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 266,
base_baud = 1500000) is a IMX
[    0.353315] pfuze100-regulator 0-0008: FAB: 0, FIN: 0
[    0.353332] pfuze100-regulator 0-0008: pfuze100 found.
[    0.354080] printk: console [ttymxc0] enabled
[    1.297461] 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 267,
base_baud = 1500000) is a IMX
[    1.325646] etnaviv etnaviv: bound 1800000.gpu (ops 0xc0fcdba8)
[    1.332307] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
[    1.338763] etnaviv-gpu 1800000.gpu: Need to move linear window on
MC1.0, disabling TS
[    1.347488] [drm] Initialized etnaviv 1.4.0 for etnaviv on minor 0
[    1.356326] [drm] Initialized mxsfb-drm 1.0.0 for 2220000.lcdif on minor 1
[    1.509483] Console: switching to colour frame buffer device 100x30
[    1.525838] mxsfb 2220000.lcdif: [drm] fb0: mxsfb-drmdrmfb frame
buffer device
[    1.547910] brd: module loaded
[    1.558833] loop: module loaded
[    1.567600] spi-nor spi5.0: supply vcc not found, using dummy regulator
[    1.577426] spi-nor spi5.2: supply vcc not found, using dummy regulator
[    1.589284] CAN device driver interface
[    1.595023] flexcan 2090000.can: registering netdev failed
[    1.600603] flexcan 2090000.can: probe with driver flexcan failed
with error -110
[    1.609965] flexcan 2094000.can: registering netdev failed
[    1.615633] flexcan 2094000.can: probe with driver flexcan failed
with error -110
[    1.632998] fec 2188000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[    1.633075] fec 2188000.ethernet: Using random MAC address: 5a:54:5d:3a:ce:b8
[    1.653724] fec 2188000.ethernet eth0: registered PHC device 0
[    1.663301] fec 21b4000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[    1.663376] fec 21b4000.ethernet: Using random MAC address: 8e:50:50:68:f7:cd
[    1.800016] fec 21b4000.ethernet eth1: registered PHC device 1
[    1.806868] usbcore: registered new device driver r8152-cfgselector
[    1.813379] usbcore: registered new interface driver r8152
[    1.818997] usbcore: registered new interface driver lan78xx
[    1.824849] usbcore: registered new interface driver asix
[    1.830361] usbcore: registered new interface driver ax88179_178a
[    1.836622] usbcore: registered new interface driver cdc_ether
[    1.842619] usbcore: registered new interface driver smsc95xx
[    1.848471] usbcore: registered new interface driver net1080
[    1.854262] usbcore: registered new interface driver cdc_subset
[    1.860293] usbcore: registered new interface driver zaurus
[    1.865997] usbcore: registered new interface driver MOSCHIP
usb-ethernet driver
[    1.866060] usbcore: registered new interface driver cdc_ncm
[    1.866116] usbcore: registered new interface driver r8153_ecm
[    1.866242] usbcore: registered new interface driver usb-storage
[    1.866671] usbcore: registered new device driver onboard-usb-dev
[    1.870106] imx_usb 2184000.usb: No over current polarity defined
[    1.914000] imx_usb 2184200.usb: No over current polarity defined
[    1.924420] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    1.929494] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[    1.952000] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    1.957723] usb usb1: New USB device found, idVendor=1d6b,
idProduct=0002, bcdDevice= 6.17
[    1.957757] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    1.957772] usb usb1: Product: EHCI Host Controller
[    1.957783] usb usb1: Manufacturer: Linux 6.17.0 ehci_hcd
[    1.957794] usb usb1: SerialNumber: ci_hdrc.1
[    1.988868] hub 1-0:1.0: USB hub found
[    1.992869] hub 1-0:1.0: 1 port detected
[    1.999706] input: 20cc000.snvs:snvs-powerkey as
/devices/platform/soc/2000000.bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
[    2.016843] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
[    2.023414] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock
to 1970-01-01T00:00:00 UTC (0)
[    2.032763] i2c_dev: i2c /dev entries driver
[    2.043669] Bluetooth: HCI UART driver ver 2.3
[    2.043723] Bluetooth: HCI UART protocol H4 registered
[    2.053492] Bluetooth: HCI UART protocol LL registered
[    2.058879] Bluetooth: HCI UART protocol Broadcom registered
[    2.065533] sdhci: Secure Digital Host Controller Interface driver
[    2.065575] sdhci: Copyright(c) Pierre Ossman
[    2.065584] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.085924] sdhci-esdhc-imx 2198000.mmc: Got CD GPIO
[    2.091064] sdhci-esdhc-imx 2198000.mmc: Got WP GPIO
[    2.098186] sdhci-esdhc-imx 219c000.mmc: Got CD GPIO
[    2.103406] sdhci-esdhc-imx 219c000.mmc: Got WP GPIO
[    2.110029] caam 2100000.crypto: device ID = 0x0a16010000000200 (Era 4)
[    2.110090] caam 2100000.crypto: job rings = 2, qi = 0
[    2.129362] caam algorithms registered in /proc/crypto
[    2.134904] caam 2100000.crypto: registering rng-caam
[    2.140299] caam 2100000.crypto: rng crypto API alg registered prng-caam
[    2.149857] usbcore: registered new interface driver usbhid
[    2.149909] usbhid: USB HID core driver
[    2.160041] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[    2.168084] mmc3: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
[    2.175706] mmc2: SDHCI controller on 2198000.mmc [2198000.mmc] using ADMA
[    2.186875] hw perfevents: enabled with armv7_cortex_a9 PMU driver,
7 (8000003f) counters available
[    2.206484] wm8962 3-001a: customer id 0 revision D
[    2.234678] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.242411] mmc3: new high speed SDHC card at address aaaa
[    2.249018] mmcblk3: mmc3:aaaa SE32G 29.7 GiB
[    2.260391] NET: Registered PF_INET6 protocol family
[    2.265664]  mmcblk3: p1 p2
[    2.271035] Segment Routing with IPv6
[    2.274953] In-situ OAM (IOAM) with IPv6
[    2.279131] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.286065] NET: Registered PF_PACKET protocol family
[    2.286119] can: controller area network core
[    2.295749] NET: Registered PF_CAN protocol family
[    2.295785] can: raw protocol
[    2.303889] can: broadcast manager protocol
[    2.308170] can: netlink gateway - max_hops=1
[    2.312777] Key type dns_resolver registered
[    2.319085] Registering SWP/SWPB emulation handler
[    2.336473] Loading compiled-in X.509 certificates
[    2.365709] imx6q-pcie 8ffc000.pcie: host bridge /soc/pcie@8ffc000 ranges:
[    2.365787] imx6q-pcie 8ffc000.pcie:       IO
0x0008f80000..0x0008f8ffff -> 0x0000000000
[    2.365819] imx6q-pcie 8ffc000.pcie:      MEM
0x0008000000..0x0008efffff -> 0x0008000000
[    2.365918] imx6q-pcie 8ffc000.pcie: config reg[1] 0x08f00000 ==
cpu 0x08f00000
[    2.365918] ; no fixup was ever needed for this devicetree
[    2.402815] imx_thermal 20c8000.anatop:tempmon: Extended Commercial
CPU temperature grade - max:105C critical:100C passive:95C
[    2.417767] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.429461] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.439333] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    2.447697] cfg80211: Loading compiled-in X.509 certificates for
regulatory database
[    2.450641] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.470044] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    2.478838] Loaded X.509 cert 'wens:
61c038651aabdcf94bd0ac7ff06c7248db18c600'
[    2.486404] clk: Disabling unused clocks
[    2.490534] faux_driver regulatory: Direct firmware load for
regulatory.db failed with error -2
[    2.490563] cfg80211: failed to load regulatory.db
[    2.504775] PM: genpd: Disabling unused power domains
[    2.509900] mmc1: Failed to initialize a non-removable card
[    2.510002] ALSA device list:
[    2.518716]   #0: ASRC-M2M
[    2.521661] check access for rdinit=/init failed: -2, ignoring
[    2.595029] random: crng init done
[    2.623274] imx6q-pcie 8ffc000.pcie: iATU: unroll F, 4 ob, 4 ib,
align 64K, limit 4G
[    2.631588] imx6q-pcie 8ffc000.pcie: Link: Only Gen1 is enabled
[    3.622143] imx6q-pcie 8ffc000.pcie: Phy link never came up
[    3.629729] imx6q-pcie 8ffc000.pcie: PCI host bridge to bus 0000:00
[    3.636231] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.641823] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    3.648291] pci_bus 0000:00: root bus resource [mem 0x08000000-0x08efffff]
[    3.655497] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
PCIe Root Port
[    3.655586] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x000fffff]
[    3.655623] pci 0000:00:00.0: ROM [mem 0x00000000-0x0000ffff pref]
[    3.655650] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.655681] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    3.655705] pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff]
[    3.655733] pci 0000:00:00.0:   bridge window [mem
0x00000000-0x000fffff pref]
[    3.663269] pci 0000:00:00.0: supports D1
[    3.663293] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    3.669460] PCI: bus0: Fast back to back transfers disabled
[    3.669914] PCI: bus1: Fast back to back transfers enabled
[    3.669988] pci 0000:00:00.0: BAR 0 [mem 0x08000000-0x080fffff]: assigned
[    3.670030] pci 0000:00:00.0: ROM [mem 0x08100000-0x0810ffff pref]: assigned
[    3.670059] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.670091] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    3.670112] pci_bus 0000:00: resource 5 [mem 0x08000000-0x08efffff]
[    3.764048] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    3.924328] EXT4-fs (mmcblk3p2): recovery complete
[    3.930941] EXT4-fs (mmcblk3p2): mounted filesystem
d5a64ac5-7eae-43d4-a70e-6936f55c77f6 r/w with ordered data mode. Quota
mode: none.
[    3.943706] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.952233] devtmpfs: mounted
[    3.956327] Freeing unused kernel image (initmem) memory: 1024K
[    3.962681] Run /sbin/init as init process
[    4.122080] EXT4-fs (mmcblk3p2): re-mounted
d5a64ac5-7eae-43d4-a70e-6936f55c77f6.
Seeding 256 bits and crediting
Saving 256 bits of creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Populating /dev using udev: [    4.375835] udevd[102]: starting version 3.2.14
[    4.421898] udevd[103]: starting eudev-3.2.14
done
Starting network: OK
Starting crond: OK

Welcome to Buildroot
buildroot login: [   12.654047] fsl-ssi-dai 202c000.ssi: No cache
defaults, reading back from HW
[   12.669232] platform sound: deferred probe pending: fsl-asoc-card:
snd_soc_register_card failed
[   12.669423] platform sound-spdif: deferred probe pending:
fsl-asoc-card: snd_soc_register_card failed
[   12.669505] platform 202c000.ssi: deferred probe pending:
fsl-ssi-dai: Failed to init PCM DMA
[   12.669546] platform 2004000.spdif: deferred probe pending:
fsl-spdif-dai: imx_pcm_dma_init failed

Welcome to Buildroot
buildroot login: root
#
#
# uname -r
6.17.0

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-09-30 19:09 ` Fabio Estevam
@ 2025-09-30 19:11   ` Fabio Estevam
  2025-10-06 20:11     ` Sergey Organov
  2025-10-01 20:04   ` Sergey Organov
  2025-10-09 14:46   ` Sergey Organov
  2 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-09-30 19:11 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

On Tue, Sep 30, 2025 at 4:09 PM Fabio Estevam <festevam@gmail.com> wrote:

> I tried booting 6.17 on an imx6sx-sdb board and it booted successfully:

I forgot to say that I have used the imx_v6_v7_defconfig.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-09-30 19:09 ` Fabio Estevam
  2025-09-30 19:11   ` Fabio Estevam
@ 2025-10-01 20:04   ` Sergey Organov
  2025-10-02  0:45     ` Fabio Estevam
  2025-10-09 14:46   ` Sergey Organov
  2 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-01 20:04 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Tue, Sep 30, 2025 at 12:49 PM Sergey Organov <sorganov@gmail.com> wrote:
>>
>> Hello,
>>
>> I'm looking for help with the following issue.
>>
>> I'm trying to upgrade kernel on my custom iMX6sx board from very old
>> 4.9.146 to resent 6.17. The board has eMMC connected to usdhc4, and
>> u-boot happily starts kernel from eMMC. The kernel boot sequence,
>> however, hangs waiting for root file-system as it doesn't see eMMC.
>
> I tried booting 6.17 on an imx6sx-sdb board and it booted
> successfully:

Thank you so much for checking! I think I'll try to compare my build to
this one, as I still have no other idea how to debug my problem. Could
you please send me resulting DTB file as well so that I can check my
build system against yours?

That said,

> Starting kernel ...

[...]

> [    0.032394] /soc/bus@2000000/clock-controller@20c4000: Fixed
> dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
> [    0.032536] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
> with /soc/bus@2000000/clock-controller@20c4000
> [    0.034758] /soc/bus@2000000/clock-controller@20c4000: Fixed
> dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
> [    0.034894] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
> with /soc/bus@2000000/clock-controller@20c4000
> [    0.045375] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
> with /soc/bus@2000000/clock-controller@20c4000
> [    0.057574] /soc/bus@2200000/spba-bus@2240000/lcdif@2220000: Fixed
> dependency cycle(s) with /panel
> [    0.057688] /panel: Fixed dependency cycle(s) with
> /soc/bus@2200000/spba-bus@2240000/lcdif@2220000

You have these cycles as well. Is it expected? I fail to see why gpc and
clock-controller end-up being mutually dependent. Besides, they are not
mutually dependent in the hardware, or are they?

I also have a few more doubts about imx6sx.dtsi:

1. Documentation/usage-model.rst suggests "interrupt-parent = <&intc>;"
to be root node property, not of /soc as in imx6sx.dtsi. Is this
essential?

2. intc: in imx6sx.dtsi is interrupt-parent of itself? If it needs to
be, this asks for an explanation in a comment?

                intc: interrupt-controller@a01000 {                                                          
                        compatible = "arm,cortex-a9-gic";                                                    
                        #interrupt-cells = <3>;                                                              
                        interrupt-controller;                                                                
                        reg = <0x00a01000 0x1000>,                                                           
                              <0x00a00100 0x100>;                                                            
                        interrupt-parent = <&intc>;                                                          
                };                                                                                           

3. Some nodes have <&intc>, and some <&gpc> as interrupt-parent. Could
somebody please re-check if it makes sense? Besides, "gpc" is not true
interrupt controller, right?

Thanks,
-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-01 20:04   ` Sergey Organov
@ 2025-10-02  0:45     ` Fabio Estevam
  0 siblings, 0 replies; 29+ messages in thread
From: Fabio Estevam @ 2025-10-02  0:45 UTC (permalink / raw)
  To: Sergey Organov; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

Hi Sergey,

On Wed, Oct 1, 2025 at 5:04 PM Sergey Organov <sorganov@gmail.com> wrote:

> Thank you so much for checking! I think I'll try to compare my build to
> this one, as I still have no other idea how to debug my problem. Could
> you please send me resulting DTB file as well so that I can check my
> build system against yours?

I have sent you the dtb off list.

I haven't had a chance to look at your questions yet.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-09-30 19:11   ` Fabio Estevam
@ 2025-10-06 20:11     ` Sergey Organov
  2025-10-06 20:20       ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-06 20:11 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> On Tue, Sep 30, 2025 at 4:09 PM Fabio Estevam <festevam@gmail.com> wrote:
>
>> I tried booting 6.17 on an imx6sx-sdb board and it booted successfully:
>
> I forgot to say that I have used the imx_v6_v7_defconfig.

I've checked that I end-up with the same DTB as you sent me off-list for
this configuration, so at least this part seems to work fine on my side.

I also tried the imx_v6_v7_defconfig - based kernel on my board
(obviously with my custom DTB), and the kernel still doesn't boot.

Further, I've found that it's enough to disable CONFIG_REGULATOR_ANATOP
in my custom kernel config to get kernel to see eMMC card, and then
mount it as root file-system.

I still fail to see what I do (or don't do) in my DTS (or kernel config)
to confuse the kernel, and how to figure that out. Any ideas?

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-06 20:11     ` Sergey Organov
@ 2025-10-06 20:20       ` Fabio Estevam
  2025-10-06 21:22         ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-06 20:20 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

Hi Sergey,

On Mon, Oct 6, 2025 at 5:11 PM Sergey Organov <sorganov@gmail.com> wrote:

> I've checked that I end-up with the same DTB as you sent me off-list for
> this configuration, so at least this part seems to work fine on my side.
>
> I also tried the imx_v6_v7_defconfig - based kernel on my board
> (obviously with my custom DTB), and the kernel still doesn't boot.
>
> Further, I've found that it's enough to disable CONFIG_REGULATOR_ANATOP
> in my custom kernel config to get kernel to see eMMC card, and then
> mount it as root file-system.
>
> I still fail to see what I do (or don't do) in my DTS (or kernel config)
> to confuse the kernel, and how to figure that out. Any ideas?

Please share your dts so we can take a look.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-06 20:20       ` Fabio Estevam
@ 2025-10-06 21:22         ` Sergey Organov
  2025-10-07  2:05           ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-06 21:22 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

[-- Attachment #1: Type: text/plain, Size: 1026 bytes --]

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Mon, Oct 6, 2025 at 5:11 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> I've checked that I end-up with the same DTB as you sent me off-list for
>> this configuration, so at least this part seems to work fine on my side.
>>
>> I also tried the imx_v6_v7_defconfig - based kernel on my board
>> (obviously with my custom DTB), and the kernel still doesn't boot.
>>
>> Further, I've found that it's enough to disable CONFIG_REGULATOR_ANATOP
>> in my custom kernel config to get kernel to see eMMC card, and then
>> mount it as root file-system.
>>
>> I still fail to see what I do (or don't do) in my DTS (or kernel config)
>> to confuse the kernel, and how to figure that out. Any ideas?
>
> Please share your dts so we can take a look.

It is built form multiple .dtsi, so I figure I attach the one after
pre-processing stage. Please let me know if you'd prefer I rather
manually insert all the custom .dtsi into a single .dts, and send that
one instead.


[-- Attachment #2: troublesome dts --]
[-- Type: text/plain, Size: 46382 bytes --]

# 0 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-01-03-tre_3s.dts"
# 0 "<built-in>"
# 0 "<command-line>"
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-01-03-tre_3s.dts"
# 10 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-01-03-tre_3s.dts"
/dts-v1/;

# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre_3s.dtsi" 1
# 10 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre_3s.dtsi"
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre.dtsi" 1
# 10 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre.dtsi"
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx.dtsi" 1
# 10 "arch/arm/boot/dts/nxp/imx/javad/javad-imx.dtsi"
# 1 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 1




# 1 "./scripts/dtc/include-prefixes/dt-bindings/clock/imx6sx-clock.h" 1
# 6 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 2
# 1 "./scripts/dtc/include-prefixes/dt-bindings/gpio/gpio.h" 1
# 7 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 2
# 1 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h" 1
# 13 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h"
# 1 "./scripts/dtc/include-prefixes/dt-bindings/input/linux-event-codes.h" 1
# 14 "./scripts/dtc/include-prefixes/dt-bindings/input/input.h" 2
# 8 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 2
# 1 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/arm-gic.h" 1
# 9 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/arm-gic.h"
# 1 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/irq.h" 1
# 10 "./scripts/dtc/include-prefixes/dt-bindings/interrupt-controller/arm-gic.h" 2
# 9 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 2
# 1 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx-pinfunc.h" 1
# 10 "arch/arm/boot/dts/nxp/imx/javad/../imx6sx.dtsi" 2

/ {
 #address-cells = <1>;
 #size-cells = <1>;





 chosen {};

 aliases {
  can0 = &flexcan1;
  can1 = &flexcan2;
  ethernet0 = &fec1;
  ethernet1 = &fec2;
  gpio0 = &gpio1;
  gpio1 = &gpio2;
  gpio2 = &gpio3;
  gpio3 = &gpio4;
  gpio4 = &gpio5;
  gpio5 = &gpio6;
  gpio6 = &gpio7;
  i2c0 = &i2c1;
  i2c1 = &i2c2;
  i2c2 = &i2c3;
  i2c3 = &i2c4;
  mmc0 = &usdhc1;
  mmc1 = &usdhc2;
  mmc2 = &usdhc3;
  mmc3 = &usdhc4;
  serial0 = &uart1;
  serial1 = &uart2;
  serial2 = &uart3;
  serial3 = &uart4;
  serial4 = &uart5;
  serial5 = &uart6;
  spi0 = &ecspi1;
  spi1 = &ecspi2;
  spi2 = &ecspi3;
  spi3 = &ecspi4;
  spi4 = &ecspi5;
  usb0 = &usbotg1;
  usb1 = &usbotg2;
  usb2 = &usbh;
  usbphy0 = &usbphy1;
  usbphy1 = &usbphy2;
 };

 cpus {
  #address-cells = <1>;
  #size-cells = <0>;

  cpu0: cpu@0 {
   compatible = "arm,cortex-a9";
   device_type = "cpu";
   reg = <0>;
   next-level-cache = <&L2>;
   operating-points = <

    996000 1250000
    792000 1175000
    396000 1075000
    198000 975000
   >;
   fsl,soc-operating-points = <

    996000 1175000
    792000 1175000
    396000 1175000
    198000 1175000
   >;
   clock-latency = <61036>;
   #cooling-cells = <2>;
   clocks = <&clks 129>,
     <&clks 20>,
     <&clks 35>,
     <&clks 36>,
     <&clks 4>;
   clock-names = "arm", "pll2_pfd2_396m", "step",
          "pll1_sw", "pll1_sys";
   arm-supply = <&reg_arm>;
   soc-supply = <&reg_soc>;
   nvmem-cells = <&cpu_speed_grade>;
   nvmem-cell-names = "speed_grade";
  };
 };

 ckil: clock-ckil {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <32768>;
  clock-output-names = "ckil";
 };

 osc: clock-osc {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <24000000>;
  clock-output-names = "osc";
 };

 ipp_di0: clock-ipp-di0 {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <0>;
  clock-output-names = "ipp_di0";
 };

 ipp_di1: clock-ipp-di1 {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <0>;
  clock-output-names = "ipp_di1";
 };

 anaclk1: clock-anaclk1 {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <0>;
  clock-output-names = "anaclk1";
 };

 anaclk2: clock-anaclk2 {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <0>;
  clock-output-names = "anaclk2";
 };

 mqs: mqs {
  compatible = "fsl,imx6sx-mqs";
  gpr = <&gpr>;
  status = "disabled";
 };

 pmu {
  compatible = "arm,cortex-a9-pmu";
  interrupt-parent = <&gpc>;
  interrupts = <0 94 4>;
 };

 usbphynop1: usbphynop1 {
  compatible = "usb-nop-xceiv";
  #phy-cells = <0>;
 };

 soc: soc {
  #address-cells = <1>;
  #size-cells = <1>;
  compatible = "simple-bus";
  interrupt-parent = <&gpc>;
  ranges;

  ocram_s: sram@8f8000 {
   compatible = "mmio-sram";
   reg = <0x008f8000 0x4000>;
   ranges = <0 0x008f8000 0x4000>;
   #address-cells = <1>;
   #size-cells = <1>;
   clocks = <&clks 157>;
  };

  ocram: sram@900000 {
   compatible = "mmio-sram";
   reg = <0x00900000 0x20000>;
   ranges = <0 0x00900000 0x20000>;
   #address-cells = <1>;
   #size-cells = <1>;
   clocks = <&clks 126>;
  };

  intc: interrupt-controller@a01000 {
   compatible = "arm,cortex-a9-gic";
   #interrupt-cells = <3>;
   interrupt-controller;
   reg = <0x00a01000 0x1000>,
         <0x00a00100 0x100>;
   interrupt-parent = <&intc>;
  };

  L2: cache-controller@a02000 {
   compatible = "arm,pl310-cache";
   reg = <0x00a02000 0x1000>;
   interrupts = <0 92 4>;
   cache-unified;
   cache-level = <2>;
   arm,tag-latency = <4 2 3>;
   arm,data-latency = <4 2 3>;
  };

  gpu: gpu@1800000 {
   compatible = "vivante,gc";
   reg = <0x01800000 0x4000>;
   interrupts = <0 10 4>;
   clocks = <&clks 156>,
     <&clks 156>,
     <&clks 156>;
   clock-names = "bus", "core", "shader";
   power-domains = <&pd_pu>;
  };

  dma_apbh: dma-controller@1804000 {
   compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
   reg = <0x01804000 0x2000>;
   interrupts = <0 13 4>,
         <0 13 4>,
         <0 13 4>,
         <0 13 4>;
   #dma-cells = <1>;
   dma-channels = <4>;
   clocks = <&clks 132>;
  };

  gpmi: nand-controller@1806000 {
   compatible = "fsl,imx6sx-gpmi-nand";
   #address-cells = <1>;
   #size-cells = <1>;
   reg = <0x01806000 0x2000>, <0x01808000 0x4000>;
   reg-names = "gpmi-nand", "bch";
   interrupts = <0 15 4>;
   interrupt-names = "bch";
   clocks = <&clks 192>,
     <&clks 193>,
     <&clks 191>,
     <&clks 190>,
     <&clks 184>;
   clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
          "gpmi_bch_apb", "per1_bch";
   dmas = <&dma_apbh 0>;
   dma-names = "rx-tx";
   status = "disabled";
  };

  aips1: bus@2000000 {
   compatible = "fsl,aips-bus", "simple-bus";
   #address-cells = <1>;
   #size-cells = <1>;
   reg = <0x02000000 0x100000>;
   ranges;

   spba-bus@2000000 {
    compatible = "fsl,spba-bus", "simple-bus";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0x02000000 0x40000>;
    ranges;

    spdif: spdif@2004000 {
     compatible = "fsl,imx6sx-spdif", "fsl,imx35-spdif";
     reg = <0x02004000 0x4000>;
     interrupts = <0 52 4>;
     dmas = <&sdma 14 18 0>,
            <&sdma 15 18 0>;
     dma-names = "rx", "tx";
     clocks = <&clks 264>,
       <&clks 3>,
       <&clks 197>,
       <&clks 0>, <&clks 0>, <&clks 0>,
       <&clks 82>,
       <&clks 0>, <&clks 0>,
       <&clks 196>;
     clock-names = "core", "rxtx0",
            "rxtx1", "rxtx2",
            "rxtx3", "rxtx4",
            "rxtx5", "rxtx6",
            "rxtx7", "spba";
     status = "disabled";
    };

    ecspi1: spi@2008000 {
     #address-cells = <1>;
     #size-cells = <0>;
     compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
     reg = <0x02008000 0x4000>;
     interrupts = <0 31 4>;
     clocks = <&clks 145>,
       <&clks 145>;
     clock-names = "ipg", "per";
     status = "disabled";
    };

    ecspi2: spi@200c000 {
     #address-cells = <1>;
     #size-cells = <0>;
     compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
     reg = <0x0200c000 0x4000>;
     interrupts = <0 32 4>;
     clocks = <&clks 146>,
       <&clks 146>;
     clock-names = "ipg", "per";
     status = "disabled";
    };

    ecspi3: spi@2010000 {
     #address-cells = <1>;
     #size-cells = <0>;
     compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
     reg = <0x02010000 0x4000>;
     interrupts = <0 33 4>;
     clocks = <&clks 147>,
       <&clks 147>;
     clock-names = "ipg", "per";
     status = "disabled";
    };

    ecspi4: spi@2014000 {
     #address-cells = <1>;
     #size-cells = <0>;
     compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
     reg = <0x02014000 0x4000>;
     interrupts = <0 34 4>;
     clocks = <&clks 148>,
       <&clks 148>;
     clock-names = "ipg", "per";
     status = "disabled";
    };

    uart1: serial@2020000 {
     compatible = "fsl,imx6sx-uart",
           "fsl,imx6q-uart", "fsl,imx21-uart";
     reg = <0x02020000 0x4000>;
     interrupts = <0 26 4>;
     clocks = <&clks 204>,
       <&clks 205>;
     clock-names = "ipg", "per";
     dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
     dma-names = "rx", "tx";
     status = "disabled";
    };

    esai: esai@2024000 {
     compatible = "fsl,imx35-esai";
     reg = <0x02024000 0x4000>;
     interrupts = <0 51 4>;
     clocks = <&clks 239>,
       <&clks 152>,
       <&clks 239>,
       <&clks 196>;
     clock-names = "core", "extal",
            "fsys", "spba";
     dmas = <&sdma 23 21 0>,
            <&sdma 24 21 0>;
     dma-names = "rx", "tx";
     status = "disabled";
    };

    ssi1: ssi@2028000 {
     #sound-dai-cells = <0>;
     compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
     reg = <0x02028000 0x4000>;
     interrupts = <0 46 4>;
     clocks = <&clks 198>,
       <&clks 201>;
     clock-names = "ipg", "baud";
     dmas = <&sdma 37 1 0>, <&sdma 38 1 0>;
     dma-names = "rx", "tx";
     fsl,fifo-depth = <15>;
     status = "disabled";
    };

    ssi2: ssi@202c000 {
     #sound-dai-cells = <0>;
     compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
     reg = <0x0202c000 0x4000>;
     interrupts = <0 47 4>;
     clocks = <&clks 199>,
       <&clks 202>;
     clock-names = "ipg", "baud";
     dmas = <&sdma 41 1 0>, <&sdma 42 1 0>;
     dma-names = "rx", "tx";
     fsl,fifo-depth = <15>;
     status = "disabled";
    };

    ssi3: ssi@2030000 {
     #sound-dai-cells = <0>;
     compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
     reg = <0x02030000 0x4000>;
     interrupts = <0 48 4>;
     clocks = <&clks 200>,
       <&clks 203>;
     clock-names = "ipg", "baud";
     dmas = <&sdma 45 1 0>, <&sdma 46 1 0>;
     dma-names = "rx", "tx";
     fsl,fifo-depth = <15>;
     status = "disabled";
    };

    asrc: asrc@2034000 {
     compatible = "fsl,imx6sx-asrc", "fsl,imx53-asrc";
     reg = <0x02034000 0x4000>;
     interrupts = <0 50 4>;
     clocks = <&clks 235>,
      <&clks 236>, <&clks 0>,
      <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
      <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
      <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
      <&clks 197>, <&clks 0>, <&clks 0>,
      <&clks 196>;
     clock-names = "mem", "ipg", "asrck_0",
      "asrck_1", "asrck_2", "asrck_3", "asrck_4",
      "asrck_5", "asrck_6", "asrck_7", "asrck_8",
      "asrck_9", "asrck_a", "asrck_b", "asrck_c",
      "asrck_d", "asrck_e", "asrck_f", "spba";
     dmas = <&sdma 17 23 1>, <&sdma 18 23 1>,
            <&sdma 19 23 1>, <&sdma 20 23 1>,
            <&sdma 21 23 1>, <&sdma 22 23 1>;
     dma-names = "rxa", "rxb", "rxc",
          "txa", "txb", "txc";
     fsl,asrc-rate = <48000>;
     fsl,asrc-width = <16>;
     status = "okay";
    };
   };

   pwm1: pwm@2080000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x02080000 0x4000>;
    interrupts = <0 83 4>;
    clocks = <&clks 186>,
      <&clks 186>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm2: pwm@2084000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x02084000 0x4000>;
    interrupts = <0 84 4>;
    clocks = <&clks 187>,
      <&clks 187>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm3: pwm@2088000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x02088000 0x4000>;
    interrupts = <0 85 4>;
    clocks = <&clks 188>,
      <&clks 188>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm4: pwm@208c000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x0208c000 0x4000>;
    interrupts = <0 86 4>;
    clocks = <&clks 189>,
      <&clks 189>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   flexcan1: can@2090000 {
    compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
    reg = <0x02090000 0x4000>;
    interrupts = <0 110 4>;
    clocks = <&clks 137>,
      <&clks 138>;
    clock-names = "ipg", "per";
    fsl,stop-mode = <&gpr 0x10 1>;
    status = "disabled";
   };

   flexcan2: can@2094000 {
    compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
    reg = <0x02094000 0x4000>;
    interrupts = <0 111 4>;
    clocks = <&clks 139>,
      <&clks 140>;
    clock-names = "ipg", "per";
    fsl,stop-mode = <&gpr 0x10 2>;
    status = "disabled";
   };

   gpt: timer@2098000 {
    compatible = "fsl,imx6sx-gpt", "fsl,imx6dl-gpt";
    reg = <0x02098000 0x4000>;
    interrupts = <0 55 4>;
    clocks = <&clks 154>,
      <&clks 227>;
    clock-names = "ipg", "per";
   };

   gpio1: gpio@209c000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x0209c000 0x4000>;
    interrupts = <0 66 4>,
          <0 67 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 5 26>;
   };

   gpio2: gpio@20a0000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020a0000 0x4000>;
    interrupts = <0 68 4>,
          <0 69 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 31 20>;
   };

   gpio3: gpio@20a4000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020a4000 0x4000>;
    interrupts = <0 70 4>,
          <0 71 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 51 29>;
   };

   gpio4: gpio@20a8000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020a8000 0x4000>;
    interrupts = <0 72 4>,
          <0 73 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 80 32>;
   };

   gpio5: gpio@20ac000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020ac000 0x4000>;
    interrupts = <0 74 4>,
          <0 75 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 112 24>;
   };

   gpio6: gpio@20b0000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020b0000 0x4000>;
    interrupts = <0 76 4>,
          <0 77 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>;
   };

   gpio7: gpio@20b4000 {
    compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
    reg = <0x020b4000 0x4000>;
    interrupts = <0 78 4>,
          <0 79 4>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
   };

   kpp: keypad@20b8000 {
    compatible = "fsl,imx6sx-kpp", "fsl,imx21-kpp";
    reg = <0x020b8000 0x4000>;
    interrupts = <0 82 4>;
    clocks = <&clks 82>;
    status = "disabled";
   };

   wdog1: watchdog@20bc000 {
    compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
    reg = <0x020bc000 0x4000>;
    interrupts = <0 80 4>;
    clocks = <&clks 82>;
   };

   wdog2: watchdog@20c0000 {
    compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
    reg = <0x020c0000 0x4000>;
    interrupts = <0 81 4>;
    clocks = <&clks 82>;
    status = "disabled";
   };

   clks: clock-controller@20c4000 {
    compatible = "fsl,imx6sx-ccm";
    reg = <0x020c4000 0x4000>;
    interrupts = <0 87 4>,
          <0 88 4>;
    #clock-cells = <1>;
    clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>, <&anaclk1>, <&anaclk2>;
    clock-names = "ckil", "osc", "ipp_di0", "ipp_di1", "anaclk1", "anaclk2";
   };

   anatop: anatop@20c8000 {
    compatible = "fsl,imx6sx-anatop", "fsl,imx6q-anatop",
          "syscon", "simple-mfd";
    reg = <0x020c8000 0x1000>;
    interrupts = <0 49 4>,
          <0 54 4>,
          <0 127 4>;

    reg_vdd1p1: regulator-1p1 {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vdd1p1";
     regulator-min-microvolt = <1000000>;
     regulator-max-microvolt = <1200000>;
     regulator-always-on;
     anatop-reg-offset = <0x110>;
     anatop-vol-bit-shift = <8>;
     anatop-vol-bit-width = <5>;
     anatop-min-bit-val = <4>;
     anatop-min-voltage = <800000>;
     anatop-max-voltage = <1375000>;
     anatop-enable-bit = <0>;
    };

    reg_vdd3p0: regulator-3p0 {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vdd3p0";
     regulator-min-microvolt = <2625000>;
     regulator-max-microvolt = <3400000>;
     regulator-always-on;
     anatop-reg-offset = <0x120>;
     anatop-vol-bit-shift = <8>;
     anatop-vol-bit-width = <5>;
     anatop-min-bit-val = <0>;
     anatop-min-voltage = <2625000>;
     anatop-max-voltage = <3400000>;
     anatop-enable-bit = <0>;
    };

    reg_vdd2p5: regulator-2p5 {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vdd2p5";
     regulator-min-microvolt = <2250000>;
     regulator-max-microvolt = <2750000>;
     regulator-always-on;
     anatop-reg-offset = <0x130>;
     anatop-vol-bit-shift = <8>;
     anatop-vol-bit-width = <5>;
     anatop-min-bit-val = <0>;
     anatop-min-voltage = <2100000>;
     anatop-max-voltage = <2875000>;
     anatop-enable-bit = <0>;
    };

    reg_arm: regulator-vddcore {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vddarm";
     regulator-min-microvolt = <725000>;
     regulator-max-microvolt = <1450000>;
     regulator-always-on;
     anatop-reg-offset = <0x140>;
     anatop-vol-bit-shift = <0>;
     anatop-vol-bit-width = <5>;
     anatop-delay-reg-offset = <0x170>;
     anatop-delay-bit-shift = <24>;
     anatop-delay-bit-width = <2>;
     anatop-min-bit-val = <1>;
     anatop-min-voltage = <725000>;
     anatop-max-voltage = <1450000>;
    };

    reg_pcie: regulator-vddpcie {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vddpcie";
     regulator-min-microvolt = <725000>;
     regulator-max-microvolt = <1450000>;
     anatop-reg-offset = <0x140>;
     anatop-vol-bit-shift = <9>;
     anatop-vol-bit-width = <5>;
     anatop-delay-reg-offset = <0x170>;
     anatop-delay-bit-shift = <26>;
     anatop-delay-bit-width = <2>;
     anatop-min-bit-val = <1>;
     anatop-min-voltage = <725000>;
     anatop-max-voltage = <1450000>;
    };

    reg_soc: regulator-vddsoc {
     compatible = "fsl,anatop-regulator";
     regulator-name = "vddsoc";
     regulator-min-microvolt = <725000>;
     regulator-max-microvolt = <1450000>;
     regulator-always-on;
     anatop-reg-offset = <0x140>;
     anatop-vol-bit-shift = <18>;
     anatop-vol-bit-width = <5>;
     anatop-delay-reg-offset = <0x170>;
     anatop-delay-bit-shift = <28>;
     anatop-delay-bit-width = <2>;
     anatop-min-bit-val = <1>;
     anatop-min-voltage = <725000>;
     anatop-max-voltage = <1450000>;
    };

    tempmon: tempmon {
     compatible = "fsl,imx6sx-tempmon";
     interrupt-parent = <&gpc>;
     interrupts = <0 49 4>;
     fsl,tempmon = <&anatop>;
     nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
     nvmem-cell-names = "calib", "temp_grade";
     clocks = <&clks 6>;
     #thermal-sensor-cells = <0>;
    };
   };

   usbphy1: usbphy@20c9000 {
    compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
    reg = <0x020c9000 0x1000>;
    interrupts = <0 44 4>;
    clocks = <&clks 11>;
    phy-3p0-supply = <&reg_vdd3p0>;
    fsl,anatop = <&anatop>;
   };

   usbphy2: usbphy@20ca000 {
    compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
    reg = <0x020ca000 0x1000>;
    interrupts = <0 45 4>;
    clocks = <&clks 12>;
    phy-3p0-supply = <&reg_vdd3p0>;
    fsl,anatop = <&anatop>;
   };

   snvs: snvs@20cc000 {
    compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
    reg = <0x020cc000 0x4000>;

    snvs_rtc: snvs-rtc-lp {
     compatible = "fsl,sec-v4.0-mon-rtc-lp";
     regmap = <&snvs>;
     offset = <0x34>;
     interrupts = <0 19 4>, <0 20 4>;
    };

    snvs_poweroff: snvs-poweroff {
     compatible = "syscon-poweroff";
     regmap = <&snvs>;
     offset = <0x38>;
     value = <0x60>;
     mask = <0x60>;
     status = "disabled";
    };

    snvs_pwrkey: snvs-powerkey {
     compatible = "fsl,sec-v4.0-pwrkey";
     regmap = <&snvs>;
     interrupts = <0 4 4>;
     linux,keycode = <116>;
     wakeup-source;
     status = "disabled";
    };
   };

   epit1: epit@20d0000 {
    reg = <0x020d0000 0x4000>;
    interrupts = <0 56 4>;
   };

   epit2: epit@20d4000 {
    reg = <0x020d4000 0x4000>;
    interrupts = <0 57 4>;
   };

   src: reset-controller@20d8000 {
    compatible = "fsl,imx6sx-src", "fsl,imx51-src";
    reg = <0x020d8000 0x4000>;
    interrupts = <0 91 4>,
          <0 96 4>;
    #reset-cells = <1>;
   };

   gpc: gpc@20dc000 {
    compatible = "fsl,imx6sx-gpc", "fsl,imx6q-gpc";
    reg = <0x020dc000 0x4000>;
    interrupt-controller;
    #interrupt-cells = <3>;
    interrupts = <0 89 4>;
    interrupt-parent = <&intc>;
    clocks = <&clks 82>;
    clock-names = "ipg";

    pgc {
     #address-cells = <1>;
     #size-cells = <0>;

     power-domain@0 {
      reg = <0>;
      #power-domain-cells = <0>;
     };

     pd_pu: power-domain@1 {
      reg = <1>;
      #power-domain-cells = <0>;
      power-supply = <&reg_soc>;
      clocks = <&clks 156>;
     };

     pd_disp: power-domain@2 {
      reg = <2>;
      #power-domain-cells = <0>;
      clocks = <&clks 170>,
        <&clks 173>,
        <&clks 175>,
        <&clks 169>,
        <&clks 174>,
        <&clks 159>,
        <&clks 215>;
     };

     pd_pci: power-domain@3 {
      reg = <3>;
      #power-domain-cells = <0>;
      power-supply = <&reg_pcie>;
     };
    };
   };

   iomuxc: pinctrl@20e0000 {
    compatible = "fsl,imx6sx-iomuxc";
    reg = <0x020e0000 0x4000>;
   };

   gpr: syscon@20e4000 {
    compatible = "fsl,imx6sx-iomuxc-gpr",
          "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0x020e4000 0x4000>;

    lvds_bridge: bridge@18 {
     compatible = "fsl,imx6sx-ldb";
     reg = <0x18 0x4>;
     clocks = <&clks 176>;
     clock-names = "ldb";
     status = "disabled";

     ports {
      #address-cells = <1>;
      #size-cells = <0>;

      port@0 {
       reg = <0>;

       ldb_from_lcdif1: endpoint {
       };
      };

      port@1 {
       reg = <1>;

       ldb_lvds_ch0: endpoint {
       };
      };
     };
    };
   };

   sdma: dma-controller@20ec000 {
    compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma";
    reg = <0x020ec000 0x4000>;
    interrupts = <0 2 4>;
    clocks = <&clks 82>,
      <&clks 195>;
    clock-names = "ipg", "ahb";
    #dma-cells = <3>;

    fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
   };
  };

  aips2: bus@2100000 {
   compatible = "fsl,aips-bus", "simple-bus";
   #address-cells = <1>;
   #size-cells = <1>;
   reg = <0x02100000 0x100000>;
   ranges;

   crypto: crypto@2100000 {
    compatible = "fsl,sec-v4.0";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0x2100000 0x10000>;
    ranges = <0 0x2100000 0x10000>;
    interrupt-parent = <&intc>;
    clocks = <&clks 134>,
      <&clks 135>,
      <&clks 136>,
      <&clks 213>;
    clock-names = "mem", "aclk", "ipg", "emi_slow";

    sec_jr0: jr@1000 {
     compatible = "fsl,sec-v4.0-job-ring";
     reg = <0x1000 0x1000>;
     interrupts = <0 105 4>;
    };

    sec_jr1: jr@2000 {
     compatible = "fsl,sec-v4.0-job-ring";
     reg = <0x2000 0x1000>;
     interrupts = <0 106 4>;
    };
   };

   usbotg1: usb@2184000 {
    compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
    reg = <0x02184000 0x200>;
    interrupts = <0 43 4>;
    clocks = <&clks 208>;
    fsl,usbphy = <&usbphy1>;
    fsl,usbmisc = <&usbmisc 0>;
    ahb-burst-config = <0x0>;
    tx-burst-size-dword = <0x10>;
    rx-burst-size-dword = <0x10>;
    status = "disabled";
   };

   usbotg2: usb@2184200 {
    compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
    reg = <0x02184200 0x200>;
    interrupts = <0 42 4>;
    clocks = <&clks 208>;
    fsl,usbphy = <&usbphy2>;
    fsl,usbmisc = <&usbmisc 1>;
    ahb-burst-config = <0x0>;
    tx-burst-size-dword = <0x10>;
    rx-burst-size-dword = <0x10>;
    status = "disabled";
   };

   usbh: usb@2184400 {
    compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
    reg = <0x02184400 0x200>;
    interrupts = <0 40 4>;
    clocks = <&clks 208>;
    fsl,usbphy = <&usbphynop1>;
    fsl,usbmisc = <&usbmisc 2>;
    phy_type = "hsic";
    dr_mode = "host";
    ahb-burst-config = <0x0>;
    tx-burst-size-dword = <0x10>;
    rx-burst-size-dword = <0x10>;
    status = "disabled";
   };

   usbmisc: usbmisc@2184800 {
    #index-cells = <1>;
    compatible = "fsl,imx6sx-usbmisc", "fsl,imx6q-usbmisc";
    reg = <0x02184800 0x200>;
    clocks = <&clks 208>;
   };

   fec1: ethernet@2188000 {
    compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
    reg = <0x02188000 0x4000>;
    interrupt-names = "int0", "pps";
    interrupts = <0 118 4>,
          <0 119 4>;
    clocks = <&clks 172>,
      <&clks 225>,
      <&clks 228>,
      <&clks 17>,
      <&clks 228>;
    clock-names = "ipg", "ahb", "ptp",
           "enet_clk_ref", "enet_out";
    fsl,num-tx-queues = <3>;
    fsl,num-rx-queues = <3>;
    fsl,stop-mode = <&gpr 0x10 3>;
    status = "disabled";
   };

   mlb: mlb@218c000 {
    reg = <0x0218c000 0x4000>;
    interrupts = <0 53 4>,
          <0 117 4>,
          <0 126 4>;
    clocks = <&clks 178>;
    status = "disabled";
   };

   usdhc1: mmc@2190000 {
    compatible = "fsl,imx6sx-usdhc";
    reg = <0x02190000 0x4000>;
    interrupts = <0 22 4>;
    clocks = <&clks 209>,
      <&clks 209>,
      <&clks 209>;
    clock-names = "ipg", "ahb", "per";
    bus-width = <4>;
    fsl,tuning-start-tap = <20>;
    fsl,tuning-step = <2>;
    status = "disabled";
   };

   usdhc2: mmc@2194000 {
    compatible = "fsl,imx6sx-usdhc";
    reg = <0x02194000 0x4000>;
    interrupts = <0 23 4>;
    clocks = <&clks 210>,
      <&clks 210>,
      <&clks 210>;
    clock-names = "ipg", "ahb", "per";
    bus-width = <4>;
    fsl,tuning-start-tap = <20>;
    fsl,tuning-step = <2>;
    status = "disabled";
   };

   usdhc3: mmc@2198000 {
    compatible = "fsl,imx6sx-usdhc";
    reg = <0x02198000 0x4000>;
    interrupts = <0 24 4>;
    clocks = <&clks 211>,
      <&clks 211>,
      <&clks 211>;
    clock-names = "ipg", "ahb", "per";
    bus-width = <4>;
    fsl,tuning-start-tap = <20>;
    fsl,tuning-step = <2>;
    status = "disabled";
   };

   usdhc4: mmc@219c000 {
    compatible = "fsl,imx6sx-usdhc";
    reg = <0x0219c000 0x4000>;
    interrupts = <0 25 4>;
    clocks = <&clks 212>,
      <&clks 212>,
      <&clks 212>;
    clock-names = "ipg", "ahb", "per";
    bus-width = <4>;
    status = "disabled";
   };

   i2c1: i2c@21a0000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
    reg = <0x021a0000 0x4000>;
    interrupts = <0 36 4>;
    clocks = <&clks 160>;
    status = "disabled";
   };

   i2c2: i2c@21a4000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
    reg = <0x021a4000 0x4000>;
    interrupts = <0 37 4>;
    clocks = <&clks 161>;
    status = "disabled";
   };

   i2c3: i2c@21a8000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
    reg = <0x021a8000 0x4000>;
    interrupts = <0 38 4>;
    clocks = <&clks 162>;
    status = "disabled";
   };

   memory-controller@21b0000 {
    compatible = "fsl,imx6sx-mmdc", "fsl,imx6q-mmdc";
    reg = <0x021b0000 0x4000>;
    clocks = <&clks 180>;
   };

   fec2: ethernet@21b4000 {
    compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
    reg = <0x021b4000 0x4000>;
    interrupt-names = "int0", "pps";
    interrupts = <0 102 4>,
          <0 103 4>;
    clocks = <&clks 172>,
      <&clks 225>,
      <&clks 228>,
      <&clks 231>,
      <&clks 228>;
    clock-names = "ipg", "ahb", "ptp",
           "enet_clk_ref", "enet_out";
    fsl,stop-mode = <&gpr 0x10 4>;
    status = "disabled";
   };

   weim: memory-controller@21b8000 {
    #address-cells = <2>;
    #size-cells = <1>;
    compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim";
    reg = <0x021b8000 0x4000>;
    interrupts = <0 14 4>;
    clocks = <&clks 213>;
    fsl,weim-cs-gpr = <&gpr>;
    status = "disabled";
   };

   ocotp: efuse@21bc000 {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "fsl,imx6sx-ocotp", "syscon";
    reg = <0x021bc000 0x4000>;
    clocks = <&clks 163>;

    cpu_speed_grade: speed-grade@10 {
     reg = <0x10 4>;
    };

    tempmon_calib: calib@38 {
     reg = <0x38 4>;
    };

    tempmon_temp_grade: temp-grade@20 {
     reg = <0x20 4>;
    };
   };

   sai1: sai@21d4000 {
    compatible = "fsl,imx6sx-sai";
    reg = <0x021d4000 0x4000>;
    interrupts = <0 97 4>;
    clocks = <&clks 237>,
      <&clks 206>,
      <&clks 0>, <&clks 0>;
    clock-names = "bus", "mclk1", "mclk2", "mclk3";
    dma-names = "rx", "tx";
    dmas = <&sdma 31 24 0>, <&sdma 32 24 0>;
    status = "disabled";
   };

   audmux: audmux@21d8000 {
    compatible = "fsl,imx6sx-audmux", "fsl,imx31-audmux";
    reg = <0x021d8000 0x4000>;
    status = "disabled";
   };

   sai2: sai@21dc000 {
    compatible = "fsl,imx6sx-sai";
    reg = <0x021dc000 0x4000>;
    interrupts = <0 98 4>;
    clocks = <&clks 238>,
      <&clks 207>,
      <&clks 0>, <&clks 0>;
    clock-names = "bus", "mclk1", "mclk2", "mclk3";
    dma-names = "rx", "tx";
    dmas = <&sdma 33 24 0>, <&sdma 34 24 0>;
    status = "disabled";
   };

   qspi1: spi@21e0000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-qspi";
    reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
    reg-names = "QuadSPI", "QuadSPI-memory";
    interrupts = <0 107 4>;
    clocks = <&clks 177>,
      <&clks 177>;
    clock-names = "qspi_en", "qspi";
    status = "disabled";
   };

   qspi2: spi@21e4000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-qspi";
    reg = <0x021e4000 0x4000>, <0x70000000 0x10000000>;
    reg-names = "QuadSPI", "QuadSPI-memory";
    interrupts = <0 109 4>;
    clocks = <&clks 183>,
      <&clks 183>;
    clock-names = "qspi_en", "qspi";
    status = "disabled";
   };

   uart2: serial@21e8000 {
    compatible = "fsl,imx6sx-uart",
          "fsl,imx6q-uart", "fsl,imx21-uart";
    reg = <0x021e8000 0x4000>;
    interrupts = <0 27 4>;
    clocks = <&clks 204>,
      <&clks 205>;
    clock-names = "ipg", "per";
    dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
    dma-names = "rx", "tx";
    status = "disabled";
   };

   uart3: serial@21ec000 {
    compatible = "fsl,imx6sx-uart",
          "fsl,imx6q-uart", "fsl,imx21-uart";
    reg = <0x021ec000 0x4000>;
    interrupts = <0 28 4>;
    clocks = <&clks 204>,
      <&clks 205>;
    clock-names = "ipg", "per";
    dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
    dma-names = "rx", "tx";
    status = "disabled";
   };

   uart4: serial@21f0000 {
    compatible = "fsl,imx6sx-uart",
          "fsl,imx6q-uart", "fsl,imx21-uart";
    reg = <0x021f0000 0x4000>;
    interrupts = <0 29 4>;
    clocks = <&clks 204>,
      <&clks 205>;
    clock-names = "ipg", "per";
    dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
    dma-names = "rx", "tx";
    status = "disabled";
   };

   uart5: serial@21f4000 {
    compatible = "fsl,imx6sx-uart",
          "fsl,imx6q-uart", "fsl,imx21-uart";
    reg = <0x021f4000 0x4000>;
    interrupts = <0 30 4>;
    clocks = <&clks 204>,
      <&clks 205>;
    clock-names = "ipg", "per";
    dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
    dma-names = "rx", "tx";
    status = "disabled";
   };

   i2c4: i2c@21f8000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
    reg = <0x021f8000 0x4000>;
    interrupts = <0 35 4>;
    clocks = <&clks 217>;
    status = "disabled";
   };
  };

  aips3: bus@2200000 {
   compatible = "fsl,aips-bus", "simple-bus";
   #address-cells = <1>;
   #size-cells = <1>;
   reg = <0x02200000 0x100000>;
   ranges;

   spba-bus@2240000 {
    compatible = "fsl,spba-bus", "simple-bus";
    #address-cells = <1>;
    #size-cells = <1>;
    reg = <0x02240000 0x40000>;
    ranges;

    csi1: csi@2214000 {
     reg = <0x02214000 0x4000>;
     interrupts = <0 7 4>;
     clocks = <&clks 173>,
       <&clks 159>,
       <&clks 142>;
     clock-names = "disp-axi", "csi_mclk", "dcic";
     status = "disabled";
    };

    pxp: pxp@2218000 {
     compatible = "fsl,imx6sx-pxp", "fsl,imx6ull-pxp";
     reg = <0x02218000 0x4000>;
     interrupts = <0 8 4>;
     clocks = <&clks 170>;
     clock-names = "axi";
     power-domains = <&pd_disp>;
     status = "disabled";
    };

    csi2: csi@221c000 {
     reg = <0x0221c000 0x4000>;
     interrupts = <0 41 4>;
     clocks = <&clks 173>,
       <&clks 159>,
       <&clks 143>;
     clock-names = "disp-axi", "csi_mclk", "dcic";
     status = "disabled";
    };

    lcdif1: lcdif@2220000 {
     compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
     reg = <0x02220000 0x4000>;
     interrupts = <0 5 1>;
     clocks = <&clks 175>,
       <&clks 169>,
       <&clks 173>;
     clock-names = "pix", "axi", "disp_axi";
     assigned-clocks = <&clks 71>,
         <&clks 73>;
     assigned-clock-parents = <&clks 34>,
         <&clks 85>;
     power-domains = <&pd_disp>;
     status = "disabled";

     port {
      lcdif1_to_ldb: endpoint {
      };
     };
    };

    lcdif2: lcdif@2224000 {
     compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
     reg = <0x02224000 0x4000>;
     interrupts = <0 6 1>;
     clocks = <&clks 174>,
       <&clks 169>,
       <&clks 173>;
     clock-names = "pix", "axi", "disp_axi";
     power-domains = <&pd_disp>;
     status = "disabled";
    };

    vadc: vadc@2228000 {
     reg = <0x02228000 0x4000>, <0x0222c000 0x4000>;
     reg-names = "vadc-vafe", "vadc-vdec";
     clocks = <&clks 215>,
       <&clks 159>;
     clock-names = "vadc", "csi";
     power-domains = <&pd_disp>;
     status = "disabled";
    };
   };

   adc1: adc@2280000 {
    compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
    reg = <0x02280000 0x4000>;
    interrupts = <0 100 4>;
    clocks = <&clks 82>;
    clock-names = "adc";
    fsl,adck-max-frequency = <30000000>, <40000000>,
        <20000000>;
    status = "disabled";
   };

   adc2: adc@2284000 {
    compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
    reg = <0x02284000 0x4000>;
    interrupts = <0 101 4>;
    clocks = <&clks 82>;
    clock-names = "adc";
    fsl,adck-max-frequency = <30000000>, <40000000>,
        <20000000>;
    status = "disabled";
   };

   wdog3: watchdog@2288000 {
    compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
    reg = <0x02288000 0x4000>;
    interrupts = <0 11 4>;
    clocks = <&clks 82>;
    status = "disabled";
   };

   ecspi5: spi@228c000 {
    #address-cells = <1>;
    #size-cells = <0>;
    compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
    reg = <0x0228c000 0x4000>;
    interrupts = <0 18 4>;
    clocks = <&clks 149>,
      <&clks 149>;
    clock-names = "ipg", "per";
    status = "disabled";
   };

   uart6: serial@22a0000 {
    compatible = "fsl,imx6sx-uart",
          "fsl,imx6q-uart", "fsl,imx21-uart";
    reg = <0x022a0000 0x4000>;
    interrupts = <0 17 4>;
    clocks = <&clks 204>,
      <&clks 205>;
    clock-names = "ipg", "per";
    dmas = <&sdma 0 4 0>, <&sdma 47 4 0>;
    dma-names = "rx", "tx";
    status = "disabled";
   };

   pwm5: pwm@22a4000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x022a4000 0x4000>;
    interrupts = <0 83 4>;
    clocks = <&clks 218>,
      <&clks 218>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm6: pwm@22a8000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x022a8000 0x4000>;
    interrupts = <0 84 4>;
    clocks = <&clks 219>,
      <&clks 219>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm7: pwm@22ac000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x022ac000 0x4000>;
    interrupts = <0 85 4>;
    clocks = <&clks 220>,
      <&clks 220>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };

   pwm8: pwm@22b0000 {
    compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
    reg = <0x022b0000 0x4000>;
    interrupts = <0 86 4>;
    clocks = <&clks 214>,
      <&clks 214>;
    clock-names = "ipg", "per";
    #pwm-cells = <3>;
   };
  };

  pcie: pcie@8ffc000 {
   compatible = "fsl,imx6sx-pcie";
   reg = <0x08ffc000 0x04000>, <0x08f00000 0x80000>;
   reg-names = "dbi", "config";
   #address-cells = <3>;
   #size-cells = <2>;
   device_type = "pci";
   bus-range = <0x00 0xff>;
   ranges = <0x81000000 0 0 0x08f80000 0 0x00010000>,
     <0x82000000 0 0x08000000 0x08000000 0 0x00f00000>;
   num-lanes = <1>;
   interrupts = <0 120 4>;
   interrupt-names = "msi";
   #interrupt-cells = <1>;
   interrupt-map-mask = <0 0 0 0x7>;
   interrupt-map = <0 0 0 1 &gpc 0 123 4>,
     <0 0 0 2 &gpc 0 122 4>,
     <0 0 0 3 &gpc 0 121 4>,
     <0 0 0 4 &gpc 0 120 4>;
   clocks = <&clks 182>,
     <&clks 234>,
     <&clks 16>,
     <&clks 173>;
   clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_inbound_axi";
   power-domains = <&pd_disp>, <&pd_pci>;
   power-domain-names = "pcie", "pcie_phy";
   status = "disabled";
  };
 };
};
# 11 "arch/arm/boot/dts/nxp/imx/javad/javad-imx.dtsi" 2

/ {





 aliases {
  mmc0 = &usdhc4;
  mmc1 = &usdhc3;
  mmc2 = &usdhc2;
  mmc3 = &usdhc1;
 };

 memory@80000000 {
  device_type = "memory";
  reg = <0x80000000 0x40000000>;
 };


 pps-gnss {
  compatible = "pps-gpio";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_pps>;


  gpios = <&gpio3 25 0>;
  status = "okay";
 };

 regulators {
  compatible = "simple-bus";
  #address-cells = <1>;
  #size-cells = <0>;

  reg_vref_3v3: regulator@2 {
   compatible = "regulator-fixed";
   reg = <1>;
   regulator-name = "vref-3v3";
   regulator-min-microvolt = <3300000>;
   regulator-max-microvolt = <3300000>;
  };
 };

};

&cpu0 {
 operating-points = <

  996000 1250000
  792000 1175000
  396000 1175000
  198000 1175000
  >;
 fsl,soc-operating-points = <

  996000 1250000
  792000 1175000
  396000 1175000
  198000 1175000
 >;
 fsl,arm-soc-shared = <1>;
};

&fec1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_enet1>;
 phy-mode = "rmii";
 phy-handle = <&phy0>;
 max-speed = <100>;
 #clock-cells = <0>;
 clock-frequency = <50000000>;
 phy-reset-gpios = <&gpio5 11 1>;
 phy-reset-duration = <10>;

 status = "okay";
 mdio {
  #address-cells = <1>;
  #size-cells = <0>;

  phy0: ethernet-phy@1 {
   reg = <1>;
  };
 };
};


&usdhc4 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usdhc4>;

 bus-width = <8>;


 non-removable;
 keep-power-in-suspend;
 status = "okay";
};

&iomuxc {
 pinctrl-names = "default";

 imx6x-sdb {
  pinctrl_usdhc4: usdhc4grp {
   fsl,pins = <
    0x0278 0x05C0 0x0000 0x0 0x0 0x10059
    0x027C 0x05C4 0x0000 0x0 0x0 0x17059
    0x0280 0x05C8 0x0000 0x0 0x0 0x17059
    0x0284 0x05CC 0x0000 0x0 0x0 0x17059
    0x0288 0x05D0 0x0000 0x0 0x0 0x17059
    0x028C 0x05D4 0x0000 0x0 0x0 0x17059
    0x0290 0x05D8 0x0000 0x0 0x0 0x17059
    0x0294 0x05DC 0x0000 0x0 0x0 0x17059
    0x0298 0x05E0 0x0000 0x0 0x0 0x17059
    0x029C 0x05E4 0x0000 0x0 0x0 0x17059
    0x02A0 0x05E8 0x0000 0x0 0x0 0x17068
   >;
  };
 };
};

&adc1 {
    pinctrl-names = "default";
 vref-supply = <&reg_vref_3v3>;
 status = "okay";
};

&adc2 {
    pinctrl-names = "default";
 vref-supply = <&reg_vref_3v3>;
 status = "okay";
};
# 11 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre.dtsi" 2

/ {
 compatible = "javad,imx6sx", "fsl,imx6sx";

 chosen {
  stdout-path = &uart1;
 };


 gpio-poweroff {
  compatible = "gpio-poweroff";
  gpios = <&gpio6 7 0>;
  status = "okay";
 };

 regulators {
  compatible = "simple-bus";
  #address-cells = <1>;
  #size-cells = <0>;

  reg_usb_otg1_vbus: regulator@0 {
   compatible = "regulator-fixed";
   reg = <0>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_usb_otg1>;
   regulator-name = "usb_otg1_vbus";
   regulator-min-microvolt = <5000000>;
   regulator-max-microvolt = <5000000>;
   gpio = <&gpio4 18 0>;
   enable-active-high;
  };
 };
};

&uart1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart1>;
 dma-names = "";
 uart-has-rtscts;
 status = "okay";
};

&uart2 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart2>;

 dma-names = "";
 status = "okay";
};

&uart3 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart3>;

 dma-names = "";
 status = "okay";
};

&uart4 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart4>;
 uart-has-rtscts;
 dma-names = "";
 status = "okay";
};

&uart5 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart5>;
 uart-has-rtscts;
 dma-names = "";
 status = "okay";
};

&uart6 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_uart6>;
 uart-has-rtscts;
 dma-names = "";
 status = "okay";
};

&flexcan1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_flexcan1>;
 status = "okay";
};

&flexcan2 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_flexcan2>;
 status = "okay";
};

&i2c1 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_i2c1>;
 status = "okay";
 clock-frequency = <400000>;

};

&usbphy1 {
    tx-d-cal = <0x5>;
    status = "okay";
};

&usbotg1 {
 vbus-supply = <&reg_usb_otg1_vbus>;
    pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usb_otg1_id>;
    disable-over-current;
    srp-disable;
    hnp-disable;
    adp-disable;
    status = "okay";
};

&iomuxc {
 pinctrl-names = "default";

 imx6x-sdb {
  pinctrl_uart1: uart1grp {
   fsl,pins = <
    0x0098 0x03E0 0x0000 0x3 0x0 0x1b0b1
    0x0094 0x03DC 0x0830 0x3 0x2 0x1b0b1
    0x00A0 0x03E8 0x0000 0x3 0x0 0x1b0b1
    0x009C 0x03E4 0x082C 0x3 0x2 0x1b0b1
   >;
  };

  pinctrl_uart2: uart2grp {
   fsl,pins = <
    0x0030 0x0378 0x0838 0x0 0x1 0x1b0b1
    0x002C 0x0374 0x0000 0x0 0x0 0x1b0b1


   >;
  };

  pinctrl_uart3: uart3grp {
   fsl,pins = <
    0x01B4 0x04FC 0x0840 0x1 0x4 0x1b0b1
    0x01B8 0x0500 0x0000 0x1 0x0 0x1b0b1
   >;
  };

  pinctrl_uart4: uart4grp {
   fsl,pins = <
    0x0264 0x05AC 0x0848 0x1 0x1 0x1b0b1
    0x0254 0x059C 0x0000 0x1 0x0 0x1b0b1
    0x0250 0x0598 0x0000 0x1 0x0 0x1b0b1
    0x0260 0x05A8 0x0844 0x1 0x1 0x1b0b1
   >;
  };

  pinctrl_uart5: uart5grp {
   fsl,pins = <
    0x00C4 0x040C 0x0850 0x2 0x3 0x1b0b1
    0x00B0 0x03F8 0x0000 0x2 0x0 0x1b0b1
    0x00C0 0x0408 0x0000 0x2 0x0 0x1b0b1
    0x00AC 0x03F4 0x084C 0x2 0x2 0x1b0b1
   >;
  };

  pinctrl_uart6: uart6grp {
   fsl,pins = <
    0x00BC 0x0404 0x0858 0x2 0x3 0x1b0b1
    0x00A8 0x03F0 0x0000 0x2 0x0 0x1b0b1
    0x00B8 0x0400 0x0000 0x2 0x0 0x1b0b1
    0x00A4 0x03EC 0x0854 0x2 0x2 0x1b0b1
   >;
  };

  pinctrl_flexcan1: flexcan1grp-1 {
   fsl,pins = <
    0x026C 0x05B4 0x0000 0x1 0x0 0x1b020
    0x0274 0x05BC 0x068C 0x1 0x0 0x1b020
   >;
  };

  pinctrl_flexcan2: flexcan2grp-1 {
   fsl,pins = <
    0x0268 0x05B0 0x0690 0x1 0x0 0x1b020
    0x0270 0x05B8 0x0000 0x1 0x0 0x1b020
   >;
  };

  pinctrl_i2c1: i2c1grp {
   fsl,pins = <
    0x0014 0x035C 0x07A8 0x0 0x1 0x4001b8b1
    0x0018 0x0360 0x07AC 0x0 0x1 0x4001b8b1
   >;
  };

  pinctrl_usb_otg1: usbotg1grp {
   fsl,pins = <
    0x0188 0x04D0 0x0000 0x5 0x0 0x1b0b0
   >;
  };

  pinctrl_usb_otg1_id: usbotg1idgrp {
   fsl,pins = <
    0x018C 0x04D4 0x0860 0x1 0x2 0x1b0b0
    0x0184 0x04CC 0x0624 0x1 0x2 0x1b0b0
   >;
  };

  pinctrl_pps: ppsgrp {
   fsl,pins = <
    0x0130 0x0478 0x0000 0x5 0x0 0x1b0b1
   >;
  };







 };
};
# 11 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre_3s.dtsi" 2
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth-dp.dtsi" 1
# 13 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth-dp.dtsi"
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth.dtsi" 1
# 45 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth.dtsi"
&iomuxc {
 pinctrl-names = "default";
 imx6x-sdb {
  pinctrl_enet1: enet1grp {
   fsl,pins = <
    0x0088 0x03D0 0x0764 0x0 0x1 0xf0a9
    0x0084 0x03CC 0x0000 0x0 0x0 0xb0a9
# 72 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth.dtsi"
    0x01D8 0x0520 0x0000 0x0 0x0 0xb0a9
    0x01DC 0x0524 0x0000 0x0 0x0 0xb0a9
    0x01E8 0x0530 0x0000 0x0 0x0 0xb0a9
    0x01D4 0x051C 0x0000 0x1 0x0 0x3081
    0x01C0 0x0508 0x0000 0x0 0x0 0x3081
    0x01C4 0x050C 0x0000 0x0 0x0 0x3081
    0x01D0 0x0518 0x0000 0x0 0x0 0x3081
    0x0090 0x03D8 0x0760 0x1 0x1 0x0091
    0x01EC 0x0534 0x0000 0x5 0x0 0xb0b0





   >;
  };
 };
};
# 14 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-eth-dp.dtsi" 2
# 12 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre_3s.dtsi" 2

/ {
 model = "JAVAD TRE-3S";
 compatible = "javad,tre-3s", "javad,imx6sx", "fsl,imx6sx";
};
# 13 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-01-03-tre_3s.dts" 2
# 1 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre-usb2.dtsi" 1
# 10 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-tre-usb2.dtsi"
/ {
 regulators {
  compatible = "simple-bus";
  #address-cells = <1>;
  #size-cells = <0>;

  reg_usb_otg2_vbus: regulator@1 {
   compatible = "regulator-fixed";
   reg = <0>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_usb_otg2>;
   regulator-name = "usb_otg2_vbus";
   regulator-min-microvolt = <5000000>;
   regulator-max-microvolt = <5000000>;
   gpio = <&gpio4 22 0>;
   enable-active-high;
  };
 };
};

&usbphy2 {
    tx-d-cal = <0x5>;
    status = "okay";
};

&usbotg2 {
 vbus-supply = <&reg_usb_otg2_vbus>;
    pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usb_otg2_id>;
    disable-over-current;
    srp-disable;
    hnp-disable;
    adp-disable;
 dr_mode = "otg";
    status = "okay";
};

&iomuxc {
 pinctrl-names = "default";

 imx6x-sdb {

  pinctrl_usb_otg2: usbotg2grp {
   fsl,pins = <
    0x0198 0x04E0 0x0000 0x5 0x0 0x1b0b0
   >;
  };

  pinctrl_usb_otg2_id: usbotg2idgrp {
   fsl,pins = <
    0x0180 0x04C8 0x085C 0x1 0x2 0x1b0b0
    0x0194 0x04DC 0x0628 0x1 0x2 0x1b0b0
   >;
  };
 };
};
# 14 "arch/arm/boot/dts/nxp/imx/javad/javad-imx-01-03-tre_3s.dts" 2

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-06 21:22         ` Sergey Organov
@ 2025-10-07  2:05           ` Fabio Estevam
  2025-10-07 11:35             ` Sergey Organov
  2025-10-07 21:17             ` Sergey Organov
  0 siblings, 2 replies; 29+ messages in thread
From: Fabio Estevam @ 2025-10-07  2:05 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

On Mon, Oct 6, 2025 at 6:22 PM Sergey Organov <sorganov@gmail.com> wrote:

> It is built form multiple .dtsi, so I figure I attach the one after
> pre-processing stage. Please let me know if you'd prefer I rather
> manually insert all the custom .dtsi into a single .dts, and send that
> one instead.

This format is hard to follow.

To make things easier for debugging, you could create a minimal board
dts file with only UART and eMMC nodes to reproduce the problem.

It's not clear to me the relationship between the ANATOP regulators
and the eMMC power on your board.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07  2:05           ` Fabio Estevam
@ 2025-10-07 11:35             ` Sergey Organov
  2025-10-07 15:19               ` Ulf Hansson
  2025-10-07 21:17             ` Sergey Organov
  1 sibling, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-07 11:35 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm),
	Anson Huang

Fabio Estevam <festevam@gmail.com> writes:

> On Mon, Oct 6, 2025 at 6:22 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> It is built form multiple .dtsi, so I figure I attach the one after
>> pre-processing stage. Please let me know if you'd prefer I rather
>> manually insert all the custom .dtsi into a single .dts, and send that
>> one instead.
>
> This format is hard to follow.
>
> To make things easier for debugging, you could create a minimal board
> dts file with only UART and eMMC nodes to reproduce the problem.
>
> It's not clear to me the relationship between the ANATOP regulators
> and the eMMC power on your board.

Thanks, Fabio! OK, I'll do, re-check, and get back to you.

-- Sergey Organov


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07 11:35             ` Sergey Organov
@ 2025-10-07 15:19               ` Ulf Hansson
  0 siblings, 0 replies; 29+ messages in thread
From: Ulf Hansson @ 2025-10-07 15:19 UTC (permalink / raw)
  To: Sergey Organov
  Cc: Fabio Estevam, linux-kernel, Shawn Guo, Rob Herring (Arm),
	Anson Huang

On Tue, 7 Oct 2025 at 13:35, Sergey Organov <sorganov@gmail.com> wrote:
>
> Fabio Estevam <festevam@gmail.com> writes:
>
> > On Mon, Oct 6, 2025 at 6:22 PM Sergey Organov <sorganov@gmail.com> wrote:
> >
> >> It is built form multiple .dtsi, so I figure I attach the one after
> >> pre-processing stage. Please let me know if you'd prefer I rather
> >> manually insert all the custom .dtsi into a single .dts, and send that
> >> one instead.
> >
> > This format is hard to follow.
> >
> > To make things easier for debugging, you could create a minimal board
> > dts file with only UART and eMMC nodes to reproduce the problem.
> >
> > It's not clear to me the relationship between the ANATOP regulators
> > and the eMMC power on your board.
>
> Thanks, Fabio! OK, I'll do, re-check, and get back to you.

FYI, we have had some strange issues cropping up in regards to the
so-called ->sync_state() support in genpd, that was added in
v6.17-rc1. Not sure if this could be related.

Most of the problems pointed to commit: 0e789b491ba0 "pmdomain: core:
Leave powered-on genpds on until sync_state".

Although, it's not possible to make a plain revert of the above
commit, one can opt-out from the new behavior in genpd, by setting
GENPD_FLAG_NO_STAY_ON for the corresponding genpds that are registered
with pm_genpd_init().

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07  2:05           ` Fabio Estevam
  2025-10-07 11:35             ` Sergey Organov
@ 2025-10-07 21:17             ` Sergey Organov
  2025-10-07 21:29               ` Fabio Estevam
  1 sibling, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-07 21:17 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

[-- Attachment #1: Type: text/plain, Size: 1997 bytes --]

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> On Mon, Oct 6, 2025 at 6:22 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> It is built form multiple .dtsi, so I figure I attach the one after
>> pre-processing stage. Please let me know if you'd prefer I rather
>> manually insert all the custom .dtsi into a single .dts, and send that
>> one instead.
>
> This format is hard to follow.
>
> To make things easier for debugging, you could create a minimal board
> dts file with only UART and eMMC nodes to reproduce the problem.

Please see attached minimum DTS. Maybe it misses something? Shouldn't
DTS describe how eMMC chip is powered, provided it's powered from NXP
MMPF0100F6ANES PMIC? I didn't find any hints in other DTS'es.

> It's not clear to me the relationship between the ANATOP regulators
> and the eMMC power on your board.

Sheer mystery for me.

The point of hang is not entirely deterministic either, that suggests
it's some power problem indeed. It may hang after random line among the
following depending on exact build and sometimes even from run-to-run:

...
mmc0: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
Loading compiled-in X.509 certificates
clk: Disabling unused clocks
PM: genpd: Disabling unused power domains
check access for rdinit=/init failed: -2, ignoring
Waiting for root device /dev/mmcblk0p2...

Also, I just tried to compile entire kernel with -DDEBUG, and it starts
to see the eMMC, though still hangs not ever mounting the root FS:

mmc0: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
Loading compiled-in X.509 certificates
mmc0: new high speed DDR MMC card at address 0001
mmcblk0: mmc0:0001 IX2964 58.3 GiB
 mmcblk0: p1 p2 p3 p4 < p5 p6 >
mmcblk0boot0: mmc0:0001 IX2964 4.00 MiB
mmcblk0boot1: mmc0:0001 IX2964 4.00 MiB
mmcblk0rpmb: mmc0:0001 IX2964 4.00 MiB, chardev (246:0)
clk: Disabling unused clocks
PM: genpd: Disabling unused power domains
check access for rdinit=/init failed: -2, ignoring

-- Sergey Organov


[-- Attachment #2: troublesome minimum dts --]
[-- Type: text/plain, Size: 1432 bytes --]

/dts-v1/;

#include "../imx6sx.dtsi"

/ {
	compatible = "javad,imx6sx", "fsl,imx6sx";

	chosen {
		stdout-path = &uart1;
	};

	aliases {
		mmc0 = &usdhc4;
		mmc1 = &usdhc3;
		mmc2 = &usdhc2;
		mmc3 = &usdhc1;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x40000000>;
	};

};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	bus-width = <8>;
	non-removable;
	keep-power-in-suspend;
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	dma-names = "";
	uart-has-rtscts;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	imx6x-sdb {
		pinctrl_usdhc4: usdhc4grp {
			fsl,pins = <
				MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
				MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
				MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
				MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
				MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
				MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
				MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x17059
				MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x17059
				MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x17059
				MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x17059
				MX6SX_PAD_SD4_RESET_B__USDHC4_RESET_B	0x17068
			>;
		};
		pinctrl_uart1: uart1grp {
			fsl,pins = <
				MX6SX_PAD_ENET2_CRS__UART1_TX		0x1b0b1
				MX6SX_PAD_ENET2_COL__UART1_RX		0x1b0b1
				MX6SX_PAD_ENET2_TX_CLK__UART1_CTS_B	0x1b0b1
				MX6SX_PAD_ENET2_RX_CLK__UART1_RTS_B	0x1b0b1
			>;
		};
	};
};

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07 21:17             ` Sergey Organov
@ 2025-10-07 21:29               ` Fabio Estevam
  2025-10-07 21:44                 ` Fabio Estevam
  2025-10-08 17:04                 ` Sergey Organov
  0 siblings, 2 replies; 29+ messages in thread
From: Fabio Estevam @ 2025-10-07 21:29 UTC (permalink / raw)
  To: Sergey Organov; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

Hi Sergey,

On Tue, Oct 7, 2025 at 6:17 PM Sergey Organov <sorganov@gmail.com> wrote:
>
> Please see attached minimum DTS. Maybe it misses something? Shouldn't
> DTS describe how eMMC chip is powered, provided it's powered from NXP
> MMPF0100F6ANES PMIC? I didn't find any hints in other DTS'es.

Yes, the dts should describe the eMMC power supplies.

The properties are: vmmc-supply and vqmmc-supply.

Check arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi for reference.

> The point of hang is not entirely deterministic either, that suggests
> it's some power problem indeed. It may hang after random line among the
> following depending on exact build and sometimes even from run-to-run:
>
> ...
> mmc0: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
> Loading compiled-in X.509 certificates
> clk: Disabling unused clocks
> PM: genpd: Disabling unused power domains

Does it hang if you pass "pm_genpd_ignore_unused" and
"clk_ignore_unused" in the kernel command line?

> check access for rdinit=/init failed: -2, ignoring
> Waiting for root device /dev/mmcblk0p2...
>
> Also, I just tried to compile entire kernel with -DDEBUG, and it starts
> to see the eMMC, though still hangs not ever mounting the root FS:

I saw Ulf's response about a potential regression in 6.17.

Do you see the hang with 6.16?

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07 21:29               ` Fabio Estevam
@ 2025-10-07 21:44                 ` Fabio Estevam
  2025-10-08 12:53                   ` Sergey Organov
  2025-10-08 17:04                 ` Sergey Organov
  1 sibling, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-07 21:44 UTC (permalink / raw)
  To: Sergey Organov; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

On Tue, Oct 7, 2025 at 6:29 PM Fabio Estevam <festevam@gmail.com> wrote:

> I saw Ulf's response about a potential regression in 6.17.
>
> Do you see the hang with 6.16?

Another suggestion: if your eMMC operates only at 3.3V, try passing
the "no-1-8-v" property for usdhc4.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07 21:44                 ` Fabio Estevam
@ 2025-10-08 12:53                   ` Sergey Organov
  0 siblings, 0 replies; 29+ messages in thread
From: Sergey Organov @ 2025-10-08 12:53 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

Fabio Estevam <festevam@gmail.com> writes:

> On Tue, Oct 7, 2025 at 6:29 PM Fabio Estevam <festevam@gmail.com> wrote:
>
>> I saw Ulf's response about a potential regression in 6.17.
>>
>> Do you see the hang with 6.16?
>
> Another suggestion: if your eMMC operates only at 3.3V, try passing
> the "no-1-8-v" property for usdhc4.

It does use 1.8. The rest of your suggestions I'll check and then get
back, thank you!

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-07 21:29               ` Fabio Estevam
  2025-10-07 21:44                 ` Fabio Estevam
@ 2025-10-08 17:04                 ` Sergey Organov
  1 sibling, 0 replies; 29+ messages in thread
From: Sergey Organov @ 2025-10-08 17:04 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: linux-kernel, Ulf Hansson, Shawn Guo, Rob Herring (Arm)

[-- Attachment #1: Type: text/plain, Size: 2504 bytes --]

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Tue, Oct 7, 2025 at 6:17 PM Sergey Organov <sorganov@gmail.com> wrote:
>>
>> Please see attached minimum DTS. Maybe it misses something? Shouldn't
>> DTS describe how eMMC chip is powered, provided it's powered from NXP
>> MMPF0100F6ANES PMIC? I didn't find any hints in other DTS'es.
>
> Yes, the dts should describe the eMMC power supplies.
>
> The properties are: vmmc-supply and vqmmc-supply.
>
> Check arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi for reference.

This uses:

        pmic: pmic@8 {                                                                                
                compatible = "fsl,pfuze100";                                                          

that doesn't look like the one I need, and I don't see anything among
Documentation/devicetree/bindings/regulator/* for the NXP MMPF0100F6ANES
PMIC that is used on my board.

Does it mean that this regulator is unsupported? If so, doesn't it mean
that kernel simply won't touch it, and thus it can't be the cause of the
hang?

Anyway, I added naive fixed regulators (see attached modified DTS), but
it didn't change the outcome.

>
>> The point of hang is not entirely deterministic either, that suggests
>> it's some power problem indeed. It may hang after random line among the
>> following depending on exact build and sometimes even from run-to-run:
>>
>> ...
>> mmc0: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
>> Loading compiled-in X.509 certificates
>> clk: Disabling unused clocks
>> PM: genpd: Disabling unused power domains
>
> Does it hang if you pass "pm_genpd_ignore_unused" and
> "clk_ignore_unused" in the kernel command line?

Yep, it still hangs (it's pd_ignore_unused, not pm_genpd_ignore_unused,
btw):

clk: Not disabling unused clocks                   
PM: genpd: Not disabling unused power domains      
check access for rdinit=/init failed: -2, ignoring 
Waiting for root device /dev/mmcblk0p3...

and I recall I've already tried it first thing to disable this right in
the code to no avail either.

>
>> check access for rdinit=/init failed: -2, ignoring
>> Waiting for root device /dev/mmcblk0p2...
>>
>> Also, I just tried to compile entire kernel with -DDEBUG, and it starts
>> to see the eMMC, though still hangs not ever mounting the root FS:
>
> I saw Ulf's response about a potential regression in 6.17.
>
> Do you see the hang with 6.16?

Yep, 6.16 still hangs for me the same way.

-- Sergey Organov


[-- Attachment #2: troublesome minimum dts --]
[-- Type: text/plain, Size: 1917 bytes --]

/dts-v1/;

#include "../imx6sx.dtsi"

/ {
	compatible = "javad,imx6sx", "fsl,imx6sx";

	chosen {
		stdout-path = &uart1;
	};

	aliases {
		mmc0 = &usdhc4;
		mmc1 = &usdhc3;
		mmc2 = &usdhc2;
		mmc3 = &usdhc1;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x80000000 0x40000000>;
	};

	reg_module_3v3: regulator-module-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "+V3.3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	reg_module_1v8: regulator-module-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "+V1.8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

};

&usdhc4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usdhc4>;
	bus-width = <8>;
	non-removable;
	keep-power-in-suspend;
	vmmc-supply = <&reg_module_3v3>;
	vqmmc-supply = <&reg_module_1v8>;
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	dma-names = "";
	uart-has-rtscts;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	imx6x-sdb {
		pinctrl_usdhc4: usdhc4grp {
			fsl,pins = <
				MX6SX_PAD_SD4_CLK__USDHC4_CLK		0x10059
				MX6SX_PAD_SD4_CMD__USDHC4_CMD		0x17059
				MX6SX_PAD_SD4_DATA0__USDHC4_DATA0	0x17059
				MX6SX_PAD_SD4_DATA1__USDHC4_DATA1	0x17059
				MX6SX_PAD_SD4_DATA2__USDHC4_DATA2	0x17059
				MX6SX_PAD_SD4_DATA3__USDHC4_DATA3	0x17059
				MX6SX_PAD_SD4_DATA4__USDHC4_DATA4	0x17059
				MX6SX_PAD_SD4_DATA5__USDHC4_DATA5	0x17059
				MX6SX_PAD_SD4_DATA6__USDHC4_DATA6	0x17059
				MX6SX_PAD_SD4_DATA7__USDHC4_DATA7	0x17059
				MX6SX_PAD_SD4_RESET_B__USDHC4_RESET_B	0x17068
			>;
		};
		pinctrl_uart1: uart1grp {
			fsl,pins = <
				MX6SX_PAD_ENET2_CRS__UART1_TX		0x1b0b1
				MX6SX_PAD_ENET2_COL__UART1_RX		0x1b0b1
				MX6SX_PAD_ENET2_TX_CLK__UART1_CTS_B	0x1b0b1
				MX6SX_PAD_ENET2_RX_CLK__UART1_RTS_B	0x1b0b1
			>;
		};
	};
};

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-09-30 19:09 ` Fabio Estevam
  2025-09-30 19:11   ` Fabio Estevam
  2025-10-01 20:04   ` Sergey Organov
@ 2025-10-09 14:46   ` Sergey Organov
  2025-10-09 15:50     ` Fabio Estevam
  2 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-09 14:46 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm)

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Tue, Sep 30, 2025 at 12:49 PM Sergey Organov <sorganov@gmail.com> wrote:
>>
>> Hello,
>>
>> I'm looking for help with the following issue.
>>
>> I'm trying to upgrade kernel on my custom iMX6sx board from very old
>> 4.9.146 to resent 6.17. The board has eMMC connected to usdhc4, and
>> u-boot happily starts kernel from eMMC. The kernel boot sequence,
>> however, hangs waiting for root file-system as it doesn't see eMMC.
>
> I tried booting 6.17 on an imx6sx-sdb board and it booted
> successfully:

Now after further investigations of the issue I find that success
a bit surprising.

I've found that my problem is cured by a commit in

https://github.com/nxp-imx/linux-imx

that works-around an issue that looks like imx6sx generic problem, and
should probably cause troubles on imx6sx-sdb board as well, but doesn't?
The commit is:

commit 65cf3a49ab15cdbbede3c97fd6bba731a3cd366f
Author:     Anson Huang <b20788@freescale.com>
AuthorDate: Tue Aug 18 15:53:54 2015 +0800
Commit:     Octavian Purdila <octavian.purdila@nxp.com>
CommitDate: Thu Feb 23 14:21:42 2017 +0200

    MLK-11375-2 ARM: imx: disable cpuidle for imx6sx

    i.MX6SX CPUIdle with ARM core power down has issue
    and cause system hang during kernel boot up, disable
    it for now and will enable it when busfreq driver
    is ready.

Later (by the DAG, not by date) on the same imx_4.9.11_1.0.0_ga
branch at that repo, there is:

commit 816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3
Author:     Anson Huang <b20788@freescale.com>
AuthorDate: Mon Oct 20 16:16:20 2014 +0800
Commit:     Octavian Purdila <octavian.purdila@nxp.com>
CommitDate: Thu Feb 23 14:21:42 2017 +0200

    MLK-9708 arm: imx: add low power idle support for i.mx6sx
    
that effectively reverts the aforementioned commit while adding a lot of
other stuff. The resulting kernel also boots fine on my hardware.

Curiously enough, neither of these commits are there in the latest
branch lf-6.12.y there (and that kernel hangs on my board as well.)

Provided the latter commit is indeed the right fix for imx6sx support in
the kernel, what's the procedure to get it to the mainstream Linux
kernel?

Thanks,
-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 14:46   ` Sergey Organov
@ 2025-10-09 15:50     ` Fabio Estevam
  2025-10-09 16:29       ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-09 15:50 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Sergey,

On Thu, Oct 9, 2025 at 11:46 AM Sergey Organov <sorganov@gmail.com> wrote:

> > I tried booting 6.17 on an imx6sx-sdb board and it booted
> > successfully:
>
> Now after further investigations of the issue I find that success
> a bit surprising.
>
> I've found that my problem is cured by a commit in
>
> https://github.com/nxp-imx/linux-imx
>
> that works-around an issue that looks like imx6sx generic problem, and
> should probably cause troubles on imx6sx-sdb board as well, but doesn't?
> The commit is:
>
> commit 65cf3a49ab15cdbbede3c97fd6bba731a3cd366f
> Author:     Anson Huang <b20788@freescale.com>
> AuthorDate: Tue Aug 18 15:53:54 2015 +0800
> Commit:     Octavian Purdila <octavian.purdila@nxp.com>
> CommitDate: Thu Feb 23 14:21:42 2017 +0200
>
>     MLK-11375-2 ARM: imx: disable cpuidle for imx6sx
>
>     i.MX6SX CPUIdle with ARM core power down has issue
>     and cause system hang during kernel boot up, disable
>     it for now and will enable it when busfreq driver
>     is ready.
>
> Later (by the DAG, not by date) on the same imx_4.9.11_1.0.0_ga
> branch at that repo, there is:
>
> commit 816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3
> Author:     Anson Huang <b20788@freescale.com>
> AuthorDate: Mon Oct 20 16:16:20 2014 +0800
> Commit:     Octavian Purdila <octavian.purdila@nxp.com>
> CommitDate: Thu Feb 23 14:21:42 2017 +0200
>
>     MLK-9708 arm: imx: add low power idle support for i.mx6sx
>
> that effectively reverts the aforementioned commit while adding a lot of
> other stuff. The resulting kernel also boots fine on my hardware.
>
> Curiously enough, neither of these commits are there in the latest
> branch lf-6.12.y there (and that kernel hangs on my board as well.)
>
> Provided the latter commit is indeed the right fix for imx6sx support in
> the kernel, what's the procedure to get it to the mainstream Linux
> kernel?

It seems that your observation matches what Angelo (added on Cc)
reported a long time ago:

https://community.nxp.com/t5/i-MX-Processors/imx6sx-kernel-hangs-at-rootfs-mount/td-p/964920

I'd like to know if the bootloader version plays a role in the
different behavior that we see on the imx6sx-sdb versus your board.

I used U-Boot 2024.07 on my imx6sx-sdb. Which version did you use? Is
it based on an old NXP U-Boot tree?

Does using a recent bootloader make the hang disappear?

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 15:50     ` Fabio Estevam
@ 2025-10-09 16:29       ` Sergey Organov
  2025-10-09 17:26         ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-09 16:29 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Thu, Oct 9, 2025 at 11:46 AM Sergey Organov <sorganov@gmail.com> wrote:
>
>> > I tried booting 6.17 on an imx6sx-sdb board and it booted
>> > successfully:
>>
>> Now after further investigations of the issue I find that success
>> a bit surprising.
>>
>> I've found that my problem is cured by a commit in
>>
>> https://github.com/nxp-imx/linux-imx
>>
>> that works-around an issue that looks like imx6sx generic problem, and
>> should probably cause troubles on imx6sx-sdb board as well, but doesn't?
>> The commit is:
>>
>> commit 65cf3a49ab15cdbbede3c97fd6bba731a3cd366f
>> Author:     Anson Huang <b20788@freescale.com>
>> AuthorDate: Tue Aug 18 15:53:54 2015 +0800
>> Commit:     Octavian Purdila <octavian.purdila@nxp.com>
>> CommitDate: Thu Feb 23 14:21:42 2017 +0200
>>
>>     MLK-11375-2 ARM: imx: disable cpuidle for imx6sx
>>
>>     i.MX6SX CPUIdle with ARM core power down has issue
>>     and cause system hang during kernel boot up, disable
>>     it for now and will enable it when busfreq driver
>>     is ready.
>>
>> Later (by the DAG, not by date) on the same imx_4.9.11_1.0.0_ga
>> branch at that repo, there is:
>>
>> commit 816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3
>> Author:     Anson Huang <b20788@freescale.com>
>> AuthorDate: Mon Oct 20 16:16:20 2014 +0800
>> Commit:     Octavian Purdila <octavian.purdila@nxp.com>
>> CommitDate: Thu Feb 23 14:21:42 2017 +0200
>>
>>     MLK-9708 arm: imx: add low power idle support for i.mx6sx
>>
>> that effectively reverts the aforementioned commit while adding a lot of
>> other stuff. The resulting kernel also boots fine on my hardware.
>>
>> Curiously enough, neither of these commits are there in the latest
>> branch lf-6.12.y there (and that kernel hangs on my board as well.)
>>
>> Provided the latter commit is indeed the right fix for imx6sx support in
>> the kernel, what's the procedure to get it to the mainstream Linux
>> kernel?
>
> It seems that your observation matches what Angelo (added on Cc)
> reported a long time ago:
>
> https://community.nxp.com/t5/i-MX-Processors/imx6sx-kernel-hangs-at-rootfs-mount/td-p/964920
>
> I'd like to know if the bootloader version plays a role in the
> different behavior that we see on the imx6sx-sdb versus your board.
>
> I used U-Boot 2024.07 on my imx6sx-sdb. Which version did you use? Is
> it based on an old NXP U-Boot tree?
>
> Does using a recent bootloader make the hang disappear?

Uhh... U-Boot is very old and is heavily modified anyway. I figure our
local history starts at:

rel_imx_4.1.33_7ulp_beta
commit 43bff39513ae89c476751caff427b9855af78f7e
Author: Ye Li <ye.li@nxp.com>
Date:   Fri Apr 14 13:44:48 2017 +0800

  MLK-14693 mx7ulp: Change PLL rate calculation to avoid div 0

that looks like NXP tree to me indeed, likely taken once upon a time
from:

https://gitlab.com/jcgit/uboot-imx.git

that was a mirror of original NXP repository 

git://git.freescale.com/imx/uboot-imx.git

That said, I wanted to get to recent kernel using working u-boot, then
maybe try to upgrade u-boot as well, but maybe even not. No reason as of
yet, especially as it's difficult for me to recover from a brick state
should boot-loader fail.

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 16:29       ` Sergey Organov
@ 2025-10-09 17:26         ` Fabio Estevam
  2025-10-09 21:51           ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-09 17:26 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

On Thu, Oct 9, 2025 at 1:30 PM Sergey Organov <sorganov@gmail.com> wrote:

> Uhh... U-Boot is very old and is heavily modified anyway. I figure our
> local history starts at:
>
> rel_imx_4.1.33_7ulp_beta

I attempted to build a U-Boot from this branch for the imx6sx-sdb
board, but it failed to compile with recent compilers.

If you send me a U-Boot binary for imx6sx-sdb from this branch
off-list, I can give it a try here.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 17:26         ` Fabio Estevam
@ 2025-10-09 21:51           ` Sergey Organov
  2025-10-09 22:40             ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-09 21:51 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Fabio Estevam <festevam@gmail.com> writes:

> On Thu, Oct 9, 2025 at 1:30 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> Uhh... U-Boot is very old and is heavily modified anyway. I figure our
>> local history starts at:
>>
>> rel_imx_4.1.33_7ulp_beta
>
> I attempted to build a U-Boot from this branch for the imx6sx-sdb
> board, but it failed to compile with recent compilers.
>
> If you send me a U-Boot binary for imx6sx-sdb from this branch
> off-list, I can give it a try here.

I fail to figure how to build it for imx6sx-sdb:

$ git branch -a --contains rel_imx_4.1.33_7ulp_beta
  remotes/vendor/imx_v2016.03_4.1.33_7ulp_beta
$ git co imx_v2016.03_4.1.33_7ulp_beta
branch 'imx_v2016.03_4.1.33_7ulp_beta' set up to track 'vendor/imx_v2016.03_4.1.33_7ulp_beta'.
Switched to a new branch 'imx_v2016.03_4.1.33_7ulp_beta'
$ cd configs
$ ls *imx*
imx31_phycore_defconfig      picosom-imx6ul-qspi_defconfig
imx31_phycore_eet_defconfig  picosom-imx6ul_defconfig
$

What defconfig did you use?

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 21:51           ` Sergey Organov
@ 2025-10-09 22:40             ` Fabio Estevam
  2025-10-10 14:59               ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-09 22:40 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

On Thu, Oct 9, 2025 at 6:51 PM Sergey Organov <sorganov@gmail.com> wrote:

> What defconfig did you use?

mx6sxsabresd_defconfig

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-09 22:40             ` Fabio Estevam
@ 2025-10-10 14:59               ` Sergey Organov
  2025-10-10 15:14                 ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-10 14:59 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,


Fabio Estevam <festevam@gmail.com> writes:

> On Thu, Oct 9, 2025 at 6:51 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> What defconfig did you use?
>
> mx6sxsabresd_defconfig

OK, sent resulting u-boot image off-list.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-10 14:59               ` Sergey Organov
@ 2025-10-10 15:14                 ` Fabio Estevam
  2025-10-11 20:57                   ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Fabio Estevam @ 2025-10-10 15:14 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Sergey,

On Fri, Oct 10, 2025 at 11:59 AM Sergey Organov <sorganov@gmail.com> wrote:

> OK, sent resulting u-boot image off-list.

It still boots for me. Please see the log below. I tested several boots.

My board is a very old one, with i.MX6SX version 1.0.

Looking at the commit you mentioned:

https://github.com/nxp-imx/linux-imx/commit/816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3

It does add an 'if (imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) '
check, so maybe this cpuidle fix is silicon version dependent?

Such a commit is huge. Could you add only the code under the above
'if' logic to see if it works in mainline?

U-Boot 2016.03-00348-g43bff39513 (Oct 10 2025 - 17:53:30 +0300)

CPU:   Freescale i.MX6SX rev1.0 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 39C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C:   ready
DRAM:  1 GiB
PMIC:  PFUZE100 ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment

Display: Hannstar-XGA (1024x768)
Video: 1024x768x18
In:    serial
Out:   serial
Err:   serial
switch to partitions #0, OK
mmc2 is current device
Net:   FEC [PRIME]
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2 is current device
switch to partitions #0, OK
mmc2 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
9815600 bytes read in 472 ms (19.8 MiB/s)
Booting from mmc ...
reading imx6sx-sdb.dtb
40665 bytes read in 17 ms (2.3 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x95c630 ]
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 83000000, end 8300ced8

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.17.0 (fabio@fabio-Precision-3551)
(arm-linux-gnueabihf-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld
(GNU Binutils for Ubuntu) 2.38) #300 SMP Tue Sep 30 16:03:46 -03 2025
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
instruction cache
[    0.000000] OF: fdt: Machine model: Freescale i.MX6 SoloX SDB RevB Board
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 64 MiB at 0xbc000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x00000000afffffff]
[    0.000000]   HighMem  [mem 0x00000000b0000000-0x00000000bfffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff]
[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory
node in the DT
[    0.000000] percpu: Embedded 14 pages/cpu s27212 r8192 d21940 u57344
[    0.000000] Kernel command line: console=ttymxc0,115200
root=/dev/mmcblk3p2 rootwait rw
[    0.000000] printk: log buffer data + meta data: 262144 + 819200 =
1081344 bytes
[    0.000000] Dentry cache hash table entries: 131072 (order: 7,
524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144
bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 262144
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] SLUB: HWalign=32, 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] RCU Tasks Trace: Setting shift to 0 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=1.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76430001
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Switching to timer-based delay loop, resolution 333ns
[    0.000001] sched_clock: 32 bits at 3000kHz, resolution 333ns,
wraps every 715827882841ns
[    0.000019] clocksource: mxc_timer1: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 637086815595 ns
[    0.001477] Console: colour dummy device 80x30
[    0.001528] Calibrating delay loop (skipped), value calculated
using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[    0.001542] CPU: Testing write buffer coherency: ok
[    0.001599] CPU0: Spectre v2: using BPIALL workaround
[    0.001608] pid_max: default: 32768 minimum: 301
[    0.001774] Mount-cache hash table entries: 2048 (order: 1, 8192
bytes, linear)
[    0.001795] Mountpoint-cache hash table entries: 2048 (order: 1,
8192 bytes, linear)
[    0.002749] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.004362] Setting up static identity map for 0x80100000 - 0x80100078
[    0.004684] rcu: Hierarchical SRCU implementation.
[    0.004693] rcu: Max phase no-delay instances is 1000.
[    0.005615] smp: Bringing up secondary CPUs ...
[    0.005646] smp: Brought up 1 node, 1 CPU
[    0.005656] SMP: Total of 1 processors activated (6.00 BogoMIPS).
[    0.005665] CPU: All CPU(s) started in SVC mode.
[    0.005782] Memory: 949792K/1048576K available (14336K kernel code,
1286K rwdata, 4344K rodata, 1024K init, 391K bss, 31376K reserved,
65536K cma-reserved, 196608K highmem)
[    0.006277] devtmpfs: initialized
[    0.014074] VFP support v0.3: implementor 41 architecture 3 part 30
variant 9 rev 4
[    0.014549] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.014582] posixtimers hash table entries: 512 (order: 0, 4096
bytes, linear)
[    0.014614] futex hash table entries: 256 (16384 bytes on 1 NUMA
nodes, total 16 KiB, linear).
[    0.016406] pinctrl core: initialized pinctrl subsystem
[    0.017989] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.024565] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.025768] thermal_sys: Registered thermal governor 'step_wise'
[    0.025862] cpuidle: using governor menu
[    0.032358] /soc/bus@2000000/clock-controller@20c4000: Fixed
dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.032499] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.034753] /soc/bus@2000000/clock-controller@20c4000: Fixed
dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
[    0.034888] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.042579] mxs_phy 20c9000.usbphy: supply phy-3p0 not found, using
dummy regulator
[    0.043218] mxs_phy 20ca000.usbphy: supply phy-3p0 not found, using
dummy regulator
[    0.044533] /soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s)
with /soc/bus@2000000/clock-controller@20c4000
[    0.056050] /soc/bus@2200000/spba-bus@2240000/lcdif@2220000: Fixed
dependency cycle(s) with /panel
[    0.056162] /panel: Fixed dependency cycle(s) with
/soc/bus@2200000/spba-bus@2240000/lcdif@2220000
[    0.057453] No ATAGs?
[    0.057523] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1
watchpoint registers.
[    0.057537] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.059736] imx6sx-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[    0.065156] kprobes: kprobe jump-optimization is enabled. All
kprobes are optimized if possible.
[    0.066895] gpio gpiochip0: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.069262] gpio gpiochip1: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.071608] gpio gpiochip2: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.073754] gpio gpiochip3: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.075952] gpio gpiochip4: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.078113] gpio gpiochip5: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.080306] gpio gpiochip6: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.090379] SCSI subsystem initialized
[    0.091281] usbcore: registered new interface driver usbfs
[    0.091334] usbcore: registered new interface driver hub
[    0.091387] usbcore: registered new device driver usb
[    0.091575] usb_phy_generic usbphynop1: dummy supplies not allowed
for exclusive requests (id=vbus)
[    0.093585] i2c i2c-0: IMX I2C adapter registered
[    0.094270] i2c i2c-2: IMX I2C adapter registered
[    0.095330] i2c i2c-3: IMX I2C adapter registered
[    0.096127] mc: Linux media interface: v0.10
[    0.096213] videodev: Linux video capture interface: v2.00
[    0.096348] pps_core: LinuxPPS API ver. 1 registered
[    0.096356] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti@linux.it>
[    0.096378] PTP clock support registered
[    0.097142] Advanced Linux Sound Architecture Driver Initialized.
[    0.098606] Bluetooth: Core ver 2.22
[    0.098680] NET: Registered PF_BLUETOOTH protocol family
[    0.098688] Bluetooth: HCI device and connection manager initialized
[    0.098704] Bluetooth: HCI socket layer initialized
[    0.098713] Bluetooth: L2CAP socket layer initialized
[    0.098740] Bluetooth: SCO socket layer initialized
[    0.099388] vgaarb: loaded
[    0.099866] clocksource: Switched to clocksource mxc_timer1
[    0.100243] VFS: Disk quotas dquot_6.6.0
[    0.100297] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.113300] NET: Registered PF_INET protocol family
[    0.113594] IP idents hash table entries: 16384 (order: 5, 131072
bytes, linear)
[    0.115446] tcp_listen_portaddr_hash hash table entries: 512
(order: 0, 4096 bytes, linear)
[    0.115483] Table-perturb hash table entries: 65536 (order: 6,
262144 bytes, linear)
[    0.115791] TCP established hash table entries: 8192 (order: 3,
32768 bytes, linear)
[    0.115882] TCP bind hash table entries: 8192 (order: 5, 131072
bytes, linear)
[    0.116123] TCP: Hash tables configured (established 8192 bind 8192)
[    0.116282] UDP hash table entries: 512 (order: 2, 28672 bytes, linear)
[    0.116361] UDP-Lite hash table entries: 512 (order: 2, 28672 bytes, linear)
[    0.116607] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.117304] RPC: Registered named UNIX socket transport module.
[    0.117318] RPC: Registered udp transport module.
[    0.117323] RPC: Registered tcp transport module.
[    0.117327] RPC: Registered tcp-with-tls transport module.
[    0.117331] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.118908] PCI: CLS 0 bytes, default 64
[    0.120731] Initialise system trusted keyrings
[    0.121048] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.121934] NFS: Registering the id_resolver key type
[    0.121994] Key type id_resolver registered
[    0.122001] Key type id_legacy registered
[    0.122033] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.122041] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver
Registering...
[    0.122111] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.122514] fuse: init (API version 7.44)
[    0.325506] Key type asymmetric registered
[    0.325520] Asymmetric key parser 'x509' registered
[    0.325595] io scheduler mq-deadline registered
[    0.325605] io scheduler kyber registered
[    0.325639] io scheduler bfq registered
[    0.340443] mxs-dma 1804000.dma-controller: initialized
[    0.349829] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 266,
base_baud = 1500000) is a IMX
[    0.350414] pfuze100-regulator 0-0008: Full layer: 2, Metal layer: 1
[    0.350482] printk: console [ttymxc0] enabled
[    0.387965] pfuze100-regulator 0-0008: FAB: 0, FIN: 0
[    0.387981] pfuze100-regulator 0-0008: pfuze200 found.
[    1.183507] 21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 267,
base_baud = 1500000) is a IMX
[    1.337218] [drm] Initialized mxsfb-drm 1.0.0 for 2220000.lcdif on minor 0
[    1.487388] Console: switching to colour frame buffer device 100x30
[    1.503746] mxsfb 2220000.lcdif: [drm] fb0: mxsfb-drmdrmfb frame
buffer device
[    1.525732] brd: module loaded
[    1.536673] loop: module loaded
[    1.545484] spi-nor spi5.0: supply vcc not found, using dummy regulator
[    1.552759] spi-nor spi5.0: found s25fl128s1, expected n25q256a
[    1.561432] spi-nor spi5.2: supply vcc not found, using dummy regulator
[    1.568525] spi-nor spi5.2: found s25fl128s1, expected n25q256a
[    1.579368] CAN device driver interface
[    1.585042] flexcan 2090000.can: registering netdev failed
[    1.590713] flexcan 2090000.can: probe with driver flexcan failed
with error -110
[    1.600009] flexcan 2094000.can: registering netdev failed
[    1.605628] flexcan 2094000.can: probe with driver flexcan failed
with error -110
[    1.629432] fec 2188000.ethernet eth0: registered PHC device 0
[    1.639049] fec 21b4000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[    1.639125] fec 21b4000.ethernet: Using random MAC address: ba:03:d1:6c:c7:04
[    1.775691] fec 21b4000.ethernet eth1: registered PHC device 1
[    1.782537] usbcore: registered new device driver r8152-cfgselector
[    1.788982] usbcore: registered new interface driver r8152
[    1.794672] usbcore: registered new interface driver lan78xx
[    1.800571] usbcore: registered new interface driver asix
[    1.806100] usbcore: registered new interface driver ax88179_178a
[    1.812353] usbcore: registered new interface driver cdc_ether
[    1.818311] usbcore: registered new interface driver smsc95xx
[    1.824191] usbcore: registered new interface driver net1080
[    1.829992] usbcore: registered new interface driver cdc_subset
[    1.836040] usbcore: registered new interface driver zaurus
[    1.841746] usbcore: registered new interface driver MOSCHIP
usb-ethernet driver
[    1.849245] usbcore: registered new interface driver cdc_ncm
[    1.855064] usbcore: registered new interface driver r8153_ecm
[    1.861109] usbcore: registered new interface driver usb-storage
[    1.867603] usbcore: registered new device driver onboard-usb-dev
[    1.877367] imx_usb 2184000.usb: No over current polarity defined
[    1.890450] imx_usb 2184200.usb: No over current polarity defined
[    1.900917] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    1.905904] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[    1.929895] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    1.935605] usb usb1: New USB device found, idVendor=1d6b,
idProduct=0002, bcdDevice= 6.17
[    1.935639] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    1.935654] usb usb1: Product: EHCI Host Controller
[    1.935665] usb usb1: Manufacturer: Linux 6.17.0 ehci_hcd
[    1.935674] usb usb1: SerialNumber: ci_hdrc.1
[    1.966848] hub 1-0:1.0: USB hub found
[    1.970849] hub 1-0:1.0: 1 port detected
[    1.977715] input: 20cc000.snvs:snvs-powerkey as
/devices/platform/soc/2000000.bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
[    1.994792] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
[    2.001658] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock
to 1970-01-01T00:00:00 UTC (0)
[    2.010988] i2c_dev: i2c /dev entries driver
[    2.022001] Bluetooth: HCI UART driver ver 2.3
[    2.022058] Bluetooth: HCI UART protocol H4 registered
[    2.031844] Bluetooth: HCI UART protocol LL registered
[    2.037232] Bluetooth: HCI UART protocol Broadcom registered
[    2.043814] sdhci: Secure Digital Host Controller Interface driver
[    2.043827] sdhci: Copyright(c) Pierre Ossman
[    2.043833] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.064906] sdhci-esdhc-imx 2198000.mmc: Got CD GPIO
[    2.071475] caam 2100000.crypto: Entropy delay = 12000
[    2.077833] sdhci-esdhc-imx 219c000.mmc: Got CD GPIO
[    2.118166] caam 2100000.crypto: Instantiated RNG4 SH0
[    2.164774] caam 2100000.crypto: Instantiated RNG4 SH1
[    2.164929] sdhci-esdhc-imx 2198000.mmc: Got WP GPIO
[    2.165540] sdhci-esdhc-imx 219c000.mmc: Got WP GPIO
[    2.181212] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[    2.196638] caam 2100000.crypto: device ID = 0x0a16010000000200 (Era 4)
[    2.196687] caam 2100000.crypto: job rings = 2, qi = 0
[    2.214056] caam algorithms registered in /proc/crypto
[    2.219700] caam 2100000.crypto: registering rng-caam
[    2.225373] caam 2100000.crypto: rng crypto API alg registered prng-caam
[    2.232978] mmc3: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
[    2.240337] mmc2: SDHCI controller on 2198000.mmc [2198000.mmc] using ADMA
[    2.250853] usbcore: registered new interface driver usbhid
[    2.250893] usbhid: USB HID core driver
[    2.263780] hw perfevents: enabled with armv7_cortex_a9 PMU driver,
7 (8000003f) counters available
[    2.283526] wm8962 3-001a: customer id 0 revision D
[    2.311610] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.318944] random: crng init done
[    2.322888] mmc3: new high speed SDHC card at address aaaa
[    2.329640] mmcblk3: mmc3:aaaa SE32G 29.7 GiB
[    2.338439]  mmcblk3: p1 p2
[    2.343718] NET: Registered PF_INET6 protocol family
[    2.350820] Segment Routing with IPv6
[    2.354736] In-situ OAM (IOAM) with IPv6
[    2.358922] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.366139] NET: Registered PF_PACKET protocol family
[    2.366184] can: controller area network core
[    2.375991] NET: Registered PF_CAN protocol family
[    2.376047] can: raw protocol
[    2.383943] can: broadcast manager protocol
[    2.388235] can: netlink gateway - max_hops=1
[    2.393006] Key type dns_resolver registered
[    2.398331] Registering SWP/SWPB emulation handler
[    2.415530] Loading compiled-in X.509 certificates
[    2.453192] imx6q-pcie 8ffc000.pcie: host bridge /soc/pcie@8ffc000 ranges:
[    2.453291] imx6q-pcie 8ffc000.pcie:       IO
0x0008f80000..0x0008f8ffff -> 0x0000000000
[    2.453331] imx6q-pcie 8ffc000.pcie:      MEM
0x0008000000..0x0008efffff -> 0x0008000000
[    2.453449] imx6q-pcie 8ffc000.pcie: config reg[1] 0x08f00000 ==
cpu 0x08f00000
[    2.453449] ; no fixup was ever needed for this devicetree
[    2.494497] mmc1: Failed to initialize a non-removable card
[    2.494997] etnaviv etnaviv: bound 1800000.gpu (ops 0xc0fcdba8)
[    2.507464] etnaviv-gpu 1800000.gpu: model: GC400, revision: 4645
[    2.514044] etnaviv-gpu 1800000.gpu: Need to move linear window on
MC1.0, disabling TS
[    2.522615] [drm] Initialized etnaviv 1.4.0 for etnaviv on minor 1
[    2.533387] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.544977] imx_thermal 20c8000.anatop:tempmon: Extended Commercial
CPU temperature grade - max:105C critical:100C passive:95C
[    2.561969] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.573622] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.583157] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    2.593285] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    2.602850] cfg80211: Loading compiled-in X.509 certificates for
regulatory database
[    2.613612] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    2.621522] Loaded X.509 cert 'wens:
61c038651aabdcf94bd0ac7ff06c7248db18c600'
[    2.628814] clk: Disabling unused clocks
[    2.632933] faux_driver regulatory: Direct firmware load for
regulatory.db failed with error -2
[    2.641806] cfg80211: failed to load regulatory.db
[    2.646897] PM: genpd: Disabling unused power domains
[    2.652154] ALSA device list:
[    2.655186]   #0: ASRC-M2M
[    2.658111] check access for rdinit=/init failed: -2, ignoring
[    2.691677] imx6q-pcie 8ffc000.pcie: iATU: unroll F, 4 ob, 4 ib,
align 64K, limit 4G
[    2.699842] imx6q-pcie 8ffc000.pcie: Link: Only Gen1 is enabled
[    3.690100] imx6q-pcie 8ffc000.pcie: Phy link never came up
[    3.697182] imx6q-pcie 8ffc000.pcie: PCI host bridge to bus 0000:00
[    3.703916] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.709667] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    3.716597] pci_bus 0000:00: root bus resource [mem 0x08000000-0x08efffff]
[    3.724048] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
PCIe Root Port
[    3.724254] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x000fffff]
[    3.724325] pci 0000:00:00.0: ROM [mem 0x00000000-0x0000ffff pref]
[    3.724379] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.724438] pci 0000:00:00.0:   bridge window [io  0x0000-0x0fff]
[    3.724488] pci 0000:00:00.0:   bridge window [mem 0x00000000-0x000fffff]
[    3.724541] pci 0000:00:00.0:   bridge window [mem
0x00000000-0x000fffff pref]
[    3.770719] pci 0000:00:00.0: supports D1
[    3.770742] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    3.783481] PCI: bus0: Fast back to back transfers disabled
[    3.789368] PCI: bus1: Fast back to back transfers enabled
[    3.795042] pci 0000:00:00.0: BAR 0 [mem 0x08000000-0x080fffff]: assigned
[    3.795081] pci 0000:00:00.0: ROM [mem 0x08100000-0x0810ffff pref]: assigned
[    3.795098] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.795115] pci_bus 0000:00: resource 4 [io  0x0000-0xffff]
[    3.795126] pci_bus 0000:00: resource 5 [mem 0x08000000-0x08efffff]
[    3.829022] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[    3.906629] EXT4-fs (mmcblk3p2): recovery complete
[    3.913008] EXT4-fs (mmcblk3p2): mounted filesystem
d5a64ac5-7eae-43d4-a70e-6936f55c77f6 r/w with ordered data mode. Quota
mode: none.
[    3.925333] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.933683] devtmpfs: mounted
[    3.937597] Freeing unused kernel image (initmem) memory: 1024K
[    3.943900] Run /sbin/init as init process
[    4.109987] EXT4-fs (mmcblk3p2): re-mounted
d5a64ac5-7eae-43d4-a70e-6936f55c77f6.
Seeding 256 bits and crediting
Saving 256 bits of creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Populating /dev using udev: [    4.356949] udevd[101]: starting version 3.2.14
[    4.413840] udevd[102]: starting eudev-3.2.14
done
Starting network: OK
Starting crond: OK

Welcome to Buildroot
buildroot login: root
# uname -r
6.17.0

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-10 15:14                 ` Fabio Estevam
@ 2025-10-11 20:57                   ` Sergey Organov
  2025-10-14  0:45                     ` Fabio Estevam
  0 siblings, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-11 20:57 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Fri, Oct 10, 2025 at 11:59 AM Sergey Organov <sorganov@gmail.com> wrote:
>
>> OK, sent resulting u-boot image off-list.
>
> It still boots for me. Please see the log below. I tested several boots.
>
> My board is a very old one, with i.MX6SX version 1.0.
>
> Looking at the commit you mentioned:
>
> https://github.com/nxp-imx/linux-imx/commit/816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3
>
> It does add an 'if (imx_get_soc_revision() >= IMX_CHIP_REVISION_1_2) '
> check, so maybe this cpuidle fix is silicon version dependent?
>
> Such a commit is huge. Could you add only the code under the above
> 'if' logic to see if it works in mainline?

I'm not familiar with the code and can't figure what exactly I'm
expected to check. Could you please prepare a patch, and I'll be happy
to apply and check it.

> CPU:   Freescale i.MX6SX rev1.0 996 MHz (running at 792 MHz)
> CPU:   Extended Commercial temperature grade (-20C to 105C) at 39C

I have:

CPU:   Freescale i.MX6SX rev1.3 at 792MHz 
CPU:   Automotive temperature grade (-40C to 125C) at 55C

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-11 20:57                   ` Sergey Organov
@ 2025-10-14  0:45                     ` Fabio Estevam
  2025-10-14 12:04                       ` Sergey Organov
  2025-10-20 21:30                       ` Sergey Organov
  0 siblings, 2 replies; 29+ messages in thread
From: Fabio Estevam @ 2025-10-14  0:45 UTC (permalink / raw)
  To: Sergey Organov
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

[-- Attachment #1: Type: text/plain, Size: 351 bytes --]

Hi Sergey,

On Sat, Oct 11, 2025 at 5:57 PM Sergey Organov <sorganov@gmail.com> wrote:

> I'm not familiar with the code and can't figure what exactly I'm
> expected to check. Could you please prepare a patch, and I'll be happy
> to apply and check it.

Here is a patch you can try.

It's not a formal patch yet, as it needs to be split.

[-- Attachment #2: 0001-ARM-imx6sx-Initialize-RC-OSC-for-TO1.2-to-fix-low-po.patch --]
[-- Type: text/x-patch, Size: 5831 bytes --]

From 79caf9d2b74491245a6fd21a863e0857fa8bc238 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <festevam@gmail.com>
Date: Mon, 13 Oct 2025 21:22:25 -0300
Subject: [PATCH] ARM: imx6sx: Initialize RC-OSC for TO1.2+ to fix low-power
 idle hang

i.MX6SX silicon revision TO1.2 and later power off the 24 MHz XTAL
during low-power idle and switch to the internal RC oscillator.
Without proper RC-OSC initialization, this transition can hang early
in boot or resume from idle.

Boards based on TO1.0/TO1.1 do not exhibit this behavior since the
XTAL remains powered, so the initialization is only needed for TO1.2+.

This change conditionally enables and tunes the RC-OSC before cpuidle
setup for TO1.2 and newer silicon revisions.

Based on the following commit from the NXP vendor kernel:

https://github.com/nxp-imx/linux-imx/commit/816978f83b1d8dd6ce3bd5dd62223dbfdf74bdd3

Reported-by: Sergey Organov <sorganov@gmail.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 arch/arm/mach-imx/cpuidle-imx6sx.c | 80 +++++++++++++++++++++++++++++-
 drivers/clk/imx/clk-imx6sx.c       |  2 +
 2 files changed, 80 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c
index 83c5cbd3748e..e694a01b83d4 100644
--- a/arch/arm/mach-imx/cpuidle-imx6sx.c
+++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
@@ -5,7 +5,10 @@
 
 #include <linux/cpuidle.h>
 #include <linux/cpu_pm.h>
+#include <linux/delay.h>
 #include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
 #include <asm/cacheflush.h>
 #include <asm/cpuidle.h>
 #include <asm/suspend.h>
@@ -87,8 +90,8 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
 			 * and some margin for SW execution, here set it
 			 * to 300us.
 			 */
-			.exit_latency = 300,
-			.target_residency = 500,
+			.exit_latency = 800,
+			.target_residency = 1000,
 			.flags = CPUIDLE_FLAG_TIMER_STOP |
 				 CPUIDLE_FLAG_RCU_IDLE,
 			.enter = imx6sx_enter_wait,
@@ -100,6 +103,78 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
 	.safe_state_index = 0,
 };
 
+#define PMU_LOW_PWR_CTRL				0x270
+#define XTALOSC24M_CONFIG0				0x2a0
+#define XTALOSC24M_CONFIG1				0x2b0
+#define XTALOSC24M_CONFIG2				0x2c0
+#define XTALOSC24M_CONFIG0_RC_PROG_CUR_SHIFT		24
+#define XTALOSC24M_CONFIG0_HYST_MINUS_MASK		0xf
+#define XTALOSC24M_CONFIG0_HYST_MINUS_SHIFT		16
+#define XTALOSC24M_CONFIG0_HYST_PLUS_MASK		0xf
+#define XTALOSC24M_CONFIG0_HYST_PLUS_SHIFT		12
+#define XTALOSC24M_CONFIG0_RC_PROG_SHIFT		4
+#define XTALOSC24M_CONFIG0_ENABLE_SHIFT			1
+#define XTALOSC24M_CONFIG0_START_SHIFT			0
+#define XTALOSC24M_CONFIG1_COUNT_RC_CUR_SHIFT		20
+#define XTALOSC24M_CONFIG1_COUNT_RC_TRG_SHIFT		0
+#define XTALOSC24M_CONFIG2_COUNT_1M_TRG_MASK		0xfff
+#define XTALOSC24M_CONFIG2_COUNT_1M_TRG_SHIFT		0
+
+static void __init imx6sx_init_rcosc(void)
+{
+	void __iomem *anatop_base;
+	struct device_node *np;
+	u32 val;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop");
+	anatop_base = of_iomap(np, 0);
+	WARN_ON(!anatop_base);
+
+	if (imx_get_soc_revision() < IMX_CHIP_REVISION_1_2)
+		return; /* Not needed for TO1.0/TO1.1 */
+
+	pr_info("i.MX6SX: Enabling and tuning RC-OSC for TO1.2+\n");
+
+	/* Enable RC-OSC power */
+	val = readl_relaxed(anatop_base + PMU_LOW_PWR_CTRL);
+	val |= 0x1;
+	writel_relaxed(val, anatop_base + PMU_LOW_PWR_CTRL);
+
+	/* Configure RC-OSC frequency tuning */
+	writel_relaxed(0x4 << XTALOSC24M_CONFIG0_RC_PROG_CUR_SHIFT |
+		       0xa7 << XTALOSC24M_CONFIG0_RC_PROG_SHIFT |
+		       0x1 << XTALOSC24M_CONFIG0_ENABLE_SHIFT |
+		       0x1 << XTALOSC24M_CONFIG0_START_SHIFT,
+		       anatop_base + XTALOSC24M_CONFIG0);
+
+	/* count_rc_cur = 0x40, count_rc_trg = 0x2dc */
+	writel_relaxed(0x40 << XTALOSC24M_CONFIG1_COUNT_RC_CUR_SHIFT |
+		       0x2dc << XTALOSC24M_CONFIG1_COUNT_RC_TRG_SHIFT,
+		       anatop_base + XTALOSC24M_CONFIG1);
+
+	/* wait 4ms for RC-OSC to stabilize */
+	msleep(4);
+
+	/* Add hysteresis: hyst_plus=3, hyst_minus=3 */
+	val = readl_relaxed(anatop_base + XTALOSC24M_CONFIG0);
+	val &= ~((XTALOSC24M_CONFIG0_HYST_MINUS_MASK << XTALOSC24M_CONFIG0_HYST_MINUS_SHIFT) |
+		(XTALOSC24M_CONFIG0_HYST_PLUS_MASK <<
+		XTALOSC24M_CONFIG0_HYST_PLUS_SHIFT));
+	val |= (0x3 << XTALOSC24M_CONFIG0_HYST_MINUS_SHIFT) |
+	       (0x3 << XTALOSC24M_CONFIG0_HYST_PLUS_SHIFT);
+	writel_relaxed(val, anatop_base  + XTALOSC24M_CONFIG0);
+
+	/* Set count_1m_trg = 0x2d7 */
+	val = readl_relaxed(anatop_base  + XTALOSC24M_CONFIG2);
+	val &= ~(XTALOSC24M_CONFIG2_COUNT_1M_TRG_MASK << XTALOSC24M_CONFIG2_COUNT_1M_TRG_SHIFT);
+	val |= 0x2d7 << XTALOSC24M_CONFIG2_COUNT_1M_TRG_SHIFT;
+	writel_relaxed(val, anatop_base  + XTALOSC24M_CONFIG2);
+
+	/* Hardware requires writing CONFIG1 after reading it */
+	val = readl_relaxed(anatop_base + XTALOSC24M_CONFIG1);
+	writel_relaxed(val, anatop_base + XTALOSC24M_CONFIG1);
+}
+
 int __init imx6sx_cpuidle_init(void)
 {
 	imx6_set_int_mem_clk_lpm(true);
@@ -113,6 +188,7 @@ int __init imx6sx_cpuidle_init(void)
 	 */
 	imx_gpc_set_arm_power_up_timing(cpu_is_imx6sx() ? 0xf : 0x2, 1);
 	imx_gpc_set_arm_power_down_timing(1, 1);
+	imx6sx_init_rcosc();
 
 	return cpuidle_register(&imx6sx_cpuidle_driver, NULL);
 }
diff --git a/drivers/clk/imx/clk-imx6sx.c b/drivers/clk/imx/clk-imx6sx.c
index 69f8f6f9ca49..ff9bcbf30150 100644
--- a/drivers/clk/imx/clk-imx6sx.c
+++ b/drivers/clk/imx/clk-imx6sx.c
@@ -510,6 +510,8 @@ static void __init imx6sx_clocks_init(struct device_node *ccm_node)
 			       hws[IMX6SX_CLK_LCDIF1_PODF]->clk);
 	}
 
+	clk_set_parent(hws[IMX6SX_CLK_PERCLK_SEL]->clk, hws[IMX6SX_CLK_OSC]->clk);
+
 	/* Set the parent clks of PCIe lvds1 and pcie_axi to be pcie ref, axi */
 	if (clk_set_parent(hws[IMX6SX_CLK_LVDS1_SEL]->clk, hws[IMX6SX_CLK_PCIE_REF_125M]->clk))
 		pr_err("Failed to set pcie bus parent clk.\n");
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-14  0:45                     ` Fabio Estevam
@ 2025-10-14 12:04                       ` Sergey Organov
  2025-10-20 21:30                       ` Sergey Organov
  1 sibling, 0 replies; 29+ messages in thread
From: Sergey Organov @ 2025-10-14 12:04 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Sat, Oct 11, 2025 at 5:57 PM Sergey Organov <sorganov@gmail.com> wrote:
>
>> I'm not familiar with the code and can't figure what exactly I'm
>> expected to check. Could you please prepare a patch, and I'll be happy
>> to apply and check it.
>
> Here is a patch you can try.
>
> It's not a formal patch yet, as it needs to be split.

No, this patch doesn't help. Still doesn't even after I added the
following (maybe overlooked) change from the original patch:

modified   arch/arm/mach-imx/mach-imx6sx.c                                                         
@@ -32,10 +32,10 @@ static void __init imx6sx_init_irq(void)                                       
                                                                                                   
 static void __init imx6sx_init_late(void)                                                         
 {                                                                                                 
-        imx6sx_cpuidle_init();                                                                    
-                                                                                                  
         if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ))                                                 
                 platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0);                    
+                                                                                                  
+        imx6sx_cpuidle_init();                                                                    
 }                                                                                                 


-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-14  0:45                     ` Fabio Estevam
  2025-10-14 12:04                       ` Sergey Organov
@ 2025-10-20 21:30                       ` Sergey Organov
  2025-10-27 14:39                         ` Sergey Organov
  1 sibling, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2025-10-20 21:30 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,

Fabio Estevam <festevam@gmail.com> writes:

> Hi Sergey,
>
> On Sat, Oct 11, 2025 at 5:57 PM Sergey Organov <sorganov@gmail.com>
> wrote:
>
>> I'm not familiar with the code and can't figure what exactly I'm
>> expected to check. Could you please prepare a patch, and I'll be
>> happy to apply and check it.
>
> Here is a patch you can try.
>
> It's not a formal patch yet, as it needs to be split.

As I've already reported, this patch unfortunately doesn't solve my
issue, but then things got even more "interesting".

Before I've said that latest kernel branch lf-6.12.y on
https://github.com/nxp-imx/linux-imx does not have the 816978f83b
commit, but yesterday I've found it does include similar change though
with different commit message and without any reference to the original
commit (that's why I missed it):

https://github.com/nxp-imx/linux-imx/commit/3f127cc4f5f0f1c8563390c4db7727fcb5735aa9

Now, this commit does *not* solve my problem either. I.e., lf-6.12.y
still hangs on my board. I even tried to cherry-pick the original
816978f83b on top of this, and all the conflicts I got look formal
rather than functional, leaving code unchanged after resolution, so this
commit is in fact almost perfect cherry-pick of the original 816978f83b
that did solve my problem on the imx_4.9.11_1.0.0_ga branch of that
repository.

Yet another thing I figured that it's unlikely powering problem, as both
3.3 and 1.8 are still there on eMMC when the board hangs. Clocks are
most probable suspect then.

I'm going to dig into imx_4.9.11_1.0.0_ga branch again more carefully to
try to figure what's going on, and what actually either fixes or
work-arounds the problem at hand.

-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: ARM iMX6sx board fails to boot with kernel 6.17
  2025-10-20 21:30                       ` Sergey Organov
@ 2025-10-27 14:39                         ` Sergey Organov
  0 siblings, 0 replies; 29+ messages in thread
From: Sergey Organov @ 2025-10-27 14:39 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Russell King, Ulf Hansson, Shawn Guo,
	Rob Herring (Arm), Angelo Dureghello

Hi Fabio,

Sergey Organov <sorganov@gmail.com> writes:

> Hi Fabio,
>
> Fabio Estevam <festevam@gmail.com> writes:
>
>> Hi Sergey,
>>
>> On Sat, Oct 11, 2025 at 5:57 PM Sergey Organov <sorganov@gmail.com>
>> wrote:
>>
>>> I'm not familiar with the code and can't figure what exactly I'm
>>> expected to check. Could you please prepare a patch, and I'll be
>>> happy to apply and check it.
>>
>> Here is a patch you can try.
>>
>> It's not a formal patch yet, as it needs to be split.
>
> No, this patch doesn't help.

[...]

> I'm going to dig into imx_4.9.11_1.0.0_ga branch again more carefully to
> try to figure what's going on, and what actually either fixes or
> work-arounds the problem at hand.

Well, that activity ended up being almost useless. Even though I've
found yet another patch that "fixes" the build for my board in
imx_4.9.11_1.0.0_ga branch, it happens to cure neither latest mainstream
kernel nor NXP lf-6.12.y branch.

For reference, the patch is:

https://github.com/nxp-imx/linux-imx/commit/fe3aca041b0b8042d59bcf1d9169109c9220e783

I figure the only sensible option that is left is to try to actually
debug the issue on my board using either the latest mainstream kernel,
or lf-6.12.y by NXP (which one is more promising BTW?), but right
now I have no idea where to start. Any hints?

Also, could you please comment on the issues I've raised earlier, to help
me better understand the state of iMX6SX support:

1. Documentation/usage-model.rst suggests "interrupt-parent = <&intc>;"
to be root node property, not of /soc as in imx6sx.dtsi. Is this
essential? Anyway, shouldn't either documentation or implementation be
fixed to agree on this?

2. intc: in imx6sx.dtsi is interrupt-parent of itself? Is it a mistake?
If not, this asks for an explanation in a comment?

                intc: interrupt-controller@a01000 {                                                          
                        compatible = "arm,cortex-a9-gic";                                                    
                        #interrupt-cells = <3>;                                                              
                        interrupt-controller;                                                                
                        reg = <0x00a01000 0x1000>,                                                           
                              <0x00a00100 0x100>;                                                            
                        interrupt-parent = <&intc>;                                                          
                };                                                                                           

3. Some nodes have <&intc>, and some <&gpc> as interrupt-parent. Could
somebody please re-check if it makes sense? Besides, "gpc" is not true
interrupt controller, right, so what's the matter of having it as
interrupt-parent for some nodes?

4. Suspect cycles in DTS:

/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/clock-controller@20c4000: Fixed dependency cycle(s) with /soc/bus@2000000/gpc@20dc000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000
/soc/bus@2000000/gpc@20dc000: Fixed dependency cycle(s) with /soc/bus@2000000/clock-controller@20c4000

Are they to better be manually fixed?

Thanks,
-- Sergey Organov

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-10-27 20:43 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30 15:49 ARM iMX6sx board fails to boot with kernel 6.17 Sergey Organov
2025-09-30 19:09 ` Fabio Estevam
2025-09-30 19:11   ` Fabio Estevam
2025-10-06 20:11     ` Sergey Organov
2025-10-06 20:20       ` Fabio Estevam
2025-10-06 21:22         ` Sergey Organov
2025-10-07  2:05           ` Fabio Estevam
2025-10-07 11:35             ` Sergey Organov
2025-10-07 15:19               ` Ulf Hansson
2025-10-07 21:17             ` Sergey Organov
2025-10-07 21:29               ` Fabio Estevam
2025-10-07 21:44                 ` Fabio Estevam
2025-10-08 12:53                   ` Sergey Organov
2025-10-08 17:04                 ` Sergey Organov
2025-10-01 20:04   ` Sergey Organov
2025-10-02  0:45     ` Fabio Estevam
2025-10-09 14:46   ` Sergey Organov
2025-10-09 15:50     ` Fabio Estevam
2025-10-09 16:29       ` Sergey Organov
2025-10-09 17:26         ` Fabio Estevam
2025-10-09 21:51           ` Sergey Organov
2025-10-09 22:40             ` Fabio Estevam
2025-10-10 14:59               ` Sergey Organov
2025-10-10 15:14                 ` Fabio Estevam
2025-10-11 20:57                   ` Sergey Organov
2025-10-14  0:45                     ` Fabio Estevam
2025-10-14 12:04                       ` Sergey Organov
2025-10-20 21:30                       ` Sergey Organov
2025-10-27 14:39                         ` Sergey Organov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox