Calculating virtual address from physical address
Grant Likely
grant.likely at secretlab.ca
Sun May 7 05:38:32 EST 2006
On 5/6/06, Chris Dumoulin <cdumoulin at ics-ltd.com> wrote:
> You said that the temporary TLB entries setup in head_4xx.S will eventually be replaced.
> Where is the code that creates these new TLB entries later on? Are the 'real' TLB entries
> only created once, and persist for as long as the system is running, or do TLB entries
> change often while the system is running?
The kernel maintains a list of mappings between virtual and physical
space. When the processor takes a TLB miss exception, then exception
handler loads the needed mapping into the TLB and returns from
exception. (Look in head_4xx.S; specifically at finish_tlb_load).
TLB entries are loaded in a round-robin fashion as needed. Since your
early TLB mappings aren't in the kernel page tables; they get
overwritten and can't be reloaded by the TLB miss exception handler.
> Can you point me to some information about Grant's platform bus changes that you were
> talking about? I am using a custom V2Pro board, and I'd be interested to see if this code
> is something I should be looking at.
The platform bus changes moves the devices to use the "Platform Bus"
infrastructure. It's kind of a move away from multiple
processor-specific bus management schemes for "simple" busses. ie.
If the processor can access it without special setup code; the device
can go on the platform bus.
Check out http://patchwork.ozlabs.org/linuxppc/ and search for my
name. There's about 9 patches grouped together.
Cheers,
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
(403) 399-0195
More information about the Linuxppc-embedded
mailing list