[U-Boot] [PATCH v2 0/4] ahci mvebu driver updates

From: Ken Ma make@marvell.com
These patches move ahci mvebu driver to drivers/ata directory with bug fixing and scsi supporting.
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 | 1 + configs/mvebu_db_armada8k_defconfig | 1 + configs/mvebu_espressobin-88f3720_defconfig | 1 + configs/mvebu_mcbin-88f8040_defconfig | 1 + drivers/ata/Kconfig | 9 ++++++++ drivers/ata/Makefile | 1 + .../mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 25 ++++++++++++++-------- 9 files changed, 31 insertions(+), 10 deletions(-) rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (63%)

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 DM_SCSI.
Signed-off-by: Ken Ma make@marvell.com ---
Changes in v2: - Add MAINTAINERS updating
MAINTAINERS | 1 + arch/arm/mach-mvebu/Makefile | 1 - drivers/ata/Kconfig | 9 +++++++++ drivers/ata/Makefile | 1 + arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 6 +++--- 5 files changed, 14 insertions(+), 4 deletions(-) rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (89%)
diff --git a/MAINTAINERS b/MAINTAINERS index 077828c..97c0752 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -134,6 +134,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 d4210af..7f0d692 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile @@ -9,7 +9,6 @@ ifdef CONFIG_ARM64 obj-$(CONFIG_ARMADA_3700) += armada3700/ obj-$(CONFIG_ARMADA_8K) += armada8k/ obj-y += arm64-common.o -obj-y += sata.o
else # CONFIG_ARM64
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 86ec628..9ef4589 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -99,4 +99,13 @@ 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 + select DM_SCSI + 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 a94c804..0254640 100644 --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile @@ -19,3 +19,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 89% rename from arch/arm/mach-mvebu/sata.c rename to drivers/ata/ahci_mvebu.c index 5d8032b..5c1b293 100644 --- a/arch/arm/mach-mvebu/sata.c +++ b/drivers/ata/ahci_mvebu.c @@ -1,15 +1,15 @@ /* + * Copyright (C) 2018 Marvell International Ltd. * Copyright (C) 2016 Stefan Roese sr@denx.de * - * SPDX-License-Identifier: GPL-2.0+ + * SPDX-License-Identifier: GPL-2.0+ + * https://spdx.org/licenses */
#include <common.h> #include <ahci.h> #include <dm.h>
-DECLARE_GLOBAL_DATA_PTR; - /* * Dummy implementation that can be overwritten by a board * specific function

On 24.05.2018 04:13, make@marvell.com wrote:
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 DM_SCSI.
Signed-off-by: Ken Ma make@marvell.com
Changes in v2:
Add MAINTAINERS updating
MAINTAINERS | 1 + arch/arm/mach-mvebu/Makefile | 1 - drivers/ata/Kconfig | 9 +++++++++ drivers/ata/Makefile | 1 + arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 6 +++--- 5 files changed, 14 insertions(+), 4 deletions(-) rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (89%)
diff --git a/MAINTAINERS b/MAINTAINERS index 077828c..97c0752 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -134,6 +134,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 d4210af..7f0d692 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile @@ -9,7 +9,6 @@ ifdef CONFIG_ARM64 obj-$(CONFIG_ARMADA_3700) += armada3700/ obj-$(CONFIG_ARMADA_8K) += armada8k/ obj-y += arm64-common.o -obj-y += sata.o
else # CONFIG_ARM64
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 86ec628..9ef4589 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -99,4 +99,13 @@ 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
- select DM_SCSI
- help
This option enables support for the Marvell EBU SoC's
onboard AHCI SATA.
endmenuIf unsure, say N.
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile index a94c804..0254640 100644 --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile @@ -19,3 +19,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 89% rename from arch/arm/mach-mvebu/sata.c rename to drivers/ata/ahci_mvebu.c index 5d8032b..5c1b293 100644 --- a/arch/arm/mach-mvebu/sata.c +++ b/drivers/ata/ahci_mvebu.c @@ -1,15 +1,15 @@ /*
- Copyright (C) 2018 Marvell International Ltd.
Hmmm, are you doing some substantial changes to this file that entitles you to add your Copyright here? Its mostly a move of an existing file, right?
- Copyright (C) 2016 Stefan Roese sr@denx.de
- SPDX-License-Identifier: GPL-2.0+
- SPDX-License-Identifier: GPL-2.0+
- */
This does not seem to be based on top of the latest mainline git version. We are using the new SPDX tags now at the beginning of the file now - same as Linux does:
$ cat arch/arm/mach-mvebu/sata.c // SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2016 Stefan Roese sr@denx.de */
#include <common.h> #include <ahci.h> #include <dm.h> ...
So please base your patch series on top of the latest mainline git version and resubmit. And please add my:
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

Hi Stefan
I have done as your advice. Thanks a lot for your kind help and guide on License and commit message.
Yours, Ken
-----Original Message----- From: Stefan Roese [mailto:sr@denx.de] Sent: 2018年5月24日 23:17 To: Ken Ma; U-Boot Mailing List Cc: Luka Perkov; Heinrich Schuchardt; Alexander Graf; Andy Shevchenko; Prafulla Wadaskar; Eugeniy Paltsev Subject: Re: [U-Boot] [PATCH v2 1/4] ata: mvebu: move mvebu sata driver to drivers/ata directory
On 24.05.2018 04:13, make@marvell.com wrote:
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 DM_SCSI.
Signed-off-by: Ken Ma make@marvell.com
Changes in v2:
Add MAINTAINERS updating
MAINTAINERS | 1 + arch/arm/mach-mvebu/Makefile | 1 - drivers/ata/Kconfig | 9 +++++++++ drivers/ata/Makefile | 1 + arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c | 6 +++--- 5 files changed, 14 insertions(+), 4 deletions(-) rename arch/arm/mach-mvebu/sata.c => drivers/ata/ahci_mvebu.c (89%)
diff --git a/MAINTAINERS b/MAINTAINERS index 077828c..97c0752 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -134,6 +134,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 d4210af..7f0d692 100644 --- a/arch/arm/mach-mvebu/Makefile +++ b/arch/arm/mach-mvebu/Makefile @@ -9,7 +9,6 @@ ifdef CONFIG_ARM64 obj-$(CONFIG_ARMADA_3700) += armada3700/ obj-$(CONFIG_ARMADA_8K) += armada8k/ obj-y += arm64-common.o -obj-y += sata.o
else # CONFIG_ARM64
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 86ec628..9ef4589 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -99,4 +99,13 @@ 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
- select DM_SCSI
- help
This option enables support for the Marvell EBU SoC's
onboard AHCI SATA.
endmenuIf unsure, say N.
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile index a94c804..0254640 100644 --- a/drivers/ata/Makefile +++ b/drivers/ata/Makefile @@ -19,3 +19,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 89% rename from arch/arm/mach-mvebu/sata.c rename to drivers/ata/ahci_mvebu.c index 5d8032b..5c1b293 100644 --- a/arch/arm/mach-mvebu/sata.c +++ b/drivers/ata/ahci_mvebu.c @@ -1,15 +1,15 @@ /*
- Copyright (C) 2018 Marvell International Ltd.
Hmmm, are you doing some substantial changes to this file that entitles you to add your Copyright here? Its mostly a move of an existing file, right?
- Copyright (C) 2016 Stefan Roese sr@denx.de
- SPDX-License-Identifier: GPL-2.0+
- SPDX-License-Identifier: GPL-2.0+
- */
This does not seem to be based on top of the latest mainline git version. We are using the new SPDX tags now at the beginning of the file now - same as Linux does:
$ cat arch/arm/mach-mvebu/sata.c // SPDX-License-Identifier: GPL-2.0+ /* * Copyright (C) 2016 Stefan Roese sr@denx.de */
#include <common.h> #include <ahci.h> #include <dm.h> ...
So please base your patch series on top of the latest mainline git version and resubmit. And please add my:
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

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 ---
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 5c1b293..97a04d9 100644 --- a/drivers/ata/ahci_mvebu.c +++ b/drivers/ata/ahci_mvebu.c @@ -19,14 +19,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) { /*

On 24.05.2018 04:13, make@marvell.com wrote:
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
Changes in v2: None
Please don't drop the already collected tags here - in this case the Reviewed-by from Simon.
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

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.
Signed-off-by: Ken Ma make@marvell.com ---
Changes in v2: None
drivers/ata/ahci_mvebu.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c index 97a04d9..9041a72 100644 --- a/drivers/ata/ahci_mvebu.c +++ b/drivers/ata/ahci_mvebu.c @@ -19,6 +19,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) { /* @@ -27,7 +41,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; } @@ -42,5 +56,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, };

On 24.05.2018 04:13, make@marvell.com wrote:
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.
Signed-off-by: Ken Ma make@marvell.com
Changes in v2: None
drivers/ata/ahci_mvebu.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/ahci_mvebu.c b/drivers/ata/ahci_mvebu.c index 97a04d9..9041a72 100644 --- a/drivers/ata/ahci_mvebu.c +++ b/drivers/ata/ahci_mvebu.c @@ -19,6 +19,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) { /*
@@ -27,7 +41,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; }
@@ -42,5 +56,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, };
Please don't drop the already collected tags here - in this case the Reviewed-by from Simon.
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

From: Ken Ma make@marvell.com
This patch enables the new ahci mvebu driver for marvell arm64 platform SOCs(A3k and A8k).
Signed-off-by: Ken Ma make@marvell.com ---
Changes in v2: None
configs/mvebu_db-88f3720_defconfig | 1 + configs/mvebu_db_armada8k_defconfig | 1 + configs/mvebu_espressobin-88f3720_defconfig | 1 + configs/mvebu_mcbin-88f8040_defconfig | 1 + 4 files changed, 4 insertions(+)
diff --git a/configs/mvebu_db-88f3720_defconfig b/configs/mvebu_db-88f3720_defconfig index 1d6233a..d40dd42 100644 --- a/configs/mvebu_db-88f3720_defconfig +++ b/configs/mvebu_db-88f3720_defconfig @@ -29,6 +29,7 @@ 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 da67aad..72c86f3 100644 --- a/configs/mvebu_db_armada8k_defconfig +++ b/configs/mvebu_db_armada8k_defconfig @@ -30,6 +30,7 @@ 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 314d405..cc41711 100644 --- a/configs/mvebu_espressobin-88f3720_defconfig +++ b/configs/mvebu_espressobin-88f3720_defconfig @@ -28,6 +28,7 @@ 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_MISC=y diff --git a/configs/mvebu_mcbin-88f8040_defconfig b/configs/mvebu_mcbin-88f8040_defconfig index e16a56e..dea0cd0 100644 --- a/configs/mvebu_mcbin-88f8040_defconfig +++ b/configs/mvebu_mcbin-88f8040_defconfig @@ -32,6 +32,7 @@ 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

On 24.05.2018 04:13, make@marvell.com wrote:
From: Ken Ma make@marvell.com
This patch enables the new ahci mvebu driver for marvell arm64 platform SOCs(A3k and A8k).
Signed-off-by: Ken Ma make@marvell.com
Changes in v2: None
configs/mvebu_db-88f3720_defconfig | 1 + configs/mvebu_db_armada8k_defconfig | 1 + configs/mvebu_espressobin-88f3720_defconfig | 1 + configs/mvebu_mcbin-88f8040_defconfig | 1 + 4 files changed, 4 insertions(+)
Please don't drop the already collected tags here - in this case the Reviewed-by from Simon.
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
participants (3)
-
Ken Ma
-
make@marvell.com
-
Stefan Roese