Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

[FAQ] PROCESSOR-SDK-AM57X: U-boot patch for Linux addressing AM57xx errata i2446

Part Number: PROCESSOR-SDK-AM57X

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

    i2446_AM57_WA.patch

    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: