Hi Loc,

I just downloaded the lattest u-boot binary and source from dvevmupdates. Using u-boot-594-nand.bin, I do reset in u-boot prompt and then it goes:

ARM Clock :- 283MHz
DDR Clock :- 189MHz
Hit any key to stop autoboot:  0
DaVinci EVM #
ÀaVinci EVM # reset
Booting PSP Boot Loader

And it just hange there. Then I compiled u-boot from the lattest source (u-boot-upgrade.tar, and make it work in nand mode).. it also gave the same response.. Then I modified the file board/davinci/timer.c based on your recomendation.. on reset_processor() function..

void reset_processor(void)
{
davinci_timer_reg *davinci_wdt = (davinci_timer_reg *) WDT_BASE_ADDR;
       davinci_wdt->tgcr   = 0x00000008;
       davinci_wdt->tgcr  |= 0x00000003;
       davinci_wdt->tim12  = 0x00000000;
       davinci_wdt->tim34  = 0x00000000;
       davinci_wdt->prd12  = 0x00000000;
       davinci_wdt->prd34  = 0x00000000;
       davinci_wdt->tcr   |= 0x00000040;
       davinci_wdt->wdtcr |= 0x00004000;

*(volatile unsigned int *)(0x01c41a20) = 0x00000000; // the silicon bug workaround

       davinci_wdt->wdtcr  = 0xA5C64000;
       davinci_wdt->wdtcr  = 0xDA7E4000;
}

But still it's not working well. Is my register clear line already in the correct place?

Regards,
Ari


From: "Truong, Loc" <[EMAIL PROTECTED]>
To: <[email protected]>
Subject: RE:Resetting/restarting davinci
Date: Mon, 6 Nov 2006 11:01:24 -0600


There's a silicon bug that requires the register at 0x01c41a20 needs to
be cleared first thing. This code is already in the u-boot that we
supplied. Check the latest version at www.ti.com/dvevmupdates.
Regards,
Loc

--------------------------------------------------------
Message: 1
Date: Mon, 06 Nov 2006 17:23:02 +0800
From: "taruna54 taruna54" <[EMAIL PROTECTED]>
Subject: Resetting/restarting davinci
To: [email protected]
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; format=flowed

Dear all,

I have problem on implementing software reset on Davinci.
I made modification to my boot loader to implement reset..
basically using watch dog timer..
So, I use this code:

do_reset()
{
    disable_interrupts ();

    // watchdog timer enabling sequence
    wdt_timer->tgcr  = 0xB;          // timmode = 2h, tim12rs = 1h,
tim34rs
= 1h
    wdt_timer->wdtcr = 0xA5C64000;   // WDEN = 1, wdkey = A5C6h
    wdt_timer->wdtcr = 0xDA7E4000;   // WDEN = 1, wdkey = DA7Eh

    while (1);      // loop until reboot
    /* will not reach this line */
    return (0);
}


It seemed ok at first, the board restart, but then the davinci will
stuck on
waiting for power transition to finish (reading on PSC_PTSTAT
register)..
More specifically, it's on the following line:

          /* start the state transition for modules in ALWAYSON power
domain
*/
          *(volatile unsigned int*) PTCMD = 1;
          /* Wait for PTSTAT.GOSTAT0 to clear to 0x0 */
          while(! (((*(volatile unsigned int*) PTSTAT ) & 0x00000001) ==
0));
   // never stop..

Anybody has an idea? Is using watchdog timer to reset davinci will be a
good
idea?

Many thanks,

Ari


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_________________________________________________________________
Find just what you are after with the more precise, more powerful new MSN Search. http://search.msn.com.sg/ Try it now.

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to