[mailto:firstname.lastname@example.org]On Behalf Of Ralf Baechle
Sent: Wednesday, November 24, 2004 2:46 PM
To: Maciej W. Rozycki
Cc: Thiemo Seufer; Manish Lachwani; Geert Uytterhoeven; Linux/MIPS
Subject: Re: [PATCH] Synthesize TLB refill handler at runtime
On Wed, Nov 24, 2004 at 10:39:56PM +0000, Maciej W. Rozycki wrote:
> > It's so easy to implement with serial console. Best thing since sliced
> > bread :-)
> Yep, and some systems have an appropriate console output callback in the
> firmware making it trivial.
Which unfortunately is becoming unusable fairly soon on many systems.
IP27: ARC is dead after the first TLB flush. IP22: dead after the
external L2 controller was enabled etc. On average I'm less than
pleased with firmware usability even for simple stuff such as printing ...
Real, not-demo, 32-bit systems are the majority and will typically put the io
up at 4GB and let it grow down and have the memory grow up from zero. There is
a natural dividing line, minimal TLB usage, and straightforward access to the
first 512MB of memory unmapped. Which of course means moving the boot device
at bfc00000 up high as well as getting things like discovery at b4000000 out of
the way as well.
So, for firmware callbacks to do printf the kernel would need to restore the
mappings the firmware needed before handoff. Also firmware usually carves out
some memory above 1MB for its drivers so either the firmware has to stop
servicing drivers if the kernel stomps on this memory or the kernel needs to
get the memory ranges available at handoff which I recall doing with netbsd
since it accepted non-contiguous memory.