On Mon, 2014-07-21 at 16:54 +0100, Catalin Marinas wrote: > We have a similar issue with arm64 vexpress (well, just on the model) > where vexpress_sysreg_init() is a core_initcall (should be fine as > arch_initcall) as it needs to be done before of_platform_populate(). > Pawel on cc should know more of the history here. In case of vexpress the trick was to squeeze everything into the device model. Once this was done, there was enough initcall levels to get all dependencies sorted. The device model is good. We seemed to have learned to abuse it claiming that "things must be initialised early", while in 9 out of 10 cases they don't have to be "that early"... > I recall there were also some discussions about a SoC driver model which > hangs off the top compatible string in the DT (e.g. "arm,vexpress") and > allow (minimal) code to be run slightly earlier, though still not > earlier than arch_initcall. This was just a loose idea: http://thread.gmane.org/gmane.linux.ports.arm.kernel/204361/focus=204843 I still like it, and it seems logical to me. We've got a platform. It's got a compatible string. We can write a driver for this platform that does all magic at appropriate initcall level. Paweł -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html