I have a situation where the 816x DSP needs to access external hardware in GPMC space (0x08000000). So within the DSP's virtual space, as I understand it, this could be mapped to 0x11000000 via MMU. I have looked at a relevant TI wiki posting (http://processors.wiki.ti.com/index.php?title=Talk:DM816x_C6A816x_DEMMU_Setup&oldid=78525), and MMU documentation. Then I tried to get the MMU loaded and working in static mode. Although I can read back the entries (to confirm CAM/RAM settings), whenever I enable the MMU, the DSP will run a little bit but then crash. It may run for a few more steps or a few more function calls, but will eventually die - I'm thinking either the stack or the program storage is running out of cache for a while, but eventually needs to access real memory - which does not work with MMU enabled. As I understand it, if using the MMU, I not only need to make CAM/RAM entries for the virtual/physical mapping I need, but I also need to cover all the pertinent sections within the DSP memory map. I believe I have done this properly - but it could be I missed something.
Is there more (or updated) detail for DSP MMU use? I am using 816x TRM July 2011. The MMU section is fairly thorough, but weak on how to use some of the fields in MMU_RAM, MMU_LOCK, and MMU_CNTL.
Or is there another code example available?
thanks
-Dave