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.

Linux/AM5728: Boot hangs in MLO

Part Number: AM5728


Tool/software: Linux

Hi,

I use ti-processor-sdk-linux-am57xx-evm-02.00.02.11 to boot my own AM5728 board, and it is successful.

Recently I would like to update the Processor SDK version, and downloaded ti-processor-sdk-linux-am57xx-evm-04.00.00.04. I changed some configurations to adapt my board, and build the u-boot-2017.01+gitAUTONIC+9fd60700db-g9fd60700db. Then I could not get any message from UART.

I traced the MLO code by setting LED on my board. And I found this CPU module stucking in below source code:
==========================================================
clrsetbits_le32((*ctrl)->ctrl_core_sma_sw_0, CTRL_ISOLATE_MASK,
isolate << CTRL_ISOLATE_SHIFT);
========================================================== 

I have read https://e2e.ti.com/support/arm/automotive_processors/f/1020/p/582534/2191388. However, I don't think my hardware is broken, because I can boot it up by another MLO and u-boot which are old version files.

Could someone give me some advices please? Thanks.

  • The software team have been notified. They will respond here.
  • Hello carolyn,

    Have you checked your DDR timings? Please, check this thread.

    Best regards,
    Kemal

  • Hi, 

    In addition to Kemal's response. 

    Could you summarize what modifications did you make in the u-boot-2017.01+gitAUTONIC+9fd60700db-g9fd60700db?

    Also can you enable the debug output in u-boot? Add #define DEBUG in am57xx_evm.h & share the output.

    Best Regards,
    Yordan

  • Hi, Kemal & Yordan,
    It happened before do_set_mux32, so I could not get any message or output from UART even I added "#define DEBUG" in h files. Thanks.
  • Hi, Kernal & Yordan,

    I tested the uboot again today. The error is happened in 'arch/arm/mach-omap2/hwinit-common.c::early_system_init::prcm_init'.

    Since we used UART1 as UART output:
    1. I had modified early_padconf, changed UART2 to UART1.
    2. I changed CONS_INDEX from “default 3” to ”default 1” in board/ti/am57xx/Kconfig.
    3. I changed #define CONSOLEDEV "ttyO2" to "ttyO0" in am57xx_evm.h.
    4. I had modified arch/arm/mach-omap2/omap5/hw_data.c::ioregs_dra7xx_es1, because DDR3 in our board don't need ECC.
    5. I added #define DEBUG in am57xx_evm.h.
    6. I changed 'prompt “Architecture select”' from 'default SANBOX' to 'default ARM' in arch/Kconfig

    And I didn't get any message from UART. I had check the regisiters of UART, both the clock and the pin mux of UART1 are ok. The MLO is hanged in 'arch/arm/mach-omap2/clocks-common.c::prcm_init::scale_vcores::recalibrate_iodelay', the CPU module was stucking in below source code:
    ==========================================================
    clrsetbits_le32((*ctrl)->ctrl_core_sma_sw_0, CTRL_ISOLATE_MASK,
    isolate << CTRL_ISOLATE_SHIFT);
    ==========================================================

    I have no idea about this problem. Could you give me some advices please? Thanks.
  • Hi,
    I have sloved the problem. I recompiled the dtb file in u-boot 2017.01, and changed the old dtb which is compiled by u-boot 2016.05 with the new one. And I started the kernel now.
    Could someone tell me why the old dtb file is useless? Thanks.