<div dir="ltr">Hey Alan,<div><br></div><div>Thanks for your detailed reply. MMU</div><div> and Caches are working correctly on Raspberry Pi BSP now. </div><div>You may review my latest patches and apply them. I appreciate your feedback.</div>
<div><br></div><div>Regards,</div><div>Hesham</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 23, 2013 at 4:19 AM, Alan Cudmore <span dir="ltr"><<a href="mailto:alan.cudmore@gmail.com" target="_blank">alan.cudmore@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>Hi Hesham,<br>
I don't have an answer for you, but you may be able to find some
help or example code on the <a href="http://raspberrypi.org" target="_blank">raspberrypi.org</a> forums. <br>
A couple of examples:<br>
<a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?t=40183&p=336705" target="_blank">http://www.raspberrypi.org/phpBB3/viewtopic.php?t=40183&p=336705</a><br>
<a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?t=40665&p=332205" target="_blank">http://www.raspberrypi.org/phpBB3/viewtopic.php?t=40665&p=332205</a><br>
<br>
I avoided the MMU setup on the raspberry pi BSP, because I knew
that the GPU based bootloader set up the memory for the ARM CPU.
More info on the whole boot process here:<br>
<a href="http://elinux.org/RPi_Software" target="_blank">http://elinux.org/RPi_Software</a><br>
<br>
Another nice thing to have for work like this is a JTAG debugger
setup. I hope I can get an inexpensive setup for mine before I try
to add any more drivers. <br>
The readme at the repository below has some good info on setting
up JTAG on the raspberry pi:<br>
<a href="https://github.com/dwelch67/raspberrypi/tree/master/armjtag" target="_blank">https://github.com/dwelch67/raspberrypi/tree/master/armjtag</a><br>
<br>
Alan<div><div class="h5"><br>
<br>
<br>
On 8/22/2013 6:48 PM, Hesham Moustafa wrote:<br>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hey all,
<div><br>
</div>
<div>I am working on Raspberry Pi BSP which has ARM1176JZF-S
(ARMv6) processor on it. Here is what I am doing that causes
the processor to halt:</div>
<div><br>
</div>
<div>At BSP startup, specifically in bsp_start_hook_0 function,
I call another function that :</div>
<div>1- Initialize first level page tables (sections) with
READ/WRITE permissions.</div>
<div>2- Invalidate TLB.</div>
<div>3- Enable MMU, Cache, Protection bits in control register.</div>
<div><br>
</div>
<div>Initialization is done correctly and the program reaches my
application (test case), which tries to update first level
page table entries to force another protection attributes for
a memory region. At this part, after, or before, modifying the
page table entry, I try to invalidate TLB but the program
halts there. I disable MMU and Caches during updating page
tables and invalidating TLB. </div>
<div><br>
</div>
<div>When removing the function call that invalidates the TLB,
the program proceed to the end successfully.</div>
<div><br>
</div>
<div>Not sure why the processor halts when trying to invalidate
the TLB "at the second time". I hope someone can tell me the
reason.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Hesham</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
rtems-devel mailing list
<a href="mailto:rtems-devel@rtems.org" target="_blank">rtems-devel@rtems.org</a>
<a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a>
</pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
rtems-devel mailing list<br>
<a href="mailto:rtems-devel@rtems.org">rtems-devel@rtems.org</a><br>
<a href="http://www.rtems.org/mailman/listinfo/rtems-devel" target="_blank">http://www.rtems.org/mailman/listinfo/rtems-devel</a><br>
<br></blockquote></div><br></div>