Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
U-Boot
Custodians
RISC-V U-Boot Custodian Tree
Commits
ed16fefc
Commit
ed16fefc
authored
May 09, 2005
by
wdenk
Browse files
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.
parent
931da93e
Changes
3
Hide whitespace changes
Inline
Side-by-side
CHANGELOG
View file @
ed16fefc
...
...
@@ -2,6 +2,10 @@
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
(as standalone program, MPC8xx/PowerPC only)
...
...
Makefile
View file @
ed16fefc
...
...
@@ -1651,7 +1651,8 @@ clean:
| xargs
rm
-f
rm
-f
examples/hello_world examples/timer
\
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/mpc86x_clk tools/ncb
rm
-f
tools/easylogo/easylogo tools/bmp_logo
...
...
cpu/mpc8xx/cpu.c
View file @
ed16fefc
...
...
@@ -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
[])
{
ulong
msr
,
addr
;
...
...
@@ -497,6 +499,32 @@ int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
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
)
enable_interrupts
();
}
#endif
/* CONFIG_WATCHDOG */
#if defined(CONFIG_WATCHDOG) || defined(CONFIG_LWMON)
void
reset_8xx_watchdog
(
volatile
immap_t
*
immr
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment