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.

LPDDR4 init waits forever

Part Number: Am64x-SK

Tool/software:

Hello TI,


I am trying to initialize the LPDDR4 ram on the am64x-sk. I've set the swithes into the following boot mode according to the documentation:

DEV BOOT MODE

AM64X-EVM

This mode is used in conjunction with the load_dmsc_hsfs.js script described here SOC Initialization Using CCS Scripting,

BOOTMODE [ 0 : 7 ] (SW2) = 1101 1110
BOOTMODE [ 8 : 15 ] (SW3) = 0000 0000


And I got this output:

MAIN_Cortex_R5_0_0: Device Type is HSFS
MAIN_Cortex_R5_0_0: Running from R5 or A53
MAIN_Cortex_R5_0_0: Device Type is HSFS
MAIN_Cortex_R5_0_0: Running from R5 or A53
MAIN_Cortex_R5_0_0: Running from R5
MAIN_Cortex_R5_0_0: 

DDR not initialized with R5 connect.

Go to menu Scripts --> AM64 DDR Initialization -> AM64_DDR_Initialization_ECC_Disabled to initialize DDR.

====


MAIN_Cortex_R5_0_0: --->>> LPDDR4 Initialization is in progress ... <<<---
MAIN_Cortex_R5_0_0: --->>> ECC Enabled <<<---
MAIN_Cortex_R5_0_0: --->>> After priming ECC memory, enable ECC_CK bit with hotmenu AM64 DDR Memory config --> Enable_TI_InlineECC_CK_During_Reads()<<<---
MAIN_Cortex_R5_0_0: --->>> DDR controller programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR controller programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PI programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PI programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 0 programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 0 programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 1 programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 1 programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 0 programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 2 programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 1 programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 1 programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Address slice 2 programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 2 programming completed... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY programming in progress.. <<<---
MAIN_Cortex_R5_0_0: --->>> Set PHY registers for all FSPs simultaneously (multicast)... <<<---
MAIN_Cortex_R5_0_0: --->>> DDR PHY programming completed... <<<---
MAIN_Cortex_R5_0_0: Running from R5 or A53
MAIN_Cortex_R5_0_0: Debugging enabled
MAIN_Cortex_R5_0_0: Setting MAIN_PLL12_HSDIV0_CLKOUT_25MHz
MAIN_Cortex_R5_0_0: hsdiv_value: 63
MAIN_Cortex_R5_0_0: HSDIV reset asserted
MAIN_Cortex_R5_0_0: HSDIV divider value programmed.
MAIN_Cortex_R5_0_0: HSDIV reset de-asserted
MAIN_Cortex_R5_0_0: MAIN_PLL12_HSDIV0_CLKOUT set.
MAIN_Cortex_R5_0_0: --->>> Set DDR PLL to 25MHz for FSP F0... <<<---
MAIN_Cortex_R5_0_0: Triggering start bit from PI...
MAIN_Cortex_R5_0_0: --->>> DDR PI initialization started... <<<---
MAIN_Cortex_R5_0_0: Triggering start bit from CTL...
MAIN_Cortex_R5_0_0: --->>> DDR CTL initialization started... <<<---
MAIN_Cortex_R5_0_0: --->>> Inside DDR_Change_freq_ack function ... <<<---
MAIN_Cortex_R5_0_0: --->>> Waiting for first frequency change request ... <<<---



It is waiting forever and not working. 

  • Did you run the dmsc script prior to this as explained in this section https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_00_00_20/exports/docs/api_guide_am64x/EVM_SETUP_PAGE.html#EVM_SOC_INIT_NOBOOT_MODE:~:text=updated%20environment%20variable-,Run%20the%20SOC%20Initialization%20Script,-AM64X%2DEVM

    Can you post the scripting tool console output?  Can you also post the full CIO console output?

    Regards,

    James

  • Yes I run the script each time.

    On the one console I get this:

    js:> loadJSFile /home/sahag/ti/mcu_plus_sdk_am64x_09_01_00_41/tools/ccs_load/am64x/load_dmsc_hsfs.js
    Connecting to MCU Cortex_R5_0!
    Writing While(1) for R5F
    Running the board configuration initialization from R5!
    Happy Debugging!!
    


    and on the other one:
    DMSC Firmware Version 9.1.6--v09.01.06 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    [SCICLIENT] ABI check PASSED 
    [SCICLIENT] Board Configuration with Debug enabled ...
    [SCICLIENT] Common Board Configuration PASSED 
    [SCICLIENT] PM Board Configuration PASSED 
    [SCICLIENT] RM Board Configuration PASSED 
    [SCICLIENT] Security Board Configuration PASSED 
    
    DMSC Firmware Version 9.1.6--v09.01.06 (Kool Koala)
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting SOC Initialization ...
    Resetting self cluster ...



    Then I start a debug session with this configuration:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
        <configuration XML_version="1.2" id="configuration_0">
            <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
            <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
                <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510cortexA53.xml" id="drivers" xml="tixds510cortexA53.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510cortexR.xml" id="drivers" xml="tixds510cortexR.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510cortexM.xml" id="drivers" xml="tixds510cortexM.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510pru.xml" id="drivers" xml="tixds510pru.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510csstm.xml" id="drivers" xml="tixds510csstm.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510ctset2.xml" id="drivers" xml="tixds510ctset2.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds510etbcs.xml" id="drivers" xml="tixds510etbcs.xml" xmlpath="drivers"/>
                <platform XML_version="1.2" id="platform_0">
                    <instance XML_version="1.2" desc="AM64x_SK_EVM" href="boards/AM64x_SK_EVM.xml" id="AM64x_SK_EVM" xml="AM64x_SK_EVM.xml" xmlpath="boards"/>
                </platform>
            </connection>
        </configuration>
    </configurations>


    I get this output:
    MAIN_Cortex_R5_0_0: Device Type is HSFS
    MAIN_Cortex_R5_0_0: Running from R5 or A53
    MAIN_Cortex_R5_0_0: Device Type is HSFS
    MAIN_Cortex_R5_0_0: Running from R5 or A53
    MAIN_Cortex_R5_0_0: Running from R5
    MAIN_Cortex_R5_0_0: 
    
    DDR not initialized with R5 connect.
    
    Go to menu Scripts --> AM64 DDR Initialization -> AM64_DDR_Initialization_ECC_Disabled to initialize DDR.
    
    ====



    So I disable ECC and it waits forever:
    MAIN_Cortex_R5_0_0: --->>> LPDDR4 Initialization is in progress ... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR controller programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR controller programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PI programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PI programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 0 programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 0 programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 1 programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 1 programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 0 programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Data Slice 2 programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 1 programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 1 programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Address slice 2 programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY Address Slice 2 programming completed... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY programming in progress.. <<<---
    MAIN_Cortex_R5_0_0: --->>> Set PHY registers for all FSPs simultaneously (multicast)... <<<---
    MAIN_Cortex_R5_0_0: --->>> DDR PHY programming completed... <<<---
    MAIN_Cortex_R5_0_0: Running from R5 or A53
    MAIN_Cortex_R5_0_0: Debugging enabled
    MAIN_Cortex_R5_0_0: Setting MAIN_PLL12_HSDIV0_CLKOUT_25MHz
    MAIN_Cortex_R5_0_0: hsdiv_value: 63
    MAIN_Cortex_R5_0_0: HSDIV reset asserted
    MAIN_Cortex_R5_0_0: HSDIV divider value programmed.
    MAIN_Cortex_R5_0_0: HSDIV reset de-asserted
    MAIN_Cortex_R5_0_0: MAIN_PLL12_HSDIV0_CLKOUT set.
    MAIN_Cortex_R5_0_0: --->>> Set DDR PLL to 25MHz for FSP F0... <<<---
    MAIN_Cortex_R5_0_0: Triggering start bit from PI...
    MAIN_Cortex_R5_0_0: --->>> DDR PI initialization started... <<<---
    MAIN_Cortex_R5_0_0: Triggering start bit from CTL...
    MAIN_Cortex_R5_0_0: --->>> DDR CTL initialization started... <<<---
    MAIN_Cortex_R5_0_0: --->>> Inside DDR_Change_freq_ack function ... <<<---
    MAIN_Cortex_R5_0_0: --->>> Waiting for first frequency change request ... <<<---
    

  • Not quite sure what is going on.  Are you able to do this after the steps you already performed:

    -Connect to A53

    -Run Scripts->Power Sleep Controller-> Reset by Power Domain Controls ->PD_DDRSS_Reset

    -Run AM64 DDR Initialization->DDR Init

    This should initialize the LPDDR4 on the board.

    Regards,

    James