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.

AM/DM3730 custom board boot problem

Other Parts Discussed in Thread: FLASHTOOL, DM3730

Hi all,

We are made a new am/dm3730 custom board referenced Mistral's am/dm3730 omap3 evm and i am trying to boot it. In our board we have 1 uart port (UART3), SD/MMC interface, USB interface. I prepare X-loader and u-boot binaries which using UART3 port and try to boot from SD Card, but nothing is done. Than i tried to boot from UART3 with Flashtool 1.6 but our board didnt sent any ASIC ID, so i couldnt boot from UART. Only I can connect the board from JTAG with BlackHawk USB 560m with gel files from ti.wiki (http://processors.wiki.ti.com/index.php/OMAP_and_Sitara_CCS_support). All i can do only write something to gel files. I thought to configure UART3 and send a few character to  find the hardware bugs. And add the lines below. But couldnt reach L4 PER UART3 registers. What can i do to boot the EVM? Is there any diagnostic project which could run alone and competible with CCS3.3 to load from JTAG (not ITBOK, because it need u-boot to run). Or how can access to UART3 with gel files? 

Need your help friends,

Best regards,

Ahmet


menuitem "UART3 Debug"

hotmenu Uart3_Debug()
{
    /*enable the function clock for UART3 */
    *(int*)0x48005000 |= 0x00000800; /*CM_FCLKEN_PER*/
    /*enable the interface clock for UART3 */
    *(int*)0x48005010 |= 0x00000800; /*CM_ICLKEN_PER*/    

    /* RESET OF UART */
    *(int*)0x49020020 = 0x07; /*UART_REG_MDR1*/
        while ( ((*(int*)0x49020020) & 0x07));  /*while (UART_REG_MDR1 != UART_RESET_MODE) ;     wait for reset */

    /* UART CONFIGURATION */
    *(int*)0x4902000C = 0xBF; /*UART_REG_LCR*/
    *(int*)0x49020008 |= (1 << 4); /*UART_REG_EFR*/
    *(int*)0x4902000C = 0x83; /*UART_REG_LCR*//*UART_115200 - UART_DATABITS_8 - UART_STOPBITS_1 - UART_STOPBITS_1*/
    *(int*)0x49020010 = (1 << 6); /*UART_REG_MCR*/
    *(int*)0x4902001C = 0x00; /*UART_REG_TLR*/
    *(int*)0x49020008 = 0x87; /*UART_REG_FCR*//* 56 byte RX FIFO and 8 byte TX FIFO */
    *(int*)0x49020000 = 0x1A; /*UART_REG_DLL*//*UART_115200*/
    *(int*)0x49020004 = 0x00; /*UART_REG_DLH*//*UART_115200*/
    *(int*)0x4902000C &= 0x7F; /*UART_REG_LCR*/
    *(int*)0x49020008; /*UART_REG_IIR*/
    *(int*)0x49020004 = 0x00; /*UART_REG_IER*/
    *(int*)0x49020020 = 0x00; /*UART_REG_MDR1*//*UART_MODE*/
    GEL_TextOut("UART3 Configured as 115200_8_N_1 \n");

    /*Put Char*//*SPCA TEST*/
        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x53;/*UART_REG_THR*//*S*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x50;/*UART_REG_THR*//*P*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x43;/*UART_REG_THR*//*C*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x41;/*UART_REG_THR*//*A*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x20;/*UART_REG_THR*//* */

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x54;/*UART_REG_THR*//*T*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x45;/*UART_REG_THR*//*E*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x53;/*UART_REG_THR*//*S*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x54;/*UART_REG_THR*//*T*/

        while (((*(int*)0x49020014) & 0x20) == 0); /*while ((UART_REG_LSR(b) & LSR_THR_EMPTY) == 0) ;*/
    *(int*)0x49020000 = 0x0A;/*UART_REG_THR*//*\n*/

    GEL_TextOut("'SPCA TEST' is written to UART3 Port\n");
    GEL_TextOut("Wait for Enter from Host Device... \n");

    /*Get Char*//*Wait for Enter*/
    while(1)
    {
        while (((*(int*)0x49020014) & 0x01) == 0) ;/*while ((UART_REG_LSR(b) & LSR_DATA_READY) == 0) ;*/
        if((*(int*)0x49020000) == 0x0D) break;
    }
    GEL_TextOut("SPCA UART3 Test Succeed..:) \n");
}