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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Debug Events<br />

when InstrSet_<strong>ARM</strong><br />

byte_select_match = (DBGBCR[N] != ‘0000’);<br />

when InstrSet_Thumb, InstrSet_ThumbEE<br />

case address of<br />

when ‘0’ byte_select_match = (DBGBCR[N] != ‘00’);<br />

when ‘1’ byte_select_match = (DBGBCR[N] != ‘00’);<br />

when InstrSet_Jazelle<br />

case address of<br />

when ‘00’ byte_select_match = (DBGBCR[N] == ‘1’);<br />

when ‘01’ byte_select_match = (DBGBCR[N] == ‘1’);<br />

when ‘10’ byte_select_match = (DBGBCR[N] == ‘1’);<br />

when ‘11’ byte_select_match = (DBGBCR[N] == ‘1’);<br />

// Address mask<br />

case DBGBCR[N] of<br />

when ‘00000’<br />

// This implies no mask, but the byte address is always dealt with by<br />

// byte_select_match, so the mask always has the bottom two bits set.<br />

mask = ZeroExtend(‘11’, 32);<br />

when ‘00001’, ‘00010’<br />

UNPREDICTABLE;<br />

otherwise<br />

mask = ZeroExtend(Ones(UInt(DBGBCR[N])), 32);<br />

if DBGBCR[N] != ‘1111’ then unk_match = TRUE;<br />

// Meaning of BVR<br />

case DBGBCR[N] of<br />

when ‘000’ // Unlinked IVA match<br />

cmp_in = address; linked = FALSE; mismatch = FALSE; mon_debug_ok = TRUE;<br />

when ‘001’ // Linked IVA match<br />

cmp_in = address; linked = TRUE; mismatch = FALSE; mon_debug_ok = TRUE;<br />

when ‘010’ // Unlinked context ID match<br />

if N < UInt(DBGDIDR.BRPs) - UInt(DBGDIDR.CTX_CMPs) then UNPREDICTABLE;<br />

if DBGBCR[N] != ‘1111’ || DBGBCR[N] != ‘00000’ then unk_match = TRUE;<br />

mask = Zeros(32);<br />

cmp_in = CONTEXTIDR; linked = FALSE; mismatch = FALSE; mon_debug_ok = FALSE;<br />

when ‘011’ // Linked context ID match (does not match directly, only via link)<br />

return FALSE;<br />

when ‘100’ // Unlinked IVA mismatch<br />

if UInt(DBGDIDR.Version) < 2 then UNPREDICTABLE;<br />

cmp_in = address; linked = FALSE; mismatch = TRUE; mon_debug_ok = FALSE;<br />

when ‘101’ // Linked IVA mismatch<br />

if UInt(DBGDIDR.Version) < 2 then UNPREDICTABLE;<br />

cmp_in = address; linked = TRUE; mismatch = TRUE; mon_debug_ok = FALSE;<br />

otherwise // Reserved<br />

unk_match = TRUE;<br />

if !IsZero(DBGBVR[N] AND mask) then unk_match = TRUE;<br />

C3-30 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!