-----Original Message----- From: linux-mips-bounce@xxxxxxxxxxxxxx [mailto:linux-mips-bounce@xxxxxxxxxxxxxx]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 Development 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 ... Ralf 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. --Brad