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.

TIDM368 IPNC执行reboot后不能启动成功!



TIDM368 IPNC执行reboot后不能启动:

Sending all processes the KILL signal... Done. #这是执行reboot

Starting reboot command: reboot

Rebooting...

Restarting system.

.

DM36x initialization passed!

TI UBL Version: 1.50

Booting Catalog Boot Loader

BootMode = NAND

Starting NAND Copy... #将程序从FLASH拷贝到DDR RAM中运行。

Valid magicnum, 0xA1ACED66, found in block 0x00000008.

   DONE

Jumping to entry point at 0x81080000.

 DM368_IPNC_UBL_1.0.0

U-Boot 1.3.4 (Dec 16 2010 - 21:38:22) DM368-IPNC-1.0.0 #交权给uboot

I2C:   ready

DRAM:  128 MB

NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!! #timeout发生在copy的过程中,这表明是u-boot init NAND flash有问题。

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

Bad block table not found for chip 0

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

Bad block table found at page 65408, version 0x01

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

TTTTTTTTTTTTTTTTEDMA_Read8 timeout!!

Bad block table written to 0x07fe0000, version 0x01

128 MiB

TTTTTTTTTTTTTT

第一次的对策由TI的第三方Appro公司的的george给出:

他的建议是:正常的reboot程序,請參考

ipnc_app/network/boa-0.94.13/src/appro_api.c 中的 void restart_ipcam(.....){} 的寫法

關於reboot_ipnc,可以參照上述function

自行修改 ipnc_app/interface/src/reboot_ipnc.c

我把code paste here

void restart_ipcam(void)

{

char cmd[64];

int dev_fp;

void *pMem_map;

unsigned long phyAddr= 0x01C41000;

unsigned long length = 0xAE0;

unsigned int *pPSCCtrl = NULL;

unsigned int *pPTCMD = NULL;

if ((dev_fp=open("/dev/mem",O_RDWR|O_SYNC))==-1)

{

return ;

}

pMem_map=mmap((void *)phyAddr,length,PROT_READ|PROT_WRITE|PROT_EXEC,MAP_SHARED, dev_fp,phyAddr);

if (pMem_map!=(void *)phyAddr)

{

return ;

}

pPTCMD  = (unsigned int *)( (char *)pMem_map+0x120);

pPSCCtrl  = (unsigned int *)( (char *)pMem_map+0xA00);

//EDMA 

*(pPSCCtrl+0)  = 2;

*pPTCMD  = 1;

usleep(5000);

//EDMA 

*(pPSCCtrl+1)  = 2;

*pPTCMD  = 1;

usleep(5000);

//EDMA 

*(pPSCCtrl+2)  = 2;

*pPTCMD  = 1;

usleep(5000);

//EDMA 

*(pPSCCtrl+3)  = 2;

*pPTCMD  = 1;

usleep(5000);

//EDMA 

*(pPSCCtrl+4)  = 2;

*pPTCMD  = 1;

usleep(5000);

//VPSS 

*(pPSCCtrl+47)  = 2;

*pPTCMD  = 1;

usleep(5000);

//MJCP 

*(pPSCCtrl+50)  = 2;

*pPTCMD  = 1;

usleep(5000);

//HDVICP 

*(pPSCCtrl+51)  = 2;

*pPTCMD  = 1;

usleep(5000);

if( pMem_map )

munmap(pMem_map, length);

if( dev_fp >= 0)

close(dev_fp);

sprintf(cmd, "/sbin/shutdown -r now");

system(cmd);

return;

}

从程序来看,只是做了一个munmap的动作,似乎多此一举。而且,我实测的结果是,这样可能会导致reboot根本无法成功,就是说,reboot都无法用了。

对策二:用watchdog来复位。

实测的结果是:30次会发生约1次不成功,也就是说,仍然有机率复位不成功。

  • It looks like you are using very old version of UBL, uboot and system code.

    we had fixed this hanging DMA issue in later version.can you please migrate to latest version

    please check with Appro for downalod or software upgradees

    Regards,

    Raghu

  • I updated to ipnc ubl 2.1.0 + u-boot 1.0(the uboot is same as previous ipnc 2.0), the emda_timeout iusse seems fix, but ubl hangup with watchdog reset. Following is the log,

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...                 # hangup there

     

    Normal boot log is

    DM36x initialization passed!          # normal TI UBL Base Version: 1.50 Boot Loader BootMode = NAND Starting NAND Copy... Valid magicnum, 0xA1ACED66, found in block 0x00000008. Boot Mode Task Completed

    IPNC UBL Version: 2.1.0 Platform: DM368-432

    Jumping to entry point at 0x81080000

    U-Boot 1.3.4 (Apr 20 2010 - 11:42:44) DM368-IPNC-1.0.0

    ...............................

    ...............................

  • Hi Won,

    I got the same problem as yours. Have you gotten a solution on it?

    Thanks,

    Ben

  • I have the same problem with you, and my flash_utils_dm36x is the same as flash_utils_dm36x_2.1.0.zip,

    Do you have some method to avoid it?