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.

TDA4 (PG1.1/HS) After erasing the image of MCU1_0 in NorFlash (all 0xFF), the image file can no longer be burned to NorFlash

Other Parts Discussed in Thread: DRA829, CCSTUDIO, UNIFLASH

Use XDS560 to burn the image in NorFlash, and the error result is as follows:

  • Hi,

    How are you flashing to the  NOR Flash? Which tool do you use?

    Regards,

    Karan

  • Hi Karan,

    The tool is USB560 v2 System Trace Blackhawk,Burn by running the following dss.bat script.

    Configuration file is launch.js  as follows:

    disableGelLoad = 0;
    // Set to 1 to use the firmware with Firewalls.
    if (disableGelLoad == 0)
    {
    //Path to GEL files
    //set CCS path
    gelFilePath = "C:\ti\ccs1000\ccs\ccs_base\emulation\pg1p1_hs_gel\J721E_DRA829_TDA4VMM";
    }


    //<!!!!!! EDIT THIS !!!!!>
    //package FileHandling;

    // Import the DSS packages into our namespace to save on typing
    importPackage(Packages.com.ti.debug.engine.scripting)
    importPackage(Packages.com.ti.ccstudio.scripting.environment)
    importPackage(Packages.java.lang)
    importPackage(Packages.java.io);
    importPackage(Packages.java.lang);
    //importPackage(java.io.File);
    // Import this class to handle errors
    //importPackage(Packages.java.io);

    // Import the Scanner class to read text files
    importPackage(Packages.java.util);

    function updateScriptVars()
    {
    debugServer.setConfig("config/NoGel_blackhawk_560.ccxml");
    //Open a debug session
    dsMCU1_0 = debugServer.openSession( ".*MCU_Cortex_R5_0" );
    }

    function printVars()
    {
    updateScriptVars();
    }

    function connectTargets()
    {
    /* Set timeout of 20 seconds */
    script.setScriptTimeout(200000);
    updateScriptVars();

    print("Connecting to MCU Cortex_R5_0!");

    // Connect the MCU R5F
    dsMCU1_0.target.connect();

    // Reset the R5F to be in clean state.
    dsMCU1_0.target.reset();

    dsMCU1_0.target.halt();
    //dsMCU1_0.expression.evaluate("J7ES_LPDDR4_4266MTs_Config()");
    }

    function flashOspi()
    {
    var configFileObj = new File("Configuration_SE.txt");

    print("Starting Flashing !");
    if (configFileObj.exists())
    {
    var scanner = new Scanner(configFileObj);

    var ospiOffset;
    var ospiFile;

    while (scanner.hasNextLine())
    {
    var data = scanner.nextLine();
    var parts = data.split(" ");
    ospiOffset = parseInt(parts[0], 16)
    ospiFile = parts[1];

    var file = new File(ospiFile);
    fileSize = file.length();

    dsMCU1_0.memory.writeWord(0x0, 0x80000000, ospiOffset);
    dsMCU1_0.memory.writeWord(0x0, 0x80000004, fileSize);
    //dsMCU1_0.memory.writeWord(0x0, 0x40F8042c, 0x40);

    dsMCU1_0.memory.loadRaw(0, 0x90000000, ospiFile, 32, false);

    print("Flashing "+ospiFile+" of size " + fileSize + " at offset " + ospiOffset);

    // Connect the MCU R5F
    dsMCU1_0.target.connect();
    dsMCU1_0.memory.readWord(0x0, 0x40F80018);

    print("Running the OSPI load program from R5!");
    // Load the board configuration init file.
    dsMCU1_0.target.reset();
    //print("after reset for SBL before load the programmer!\r\n");
    dsMCU1_0.memory.loadProgram("bin/uart_j721e_evm_flash_programmer_release.xer5f");
    //print("finish laod the uart binary!\r\n");
    // Halt the R5F and re-run.
    dsMCU1_0.target.halt();
    //print("after halt!\r\n");
    dsMCU1_0.target.reset();
    //print("after reset2!\r\n");
    dsMCU1_0.target.restart();
    //print("after restart!\r\n");
    // Run Synchronously for the executable to finish
    dsMCU1_0.target.run();
    //print("after run!\r\n");

    // Reset the R5F to be in clean state.
    dsMCU1_0.target.reset();
    //print("after reset3!\r\n");
    }
    scanner.close();
    }
    else
    {
    print("File Does not exist!");
    }
    }

    function disconnectTargets()
    {
    updateScriptVars();
    // Reset the R5F to be in clean state.
    dsMCU1_0.target.reset();
    }

    function doEverything()
    {
    printVars();
    connectTargets();
    disconnectTargets();
    flashOspi();
    print("Burning is complete, happy to go !!!");
    }

    var ds;
    var debugServer;
    var script;

    // Check to see if running from within CCSv4 Scripting Console
    var withinCCS = (ds !== undefined);

    // Create scripting environment and get debug server if running standalone
    if (!withinCCS)
    {
    // Import the DSS packages into our namespace to save on typing
    importPackage(Packages.com.ti.debug.engine.scripting);
    importPackage(Packages.com.ti.ccstudio.scripting.environment);
    importPackage(Packages.java.lang);

    importPackage(Packages.java.io);
    importPackage(Packages.java.lang);

    // Create our scripting environment object - which is the main entry point into any script and
    // the factory for creating other Scriptable ervers and Sessions
    script = ScriptingEnvironment.instance();

    // Get the Debug Server and start a Debug Session
    debugServer = script.getServer("DebugServer.1");
    }
    else // otherwise leverage existing scripting environment and debug server
    {
    debugServer = ds;
    script = env;
    }

    doEverything();

  • Hi,

        HS board has been programmed Ti key.In SE mode, an abnormal image is burned in the storage space of MCU1_0 and Jtag is locked. How to open jtag and burn again?

        Another aspect, Can the HS board be developed and debugged under FS? How to use it?

    Regards

  • Hi,

    Can you please provide update on this thread? Are you able to unlock the jtag and flash the OSPI on this device?

    Regards,

    Brijesh