This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3358: ARM eratta for PLD instruction

Part Number: AM3358

Hi,

When memcpy was used, problems could not be copied correctly.
There is a part using the PLD instruction in the code in the function.
It was confirmed that it was copied normally when the PLD instruction was deleted.

We got the following information from vendor of OS of 3rd-party.
There is the following ARM 771221 errata concerning the PLD instruction.

Can you check if it applies to AM335x too?

erratta content:

771221: PLD Instructions Might Allocate Data in the Data Cache Regardless of the Cache Enable Bit Value

Description:
PLD instructions prefetch and allocate any data marked as write-back (either write-allocate or non-writeallocate,shared or non-shared),
regardless of the processor configuration settings, including the data
cache enable bit value.
Impact:
Because of this erratum, unexpected memory cacheability aliasing is created, which might result in various data consistency issues.
In practice, this erratum is unlikely to cause any significant issue. The data cache is likely to be enabled as soon as possible in most
systems and not dynamically modified. Therefore, this erratum is likely to impact
only boot-up code. This code is usually carefully controlled and does not usually contain any PLD instruction while the data cache is not
enabled.

Workaround:
If this erratum impacts a system, a software workaround is available that is to set bit [20] in the undocumented Control register, which is
placed in CP15 c15 0 c0 1.
This bit must be written with the following read-modify-write code sequence:
MRC p15,0,r0,c15,c0,1
ORR r0,r0,#0x00100000
MCR p15,0,r0,c15,c0,1
Setting this bit causes all PLD instructions to be treated as NOPs, with the consequence that code sequences that usually use the
PLDs, such as the memcpy() routine, might suffer from a visible performance drop. Therefore, if this workaround is applied, ARM
strongly recommends restricting its use to periods of time where the data cache is disabled

Best Regards,
Shigehiro Tsuda