To be sure that uboot isn't the problem I tried with the same version you use on I.mx8m. It doesn't support my board so I only tried with top layer , u-boot.itb . It boots to exception. Iam thinking if the offending call is the first one which allocates ram dynamically. That would point to permission problem and or problem with the defined system ram. Bootm takes the el to el2.
To be continued..
I gave this a second thought. I doubt permission error. RISC OS is started in the same way and works just fine. I would appreciate any thoughts from Stefan , why cpus[id].construct(id, _global_work_list); can produce a exception. I can't find it.
Michael