Re: [PATCH 2/4] sparc: break out some prom device-tree building code out into drivers/of

Benjamin Herrenschmidt
2010-07-06T10:20:44Z

> Sounds like we have a winner. I'll concentrate on that, thanks for
> the heads up.

Note that the conversion from OF -> fdt that powerpc does is a bit
"special". The code isn't quite a "wrapper" but almost. It shared pretty
much no symbols or variables with the rest of the kernel.

There are various reasons for that. It has to run -very- early, in fact,
before we do anything else at boot time, since we run off OF existing
environment (stack etc...) at at whatever address the kernel is loaded,
ie. before we relocate it down to 0.

To deal with that, we use compile/linker tricks to generate
pseudo-relocatable code (with limitations) and funny macros when
accessing global symbols.

In addition, we have various workarounds for powerpc specific
implementation issues (OF bugs, but also instanciating the IOMMU tables
on Power4, starting secondary CPUs and parking them in a wait loop,
etc...).

Thus I'm not sure there's that much benefit in trying to make that code
common with other archs, and possibly a lot of pain involved.

Cheers,
Ben.