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");
}