Hi Peter,
I tried with the same code but it didn't work.
Then I came to know that there is a slicon bug so it doesn't actually
reset the processor through watchdog.
Then I tried with the workaround which is the code I mentioned in
previous mail.
Perviously on one of the board it was working but on other board, same
kernel image doesn't perform reboot.
So what can be the solution ?
Thanks,
Sweta
Peter Wippich wrote:
Hi Sweta,
here is the code from the 2.6.19 kernel. Maybe this helps :
void davinci_watchdog_reset(void) {
volatile davinci_timer_regs_t *davinci_wdt =
(volatile davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_WDOG_BASE);
davinci_wdt->tcr = 0x0; /* disable timer */
davinci_wdt->tgcr = 0x0; /* reset timer */
davinci_wdt->tgcr = 0x8; /* configure timer2 as 64-bit */
davinci_wdt->tgcr |= 0x3; /* release timer from reset */
davinci_wdt->tim12 = 0; /* clear counter and period regs */
davinci_wdt->tim34 = 0;
davinci_wdt->prd12 = 0;
davinci_wdt->prd34 = 0;
davinci_wdt->wdtcr |= 0x4000; /* enable watchdog timer */
/* put watchdog in pre-active state */
davinci_wdt->wdtcr = 0xA5C64000;
/* put watchdog in active state */
davinci_wdt->wdtcr = 0xDA7E4000;
/* write an invalid value to the WDKEY field to trigger
* a watchdog reset */
davinci_wdt->wdtcr = 0x00004000;
}
On Fri, 29 Dec 2006, [EMAIL PROTECTED] wrote:
Hi Peter,
I m using Montavista Linux 2.6.10 (mvl402).
reboot code as mentioned in mail is executed properly.but then after
this line davinci_wdt->wdtcr = 0x00004000;, it doesn't execute next
statement (I tried with putting printk statement after it).
Doe it mean that it resets watchdog correctly.
But then it doesn't reset the processor & doesn't start execution of UBL
code again.
What can be the problem ?
Thanks,
Sweta
Hi Sweta,
which kernel are you using ?? It works with the 2.6.19 Kernel from GIT
tree.
Ciao,
Peter
On Thu, 28 Dec 2006, [EMAIL PROTECTED] wrote:
Hi All,
I want to reset the Davinci pocessor using watchdog timer.
So when I give reboot command from kernel, it hangs & doesn't actually
reset the processor.
code for watchdog rest in kernel is as follows :
void davinci_watchdog_reset(void) {
volatile davinci_timer_regs_t *davinci_wdt = (volatile
davinci_timer_regs_t *)IO_ADDRESS(DAVINCI_WDOG_BASE);
davinci_wdt->tcr = 0x0; /* disable timer */
davinci_wdt->tgcr = 0x0; /* reset timer */
davinci_wdt->tgcr = 0x8; /* configure timer2 as 64-bit */
davinci_wdt->tgcr |= 0x3; /* release timer from reset */
davinci_wdt->tim12 = 0; /* clear counter and period regs
*/
davinci_wdt->tim34 = 0;
davinci_wdt->prd12 = 0;
davinci_wdt->prd34 = 0;
davinci_wdt->tcr |= 0x00000040;
davinci_wdt->wdtcr |= 0x4000; /* enable watchdog timer */
*(volatile unsigned int *)(0x01c41a20) = 0x00000000;
/* put watchdog in pre-active state */
davinci_wdt->wdtcr = 0xA5C64000;
/* put watchdog in active state */
davinci_wdt->wdtcr = 0xDA7E4000;
/* write an invalid value to the WDKEY field to trigger* a
watchdog
reset */
davinci_wdt->wdtcr = 0x00004000;
}
But it hangs & doesn't actually reset the processor.
I tried with reset commnad from u-boot loader also. It also gives me the
same result.
Can anyone Help me out to debug what is wrong ?
Thanks in advance,
-Sweta
eInfochips Business Disclaimer:
This message may contain confidential, proprietary or legally Privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, Disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by eInfochips Limited and/or eInfochips Inc("eInfochips") unless sent with that express intent and with due authority of eInfochips. eInfochips has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email.
| Peter Wippich Voice: +49 30 46776411 |
| G&W Instruments GmbH fax: +49 30 46776419 |
| Gustav-Meyer-Allee 25, Geb. 12 Email: [EMAIL PROTECTED] |
| D-13355 Berlin / Germany |
- This message has been scanned for viruses, spam and dangerous content by www.CleanMailGateway.com, and is believed to be clean.
eInfochips Business Disclaimer:
This message may contain confidential, proprietary or legally Privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, Disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by eInfochips Limited and/or eInfochips Inc("eInfochips") unless sent with that express intent and with due authority of eInfochips. eInfochips has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email.
eInfochips Business Disclaimer:
This message may contain confidential, proprietary or legally Privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, Disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by eInfochips Limited and/or eInfochips Inc("eInfochips") unless sent with that express intent and with due authority of eInfochips. eInfochips has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email.
|