05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Virtual Memory System <strong>Architecture</strong> (VMSA)<br />

physicaladdressext = ‘00000000’;<br />

physicaladdress = l1desc : mva;<br />

else // Supersection<br />

domain = ‘0000’;<br />

type = TLBRecType_Supersection;<br />

physicaladdressext = l1desc;<br />

physicaladdress = l1desc : mva;<br />

when ‘10’ // Large page or Small page<br />

domain = l1desc;<br />

sectionnotpage = FALSE;<br />

NS = l1desc;<br />

// Obtain level 2 descriptor.<br />

l2descaddr.paddress.physicaladdress = l1desc : mva : ‘00’;<br />

l2descaddr.paddress.physicaladdressext = ‘00000000’;<br />

l2descaddr.paddress.NS = if IsSecure() then ‘0’ else ‘1’;<br />

l2descaddr.memattrs = l1descaddr.memattrs;<br />

l2desc = _Mem[l2descaddr,4];<br />

// Process level 2 descriptor.<br />

if l2desc == ‘00’ then<br />

DataAbort(mva, domain, sectionnotpage, is_write, DAbort_Translation);<br />

S = l2desc;<br />

ap = l2desc;<br />

nG = l2desc;<br />

if SCTLR.AFE == ‘1’ && l2desc == ‘0’ then<br />

if SCTLR.HA == ‘0’ then<br />

DataAbort(mva, domain, sectionnotpage, is_write, DAbort_AccessFlag);<br />

else // Hardware-managed access flag must be set in memory<br />

_Mem[l2descaddr,4] = ‘1’;<br />

if l2desc == ‘0’ then // Large page<br />

texcb = l2desc<br />

xn = l2desc;<br />

type = TLBRecType_LargePage;<br />

physicaladdressext = ‘00000000’;<br />

physicaladdress = l2desc : mva;<br />

else // Small page<br />

texcb = l2desc;<br />

xn = l2desc;<br />

type = TLBRecType_SmallPage;<br />

physicaladdressext = ‘00000000’;<br />

physicaladdress = l2desc : mva;<br />

else // MMU is disabled<br />

texcb = ‘00000’;<br />

S = ‘1’;<br />

ap = bits(3) UNKNOWN;<br />

xn = bit UNKNOWN;<br />

nG = bit UNKNOWN;<br />

B3-160 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!