Booting the Linux/ppc64 kernel without Open Firmware HOWTO(#2)
Benjamin Herrenschmidt
benh at kernel.crashing.org
Mon May 23 08:29:36 EST 2005
On Mon, 2005-05-23 at 00:43 +0300, Tzachi Perelstein wrote:
> Seems like it was a *hot* weekend...
>
> Ben, I agree with Wolfgang that while taking footprint and simplicity
> into account we should "try to think about the whole system, including
> boot loader, kernel, and any data that might need to get passed between
> these two".
This is what this is doing. Please read all that was said.
> My ppc64 Linux is booted from U-Boot on Marvell platform and it uses the
> simple board_info instead of the device-tree. There are only some minor
> hacks in arch files that by-pass the whole device-tree usage in head.S
> and setup.c, e.g. [1] early_init_board_info() instead of
> early_init_devtree(), and [2] skipping on unflatten_device_tree() and
> finish_device_tree().
Minor hacks -> too many hacks. Please. Understand that it means
everybody will end up creating slightly different board-info, and the
whole thing will end up like an ifdef clutter.
Honestly, I don't see where is your problem with a device-tree, it seems
we have proven it was both small and much more flexible.
> As you know, the majority of these functions and
> sub-functions just parse and handle the device-tree.
> Frankly, although I'm willing to give device-tree a try, I think it is
> not the wise thing to do.
Well, I think you are wrong.
> It is simple and effective, and it can be
> nicer with minor _general_ support in arch files to non-OF loaders.
There is, it's called a flattened device-tree. Damn, I can't see what is
your problem here. A minimum tree is a few hundred bytes dammit ! You
can probably even define one that exposes the north bridges devices
(assuming you have similar ethernet as other Marvell chips) etc... in a
few more hundred bytes, thus making the whole probing of these &
matching with drivers a lot cleaner on the kernel side.
> A
> slightly different loading for embedded systems is not necessarily a
> mess. I'm sure that the ppc experience will make it be nice and
> structured even this way.
Nope, it won't. A structure definition is the _worse_ thing to do.
> Imagine emerging ppc64 Linux embedded systems living outside the kernel
> due to embedded incompatibilities; this might make much more mess in the
> long run...
I don't understand your point. It is _simple_ to set up a device-tree.
It's probably even more flexible for your own embedded needs.
Ben.
More information about the Linuxppc64-dev
mailing list