diff --git a/board/freescale/common/fsl_sys_rev.c b/board/freescale/common/fsl_sys_rev.c
index 0caa85901b4cd21124803ce004a14fb80d2e5635..19a0347208450610428134f73fa372e15a034355 100644
--- a/board/freescale/common/fsl_sys_rev.c
+++ b/board/freescale/common/fsl_sys_rev.c
@@ -1,6 +1,6 @@
 /*
  * Freescale system chip & board version define
- * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ * Copyright (C) 2012-2013 Freescale Semiconductor, Inc.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -118,8 +118,20 @@ void fsl_set_system_rev(void)
 	}
 #endif
 }
+
+int cpu_is_mx6q()
+{
+	if (fsl_system_rev != NULL)
+		fsl_set_system_rev();
+	return (((fsl_system_rev & 0xff000)>>12) == 0x63);
+}
 #else
 void fsl_set_system_rev(void)
 {
 }
+
+int cpu_is_mx6q()
+{
+	return 0;
+}
 #endif
diff --git a/board/freescale/mx6q_arm2/mx6q_arm2.c b/board/freescale/mx6q_arm2/mx6q_arm2.c
index a68720ddf7845a3336869a4a5737e13a1fc76293..4f0ea8c7cb2903e5cbe99f69e3e6b439b5c9503a 100644
--- a/board/freescale/mx6q_arm2/mx6q_arm2.c
+++ b/board/freescale/mx6q_arm2/mx6q_arm2.c
@@ -1256,7 +1256,8 @@ int board_init(void)
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
 	setup_uart();
-	setup_sata();
+	if (cpu_is_mx6q())
+		setup_sata();
 
 #ifdef CONFIG_VIDEO_MX5
 
@@ -1481,7 +1482,9 @@ int checkboard(void)
 	if (check_hab_enable() == 1)
 		get_hab_status();
 #endif
-    printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+	if (cpu_is_mx6q())
+		printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+							+ PORT_PHY_CTL)
 			& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
 
 	return 0;
diff --git a/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c b/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
index 34edc0453e626e812285136def7a7580597f9c07..c8834f602405c122a510543952830350bd4c7a8e 100644
--- a/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
+++ b/board/freescale/mx6q_hdmidongle/mx6q_hdmidongle.c
@@ -1203,7 +1203,8 @@ int board_init(void)
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
 	setup_uart();
-	setup_sata();
+	if (cpu_is_mx6q())
+		setup_sata();
 
 #ifdef CONFIG_VIDEO_MX5
 	/* Enable lvds power */
@@ -1434,7 +1435,9 @@ int checkboard(void)
 		printf("UNKNOWN\n");
 		break;
 	}
-    printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+	if (cpu_is_mx6q())
+		printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+							+ PORT_PHY_CTL)
 			& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
 	return 0;
 }
diff --git a/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c b/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
index 4229c69b5cb2119628176dda8dbcaff926fc5b59..8577cdf0d21d8611fcee024bec9267083185e55f 100644
--- a/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
+++ b/board/freescale/mx6q_sabreauto/mx6q_sabreauto.c
@@ -1034,7 +1034,8 @@ int board_init(void)
 #ifdef CONFIG_CMD_WEIMNOR
 	setup_nor();
 #endif
-	setup_sata();
+	if (cpu_is_mx6q())
+		setup_sata();
 
 #ifdef CONFIG_VIDEO_MX5
 	panel_info_init();
@@ -1217,7 +1218,9 @@ int checkboard(void)
 		printf("UNKNOWN\n");
 		break;
 	}
-    printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+	if (cpu_is_mx6q())
+		printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+							+ PORT_PHY_CTL)
 			& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
 	return 0;
 }
diff --git a/board/freescale/mx6q_sabresd/mx6q_sabresd.c b/board/freescale/mx6q_sabresd/mx6q_sabresd.c
index 57173a426086308d8fd4907133e51d7a1425bda6..6b603e83c7d15b44bf6386a90eefedba9252855c 100644
--- a/board/freescale/mx6q_sabresd/mx6q_sabresd.c
+++ b/board/freescale/mx6q_sabresd/mx6q_sabresd.c
@@ -1755,7 +1755,8 @@ int board_init(void)
 	gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
 	setup_uart();
-    setup_sata();
+	if (cpu_is_mx6q())
+		setup_sata();
 
 #ifdef CONFIG_VIDEO_MX5
 	/* Enable lvds power */
@@ -1995,7 +1996,9 @@ int checkboard(void)
 		break;
 	}
 
-    printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR + PORT_PHY_CTL)
+	if (cpu_is_mx6q())
+		printf("SATA PDDQ: %s\n", ((readl(SATA_ARB_BASE_ADDR
+							+ PORT_PHY_CTL)
 			& PORT_PHY_CTL_PDDQ_LOC)>>20) ? "enabled" : "disabled");
 #ifdef CONFIG_SECURE_BOOT
 	if (check_hab_enable() == 1)
diff --git a/include/asm-arm/arch-mx6/mx6.h b/include/asm-arm/arch-mx6/mx6.h
index 45381e24fec3b5f8d2bd99de694bcbb174e2303d..54eeddf970660efa83d2405da4e3207a42f49787 100644
--- a/include/asm-arm/arch-mx6/mx6.h
+++ b/include/asm-arm/arch-mx6/mx6.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2013 Freescale Semiconductor, Inc. All Rights Reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -815,6 +815,7 @@ extern unsigned int get_board_rev(void);
 extern int is_soc_rev(int rev);
 extern enum boot_device get_boot_device(void);
 extern void fsl_set_system_rev(void);
+extern int cpu_is_mx6q(void);
 
 #endif /* __ASSEMBLER__*/