Programming the MMU/TLBs

Hi all,

I'm running Linux on a small embedded MIPS (5kc) based board, basically resembling a Malta with one or two things added. If you're familiar with the MIPS architecture, out of the box it can only address the first

512MB of physical memory. If you need to address memory beyond that, you need to program the TLBs.

So, I have an application where I need to access an address outside of the standard MIPS unmapped 512MB limit. Is there a standard way within Linux to handle issues such as TLB programming ? I'm hoping there's something like

add_tlb_mapping(physaddr, virtaddr)

but I guess that would be too easy :)

Also, how can I ensure that the mapping for the region of memory I need to access remains current permanently, after the kernel boots ? I know that process switches and other MMU type operations cause the TLBs to be flushed. Does Linux maintain a table somewhere of memory regions which are "permanently" mapped by the MMU ?

If there's a FAQ or other documentation on this issue I'd happily be directed that way ...

Cheers in advance ...

--

"Jokes mentioning ducks were considered particularly funny." - cnn.com
Reply to
Chesney Christ
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.