It doesn't work as well.. and then I see davinci_wdt structure already
defined with volatile keyword.
Regards,
Ari
From: "Paul Bartholomew" <[EMAIL PROTECTED]>
To: "'taruna54 taruna54'"
<[EMAIL PROTECTED]>,<[email protected]>
CC: <[EMAIL PROTECTED]>
Subject: RE: Resetting/restarting davinci
Date: Tue, 7 Nov 2006 08:20:36 -0500
Try using 'volatile' in your "davinci_wdt" declaration:
volatile davinci_timer_reg *davinci_wdt = (volatile
davinci_timer_reg *)
WDT_BASE_ADDR;
Without that, the compiler may change this:
davinci_wdt->wdtcr = 0xA5C64000;
davinci_wdt->wdtcr = 0xDA7E4000;
To this:
davinci_wdt->wdtcr = 0xDA7E4000;
- Paul
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf
Of
taruna54 taruna54
Sent: Tuesday, November 07, 2006 8:10 AM
To: [email protected]
Cc: [EMAIL PROTECTED]
Subject: RE:Resetting/restarting davinci
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
_________________________________________________________________
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