* [U-Boot] [PATCH v4 1/4] ata: mvebu: move mvebu sata driver to drivers/ata directory
2018-05-25 7:49 [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates make at marvell.com
@ 2018-05-25 7:49 ` make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 2/4] ata: ahci_mvebu: a8040 a0: remove bad port register offsets workarounds make at marvell.com
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: make at marvell.com @ 2018-05-25 7:49 UTC (permalink / raw)
To: u-boot
From: Ken Ma <make@marvell.com>
Currently mvebu sata driver is in arch/arm/mach_mvebu directory, this
patch moves it to drivers/ata directory with renaming "sata.c" to
"ahci_mvebu.c" which is aligned to Linux.
New ahci driver's kconfig option is added as AHCI_MVEBU which selects
SCSI_AHCI and is based on AHCI.
Signed-off-by: Ken Ma <make@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes in v4:
- Base on the latest mainline git version
- Let AHCI_MVEBU depend on AHCI and select SCSI_AHCI
ahci_mvebu driver is based on AHCI UCLASS, so let AHCI_MVEBU based on
AHCI; and this driver uses ahci_init() in ahci.c, so let it select
SCSI_AHCI. In this patch, DM_SCSI is not selected and it will be
selected in the later patch which adds scsi support by creating a SCSI
device as a child of mvebu ahci device.
Changes in v3:
- Use the new SPDX tags
Changes in v2:
- Add MAINTAINERS updating
MAINTAINERS | 1 +
arch/arm/mach-mvebu/Makefile | 1 -
drivers/ata/Kconfig | 10 ++++++++++
drivers/ata/Makefile | 1 +
arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 0
5 files changed, 12 insertions(+), 1 deletion(-)
rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (100%)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5670917..cd40dbd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -135,6 +135,7 @@ S: Maintained
T: git git://git.denx.de/u-boot-marvell.git
F: arch/arm/mach-kirkwood/
F: arch/arm/mach-mvebu/
+F: drivers/ata/ahci_mvebu.c
ARM MARVELL PXA
M: Marek Vasut <marex@denx.de>
diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 3b9a811..ade7b87 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -7,7 +7,6 @@ ifdef CONFIG_ARM64
obj-$(CONFIG_ARMADA_3700) += armada3700/
obj-$(CONFIG_ARMADA_8K) += armada8k/
obj-y += arm64-common.o
-obj-$(CONFIG_AHCI) += sata.o
else # CONFIG_ARM64
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 86ec628..36e1748 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -99,4 +99,14 @@ config SATA_SIL3114
help
Enable this driver to support the SIL3114 SATA controllers.
+config AHCI_MVEBU
+ bool "Marvell EBU AHCI SATA support"
+ depends on ARCH_MVEBU
+ depends on AHCI
+ select SCSI_AHCI
+ help
+ This option enables support for the Marvell EBU SoC's
+ onboard AHCI SATA.
+
+ If unsure, say N.
endmenu
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 02f02c8..10bed53 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -17,3 +17,4 @@ obj-$(CONFIG_SATA_MV) += sata_mv.o
obj-$(CONFIG_SATA_SIL3114) += sata_sil3114.o
obj-$(CONFIG_SATA_SIL) += sata_sil.o
obj-$(CONFIG_SANDBOX) += sata_sandbox.o
+obj-$(CONFIG_AHCI_MVEBU) += ahci_mvebu.o
diff --git a/arch/arm/mach-mvebu/sata.c b/drivers/ata/ahci_mvebu.c
similarity index 100%
rename from arch/arm/mach-mvebu/sata.c
rename to drivers/ata/ahci_mvebu.c
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v4 2/4] ata: ahci_mvebu: a8040 a0: remove bad port register offsets workarounds
2018-05-25 7:49 [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 1/4] ata: mvebu: move mvebu sata driver to drivers/ata directory make at marvell.com
@ 2018-05-25 7:49 ` make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 3/4] ata: ahci_mvebu: add scsi support make at marvell.com
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: make at marvell.com @ 2018-05-25 7:49 UTC (permalink / raw)
To: u-boot
From: David Sniatkiwicz <davidsn@marvell.com>
This workaround was added for A8040/7040 A0.
A8040/7040 A0 is no longer supported so this workaround
can be removed.
Signed-off-by: David Sniatkiwicz <davidsn@marvell.com>
Signed-off-by: Ken Ma <make@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes in v4: None
Changes in v3: None
Changes in v2: None
drivers/ata/ahci_mvebu.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c
index 3ae8dae..c1d215f 100644
--- a/drivers/ata/ahci_mvebu.c
+++ b/drivers/ata/ahci_mvebu.c
@@ -16,14 +16,6 @@ __weak int board_ahci_enable(void)
return 0;
}
-#ifdef CONFIG_ARMADA_8K
-/* CP110 has different AHCI port addresses */
-void __iomem *ahci_port_base(void __iomem *base, u32 port)
-{
- return base + 0x10000 + (port * 0x10000);
-}
-#endif
-
static int mvebu_ahci_probe(struct udevice *dev)
{
/*
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v4 3/4] ata: ahci_mvebu: add scsi support
2018-05-25 7:49 [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 1/4] ata: mvebu: move mvebu sata driver to drivers/ata directory make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 2/4] ata: ahci_mvebu: a8040 a0: remove bad port register offsets workarounds make at marvell.com
@ 2018-05-25 7:49 ` make at marvell.com
2018-05-25 7:49 ` [U-Boot] [PATCH v4 4/4] arm64: mvebu: defconfig: enable CONFIG_AHCI_MVEBU make at marvell.com
2018-05-29 8:35 ` [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates Stefan Roese
4 siblings, 0 replies; 7+ messages in thread
From: make at marvell.com @ 2018-05-25 7:49 UTC (permalink / raw)
To: u-boot
From: Ken Ma <make@marvell.com>
Mvebu AHCI is AHCI driver which uses SCSI under the hood.
This patch adjusts AHCI setup to support SCSI by creating
a SCSI device as a child. Since the functions of creating
SCSI device need the kconfig option DM_SCSI, so let
AHCI_MVEBU select DM_SCSI.
Signed-off-by: Ken Ma <make@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes in v4:
- Let AHCI_MVEBU select DM_SCSI
This patch adds scsi support by creating a SCSI device as a child of
mvebu ahci device; the functions of creating SCSI device need the
kconfig option DM_SCSI, so let AHCI_MVEBU select DM_SCSI.
Changes in v3: None
Changes in v2: None
drivers/ata/Kconfig | 1 +
drivers/ata/ahci_mvebu.c | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 36e1748..49a056e 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -104,6 +104,7 @@ config AHCI_MVEBU
depends on ARCH_MVEBU
depends on AHCI
select SCSI_AHCI
+ select DM_SCSI
help
This option enables support for the Marvell EBU SoC's
onboard AHCI SATA.
diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c
index c1d215f..6e3f17e 100644
--- a/drivers/ata/ahci_mvebu.c
+++ b/drivers/ata/ahci_mvebu.c
@@ -16,6 +16,20 @@ __weak int board_ahci_enable(void)
return 0;
}
+static int mvebu_ahci_bind(struct udevice *dev)
+{
+ struct udevice *scsi_dev;
+ int ret;
+
+ ret = ahci_bind_scsi(dev, &scsi_dev);
+ if (ret) {
+ debug("%s: Failed to bind (err=%d\n)", __func__, ret);
+ return ret;
+ }
+
+ return 0;
+}
+
static int mvebu_ahci_probe(struct udevice *dev)
{
/*
@@ -24,7 +38,7 @@ static int mvebu_ahci_probe(struct udevice *dev)
*/
board_ahci_enable();
- ahci_init(devfdt_get_addr_ptr(dev));
+ ahci_probe_scsi(dev, (ulong)devfdt_get_addr_ptr(dev));
return 0;
}
@@ -39,5 +53,6 @@ U_BOOT_DRIVER(ahci_mvebu_drv) = {
.name = "ahci_mvebu",
.id = UCLASS_AHCI,
.of_match = mvebu_ahci_ids,
+ .bind = mvebu_ahci_bind,
.probe = mvebu_ahci_probe,
};
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v4 4/4] arm64: mvebu: defconfig: enable CONFIG_AHCI_MVEBU
2018-05-25 7:49 [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates make at marvell.com
` (2 preceding siblings ...)
2018-05-25 7:49 ` [U-Boot] [PATCH v4 3/4] ata: ahci_mvebu: add scsi support make at marvell.com
@ 2018-05-25 7:49 ` make at marvell.com
2018-05-29 8:35 ` [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates Stefan Roese
4 siblings, 0 replies; 7+ messages in thread
From: make at marvell.com @ 2018-05-25 7:49 UTC (permalink / raw)
To: u-boot
From: Ken Ma <make@marvell.com>
This patch enables the new ahci mvebu driver for marvell arm64 platform
SOCs(A3k and A8k). And since AHCI_MVEBU selects SCSI_AHCI, so
"CONFIG_SCSI_AHCI=y" is removed from those default config files.
Signed-off-by: Ken Ma <make@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes in v4:
- Remove CONFIG_AHCI_MVEBU from marvell arm64 default config files
Since AHCI_MVEBU selects SCSI_AHCI and it is added into marvell arm64
default config files, so CONFIG_SCSI_AHCI is removed.
Changes in v3: None
Changes in v2: None
configs/mvebu_db-88f3720_defconfig | 2 +-
configs/mvebu_db_armada8k_defconfig | 2 +-
configs/mvebu_espressobin-88f3720_defconfig | 2 +-
configs/mvebu_mcbin-88f8040_defconfig | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig
index e6f7cb9..4ba287f 100644
--- a/configs/mvebu_db-88f3720_defconfig
+++ b/configs/mvebu_db-88f3720_defconfig
@@ -30,7 +30,7 @@ CONFIG_CMD_MVEBU_BUBT=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_MAC_PARTITION=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_SCSI_AHCI=y
+CONFIG_AHCI_MVEBU=y
CONFIG_BLOCK_CACHE=y
CONFIG_DM_GPIO=y
# CONFIG_MVEBU_GPIO is not set
diff --git a/configs/mvebu_db_armada8k_defconfig b/configs/mvebu_db_armada8k_defconfig
index 63f2103..b7694ec 100644
--- a/configs/mvebu_db_armada8k_defconfig
+++ b/configs/mvebu_db_armada8k_defconfig
@@ -30,7 +30,7 @@ CONFIG_CMD_MVEBU_BUBT=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_MAC_PARTITION=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_SCSI_AHCI=y
+CONFIG_AHCI_MVEBU=y
CONFIG_BLOCK_CACHE=y
CONFIG_DM_I2C=y
CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/mvebu_espressobin-88f3720_defconfig b/configs/mvebu_espressobin-88f3720_defconfig
index 5a6d1e6..db11e51 100644
--- a/configs/mvebu_espressobin-88f3720_defconfig
+++ b/configs/mvebu_espressobin-88f3720_defconfig
@@ -30,7 +30,7 @@ CONFIG_CMD_MVEBU_BUBT=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_MAC_PARTITION=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_SCSI_AHCI=y
+CONFIG_AHCI_MVEBU=y
CONFIG_BLOCK_CACHE=y
CONFIG_DM_GPIO=y
CONFIG_DM_I2C=y
diff --git a/configs/mvebu_mcbin-88f8040_defconfig b/configs/mvebu_mcbin-88f8040_defconfig
index de682d1..545bb4f 100644
--- a/configs/mvebu_mcbin-88f8040_defconfig
+++ b/configs/mvebu_mcbin-88f8040_defconfig
@@ -32,7 +32,7 @@ CONFIG_CMD_REGULATOR=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_MAC_PARTITION=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_SCSI_AHCI=y
+CONFIG_AHCI_MVEBU=y
CONFIG_BLOCK_CACHE=y
CONFIG_DM_GPIO=y
CONFIG_DM_I2C=y
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates
2018-05-25 7:49 [U-Boot] [PATCH v4 0/4] ahci mvebu driver updates make at marvell.com
` (3 preceding siblings ...)
2018-05-25 7:49 ` [U-Boot] [PATCH v4 4/4] arm64: mvebu: defconfig: enable CONFIG_AHCI_MVEBU make at marvell.com
@ 2018-05-29 8:35 ` Stefan Roese
4 siblings, 0 replies; 7+ messages in thread
From: Stefan Roese @ 2018-05-29 8:35 UTC (permalink / raw)
To: u-boot
On 25.05.2018 09:49, make at marvell.com wrote:
> From: Ken Ma <make@marvell.com>
>
>
> These patches move ahci mvebu driver to drivers/ata directory with bug
> fixing and scsi supporting.
>
> Changes in v4:
> - Base on the latest mainline git version
> - Let AHCI_MVEBU depend on AHCI and select SCSI_AHCI
> ahci_mvebu driver is based on AHCI UCLASS, so let AHCI_MVEBU based on
> AHCI; and this driver uses ahci_init() in ahci.c, so let it select
> SCSI_AHCI. In this patch, DM_SCSI is not selected and it will be
> selected in the later patch which adds scsi support by creating a SCSI
> device as a child of mvebu ahci device.
> - Let AHCI_MVEBU select DM_SCSI
> This patch adds scsi support by creating a SCSI device as a child of
> mvebu ahci device; the functions of creating SCSI device need the
> kconfig option DM_SCSI, so let AHCI_MVEBU select DM_SCSI.
> - Remove CONFIG_AHCI_MVEBU from marvell arm64 default config files
> Since AHCI_MVEBU selects SCSI_AHCI and it is added into marvell arm64
> default config files, so CONFIG_SCSI_AHCI is removed.
>
> Changes in v3:
> - Use the new SPDX tags
>
> Changes in v2:
> - Add MAINTAINERS updating
>
> David Sniatkiwicz (1):
> ata: ahci_mvebu: a8040 a0: remove bad port register offsets
> workarounds
>
> Ken Ma (3):
> ata: mvebu: move mvebu sata driver to drivers/ata directory
> ata: ahci_mvebu: add scsi support
> arm64: mvebu: defconfig: enable CONFIG_AHCI_MVEBU
>
> MAINTAINERS | 1 +
> arch/arm/mach-mvebu/Makefile | 1 -
> configs/mvebu_db-88f3720_defconfig | 2 +-
> configs/mvebu_db_armada8k_defconfig | 2 +-
> configs/mvebu_espressobin-88f3720_defconfig | 2 +-
> configs/mvebu_mcbin-88f8040_defconfig | 2 +-
> drivers/ata/Kconfig | 11 +++++++++++
> drivers/ata/Makefile | 1 +
> .../arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 19 +++++++++++++------
> 9 files changed, 30 insertions(+), 11 deletions(-)
> rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (71%)
Series applied to u-boot-marvell/master
Thanks,
Stefan
^ permalink raw reply [flat|nested] 7+ messages in thread