DRA821U-Q1: Enabling In-Line ECC for LPDDR4 on DRA821 - SDK9.02

Part Number: DRA821U-Q1
Other Parts Discussed in Thread: DRA821

Tool/software:

Hello,

Now that me and my team are on the new SDK 9.02, we have picked back up the task of enabling in-line ECC on the DRA821.


We found some TI documentation outlining DDRSS ECC in U-Boot. In the documentation, it says to enable ECC by adding the ti.ecc-enable boolean property to the memory controller node. We built an image for both our custom hardware and the EVM with this hange, along with CONFIG_K3_INLINE_ECC=y enabled in the config file of U-Boot. With these changes, we cannot boot either our custom hardware or the EVM. For the EVM, we tried to boot via WKUP_UART, but we are getting stuck on tispl.bin. When it reaches tispl.bin, it freezes (I do not see a timeout error whatsoever).


We were linked to this E2E thread below and were asked to implement the changes from this E2E thread. We looked at the patch files from the E2E post. The patch is for an older version of u-boot. The files that we have are very different, and it looks like TI has already added most of the ecc patch. We will need additional support from TI to get ECC enabled on the DRA821.

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1354714/dra821u-q1-dra821u-q1-lpddr4-in-line-ecc-setup

Regards,

Lewis

  • HI

    We found some TI documentation outlining DDRSS ECC in U-Boot. In the documentation, it says to enable ECC by adding the ti.ecc-enable boolean property to the memory controller node. We built an image for both our custom hardware and the EVM with this hange, along with CONFIG_K3_INLINE_ECC=y enabled in the config file of U-Boot. With these changes, we cannot boot either our custom hardware or the EVM. For the EVM, we tried to boot via WKUP_UART, but we are getting stuck on tispl.bin. When it reaches tispl.bin, it freezes (I do not see a timeout error whatsoever).

    Can you share the logs on the EVM? I will take a look at the failure.

    - Keerthy

  • Hey Keerthy,

    On the EVM, we are trying to boot the EVM via WKUP_UART and we are freezing at tispl.bin.

    -Lewis

  • Lewis,

    I believe I have already shared that on a different thread on how to enable WKUP_UART.

    I cannot comment without logs. Here are the steps that will help.

    1. enabling CONFIG_K3_INLINE_ECC
    2. add ti,ecc-enable to the memorycontroller nodes and
    3. call fixup in spl_perform_fixups same as seen in board/ti/j721s2/evm.c in board/ti/j721e/evm.c

    Regards,
    Keerthy

  • Hey Keerthy,


    We have WKUP_UART working, and that’s not the problem at the moment. I want to state how we are booting the EVM and where we are failing.


    We have implemented 1 and 2 already, and we are not booting the EVM now.


    For 3, we looked through all of the patches we have used so far and found that spi_perform_fixups is not in any of them.


    There is some difference in the two files on how the function is done, so we made our code the same as the S2 code and rebuilt. We can test next week again and let you know the results.


    Is it possible for you and TI to try and get ECC working on the EVM so we have an example to work with? Thanks.


    Regards,

    Lewis

  • Hi Lewis,

    I can try to get the ECC with the default SDK UART on DRA821 i.e main_uart0. Is that okay?

    - Keerthy

  • Hey Keerthy,

    That should be fine testing ECC on the default SDK. Let me know what you are able to find.

    We tried a new image with the ECC init looking like the other board that you shared. Even with this change we are still freezing at tispl.bin. (NOTE: We have a bash script that runs through all the commands for UART)

    I checked the wkup uart signals on the EVM using a digital analyzer to see what is going on with wkup uart. Typically we would see C's printout on the UART console, even after completing tiboot3.bin and tispl.bin. With this most recent image; after tiboot3.bin is completed, we are not seeing the C's but rather some other characters being printed out. I'm not sure what could be the causing this (maybe a change in baud rate???). Any ideas on what might be causing this? I'll provide screencaptures from the digital analyzer below.

    This first image is the WKUP_UART at power-up, during and right after completing tiboot3.bin

    Typically at power-up, and after completing tiboot3 or tispl.bin, we would see C's on the UART console. This image is showing that the board is behaving normally at power-up.

    However after completing tiboot3.bin with ECC enabled, we are seeing this behavior on the UART. We are no longer getting the C's but rather other characters.

    Regards,

    Lewis

  • Typically we would see C's printout on the UART console, even after completing tiboot3.bin and tispl.bin. With this most recent image; after tiboot3.bin is completed, we are not seeing the C's but rather some other characters being printed out. I'm not sure what could be the causing this (maybe a

    Are you getting any traces on the UART from the tiboot3.bin or the console is blank?

    - Keerthy

  • Hi Keerthy,

    We are seeing the tiboot3.bin being loaded on the WKUP_UART and complete successfully. After completing the tiboot3.bin is when we are seeing the random string of characters instead of the usual C's. After awhile however, we aren't seeing anything on the WKUP_UART after the random string of characters. I will share the capture I got from the digital analyzer.

    EVM_MAIN_UART0_tiboot3.zip

    -Lewis

  • Lewis,

    Can you confirm that WKUP_UART works okay without ECC enabling?
    Otherwise you will need to first sort out WKUP_UART.

    - Keerthy

  • Keerthy,

    We can boot both our custom hardware and the EVM with WKUP_UART only with ECC disabled. We are not able to boot when trying to enable in-line ECC.

    -Lewis

  • Okay. Thanks for confirming. I will work on getting this working on the EVM and get back to you.

    Best Regards,

    Keerthy