diff options
author | Wolfgang Denk <wd@denx.de> | 2011-06-01 22:04:12 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-06-01 22:04:12 +0200 |
commit | 033cd2c42bf335d3b96e9612695f6c30b83dce2b (patch) | |
tree | 1bc9e1d9163cd3114bfeb016d4f4311fbbbec491 /drivers/block/mvsata_ide.c | |
parent | 2130b03309dcf56dab11b6fd0be3b4bedc7f628c (diff) | |
parent | cd3af8b56749b3200cd858b5a9424c6661958e5f (diff) | |
download | u-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.zip u-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.tar.gz u-boot-imx-033cd2c42bf335d3b96e9612695f6c30b83dce2b.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-arm
* 'master' of git://git.denx.de/u-boot-arm:
SMDKV310: Fix incorrect conditional compilation for MIU linear mapping
SMDKV310: CPU fequency and mmc_pre_ratio modified
armv7: Add support for ST-Ericsson U8500 href platform
I2C: Add driver for ST-Ericsson U8500 i2c
armv7: Add ST-Ericsson u8500 arch
Kirkwood: boards cleanup for deprecated CONFIG_CMD_AUTOSCRIPT
ARMV7: Vexpress: Add missing MMC header
arm/km: update mgcoge3un board support
mvgbe: enable configurability of PORT_SERIAL_CONTROL_VALUE
arm/km: rename mgcoge2un to mgcoge3un
arm/km: add second serial interface for kirkwood
arm/km: disable ls (through jffs2 support)
arm/km: introduce bootcount env variable and clean km_arm
arm/km: move CONFIG_EXTRA_ENV_SETTINGS from board to km_arm file
arm/km: remove CONFIG_SYS_KWD_CONFIG from keymile-common.h
ARMV7: MMC SPL Boot support for SMDKV310 board
ARMV7: Add support for Samsung SMDKV310 Board
S5PC2XX: clock: support pwm clock for evt1 (cpu revision 1)
S5P: add set_mmc_clk for external clock control
S5PC2XX: Support the cpu revision
S5P:SROM config code moved to s5p-common directory
Add _end for the end of u-boot image for SMDK6400
MMC S5P: Fix typo
S5P: GPIO Macro Values Corrected.
SMDK2410: various cleanup/code style fixes
SMDK2410: use the CFI driver (and remove the old one)
SMDK2410: remove unneeded config.mk
SMDK2410: activate ARM relocation feature
BeagleBoard: fixed typo in typecast
mvsata: issue hard reset on initialization
VCMA9: use ARM relocation feature to fix build error
MX31: drop warnings due to missing prototype for mxc_watchdog_reset()
MX5: drop config.mk from efikamx board
MX31: Make get_reset_cause() static and drop unreachable code
MX53: Remove CONFIG_SYS_BOOTMAPSZ from mx53 config files.
MX53: Handle silicon revision 2.1 case
mx5: board: code clean up for checkboard code
MX51: vision2: Fix build for vision2 board.
MX51: vision: Let video mode struct be independant of watchdog.
MX53: Add initial support for MX53SMD board.
MX53: support for freescale MX53LOCO board
mx5: Fix CONFIG_OF_LIBFDT redefined warning
mx5: Remove unnecessary CONFIG_SYS_BOOTMAPSZ definition
mx31pdk: Clean up mx31pdk.h file
Diffstat (limited to 'drivers/block/mvsata_ide.c')
-rw-r--r-- | drivers/block/mvsata_ide.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/block/mvsata_ide.c b/drivers/block/mvsata_ide.c index e0e4097..1be395f 100644 --- a/drivers/block/mvsata_ide.c +++ b/drivers/block/mvsata_ide.c @@ -33,7 +33,9 @@ /* SATA port registers */ struct mvsata_port_registers { - u32 reserved1[192]; + u32 reserved0[10]; + u32 edma_cmd; + u32 reserved1[181]; /* offset 0x300 : ATA Interface registers */ u32 sstatus; u32 serror; @@ -76,6 +78,7 @@ struct mvsata_port_registers { * and for SStatus DETection. */ +#define MVSATA_EDMA_CMD_ATA_RST 0x00000004 #define MVSATA_SCONTROL_DET_MASK 0x0000000F #define MVSATA_SCONTROL_DET_NONE 0x00000000 #define MVSATA_SCONTROL_DET_INIT 0x00000001 @@ -115,6 +118,11 @@ static int mvsata_ide_initialize_port(struct mvsata_port_registers *port) u32 status; u32 timeleft = 10000; /* wait at most 10 ms for SATA reset to complete */ + /* Hard reset */ + writel(MVSATA_EDMA_CMD_ATA_RST, &port->edma_cmd); + udelay(25); /* taken from original marvell port */ + writel(0, &port->edma_cmd); + /* Set control IPM to 3 (no low power) and DET to 1 (initialize) */ control = readl(&port->scontrol); control = (control & ~MVSATA_SCONTROL_MASK) | MVSATA_PORT_INIT; |