Hi there.
I have stumbled to the interesting problem. Custom device is not always booted.
Problem is appeared at power on state and rebooting two. Just set at u-boot param bootcmd as reset. ~5% starting are broken. Cold reset is used(not warm reset). I have tried to find answer in this way:
https://community.nxp.com/t5/i-MX-Processors/Not-stable-boot-from-emmc-5-1/m-p/1594220
Shortly: looks like device is fall to USB downloader mode after booting data from mmc. Look at the topic above. It has a lot of interesting pictures. ))
Now I tried to read different registers with uuu. And found that some registers has not default values and not at the state I have set at DCD.
For example:
I set at DCD gpio for SD4 at value 0x0001D020,but in time when the device fall to USB I have 0x000070F0. It is not a default value (0x0001B0B0).
You can see diff of two registers (bmode usb VS freeze

And it is not only with iomuxc problem. Some times I see problems even with mmdc initialization. For example:

Above you can see registers after two different freezes. At right side mmdc registers even not set (I haven't compared with default).At right side another freeze but mmdc registers.
And for example register 0x021b08b8 must be 0x00000800. But here none of them contain this value.
OSC looks stable.
Powers - also stable. I reproduce the freezes even in cycle reset.
Just set at u-boot param bootcmd as reset