[U-Boot] [PATCH V2 2/3] orion5x: add ide support for Marvell SATA
Albert Aribaud
albert.aribaud at free.fr
Tue Jul 6 17:59:08 CEST 2010
Signed-off-by: Albert Aribaud <albert.aribaud at free.fr>
---
arch/arm/include/asm/arch-orion5x/orion5x.h | 20 ++++++++++++++++++++
common/cmd_ide.c | 4 ++++
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/arch-orion5x/orion5x.h b/arch/arm/include/asm/arch-orion5x/orion5x.h
index 4008c84..11de968 100644
--- a/arch/arm/include/asm/arch-orion5x/orion5x.h
+++ b/arch/arm/include/asm/arch-orion5x/orion5x.h
@@ -55,6 +55,26 @@
#define ORION5X_USB20_PORT0_BASE (ORION5X_REGISTER(0x50000))
#define ORION5X_USB20_PORT1_BASE (ORION5X_REGISTER(0xA0000))
#define ORION5X_EGIGA_BASE (ORION5X_REGISTER(0x72000))
+#define ORION5X_SATA_BASE (ORION5X_REGISTER(0x80000))
+#define ORION5X_SATA_PORT0_OFFSET 0x2000
+#define ORION5X_SATA_PORT1_OFFSET 0x4000
+
+/*
+ * SATA definitions needed for controller initialization
+ */
+/* SControl register address */
+#define ORION5X_SATA_PORT1_SCONTROL_REG \
+ (ORION5X_SATA_BASE+ORION5X_SATA_PORT1_OFFSET+0x308)
+/* Mask and values for device DETection and link initialization */
+#define ORION5X_SATA_SCONTROL_DET_MASK 0x0000000F
+#define ORION5X_SATA_SCONTROL_DET_NONE 0x00000000
+#define ORION5X_SATA_SCONTROL_DET_INIT 0x00000001
+/* Mask and values for device Interface Power Management */
+#define ORION5X_SATA_SCONTROL_IMP_MASK 0x00000F00
+#define ORION5X_SATA_SCONTROL_IMP_NO_LP_ALLOWED 0x00000300
+
+/* Orion5x will need byte-swapping if using ATA registers */
+#define CONFIG_IDE_SWAP_IO
#define CONFIG_MAX_RAM_BANK_SIZE (64*1024*1024)
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index 9292a5b..7f98ebb 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -45,6 +45,10 @@
#include <mpc5xxx.h>
#endif
+#ifdef CONFIG_ORION5X
+#include <asm/arch/orion5x.h>
+#endif
+
#include <ide.h>
#include <ata.h>
--
1.6.4.4
More information about the U-Boot
mailing list