<p>Eight: 4 for data and 4 for instructions. BAT areas can not overlap.</p>
<p>Hesham</p>
<div class="gmail_quote">On Jun 22, 2013 12:39 AM, "Chris Johns" <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hesham Moustafa wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi there,<br>
<br>
I am working on providing memory protection for many targets/BSPs that<br>
RTEMS support through a library called libmm. Previous MMU projects<br>
depended on "Pages" to provide memory protection. I was thinking of<br>
using BATs for extending libmm for PowerPC targets. The following are<br>
some characteristics for BAT (Block Address Translation) and Pages for<br>
PowerPC/mpc6xx.<br>
<br>
For BATs :<br>
- BAT sizes varies from 128KB up to 256 MB.<br>
- 8 pairs of register to describe blocks of memory: 4 for data blocks<br>
and 4 for instructions blocks.<br>
- It's faster than Page translation.<br>
- Simple.<br>
<br>
For Pages :<br>
- Page sizes begins from 4KB.<br>
- Hash function are used for Page tables search and insert.<br>
- Slower than BAT.<br>
- Complex Code and cost much time when dynamically change attributes.<br>
<br>
The current code for libmm/PowerPC is using Pages. Do you think it's<br>
suitable to implement libmm to use BAT also ?<br>
<br>
Waiting for your feed back.<br>
<br>
</blockquote>
<br>
How many BAT areas can you have ?<br>
<br>
Chris<br>
</blockquote></div>