linux-mips
[Top] [All Lists]

RE: [PATCH] Synthesize TLB refill handler at runtime

To: "'Ralf Baechle'" <ralf@linux-mips.org>, "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: RE: [PATCH] Synthesize TLB refill handler at runtime
From: Brad Larson <Brad_Larson@pmc-sierra.com>
Date: Mon, 29 Nov 2004 11:14:14 -0800
Cc: Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de>, Manish Lachwani <mlachwani@mvista.com>, Geert Uytterhoeven <geert@linux-m68k.org>, Linux/MIPS Development <linux-mips@linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
-----Original Message-----
From: linux-mips-bounce@linux-mips.org
[mailto:linux-mips-bounce@linux-mips.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
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


<Prev in Thread] Current Thread [Next in Thread>