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
					
				|  | @ -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…
	
		Reference in New Issue