
The patch below adds support for a board specific reset function for ppc4xx CPUs. This is useful, for example, in systems with a Xilinx FPGA which contains a PPC405 processor and is configured by a Xilinx SystemACE controller. The board specific reset function can instruct the SystemACE to reload the FPGA configuration bitstream, effectively resetting the system.
diff --git a/CHANGELOG b/CHANGELOG index c774dd0..26fc5cc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ Changes since U-Boot 1.1.4: ======================================================================
+* Add support for a board specific reset function for PPC4XX CPUs. + Patch by Keith Outwater, 04 May 2006 + * Coding Style cleanup
* Write RTC seconds first to maintain settings integrity per diff --git a/README b/README index 3ffef62..8c7fdb2 100644 --- a/README +++ b/README @@ -1312,6 +1312,11 @@ The following options need to be configu SPI configuration items (port pins to use, etc). For an example, see include/configs/sacsng.h.
+- Board Specific Reset Function: CONFIG_BSP_RESET (ppc4xx) + Specify that a board specific function will reset the board. + If defined, the function bsp_do_reset() will be called with + the same args and return value as do_reset(). + - FPGA Support: CONFIG_FPGA_COUNT
Specify the number of FPGA devices to support. diff --git a/cpu/ppc4xx/cpu.c b/cpu/ppc4xx/cpu.c index 0cd72b0..14b42be 100644 --- a/cpu/ppc4xx/cpu.c +++ b/cpu/ppc4xx/cpu.c @@ -116,6 +116,10 @@ #if defined(CONFIG_440) static int do_chip_reset(unsigned long sys0, unsigned long sys1); #endif
+#if defined(CONFIG_BSP_RESET) +extern void bsp_do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); +#endif +
int checkcpu (void) { @@ -300,6 +304,11 @@ #endif /* !defined(CONFIG_405) */
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { +#if defined(CONFIG_BSP_RESET) + bsp_do_reset(cmdtp, flag, argc, argv); + return 1; +#else + #if defined(CONFIG_YOSEMITE) || defined(CONFIG_YELLOWSTONE) /*give reset to BCSR*/ *(unsigned char*)(CFG_BCSR_BASE | 0x06) = 0x09; @@ -317,6 +326,7 @@ #else #endif
#endif/* defined(CONFIG_YOSEMITE) || defined(CONFIG_YELLOWSTONE)*/ +#endif /* #if defined(CONFIG_BSP_RESET) */ return 1; }
Signed-off-by: Keith Outwater outwater4@comcast.net