Tool/software:
This is a patch to made for U-boot as an example of how to implement the workaround for AM57xx errata i2446:
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.
Tool/software:
This is a patch to made for U-boot as an example of how to implement the workaround for AM57xx errata i2446:
Setup
• The patch is implemented from u-boot source and utilizes EDMA3 driver. – drivers/dma/ti-edma3.c
• This driver is enabled by enabling TI_QSPI, which should be enabled by default in defconfig file – am57xx_evm_defconfig Implementation
Procedure
• It uses the EDMA3 API to make a single 16-Byte transfer to both PRU-ICSS clk registers, enabling them one after the other
• Based on usage example with QSPI: drivers/spi/ti_qspi.c::ti_qspi_copy_mmap()
• EDMA3_transfer transfers 16 bytes from OCM memory to CM_L4PER2_PRUSS1_CLKCTRL and CM_L4PER2_PRUSS2_CLKCTRL registers under 20 ns.
Patch
Patch originally made for ti-u-boot-2019.01
Test for this failure
In order to verify that this errata is indeed what is causing the A15 to crash, one can test this at u-boot prompt using memory dumps to access the PRUSS global counters:
– PRUSS_IEP_GLOBAL_CFG (PRUSS1_IEP)
– PRUSS_IEP_GLOBAL_CFG (PRUSS2_IEP)
U-Boot Prompt
=> md.l 0x4B22E000 1
=> md.l 0x4B2AE000 1
Example: