APUS and IOs question

Roman Zippel zippel at linux-m68k.org
Fri Nov 10 13:02:16 EST 2006


Hi,

On Fri, 10 Nov 2006, Geert Uytterhoeven wrote:

> On Fri, 10 Nov 2006, Benjamin Herrenschmidt wrote:
> > > My plan for moving APUS to arch/powerpc involves writing a new
> > > bootloader (I'm currently hacking binutils to support AmigaOS binaries)
> > > that builds a proper flattened device tree and calls the kernel, but I'm
> > > not sure where the kernel virtual mapping that allows the kernel to run
> > > from a fixed address should be set up -- if in the bootloader, the
> > > kernel needs to be aware that changing the MMU settings will yield
> > > interesting results, and if in the kernel, we need some platform
> > > specific init code to handle that.
> > 
> > Well, the problem is that you basially have to hack the linear mapping,
> > thus hitting anything that relies on __pa/__va or operating in real mode
> > indeed.
> > 
> > How do you do for exception vectors ? Since those have to be either at 0
> > or at ff* ? You stick branches at 0 to jump to where the kernel
> > resides ?
> 
> IIRC (Roman please correct me if I'm wrong), APUS has them at ff* because the
> memory at adress 0 is slower.

Earlier APUS did put the exception vectors at 0, which is slow of course. 
The hardware maps part of the local memory to ff, so the exception vectors 
are copied there and the transfer handler jump to the mapped location.

bye, Roman



More information about the Linuxppc-dev mailing list