diff options
| -rw-r--r-- | common/cmd_bootm.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index f701ab6f7..da38c322a 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -36,6 +36,10 @@  #include <lmb.h>  #include <asm/byteorder.h> +#if (CONFIG_COMMANDS & CFG_CMD_USB) +#include <usb.h> +#endif +  #ifdef CFG_HUSH_PARSER  #include <hush.h>  #endif @@ -213,6 +217,20 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])  	 */  	iflag = disable_interrupts(); +#if (CONFIG_COMMANDS & CFG_CMD_USB) +       /* +        * turn off USB to prevent the host controller from writing to the +        * SDRAM while Linux is booting. This could happen (at least for OHCI +        * controller), because the HCCA (Host Controller Communication Area) +        * lies within the SDRAM and the host controller writes continously to +        * this area (as busmaster!). The HccaFrameNumber is for example +        * updated every 1 ms within the HCCA structure in SDRAM! For more +        * details see the OpenHCI specification. +        */ +	usb_stop(); +#endif + +  #ifdef CONFIG_AMIGAONEG3SE  	/*  	 * We've possible left the caches enabled during |