23.12.2013 Views

Errata Sheet - Infineon

Errata Sheet - Infineon

Errata Sheet - Infineon

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.

<strong>Errata</strong> <strong>Sheet</strong><br />

Functional Deviations<br />

cases detailed above which may lead to incorrect behaviour, one NOP<br />

instruction should be inserted prior to the load or store instruction using circular<br />

addressing mode.<br />

...<br />

LDA a8, 0xD000000E ; Address of un-aligned load<br />

LDA a12, 0xD0000820 ; Circular Buffer Base<br />

LDA a13, 0x00180014 ; Circular Buffer Limit and Index<br />

...<br />

ld.w d6, [a8] ; Un-aligned load, split 16+16<br />

add d4, d3, d2 ; Optional IP instruction<br />

nop<br />

; Bug workaround<br />

st.d [a12/a13+c], d0/d1 ; Circular Buffer wrap, 32+32<br />

...<br />

CPU_TC.109 Circular Addressing Load can overtake conflicting Store in<br />

Store Buffer<br />

In a specific set of circumstances, a load instruction using circular addressing<br />

mode may overtake a conflicting store held in the TriCore1 CPU store buffer.<br />

The problem occurs in the following situation:<br />

• The CPU store buffer contains a byte store instruction, st.b, targeting the<br />

base address + 0x1 of a circular buffer.<br />

• A word load instruction, ld.w, is executed using circular addressing mode,<br />

targetting the same circular buffer as the buffered byte store.<br />

• This word load is only half-word aligned and encounters the circular buffer<br />

wrap-around condition such that the second, wrapped, access of the load<br />

instruction to the bottom of the circular buffer targets the same address as<br />

the byte store held in the store buffer.<br />

Additionally, one of the following further conditions must also be present for the<br />

problem to occur:<br />

• The circular buffer base address for the word load is double-word but not<br />

quad-word (128-bit) aligned - i.e. the base address has bits (3:0) = 0x8 with<br />

the conflicting byte store having address bits (3:0) = 0x9, OR,<br />

• The circular buffer base address for the word load is quad-word (128-bit)<br />

aligned and the circular buffer size is an odd number of words - i.e. the base<br />

TC1767, EES-AD, ES-AD, AD 16/73 Rel. 1.4, 11.12.2009

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

Saved successfully!

Ooh no, something went wrong!