On 11/23/2010 11:06 AM, Felix Fietkau wrote:
On 2010-11-23 7:51 PM, Gabor Juhos wrote:
On Tue, Nov 23, 2010 at 10:06 AM, Gabor Juhos<firstname.lastname@example.org> wrote:
This patch adds a generic solution to support multiple machines based on
a given SoC within a single kernel image. It is implemented already for
several other architectures but MIPS has no generic support for that yet.
Is this the way `arch/mips' wants to go to support multiple machine
within a same kernel image ?
I don't know yet what will be the chosen way.
Flattened Device Tree is the other way to achieve that. I remind the latter
being proposed by Felix Fietkau on #openwrt.
FDT makes sense when the bootloader supports that. FDT makes sense when the
bootloader supports that, but i'm not aware of any AR71xx/AR724x/AR913x based
board which has such bootloader. Additionally, the device-tree support for MIPS
has been added only recently and none of the existing MIPS boards are using that
yet AFAIK. If that will be widely used we can consider to switch to that later.
We don't need boot loader support, we can make a simple loader stub that
passes the FDT data to the kernel. It would certainly be better than our
current cmdline hack ;)
I think using FDT would save us a lot of maintenance work, as we
wouldn't have to change the kernel for every single new board that we
add support for.
For what it's worth, the FDT support in the kernel is almost completely
generic. The appropriate hooks are already in the mips archetecture
support, but most of the contents of arch/mips/kernel/prom.c will likely
need to be moved to chip/board specific files.
Over the next few weeks I plan on sending out patches to the
cavium-octeon support to convert it to use the FDT. So I don't think it
is out of the question that other chips would start to use it as well.