Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How does ARM's MMU function ?

Status
Not open for further replies.

ombadei

Member level 3
Joined
Sep 1, 2008
Messages
62
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,754
Does anyone know how ARM's MMU function?

Interested in the part on:
Given the physical ram size, how does the virtual address gets translated to the physical address(what this address is)?

I am doing simulation work here. I was given a standard workload trace (e.g gzip) with virtual addresses and i need to be able to translate that into physical addresses to test my ram controller model.
 

Re: ARM's MMU

No startup code.. just program specific traces.. was given virtual addresses that were meant to access the dram.. this trace is an extraction from a cache simulator..

The trace was supplied to me by my ex-supervisor who had left the school.. not much instruction was passed down.. when i got back from summer.. he was gone..

I am an undergrad student.. so i might not fully understand some jargon used in processor simulation work..

Suppose with the bootcode, what should i look for? hope to bug my new supervisor for it..
 

Re: ARM's MMU

can anyone help me out with some insights.. really desperate..
 

Re: ARM's MMU

This is a code I used to initialize ARM920T MMU.
--
Amr Ali
 

Re: ARM's MMU

Thanks Amr Ali for something to refer to..

Do you mind explaining the setting of the MMU mapping table for the below code? Would like to grasp a better understanding.. especially what is the wAttrib for?

Code:
void MMU_SetMTT(int wVSAddr,int wVEAddr,int wPSAddr,int wAttrib)
{
    U32 *pTT;
    int i,nSec;
    pTT=(U32 *)MMUTT_SADDR+(wVSAddr>>20);
    nSec=(wVEAddr>>20)-(wVSAddr>>20);
    for(i=0;i<=nSec;i++)*pTT++=wAttrib |(((wPSAddr>>20)+i)<<20);
}
 

Re: ARM's MMU

You give this function the virtual start and end addresses and the start of physical address they map to. Last argument is related to the cache parameters like cacheable or not, bufferable or not, faulty to access or not.
--
Amr Ali
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top