mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 22:51:37 +00:00
On LWMON we must use the watchdog to reset the board as the CPU
genereated HRESET pulse is too short to reset the external circuitry.
This commit is contained in:
parent
931da93e0f
commit
ed16fefcba
3 changed files with 37 additions and 1 deletions
|
@ -2,6 +2,10 @@
|
||||||
Changes for U-Boot 1.1.3:
|
Changes for U-Boot 1.1.3:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* On LWMON we must use the watchdog to reset the board as the CPU
|
||||||
|
genereated HRESET pulse is too short to reset the external
|
||||||
|
circuitry.
|
||||||
|
|
||||||
* Add test tool to exercise SDRAM accesses in burst mode
|
* Add test tool to exercise SDRAM accesses in burst mode
|
||||||
(as standalone program, MPC8xx/PowerPC only)
|
(as standalone program, MPC8xx/PowerPC only)
|
||||||
|
|
||||||
|
|
3
Makefile
3
Makefile
|
@ -1651,7 +1651,8 @@ clean:
|
||||||
| xargs rm -f
|
| xargs rm -f
|
||||||
rm -f examples/hello_world examples/timer \
|
rm -f examples/hello_world examples/timer \
|
||||||
examples/eepro100_eeprom examples/sched \
|
examples/eepro100_eeprom examples/sched \
|
||||||
examples/mem_to_mem_idma2intr examples/82559_eeprom
|
examples/mem_to_mem_idma2intr examples/82559_eeprom \
|
||||||
|
examples/test_burst
|
||||||
rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
|
rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
|
||||||
rm -f tools/mpc86x_clk tools/ncb
|
rm -f tools/mpc86x_clk tools/ncb
|
||||||
rm -f tools/easylogo/easylogo tools/bmp_logo
|
rm -f tools/easylogo/easylogo tools/bmp_logo
|
||||||
|
|
|
@ -463,6 +463,8 @@ void upmconfig (uint upm, uint * table, uint size)
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#ifndef CONFIG_LWMON
|
||||||
|
|
||||||
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
ulong msr, addr;
|
ulong msr, addr;
|
||||||
|
@ -497,6 +499,32 @@ int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else /* CONFIG_LWMON */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* On the LWMON board, the MCLR reset input of the PIC's on the board
|
||||||
|
* uses a 47K/1n RC combination which has a 47us time constant. The
|
||||||
|
* low signal on the HRESET pin of the CPU is only 512 clocks = 8 us
|
||||||
|
* and thus too short to reset the external hardware. So we use the
|
||||||
|
* watchdog to reset the board.
|
||||||
|
*/
|
||||||
|
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
|
{
|
||||||
|
/* prevent triggering the watchdog */
|
||||||
|
disable_interrupts ();
|
||||||
|
|
||||||
|
/* make sure the watchdog is running */
|
||||||
|
reset_8xx_watchdog ((immap_t *) CFG_IMMR);
|
||||||
|
|
||||||
|
/* wait for watchdog reset */
|
||||||
|
while (1) {};
|
||||||
|
|
||||||
|
/* NOTREACHED */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_LWMON */
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -558,6 +586,9 @@ void watchdog_reset (void)
|
||||||
if (re_enable)
|
if (re_enable)
|
||||||
enable_interrupts ();
|
enable_interrupts ();
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_WATCHDOG */
|
||||||
|
|
||||||
|
#if defined(CONFIG_WATCHDOG) || defined(CONFIG_LWMON)
|
||||||
|
|
||||||
void reset_8xx_watchdog (volatile immap_t * immr)
|
void reset_8xx_watchdog (volatile immap_t * immr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue