On Mon, Nov 12, 2007 at 09:32:42AM +0100, Thomas Bogendoerfer wrote:
> > schedule() doesn't directly depend on very much else working so I get the
> > feeling that your problem may be quite far away.
>
> well it depends on getting a kernel thread started. And I guess there
> lies the problem.
>
> Maybe I need to ask more precisely what I want to know: Should a
> kernel linked to CSKEG0 with a CAC_BASE 0x980000000000 work or is
> this setup "wrong" ? If the answer is yes, I'd say there is still
> a bug left. If no how do we solve the issue of having a 32bit firmware
> and a kernel linked for XPHYS (using some sort of bootloader is not
> want I want to have, if it's avoidable) ?
Typically systems try to put the kernel into CKSEG0 as long as the given
platform happens to have memory mapped there. Using CKSEG0 allows using
a shorter sequence to load the address of an in-kernel symbol resulting
in a much smaller kernel binary.
One implication of this is that kernel modules will have to be allocated
to CKSEG2/3 because they're built using the same code model. Modules
are allocated using vmalloc so the vmalloc space needs to be in
CKSEG2/3. Most people don't care if that space is restricted to just
one gig.
But even if you get that wrong the expected failure mode is different ...
Ralf
|