]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
arm: imx: stop sata on boot
authorNikita Kiryanov <nikita@compulab.co.il>
Fri, 21 Nov 2014 10:47:26 +0000 (12:47 +0200)
committerStefano Babic <sbabic@denx.de>
Mon, 24 Nov 2014 11:10:08 +0000 (12:10 +0100)
Ideally, the Linux kernel should get the hardware in its most
untouched state. For the most part, U-Boot does not reset the various
subsystems it touches before boot, and usually Linux deals with it, but
on some boards (cm_fx6) the Linux kernel fails to detect the ssd
correctly if sata is used by U-Boot.

Power off sata on OS boot so that Linux will have a clean state to work
with.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Stefano Babic <sbabic@denx.de>
arch/arm/imx-common/cpu.c

index 8b2dfca6116d498e00a08047df96c0ce5781f2ab..b58df7da6fc1e3f992e2f5f5ad2e4b40afabb1ea 100644 (file)
@@ -18,6 +18,7 @@
 #include <asm/arch/crm_regs.h>
 #include <ipu_pixfmt.h>
 #include <thermal.h>
 #include <asm/arch/crm_regs.h>
 #include <ipu_pixfmt.h>
 #include <thermal.h>
+#include <sata.h>
 
 #ifdef CONFIG_FSL_ESDHC
 #include <fsl_esdhc.h>
 
 #ifdef CONFIG_FSL_ESDHC
 #include <fsl_esdhc.h>
@@ -201,13 +202,16 @@ u32 get_ahb_clk(void)
        return get_periph_clk() / (ahb_podf + 1);
 }
 
        return get_periph_clk() / (ahb_podf + 1);
 }
 
-#if defined(CONFIG_VIDEO_IPUV3)
 void arch_preboot_os(void)
 {
 void arch_preboot_os(void)
 {
+#if defined(CONFIG_CMD_SATA)
+       sata_stop();
+#endif
+#if defined(CONFIG_VIDEO_IPUV3)
        /* disable video before launching O/S */
        ipuv3_fb_shutdown();
        /* disable video before launching O/S */
        ipuv3_fb_shutdown();
-}
 #endif
 #endif
+}
 
 void set_chipselect_size(int const cs_size)
 {
 
 void set_chipselect_size(int const cs_size)
 {