RE: [PATCH] Synthesize TLB refill handler at runtime

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux