I saw this in uboot code:
* As a general rule, TLB0 is used for short-term TLBs, and TLB1 is used for
* long-term TLBs, so we use TLB0 here.
why is it a general rule that TLB0 is used for short-term and TLB1 is used for long-term? Does it have to do with IPROT (Invalidate Protect) is only in TLB1?
thanks!
Uboot supports many processors. Let me know name of the uboot code file you refer to.
The comment is in the file start.S in the \arch\popwerpc\mcp85xx directory.
/*
Relocate CCSR, if necessary. We relocate CCSR if (obviously) the default
location is not where we want it. This typically happens on a 36-bit
system, where we want to move CCSR to near the top of 36-bit address space.
*
To move CCSR, we create two temporary TLBs, one for the old location, and
another for the new location. On CoreNet systems, we also need to create
a special, temporary LAW.
*
As a general rule, TLB0 is used for short-term TLBs, and TLB1 is used for
long-term TLBs, so we use TLB0 here.
*/
Have a great day,
Yes this rule due to that
* IPROT bit is implemented in TLB1 only (prevents invalidations)
and
* TLB0 supports only 4-Kbyte pages, while TLB1) supports the nine (e500v1) or eleven (e500v2) page sizes up to 256-Mbyte (e500v1) and 4-Gbyte (e500v2).
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------