LWN.net Logo

Supporting multi-platform ARM kernels

Supporting multi-platform ARM kernels

Posted May 10, 2012 11:21 UTC (Thu) by arnd (subscriber, #8866)
Parent article: Supporting multi-platform ARM kernels

Thanks Jon for this summary! Over the last week, I've actually tried out building kernels for multiple platforms combined to get a better feeling for the remaining problems. The result is in the testing/multiplatform branch of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git and it can build arbitrary combinations of four of the five subarchitectures that the Linaro organization is most interested in (imx, omap, ux500 and vexpress, but not exynos for now). Most other platforms should actually be simpler to convert.

However, this kernel is not yet going to be useful on real hardware because I had to disable or add hacks for a number of features (SMP, sparseirq, clocks) that are still being worked on, but as soon as one platform has all that work done, we can actually build a kernel with everything enabled and run on that particular platform and see what else breaks.

Unlike I suggested in the email thread, this kernel at the moment actually allows enabling all the board files including non-DT ones because that was easier to do with the Kconfig dependencies, but I found two real technical issues that would be solved by making the combined kernel DT-only:

1. The exynos platform defines static platform devices from files shared with five other Samsung platforms that are mutually exclusive because the device definitions depend on platform specific compile-time constants. Using DT probing we can just drop those static platform device definitions and make the conflict go away.

2. With sparse IRQs, a lot of the hardcoded interrupt numbers in static platform device definitions are broken, while the definitions from DT still work. Sparse IRQs are currently needed to build multiplatform kernels and I expect that requirement to stay.


(Log in to post comments)

Supporting multi-platform ARM kernels

Posted May 10, 2012 12:57 UTC (Thu) by dgilmore (subscriber, #40144) [Link]

I know from Fedoras point of view we want to build only a single arm kernel. right now we are building kirkwood, imx, omap, tegra, highbank and vexpress. im ok with leaving kirkwood as its own but in order to add exynos I only want to do it in a combined image, and as quickly as possible merge the kernel variants into the base kernel. then have us adding support for other boards only in the base kernel. I like the idea of having DeviceTree only support to make things smaller and simpler if it has DeviceTree support. however i think that the vendors should be on the hook to ship the dtb for a board.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds