All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] scsi: Convert some options to Kconfig
@ 2022-01-31 14:49 Simon Glass
  2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
                   ` (7 more replies)
  0 siblings, 8 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass,
	Aleksandar Gerasimovski, Alison Wang, Andre Przywara,
	Andrew F. Davis, Baruch Siach, Bin Meng, Biwen Li,
	Dennis Gilmore, Fabio Estevam, Gerald Kerma, Green Wan,
	Heiko Schocher, Heinrich Schuchardt, Ian Ray, Igor Opaniuk,
	Jason Cooper, Jason Liu, Luka Perkov, Marek Behún,
	Marek Vasut, Mario Six, Martyn Welch, Meenakshi Aggarwal,
	Mian Yousaf Kaukab, Mingkai Hu, Nikita Kiryanov, Olaf Mandel,
	Pali Rohár, Patrick Delaunay, Paul Walmsley, Pavel Herrmann,
	Pragnesh Patel, Pramod Kumar, Priyanka Jain, Qiang Zhao,
	Rainer Boschung, Rajesh Bhagat, Rasmus Villemoes, Rick Chen,
	Rob Herring, Ruchika Gupta, Sean Anderson, Shengzhou Liu,
	Simon Guinot, Sinan Akman, Soeren Moch, Tang Yuantian,
	Tim Harvey, Tony Dinh, Troy Kisky, Udit Agarwal, Vladimir Oltean,
	Wasim Khan, Wolfgang Denk, Yangbo Lu, liuhao, shuyiqi

This series converts the AHCI and SCSI options used by sandbox to Kconfig.
It also tidies up some dead code and sets a migration deadline for SCSI.


Simon Glass (8):
  sata: Drop Silicon Image SIL3114 SATA driver
  sata: Only support BLK
  sata: Rearrange Kconfig for SATA
  sata: sata_sil: Only support BLK
  ahci: Make ahci drivers depend on AHCI
  scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig
  dm: scsi: Add a migration deadline for scsi

 Makefile                                      |   1 +
 README                                        |  10 -
 api/api_storage.c                             |   3 +-
 arch/Kconfig                                  |   1 -
 arch/arm/include/asm/arch-ls102xa/config.h    |   5 -
 configs/MPC837XERDB_defconfig                 |   1 +
 configs/P1010RDB-PA_36BIT_NAND_defconfig      |   1 +
 configs/P1010RDB-PA_36BIT_NOR_defconfig       |   1 +
 configs/P1010RDB-PA_36BIT_SDCARD_defconfig    |   1 +
 configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig  |   1 +
 configs/P1010RDB-PA_NAND_defconfig            |   1 +
 configs/P1010RDB-PA_NOR_defconfig             |   1 +
 configs/P1010RDB-PA_SDCARD_defconfig          |   1 +
 configs/P1010RDB-PA_SPIFLASH_defconfig        |   1 +
 configs/P1010RDB-PB_36BIT_NAND_defconfig      |   1 +
 configs/P1010RDB-PB_36BIT_NOR_defconfig       |   1 +
 configs/P1010RDB-PB_36BIT_SDCARD_defconfig    |   1 +
 configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig  |   1 +
 configs/P1010RDB-PB_NAND_defconfig            |   1 +
 configs/P1010RDB-PB_NOR_defconfig             |   1 +
 configs/P1010RDB-PB_SDCARD_defconfig          |   1 +
 configs/P1010RDB-PB_SPIFLASH_defconfig        |   1 +
 configs/P1020RDB-PC_36BIT_NAND_defconfig      |   1 +
 configs/P1020RDB-PC_36BIT_SDCARD_defconfig    |   1 +
 configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig  |   1 +
 configs/P1020RDB-PC_36BIT_defconfig           |   1 +
 configs/P1020RDB-PC_NAND_defconfig            |   1 +
 configs/P1020RDB-PC_SDCARD_defconfig          |   1 +
 configs/P1020RDB-PC_SPIFLASH_defconfig        |   1 +
 configs/P1020RDB-PC_defconfig                 |   1 +
 configs/P1020RDB-PD_NAND_defconfig            |   1 +
 configs/P1020RDB-PD_SDCARD_defconfig          |   1 +
 configs/P1020RDB-PD_SPIFLASH_defconfig        |   1 +
 configs/P1020RDB-PD_defconfig                 |   1 +
 configs/P2020RDB-PC_36BIT_NAND_defconfig      |   1 +
 configs/P2020RDB-PC_36BIT_SDCARD_defconfig    |   1 +
 configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig  |   1 +
 configs/P2020RDB-PC_36BIT_defconfig           |   1 +
 configs/P2020RDB-PC_NAND_defconfig            |   1 +
 configs/P2020RDB-PC_SDCARD_defconfig          |   1 +
 configs/P2020RDB-PC_SPIFLASH_defconfig        |   1 +
 configs/P2020RDB-PC_defconfig                 |   1 +
 configs/P2041RDB_NAND_defconfig               |   1 +
 configs/P2041RDB_SDCARD_defconfig             |   1 +
 configs/P2041RDB_SPIFLASH_defconfig           |   1 +
 configs/P2041RDB_defconfig                    |   1 +
 configs/P3041DS_NAND_defconfig                |   1 +
 configs/P3041DS_SDCARD_defconfig              |   1 +
 configs/P3041DS_SPIFLASH_defconfig            |   1 +
 configs/P3041DS_defconfig                     |   1 +
 configs/P4080DS_SDCARD_defconfig              |   1 +
 configs/P4080DS_SPIFLASH_defconfig            |   1 +
 configs/P4080DS_defconfig                     |   1 +
 configs/P5040DS_NAND_defconfig                |   1 +
 configs/P5040DS_SDCARD_defconfig              |   1 +
 configs/P5040DS_SPIFLASH_defconfig            |   1 +
 configs/P5040DS_defconfig                     |   1 +
 configs/T2080QDS_NAND_defconfig               |   1 +
 configs/T2080QDS_SDCARD_defconfig             |   1 +
 configs/T2080QDS_SECURE_BOOT_defconfig        |   1 +
 configs/T2080QDS_SPIFLASH_defconfig           |   1 +
 configs/T2080QDS_SRIO_PCIE_BOOT_defconfig     |   1 +
 configs/T2080QDS_defconfig                    |   1 +
 configs/T2080RDB_NAND_defconfig               |   1 +
 configs/T2080RDB_SDCARD_defconfig             |   1 +
 configs/T2080RDB_SPIFLASH_defconfig           |   1 +
 configs/T2080RDB_defconfig                    |   1 +
 configs/T2080RDB_revD_NAND_defconfig          |   1 +
 configs/T2080RDB_revD_SDCARD_defconfig        |   1 +
 configs/T2080RDB_revD_SPIFLASH_defconfig      |   1 +
 configs/T2080RDB_revD_defconfig               |   1 +
 configs/T4240RDB_SDCARD_defconfig             |   1 +
 configs/T4240RDB_defconfig                    |   1 +
 configs/am57xx_hs_evm_usb_defconfig           |   3 +
 configs/cm_fx6_defconfig                      |   1 +
 configs/controlcenterdc_defconfig             |   3 +
 configs/d2net_v2_defconfig                    |   1 +
 configs/db-mv784mp-gp_defconfig               |   1 +
 configs/dreamplug_defconfig                   |   1 +
 configs/goflexhome_defconfig                  |   1 +
 configs/gwventana_emmc_defconfig              |   1 +
 configs/gwventana_gw5904_defconfig            |   1 +
 configs/gwventana_nand_defconfig              |   1 +
 configs/highbank_defconfig                    |   3 +
 configs/inetspace_v2_defconfig                |   1 +
 configs/ls1021atsn_qspi_defconfig             |   3 +
 configs/ls1021atsn_sdcard_defconfig           |   3 +
 ...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig |   3 +
 .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |   3 +
 ...1088ardb_sdcard_qspi_SECURE_BOOT_defconfig |   3 +
 configs/lschlv2_defconfig                     |   1 +
 configs/lsxhl_defconfig                       |   1 +
 configs/mx6cuboxi_defconfig                   |   1 +
 configs/mx6qsabrelite_defconfig               |   1 +
 configs/net2big_v2_defconfig                  |   1 +
 configs/netspace_lite_v2_defconfig            |   1 +
 configs/netspace_max_v2_defconfig             |   1 +
 configs/netspace_mini_v2_defconfig            |   1 +
 configs/netspace_v2_defconfig                 |   1 +
 configs/nitrogen6q2g_defconfig                |   1 +
 configs/nitrogen6q_defconfig                  |   1 +
 configs/nsa310s_defconfig                     |   1 +
 configs/omap5_uevm_defconfig                  |   3 +
 configs/pg_wcom_expu1_defconfig               |   3 +
 configs/pg_wcom_seli8_defconfig               |   3 +
 configs/sandbox64_defconfig                   |   1 +
 configs/sandbox_defconfig                     |   7 +-
 configs/sheevaplug_defconfig                  |   1 +
 configs/tbs2910_defconfig                     |   1 +
 configs/theadorable_debug_defconfig           |   1 +
 configs/tools-only_defconfig                  |   3 +-
 configs/wandboard_defconfig                   |   1 +
 drivers/ata/Kconfig                           |  91 +-
 drivers/ata/Makefile                          |   1 -
 drivers/ata/sata.c                            |  27 -
 drivers/ata/sata_sil.c                        | 118 +--
 drivers/ata/sata_sil3114.c                    | 838 ------------------
 drivers/ata/sata_sil3114.h                    | 133 ---
 drivers/scsi/Kconfig                          |  30 +
 drivers/scsi/Makefile                         |   2 +
 drivers/scsi/scsi.c                           |   6 +-
 include/configs/MPC837XERDB.h                 |   1 -
 include/configs/P1010RDB.h                    |   1 -
 include/configs/P2041RDB.h                    |   1 -
 include/configs/P4080DS.h                     |   1 -
 include/configs/T104xRDB.h                    |   1 -
 include/configs/T208xQDS.h                    |   1 -
 include/configs/T208xRDB.h                    |   1 -
 include/configs/T4240RDB.h                    |   2 -
 include/configs/am57xx_evm.h                  |   5 -
 include/configs/clearfog.h                    |   7 -
 include/configs/cm_fx6.h                      |   1 -
 include/configs/controlcenterdc.h             |   5 -
 include/configs/corenet_ds.h                  |   1 -
 include/configs/db-88f6820-gp.h               |   5 -
 include/configs/db-mv784mp-gp.h               |   1 -
 include/configs/dra7xx_evm.h                  |   1 -
 include/configs/dreamplug.h                   |   1 -
 include/configs/durian.h                      |   5 -
 include/configs/ge_bx50v3.h                   |   1 -
 include/configs/goflexhome.h                  |   1 -
 include/configs/gw_ventana.h                  |   1 -
 include/configs/helios4.h                     |   7 -
 include/configs/highbank.h                    |   6 -
 include/configs/lacie_kw.h                    |   3 -
 include/configs/ls1012a2g5rdb.h               |   6 -
 include/configs/ls1012a_common.h              |   6 -
 include/configs/ls1021aiot.h                  |   6 -
 include/configs/ls1028aqds.h                  |   5 -
 include/configs/ls1028ardb.h                  |   5 -
 include/configs/ls1043aqds.h                  |   6 -
 include/configs/ls1043ardb.h                  |   4 -
 include/configs/ls1046a_common.h              |   7 -
 include/configs/ls1088a_common.h              |   6 -
 include/configs/ls2080aqds.h                  |   6 -
 include/configs/ls2080ardb.h                  |   6 -
 include/configs/lsxl.h                        |   1 -
 include/configs/lx2160a_common.h              |   5 -
 include/configs/m53menlo.h                    |   1 -
 include/configs/mvebu_armada-37xx.h           |   6 -
 include/configs/mvebu_armada-8k.h             |   6 -
 include/configs/mx53loco.h                    |   1 -
 include/configs/mx6cuboxi.h                   |   1 -
 include/configs/nitrogen6x.h                  |   1 -
 include/configs/nsa310s.h                     |   1 -
 include/configs/omap5_uevm.h                  |   6 -
 include/configs/p1_p2_rdb_pc.h                |   1 -
 include/configs/sandbox.h                     |   7 -
 include/configs/sheevaplug.h                  |   1 -
 include/configs/sifive-unmatched.h            |   2 -
 include/configs/tbs2910.h                     |   1 -
 include/configs/theadorable.h                 |   1 -
 include/configs/wandboard.h                   |   1 -
 include/scsi.h                                |   4 +
 scripts/config_whitelist.txt                  |   5 -
 175 files changed, 228 insertions(+), 1350 deletions(-)
 delete mode 100644 drivers/ata/sata_sil3114.c
 delete mode 100644 drivers/ata/sata_sil3114.h

-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:08   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 2/8] sata: Only support BLK Simon Glass
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass, Pali Rohár

This is not used in U-Boot and has not been converted to driver model.
Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/ata/Kconfig        |   6 -
 drivers/ata/Makefile       |   1 -
 drivers/ata/sata_sil3114.c | 838 -------------------------------------
 drivers/ata/sata_sil3114.h | 133 ------
 4 files changed, 978 deletions(-)
 delete mode 100644 drivers/ata/sata_sil3114.c
 delete mode 100644 drivers/ata/sata_sil3114.h

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 5639536811c..f9978a35796 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -109,12 +109,6 @@ config SATA_SIL
 	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
 	  SATA controllers.
 
-config SATA_SIL3114
-	bool "Enable Silicon Image SIL3114 SATA driver support"
-	select LIBATA
-	help
-	  Enable this driver to support the SIL3114 SATA controllers.
-
 config SUNXI_AHCI
 	bool "Enable Allwinner SATA driver support"
 	depends on AHCI
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index cd88131dcd1..6e30180b8b4 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -13,7 +13,6 @@ obj-$(CONFIG_LIBATA) += libata.o
 obj-$(CONFIG_SATA) += sata.o
 obj-$(CONFIG_SATA_CEVA) += sata_ceva.o
 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/drivers/ata/sata_sil3114.c b/drivers/ata/sata_sil3114.c
deleted file mode 100644
index 4d3a680f17f..00000000000
--- a/drivers/ata/sata_sil3114.c
+++ /dev/null
@@ -1,838 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) Excito Elektronik i Skåne AB, All rights reserved.
- * Author: Tor Krill <tor@excito.com>
- *
- * This is a driver for Silicon Image sil3114 sata chip modelled on
- * the ata_piix driver
- */
-
-#include <common.h>
-#include <blk.h>
-#include <log.h>
-#include <part.h>
-#include <pci.h>
-#include <command.h>
-#include <config.h>
-#include <asm/byteorder.h>
-#include <asm/io.h>
-#include <ide.h>
-#include <sata.h>
-#include <libata.h>
-#include <linux/delay.h>
-#include "sata_sil3114.h"
-
-/* Convert sectorsize to wordsize */
-#define ATA_SECTOR_WORDS (ATA_SECT_SIZE/2)
-
-/* Forwards */
-u8 sil3114_spin_up (int num);
-u8 sil3114_spin_down (int num);
-static int sata_bus_softreset (int num);
-static void sata_identify (int num, int dev);
-static u8 check_power_mode (int num);
-static void sata_port (struct sata_ioports *ioport);
-static void set_Feature_cmd (int num, int dev);
-static u8 sata_busy_wait (struct sata_ioports *ioaddr, int bits,
-			  unsigned int max, u8 usealtstatus);
-static u8 sata_chk_status (struct sata_ioports *ioaddr, u8 usealtstatus);
-static void msleep (int count);
-
-static u32 iobase[6] = { 0, 0, 0, 0, 0, 0};	/* PCI BAR registers for device */
-
-static struct sata_port port[CONFIG_SYS_SATA_MAX_DEVICE];
-
-static void output_data (struct sata_ioports *ioaddr, u16 * sect_buf, int words)
-{
-	while (words--) {
-		__raw_writew (*sect_buf++, (void *)ioaddr->data_addr);
-	}
-}
-
-static int input_data (struct sata_ioports *ioaddr, u16 * sect_buf, int words)
-{
-	while (words--) {
-		*sect_buf++ = __raw_readw ((void *)ioaddr->data_addr);
-	}
-	return 0;
-}
-
-static int sata_bus_softreset (int num)
-{
-	u8 status = 0;
-
-	port[num].dev_mask = 1;
-
-	port[num].ctl_reg = 0x08;	/*Default value of control reg */
-	writeb (port[num].ctl_reg, port[num].ioaddr.ctl_addr);
-	udelay(10);
-	writeb (port[num].ctl_reg | ATA_SRST, port[num].ioaddr.ctl_addr);
-	udelay(10);
-	writeb (port[num].ctl_reg, port[num].ioaddr.ctl_addr);
-
-	/* spec mandates ">= 2ms" before checking status.
-	 * We wait 150ms, because that was the magic delay used for
-	 * ATAPI devices in Hale Landis's ATADRVR, for the period of time
-	 * between when the ATA command register is written, and then
-	 * status is checked.  Because waiting for "a while" before
-	 * checking status is fine, post SRST, we perform this magic
-	 * delay here as well.
-	 */
-	msleep (150);
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 300, 0);
-	while ((status & ATA_BUSY)) {
-		msleep (100);
-		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 3, 0);
-	}
-
-	if (status & ATA_BUSY) {
-		printf ("ata%u is slow to respond,plz be patient\n", num);
-	}
-
-	while ((status & ATA_BUSY)) {
-		msleep (100);
-		status = sata_chk_status (&port[num].ioaddr, 0);
-	}
-
-	if (status & ATA_BUSY) {
-		printf ("ata%u failed to respond : ", num);
-		printf ("bus reset failed\n");
-		port[num].dev_mask = 0;
-		return 1;
-	}
-	return 0;
-}
-
-static void sata_identify (int num, int dev)
-{
-	u8 cmd = 0, status = 0, devno = num;
-	u16 iobuf[ATA_SECTOR_WORDS];
-	u64 n_sectors = 0;
-
-	memset (iobuf, 0, sizeof (iobuf));
-
-	if (!(port[num].dev_mask & 0x01)) {
-		printf ("dev%d is not present on port#%d\n", dev, num);
-		return;
-	}
-
-	debug ("port=%d dev=%d\n", num, dev);
-
-	status = 0;
-	cmd = ATA_CMD_ID_ATA;	/*Device Identify Command */
-	writeb (cmd, port[num].ioaddr.command_addr);
-	readb (port[num].ioaddr.altstatus_addr);
-	udelay(10);
-
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 1000, 0);
-	if (status & ATA_ERR) {
-		printf ("\ndevice not responding\n");
-		port[num].dev_mask &= ~0x01;
-		return;
-	}
-
-	input_data (&port[num].ioaddr, iobuf, ATA_SECTOR_WORDS);
-
-	ata_swap_buf_le16 (iobuf, ATA_SECTOR_WORDS);
-
-	debug ("Specific config: %x\n", iobuf[2]);
-
-	/* we require LBA and DMA support (bits 8 & 9 of word 49) */
-	if (!ata_id_has_dma (iobuf) || !ata_id_has_lba (iobuf)) {
-		debug ("ata%u: no dma/lba\n", num);
-	}
-#ifdef DEBUG
-	ata_dump_id (iobuf);
-#endif
-	n_sectors = ata_id_n_sectors (iobuf);
-
-	if (n_sectors == 0) {
-		port[num].dev_mask &= ~0x01;
-		return;
-	}
-	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].revision,
-			 ATA_ID_FW_REV, sizeof (sata_dev_desc[devno].revision));
-	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].vendor,
-			 ATA_ID_PROD, sizeof (sata_dev_desc[devno].vendor));
-	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].product,
-			 ATA_ID_SERNO, sizeof (sata_dev_desc[devno].product));
-
-	/* TODO - atm we asume harddisk ie not removable */
-	sata_dev_desc[devno].removable = 0;
-
-	sata_dev_desc[devno].lba = (u32) n_sectors;
-	debug("lba=0x%lx\n", sata_dev_desc[devno].lba);
-
-#ifdef CONFIG_LBA48
-	if (iobuf[83] & (1 << 10)) {
-		sata_dev_desc[devno].lba48 = 1;
-	} else {
-		sata_dev_desc[devno].lba48 = 0;
-	}
-#endif
-
-	/* assuming HD */
-	sata_dev_desc[devno].type = DEV_TYPE_HARDDISK;
-	sata_dev_desc[devno].blksz = ATA_SECT_SIZE;
-	sata_dev_desc[devno].lun = 0;	/* just to fill something in... */
-}
-
-static void set_Feature_cmd (int num, int dev)
-{
-	u8 status = 0;
-
-	if (!(port[num].dev_mask & 0x01)) {
-		debug ("dev%d is not present on port#%d\n", dev, num);
-		return;
-	}
-
-	writeb (SETFEATURES_XFER, port[num].ioaddr.feature_addr);
-	writeb (XFER_PIO_4, port[num].ioaddr.nsect_addr);
-	writeb (0, port[num].ioaddr.lbal_addr);
-	writeb (0, port[num].ioaddr.lbam_addr);
-	writeb (0, port[num].ioaddr.lbah_addr);
-
-	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
-	writeb (ATA_CMD_SET_FEATURES, port[num].ioaddr.command_addr);
-
-	udelay(50);
-	msleep (150);
-
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 5000, 0);
-	if ((status & (ATA_BUSY | ATA_ERR))) {
-		printf ("Error  : status 0x%02x\n", status);
-		port[num].dev_mask &= ~0x01;
-	}
-}
-
-u8 sil3114_spin_down (int num)
-{
-	u8 status = 0;
-
-	debug ("Spin down disk\n");
-
-	if (!(port[num].dev_mask & 0x01)) {
-		debug ("Device ata%d is not present\n", num);
-		return 1;
-	}
-
-	if ((status = check_power_mode (num)) == 0x00) {
-		debug ("Already in standby\n");
-		return 0;
-	}
-
-	if (status == 0x01) {
-		printf ("Failed to check power mode on ata%d\n", num);
-		return 1;
-	}
-
-	if (!((status = sata_chk_status (&port[num].ioaddr, 0)) & ATA_DRDY)) {
-		printf ("Device ata%d not ready\n", num);
-		return 1;
-	}
-
-	writeb (0x00, port[num].ioaddr.feature_addr);
-
-	writeb (0x00, port[num].ioaddr.nsect_addr);
-	writeb (0x00, port[num].ioaddr.lbal_addr);
-	writeb (0x00, port[num].ioaddr.lbam_addr);
-	writeb (0x00, port[num].ioaddr.lbah_addr);
-
-	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
-	writeb (ATA_CMD_STANDBY, port[num].ioaddr.command_addr);
-
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 30000, 0);
-	if ((status & (ATA_BUSY | ATA_ERR))) {
-		printf ("Error waiting for disk spin down: status 0x%02x\n",
-			status);
-		port[num].dev_mask &= ~0x01;
-		return 1;
-	}
-	return 0;
-}
-
-u8 sil3114_spin_up (int num)
-{
-	u8 status = 0;
-
-	debug ("Spin up disk\n");
-
-	if (!(port[num].dev_mask & 0x01)) {
-		debug ("Device ata%d is not present\n", num);
-		return 1;
-	}
-
-	if ((status = check_power_mode (num)) != 0x00) {
-		if (status == 0x01) {
-			printf ("Failed to check power mode on ata%d\n", num);
-			return 1;
-		} else {
-			/* should be up and running already */
-			return 0;
-		}
-	}
-
-	if (!((status = sata_chk_status (&port[num].ioaddr, 0)) & ATA_DRDY)) {
-		printf ("Device ata%d not ready\n", num);
-		return 1;
-	}
-
-	debug ("Stautus of device check: %d\n", status);
-
-	writeb (0x00, port[num].ioaddr.feature_addr);
-
-	writeb (0x00, port[num].ioaddr.nsect_addr);
-	writeb (0x00, port[num].ioaddr.lbal_addr);
-	writeb (0x00, port[num].ioaddr.lbam_addr);
-	writeb (0x00, port[num].ioaddr.lbah_addr);
-
-	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
-	writeb (ATA_CMD_IDLE, port[num].ioaddr.command_addr);
-
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 30000, 0);
-	if ((status & (ATA_BUSY | ATA_ERR))) {
-		printf ("Error waiting for disk spin up: status 0x%02x\n",
-			status);
-		port[num].dev_mask &= ~0x01;
-		return 1;
-	}
-
-	/* Wait for disk to enter Active state */
-	do {
-		msleep (10);
-		status = check_power_mode (num);
-	} while ((status == 0x00) || (status == 0x80));
-
-	if (status == 0x01) {
-		printf ("Falied waiting for disk to spin up\n");
-		return 1;
-	}
-
-	return 0;
-}
-
-/* Return value is not the usual here
- * 0x00 - Device stand by
- * 0x01 - Operation failed
- * 0x80 - Device idle
- * 0xff - Device active
-*/
-static u8 check_power_mode (int num)
-{
-	u8 status = 0;
-	u8 res = 0;
-	if (!(port[num].dev_mask & 0x01)) {
-		debug ("Device ata%d is not present\n", num);
-		return 1;
-	}
-
-	if (!(sata_chk_status (&port[num].ioaddr, 0) & ATA_DRDY)) {
-		printf ("Device ata%d not ready\n", num);
-		return 1;
-	}
-
-	writeb (0, port[num].ioaddr.feature_addr);
-	writeb (0, port[num].ioaddr.nsect_addr);
-	writeb (0, port[num].ioaddr.lbal_addr);
-	writeb (0, port[num].ioaddr.lbam_addr);
-	writeb (0, port[num].ioaddr.lbah_addr);
-
-	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
-	writeb (ATA_CMD_CHK_POWER, port[num].ioaddr.command_addr);
-
-	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 5000, 0);
-	if ((status & (ATA_BUSY | ATA_ERR))) {
-		printf
-		    ("Error waiting for check power mode complete  : status 0x%02x\n",
-		     status);
-		port[num].dev_mask &= ~0x01;
-		return 1;
-	}
-	res = readb (port[num].ioaddr.nsect_addr);
-	debug ("Check powermode: %d\n", res);
-	return res;
-
-}
-
-static void sata_port (struct sata_ioports *ioport)
-{
-	ioport->data_addr = ioport->cmd_addr + ATA_REG_DATA;
-	ioport->error_addr = ioport->cmd_addr + ATA_REG_ERR;
-	ioport->feature_addr = ioport->cmd_addr + ATA_REG_FEATURE;
-	ioport->nsect_addr = ioport->cmd_addr + ATA_REG_NSECT;
-	ioport->lbal_addr = ioport->cmd_addr + ATA_REG_LBAL;
-	ioport->lbam_addr = ioport->cmd_addr + ATA_REG_LBAM;
-	ioport->lbah_addr = ioport->cmd_addr + ATA_REG_LBAH;
-	ioport->device_addr = ioport->cmd_addr + ATA_REG_DEVICE;
-	ioport->status_addr = ioport->cmd_addr + ATA_REG_STATUS;
-	ioport->command_addr = ioport->cmd_addr + ATA_REG_CMD;
-}
-
-static u8 wait_for_irq (int num, unsigned int max)
-{
-
-	u32 port = iobase[5];
-	switch (num) {
-	case 0:
-		port += VND_TF_CNST_CH0;
-		break;
-	case 1:
-		port += VND_TF_CNST_CH1;
-		break;
-	case 2:
-		port += VND_TF_CNST_CH2;
-		break;
-	case 3:
-		port += VND_TF_CNST_CH3;
-		break;
-	default:
-		return 1;
-	}
-
-	do {
-		if (readl (port) & VND_TF_CNST_INTST) {
-			break;
-		}
-		udelay(1000);
-		max--;
-	} while ((max > 0));
-
-	return (max == 0);
-}
-
-static u8 sata_busy_wait (struct sata_ioports *ioaddr, int bits,
-			  unsigned int max, u8 usealtstatus)
-{
-	u8 status;
-
-	do {
-		if (!((status = sata_chk_status (ioaddr, usealtstatus)) & bits)) {
-			break;
-		}
-		udelay(1000);
-		max--;
-	} while ((status & bits) && (max > 0));
-
-	return status;
-}
-
-static u8 sata_chk_status (struct sata_ioports *ioaddr, u8 usealtstatus)
-{
-	if (!usealtstatus) {
-		return readb (ioaddr->status_addr);
-	} else {
-		return readb (ioaddr->altstatus_addr);
-	}
-}
-
-static void msleep (int count)
-{
-	int i;
-
-	for (i = 0; i < count; i++)
-		udelay(1000);
-}
-
-/* Read up to 255 sectors
- *
- * Returns sectors read
-*/
-static u8 do_one_read (int device, ulong block, u8 blkcnt, u16 * buff,
-		       uchar lba48)
-{
-
-	u8 sr = 0;
-	u8 status;
-	u64 blknr = (u64) block;
-
-	if (!(sata_chk_status (&port[device].ioaddr, 0) & ATA_DRDY)) {
-		printf ("Device ata%d not ready\n", device);
-		return 0;
-	}
-
-	/* Set up transfer */
-#ifdef CONFIG_LBA48
-	if (lba48) {
-		/* write high bits */
-		writeb (0, port[device].ioaddr.nsect_addr);
-		writeb ((blknr >> 24) & 0xFF, port[device].ioaddr.lbal_addr);
-		writeb ((blknr >> 32) & 0xFF, port[device].ioaddr.lbam_addr);
-		writeb ((blknr >> 40) & 0xFF, port[device].ioaddr.lbah_addr);
-	}
-#endif
-	writeb (blkcnt, port[device].ioaddr.nsect_addr);
-	writeb (((blknr) >> 0) & 0xFF, port[device].ioaddr.lbal_addr);
-	writeb ((blknr >> 8) & 0xFF, port[device].ioaddr.lbam_addr);
-	writeb ((blknr >> 16) & 0xFF, port[device].ioaddr.lbah_addr);
-
-#ifdef CONFIG_LBA48
-	if (lba48) {
-		writeb (ATA_LBA, port[device].ioaddr.device_addr);
-		writeb (ATA_CMD_PIO_READ_EXT, port[device].ioaddr.command_addr);
-	} else
-#endif
-	{
-		writeb (ATA_LBA | ((blknr >> 24) & 0xF),
-			port[device].ioaddr.device_addr);
-		writeb (ATA_CMD_PIO_READ, port[device].ioaddr.command_addr);
-	}
-
-	status = sata_busy_wait (&port[device].ioaddr, ATA_BUSY, 10000, 1);
-
-	if (status & ATA_BUSY) {
-		u8 err = 0;
-
-		printf ("Device %d not responding status %d\n", device, status);
-		err = readb (port[device].ioaddr.error_addr);
-		printf ("Error reg = 0x%x\n", err);
-
-		return (sr);
-	}
-	while (blkcnt--) {
-
-		if (wait_for_irq (device, 500)) {
-			printf ("ata%u irq failed\n", device);
-			return sr;
-		}
-
-		status = sata_chk_status (&port[device].ioaddr, 0);
-		if (status & ATA_ERR) {
-			printf ("ata%u error %d\n", device,
-				readb (port[device].ioaddr.error_addr));
-			return sr;
-		}
-		/* Read one sector */
-		input_data (&port[device].ioaddr, buff, ATA_SECTOR_WORDS);
-		buff += ATA_SECTOR_WORDS;
-		sr++;
-
-	}
-	return sr;
-}
-
-ulong sata_read (int device, ulong block, lbaint_t blkcnt, void *buff)
-{
-	ulong n = 0, sread;
-	u16 *buffer = (u16 *) buff;
-	u8 status = 0;
-	u64 blknr = (u64) block;
-	unsigned char lba48 = 0;
-
-#ifdef CONFIG_LBA48
-	if (blknr > 0xfffffff) {
-		if (!sata_dev_desc[device].lba48) {
-			printf ("Drive doesn't support 48-bit addressing\n");
-			return 0;
-		}
-		/* more than 28 bits used, use 48bit mode */
-		lba48 = 1;
-	}
-#endif
-
-	while (blkcnt > 0) {
-
-		if (blkcnt > 255) {
-			sread = 255;
-		} else {
-			sread = blkcnt;
-		}
-
-		status = do_one_read (device, blknr, sread, buffer, lba48);
-		if (status != sread) {
-			printf ("Read failed\n");
-			return n;
-		}
-
-		blkcnt -= sread;
-		blknr += sread;
-		n += sread;
-		buffer += sread * ATA_SECTOR_WORDS;
-	}
-	return n;
-}
-
-ulong sata_write (int device, ulong block, lbaint_t blkcnt, const void *buff)
-{
-	ulong n = 0;
-	u16 *buffer = (u16 *) buff;
-	unsigned char status = 0, num = 0;
-	u64 blknr = (u64) block;
-#ifdef CONFIG_LBA48
-	unsigned char lba48 = 0;
-
-	if (blknr > 0xfffffff) {
-		if (!sata_dev_desc[device].lba48) {
-			printf ("Drive doesn't support 48-bit addressing\n");
-			return 0;
-		}
-		/* more than 28 bits used, use 48bit mode */
-		lba48 = 1;
-	}
-#endif
-	/*Port Number */
-	num = device;
-
-	while (blkcnt-- > 0) {
-		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 500, 0);
-		if (status & ATA_BUSY) {
-			printf ("ata%u failed to respond\n", port[num].port_no);
-			return n;
-		}
-#ifdef CONFIG_LBA48
-		if (lba48) {
-			/* write high bits */
-			writeb (0, port[num].ioaddr.nsect_addr);
-			writeb ((blknr >> 24) & 0xFF,
-				port[num].ioaddr.lbal_addr);
-			writeb ((blknr >> 32) & 0xFF,
-				port[num].ioaddr.lbam_addr);
-			writeb ((blknr >> 40) & 0xFF,
-				port[num].ioaddr.lbah_addr);
-		}
-#endif
-		writeb (1, port[num].ioaddr.nsect_addr);
-		writeb ((blknr >> 0) & 0xFF, port[num].ioaddr.lbal_addr);
-		writeb ((blknr >> 8) & 0xFF, port[num].ioaddr.lbam_addr);
-		writeb ((blknr >> 16) & 0xFF, port[num].ioaddr.lbah_addr);
-#ifdef CONFIG_LBA48
-		if (lba48) {
-			writeb (ATA_LBA, port[num].ioaddr.device_addr);
-			writeb (ATA_CMD_PIO_WRITE_EXT, port[num].ioaddr.command_addr);
-		} else
-#endif
-		{
-			writeb (ATA_LBA | ((blknr >> 24) & 0xF),
-				port[num].ioaddr.device_addr);
-			writeb (ATA_CMD_PIO_WRITE, port[num].ioaddr.command_addr);
-		}
-
-		msleep (50);
-		/*may take up to 4 sec */
-		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 4000, 0);
-		if ((status & (ATA_DRQ | ATA_BUSY | ATA_ERR)) != ATA_DRQ) {
-			printf ("Error no DRQ dev %d blk %ld: sts 0x%02x\n",
-				device, (ulong) blknr, status);
-			return (n);
-		}
-
-		output_data (&port[num].ioaddr, buffer, ATA_SECTOR_WORDS);
-		readb (port[num].ioaddr.altstatus_addr);
-		udelay(50);
-
-		++n;
-		++blknr;
-		buffer += ATA_SECTOR_WORDS;
-	}
-	return n;
-}
-
-/* Driver implementation */
-static u8 sil_get_device_cache_line (pci_dev_t pdev)
-{
-	u8 cache_line = 0;
-	pci_read_config_byte (pdev, PCI_CACHE_LINE_SIZE, &cache_line);
-	return cache_line;
-}
-
-int init_sata (int dev)
-{
-	static u8 init_done = 0;
-	static int res = 1;
-	pci_dev_t devno;
-	u8 cls = 0;
-	u16 cmd = 0;
-	u32 sconf = 0;
-
-	if (init_done) {
-		return res;
-	}
-
-	init_done = 1;
-
-	if ((devno = pci_find_device (SIL_VEND_ID, SIL3114_DEVICE_ID, 0)) == -1) {
-		res = 1;
-		return res;
-	}
-
-	/* Read out all BARs, even though we only use MMIO from BAR5 */
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_0, &iobase[0]);
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_1, &iobase[1]);
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_2, &iobase[2]);
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_3, &iobase[3]);
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_4, &iobase[4]);
-	pci_read_config_dword (devno, PCI_BASE_ADDRESS_5, &iobase[5]);
-
-	if ((iobase[0] == 0xFFFFFFFF) || (iobase[1] == 0xFFFFFFFF) ||
-	    (iobase[2] == 0xFFFFFFFF) || (iobase[3] == 0xFFFFFFFF) ||
-	    (iobase[4] == 0xFFFFFFFF) || (iobase[5] == 0xFFFFFFFF)) {
-		printf ("Error no base addr for SATA controller\n");
-		res = 1;
-		return res;
-	}
-
-	/* mask off unused bits */
-	iobase[0] &= 0xfffffffc;
-	iobase[1] &= 0xfffffff8;
-	iobase[2] &= 0xfffffffc;
-	iobase[3] &= 0xfffffff8;
-	iobase[4] &= 0xfffffff0;
-	iobase[5] &= 0xfffffc00;
-
-	/* from sata_sil in Linux kernel */
-	cls = sil_get_device_cache_line (devno);
-	if (cls) {
-		cls >>= 3;
-		cls++;		/* cls = (line_size/8)+1 */
-		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH0);
-		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH1);
-		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH2);
-		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH3);
-	} else {
-		printf ("Cache line not set. Driver may not function\n");
-	}
-
-	/* Enable operation */
-	pci_read_config_word (devno, PCI_COMMAND, &cmd);
-	cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY;
-	pci_write_config_word (devno, PCI_COMMAND, cmd);
-
-	/* Disable interrupt usage */
-	pci_read_config_dword (devno, VND_SYSCONFSTAT, &sconf);
-	sconf |= (VND_SYSCONFSTAT_CHN_0_INTBLOCK | VND_SYSCONFSTAT_CHN_1_INTBLOCK);
-	pci_write_config_dword (devno, VND_SYSCONFSTAT, sconf);
-
-	res = 0;
-	return res;
-}
-
-int reset_sata(int dev)
-{
-	return 0;
-}
-
-/* Check if device is connected to port */
-int sata_bus_probe (int portno)
-{
-	u32 port = iobase[5];
-	u32 val;
-	switch (portno) {
-	case 0:
-		port += VND_SSTATUS_CH0;
-		break;
-	case 1:
-		port += VND_SSTATUS_CH1;
-		break;
-	case 2:
-		port += VND_SSTATUS_CH2;
-		break;
-	case 3:
-		port += VND_SSTATUS_CH3;
-		break;
-	default:
-		return 0;
-	}
-	val = readl (port);
-	if ((val & SATA_DET_PRES) == SATA_DET_PRES) {
-		return 1;
-	} else {
-		return 0;
-	}
-}
-
-int sata_phy_reset (int portno)
-{
-	u32 port = iobase[5];
-	u32 val;
-	switch (portno) {
-	case 0:
-		port += VND_SCONTROL_CH0;
-		break;
-	case 1:
-		port += VND_SCONTROL_CH1;
-		break;
-	case 2:
-		port += VND_SCONTROL_CH2;
-		break;
-	case 3:
-		port += VND_SCONTROL_CH3;
-		break;
-	default:
-		return 0;
-	}
-	val = readl (port);
-	writel (val | SATA_SC_DET_RST, port);
-	msleep (150);
-	writel (val & ~SATA_SC_DET_RST, port);
-	return 0;
-}
-
-int scan_sata (int dev)
-{
-	/* A bit brain dead, but the code has a legacy */
-	switch (dev) {
-	case 0:
-		port[0].port_no = 0;
-		port[0].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH0;
-		port[0].ioaddr.altstatus_addr = port[0].ioaddr.ctl_addr =
-		    (iobase[5] + VND_TF2_CH0) | ATA_PCI_CTL_OFS;
-		port[0].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH0;
-		break;
-#if (CONFIG_SYS_SATA_MAX_DEVICE >= 1)
-	case 1:
-		port[1].port_no = 0;
-		port[1].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH1;
-		port[1].ioaddr.altstatus_addr = port[1].ioaddr.ctl_addr =
-		    (iobase[5] + VND_TF2_CH1) | ATA_PCI_CTL_OFS;
-		port[1].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH1;
-		break;
-#elif (CONFIG_SYS_SATA_MAX_DEVICE >= 2)
-	case 2:
-		port[2].port_no = 0;
-		port[2].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH2;
-		port[2].ioaddr.altstatus_addr = port[2].ioaddr.ctl_addr =
-		    (iobase[5] + VND_TF2_CH2) | ATA_PCI_CTL_OFS;
-		port[2].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH2;
-		break;
-#elif (CONFIG_SYS_SATA_MAX_DEVICE >= 3)
-	case 3:
-		port[3].port_no = 0;
-		port[3].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH3;
-		port[3].ioaddr.altstatus_addr = port[3].ioaddr.ctl_addr =
-		    (iobase[5] + VND_TF2_CH3) | ATA_PCI_CTL_OFS;
-		port[3].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH3;
-		break;
-#endif
-	default:
-		printf ("Tried to scan unknown port: ata%d\n", dev);
-		return 1;
-	}
-
-	/* Initialize other registers */
-	sata_port (&port[dev].ioaddr);
-
-	/* Check for attached device */
-	if (!sata_bus_probe (dev)) {
-		port[dev].port_state = 0;
-		debug ("SATA#%d port is not present\n", dev);
-	} else {
-		debug ("SATA#%d port is present\n", dev);
-		if (sata_bus_softreset (dev)) {
-			/* soft reset failed, try a hard one */
-			sata_phy_reset (dev);
-			if (sata_bus_softreset (dev)) {
-				port[dev].port_state = 0;
-			} else {
-				port[dev].port_state = 1;
-			}
-		} else {
-			port[dev].port_state = 1;
-		}
-	}
-	if (port[dev].port_state == 1) {
-		/* Probe device and set xfer mode */
-		sata_identify (dev, 0);
-		set_Feature_cmd (dev, 0);
-	}
-
-	return 0;
-}
diff --git a/drivers/ata/sata_sil3114.h b/drivers/ata/sata_sil3114.h
deleted file mode 100644
index a336eb5d1a2..00000000000
--- a/drivers/ata/sata_sil3114.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) Excito Elektronik i Skåne AB, All rights reserved.
- * Author: Tor Krill <tor@excito.com>
- */
-
-#ifndef SATA_SIL3114_H
-#define SATA_SIL3114_H
-
-struct sata_ioports {
-	unsigned long cmd_addr;
-	unsigned long data_addr;
-	unsigned long error_addr;
-	unsigned long feature_addr;
-	unsigned long nsect_addr;
-	unsigned long lbal_addr;
-	unsigned long lbam_addr;
-	unsigned long lbah_addr;
-	unsigned long device_addr;
-	unsigned long status_addr;
-	unsigned long command_addr;
-	unsigned long altstatus_addr;
-	unsigned long ctl_addr;
-	unsigned long bmdma_addr;
-	unsigned long scr_addr;
-};
-
-struct sata_port {
-	unsigned char port_no;	/* primary=0, secondary=1       */
-	struct sata_ioports ioaddr;	/* ATA cmd/ctl/dma reg blks     */
-	unsigned char ctl_reg;
-	unsigned char last_ctl;
-	unsigned char port_state;	/* 1-port is available and      */
-	/* 0-port is not available      */
-	unsigned char dev_mask;
-};
-
-/* Missing ata defines */
-#define ATA_CMD_STANDBY			0xE2
-#define ATA_CMD_STANDBYNOW1		0xE0
-#define ATA_CMD_IDLE			0xE3
-#define ATA_CMD_IDLEIMMEDIATE	0xE1
-
-/* Defines for SIL3114 chip */
-
-/* PCI defines */
-#define SIL_VEND_ID		0x1095
-#define SIL3114_DEVICE_ID	0x3114
-
-/* some vendor specific registers */
-#define	VND_SYSCONFSTAT	0x88	/* System Configuration Status and Command */
-#define VND_SYSCONFSTAT_CHN_0_INTBLOCK (1<<22)
-#define VND_SYSCONFSTAT_CHN_1_INTBLOCK (1<<23)
-#define VND_SYSCONFSTAT_CHN_2_INTBLOCK (1<<24)
-#define VND_SYSCONFSTAT_CHN_3_INTBLOCK (1<<25)
-
-/* internal registers mapped by BAR5 */
-/* SATA Control*/
-#define VND_SCONTROL_CH0	0x100
-#define VND_SCONTROL_CH1	0x180
-#define VND_SCONTROL_CH2	0x300
-#define VND_SCONTROL_CH3	0x380
-
-#define SATA_SC_IPM_T2P		(1<<16)
-#define SATA_SC_IPM_T2S		(2<<16)
-#define SATA_SC_SPD_1_5		(1<<4)
-#define SATA_SC_SPD_3_0		(2<<4)
-#define SATA_SC_DET_RST		(1)	/* ATA Reset sequence */
-#define SATA_SC_DET_PDIS	(4)	/* PHY Disable */
-
-/* SATA Status */
-#define VND_SSTATUS_CH0		0x104
-#define VND_SSTATUS_CH1		0x184
-#define VND_SSTATUS_CH2		0x304
-#define VND_SSTATUS_CH3		0x384
-
-#define SATA_SS_IPM_ACTIVE	(1<<8)
-#define SATA_SS_IPM_PARTIAL	(2<<8)
-#define SATA_SS_IPM_SLUMBER	(6<<8)
-#define SATA_SS_SPD_1_5		(1<<4)
-#define SATA_SS_SPD_3_0		(2<<4)
-#define SATA_DET_P_NOPHY	(1)	/* Device presence but no PHY connection established */
-#define SATA_DET_PRES		(3)	/* Device presence and active PHY */
-#define SATA_DET_OFFLINE	(4)	/* Device offline or in loopback mode */
-
-/* Task file registers in BAR5 mapping */
-#define VND_TF0_CH0			0x80
-#define VND_TF0_CH1			0xc0
-#define VND_TF0_CH2			0x280
-#define VND_TF0_CH3			0x2c0
-#define VND_TF1_CH0			0x88
-#define VND_TF1_CH1			0xc8
-#define VND_TF1_CH2			0x288
-#define VND_TF1_CH3			0x2c8
-#define VND_TF2_CH0			0x88
-#define VND_TF2_CH1			0xc8
-#define VND_TF2_CH2			0x288
-#define VND_TF2_CH3			0x2c8
-
-#define VND_BMDMA_CH0		0x00
-#define VND_BMDMA_CH1		0x08
-#define VND_BMDMA_CH2		0x200
-#define VND_BMDMA_CH3		0x208
-#define VND_BMDMA2_CH0		0x10
-#define VND_BMDMA2_CH1		0x18
-#define VND_BMDMA2_CH2		0x210
-#define VND_BMDMA2_CH3		0x218
-
-/* FIFO control */
-#define	VND_FIFOCFG_CH0		0x40
-#define	VND_FIFOCFG_CH1		0x44
-#define	VND_FIFOCFG_CH2		0x240
-#define	VND_FIFOCFG_CH3		0x244
-
-/* Task File configuration and status */
-#define VND_TF_CNST_CH0		0xa0
-#define VND_TF_CNST_CH1		0xe0
-#define VND_TF_CNST_CH2		0x2a0
-#define VND_TF_CNST_CH3		0x2e0
-
-#define VND_TF_CNST_BFCMD	(1<<1)
-#define VND_TF_CNST_CHNRST	(1<<2)
-#define VND_TF_CNST_VDMA	(1<<10)
-#define VND_TF_CNST_INTST	(1<<11)
-#define VND_TF_CNST_WDTO	(1<<12)
-#define VND_TF_CNST_WDEN	(1<<13)
-#define VND_TF_CNST_WDIEN	(1<<14)
-
-/* for testing */
-#define VND_SSDR			0x04c	/* System Software Data Register */
-#define VND_FMACS			0x050	/* Flash Memory Address control and status */
-
-#endif
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 2/8] sata: Only support BLK
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
  2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:08   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 3/8] sata: Rearrange Kconfig for SATA Simon Glass
                   ` (5 subsequent siblings)
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass, Pali Rohár

No boards currently use SATA without BLK:

   ./tools/moveconfig.py -f SATA ~BLK
   0 matches

Make SATA depend on BLK to avoid any future confusion. Drop the dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/ata/Kconfig |  4 +---
 drivers/ata/sata.c  | 27 ---------------------------
 2 files changed, 1 insertion(+), 30 deletions(-)

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index f9978a35796..1def9305dd5 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -9,6 +9,7 @@ config AHCI
 
 config SATA
 	bool "Support SATA controllers"
+	depends on BLK
 	select HAVE_BLOCK_DEVICE
 	help
 	  This enables support for SATA (Serial Advanced Technology
@@ -86,7 +87,6 @@ config FSL_SATA
 	bool "Enable Freescale SATA controller driver support"
 	select AHCI
 	select LIBATA
-	depends on BLK
 	help
 	  Enable this driver to support the SATA controller found in
 	  some Freescale PowerPC SoCs.
@@ -95,7 +95,6 @@ config SATA_MV
 	bool "Enable Marvell SATA controller driver support"
 	select AHCI
 	select LIBATA
-	depends on BLK
 	help
 	  Enable this driver to support the SATA controller found in
 	  some Marvell SoCs.
@@ -104,7 +103,6 @@ config SATA_SIL
 	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
 	select AHCI
 	select LIBATA
-	depends on BLK
 	help
 	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
 	  SATA controllers.
diff --git a/drivers/ata/sata.c b/drivers/ata/sata.c
index 6a38d500245..0e6c8cdd422 100644
--- a/drivers/ata/sata.c
+++ b/drivers/ata/sata.c
@@ -59,7 +59,6 @@ struct blk_desc *sata_get_dev(int dev)
 #endif
 #endif
 
-#ifdef CONFIG_BLK
 static unsigned long sata_bread(struct udevice *dev, lbaint_t start,
 				lbaint_t blkcnt, void *dst)
 {
@@ -71,19 +70,6 @@ static unsigned long sata_bwrite(struct udevice *dev, lbaint_t start,
 {
 	return -ENOSYS;
 }
-#else
-static unsigned long sata_bread(struct blk_desc *block_dev, lbaint_t start,
-				lbaint_t blkcnt, void *dst)
-{
-	return sata_read(block_dev->devnum, start, blkcnt, dst);
-}
-
-static unsigned long sata_bwrite(struct blk_desc *block_dev, lbaint_t start,
-				 lbaint_t blkcnt, const void *buffer)
-{
-	return sata_write(block_dev->devnum, start, blkcnt, buffer);
-}
-#endif
 
 #ifndef CONFIG_AHCI
 int __sata_initialize(void)
@@ -100,10 +86,6 @@ int __sata_initialize(void)
 		sata_dev_desc[i].lba = 0;
 		sata_dev_desc[i].blksz = 512;
 		sata_dev_desc[i].log2blksz = LOG2(sata_dev_desc[i].blksz);
-#ifndef CONFIG_BLK
-		sata_dev_desc[i].block_read = sata_bread;
-		sata_dev_desc[i].block_write = sata_bwrite;
-#endif
 		rc = init_sata(i);
 		if (!rc) {
 			rc = scan_sata(i);
@@ -134,7 +116,6 @@ __weak int __sata_stop(void)
 int sata_stop(void) __attribute__((weak, alias("__sata_stop")));
 #endif
 
-#ifdef CONFIG_BLK
 static const struct blk_ops sata_blk_ops = {
 	.read	= sata_bread,
 	.write	= sata_bwrite,
@@ -145,11 +126,3 @@ U_BOOT_DRIVER(sata_blk) = {
 	.id		= UCLASS_BLK,
 	.ops		= &sata_blk_ops,
 };
-#else
-U_BOOT_LEGACY_BLK(sata) = {
-	.if_typename	= "sata",
-	.if_type	= IF_TYPE_SATA,
-	.max_devs	= CONFIG_SYS_SATA_MAX_DEVICE,
-	.desc		= sata_dev_desc,
-};
-#endif
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 3/8] sata: Rearrange Kconfig for SATA
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
  2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
  2022-01-31 14:49 ` [PATCH 2/8] sata: Only support BLK Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:09   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 4/8] sata: sata_sil: Only support BLK Simon Glass
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass, Pali Rohár

Move the SATA options inside an 'if SATA' part, so they are grouped.

Fix the 'Complient' typo while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/ata/Kconfig | 71 +++++++++++++++++++++++----------------------
 1 file changed, 37 insertions(+), 34 deletions(-)

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 1def9305dd5..6e8363c04d9 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -48,16 +48,6 @@ config SPL_AHCI_PCI
 	depends on SPL_PCI
 	depends on SPL_SATA_SUPPORT && DM_SCSI
 
-config SATA_CEVA
-	bool "Ceva Sata controller"
-	depends on AHCI
-	depends on DM_SCSI
-	help
-	  This option enables Ceva Sata controller hard IP available on Xilinx
-	  ZynqMP. Support up to 2 external devices. Complient with SATA 3.1 and
-	  AHCI 1.3 specifications with hot-plug detect feature.
-
-
 config DWC_AHCI
 	bool "Enable Synopsys DWC AHCI driver support"
 	select SCSI_AHCI
@@ -83,30 +73,6 @@ config DWC_AHSATA_AHCI
 	help
 	  Enable this option unless you need your private ahci implementation
 
-config FSL_SATA
-	bool "Enable Freescale SATA controller driver support"
-	select AHCI
-	select LIBATA
-	help
-	  Enable this driver to support the SATA controller found in
-	  some Freescale PowerPC SoCs.
-
-config SATA_MV
-	bool "Enable Marvell SATA controller driver support"
-	select AHCI
-	select LIBATA
-	help
-	  Enable this driver to support the SATA controller found in
-	  some Marvell SoCs.
-
-config SATA_SIL
-	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
-	select AHCI
-	select LIBATA
-	help
-	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
-	  SATA controllers.
-
 config SUNXI_AHCI
 	bool "Enable Allwinner SATA driver support"
 	depends on AHCI
@@ -134,4 +100,41 @@ config MTK_AHCI
 	  Enable this driver to support Sata devices through
 	  Mediatek AHCI controller (e.g. MT7622).
 
+if SATA
+
+config SATA_CEVA
+	bool "Ceva Sata controller"
+	depends on AHCI
+	depends on DM_SCSI
+	help
+	  This option enables Ceva Sata controller hard IP available on Xilinx
+	  ZynqMP. Support up to 2 external devices. Compliant with SATA 3.1 and
+	  AHCI 1.3 specifications with hot-plug detect feature.
+
+config FSL_SATA
+	bool "Enable Freescale SATA controller driver support"
+	select AHCI
+	select LIBATA
+	help
+	  Enable this driver to support the SATA controller found in
+	  some Freescale PowerPC SoCs.
+
+config SATA_MV
+	bool "Enable Marvell SATA controller driver support"
+	select AHCI
+	select LIBATA
+	help
+	  Enable this driver to support the SATA controller found in
+	  some Marvell SoCs.
+
+config SATA_SIL
+	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
+	select AHCI
+	select LIBATA
+	help
+	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
+	  SATA controllers.
+
+endif # SATA
+
 endmenu
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 4/8] sata: sata_sil: Only support BLK
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
                   ` (2 preceding siblings ...)
  2022-01-31 14:49 ` [PATCH 3/8] sata: Rearrange Kconfig for SATA Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:13   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 5/8] ahci: Make ahci drivers depend on AHCI Simon Glass
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List; +Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass

No boards use this driver without CONFIG_BLK, so clean up the dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/ata/sata_sil.c | 118 ++---------------------------------------
 1 file changed, 3 insertions(+), 115 deletions(-)

diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index dda712f42cb..a4f0dae4bbd 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -6,7 +6,9 @@
  */
 
 #include <common.h>
+#include <blk.h>
 #include <cpu_func.h>
+#include <dm.h>
 #include <log.h>
 #include <pci.h>
 #include <command.h>
@@ -17,13 +19,8 @@
 #include <sata.h>
 #include <libata.h>
 #include <sata.h>
-#include <linux/delay.h>
-
-#if CONFIG_IS_ENABLED(BLK)
-#include <dm.h>
-#include <blk.h>
 #include <dm/device-internal.h>
-#endif
+#include <linux/delay.h>
 
 #include "sata_sil.h"
 
@@ -480,18 +477,12 @@ static void sil_sata_cmd_flush_cache_ext(struct sil_sata *sata)
 /*
  * SATA interface between low level driver and command layer
  */
-#if !CONFIG_IS_ENABLED(BLK)
-ulong sata_read(int dev, ulong blknr, lbaint_t blkcnt, void *buffer)
-{
-	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
-#else
 static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		       void *buffer)
 {
 	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
-#endif
 	ulong rc;
 
 	if (sata->lba48)
@@ -505,18 +496,12 @@ static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 /*
  * SATA interface between low level driver and command layer
  */
-#if !CONFIG_IS_ENABLED(BLK)
-ulong sata_write(int dev, ulong blknr, lbaint_t blkcnt, const void *buffer)
-{
-	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
-#else
 ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		 const void *buffer)
 {
 	struct sil_sata_priv *priv = dev_get_plat(dev);
 	int port_number = priv->port_num;
 	struct sil_sata *sata = priv->sil_sata_desc[port_number];
-#endif
 	ulong rc;
 
 	if (sata->lba48) {
@@ -532,14 +517,9 @@ ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 	return rc;
 }
 
-#if !CONFIG_IS_ENABLED(BLK)
-static int sil_init_sata(int dev)
-{
-#else
 static int sil_init_sata(struct udevice *uc_dev, int dev)
 {
 	struct sil_sata_priv *priv = dev_get_plat(uc_dev);
-#endif
 	struct sil_sata *sata;
 	void *port;
 	u32 tmp;
@@ -606,14 +586,9 @@ static int sil_init_sata(struct udevice *uc_dev, int dev)
 	memset((void *)sata, 0, sizeof(struct sil_sata));
 
 	/* Save the private struct to block device struct */
-#if !CONFIG_IS_ENABLED(BLK)
-	sata_dev_desc[dev].priv = (void *)sata;
-	sata->devno = sata_info.devno;
-#else
 	priv->sil_sata_desc[dev] = sata;
 	priv->port_num = dev;
 	sata->devno = uc_dev->parent;
-#endif
 	sata->id = dev;
 	sata->port = port;
 	sprintf(sata->name, "SATA#%d", dev);
@@ -625,85 +600,11 @@ static int sil_init_sata(struct udevice *uc_dev, int dev)
 	return 0;
 }
 
-#if !CONFIG_IS_ENABLED(BLK)
-/*
- * SATA interface between low level driver and command layer
- */
-int init_sata(int dev)
-{
-	static int init_done, idx;
-	pci_dev_t devno;
-	u16 word;
-
-	if (init_done == 1 && dev < sata_info.maxport)
-		goto init_start;
-
-	init_done = 1;
-
-	/* Find PCI device(s) */
-	devno = pci_find_devices(supported, idx++);
-	if (devno == -1)
-		return 1;
-
-	pci_read_config_word(devno, PCI_DEVICE_ID, &word);
-
-	/* get the port count */
-	word &= 0xf;
-
-	sata_info.portbase = 0;
-	sata_info.maxport = sata_info.portbase + word;
-	sata_info.devno = devno;
-
-	/* Read out all BARs */
-	sata_info.iobase[0] = (ulong)pci_map_bar(devno,
-			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
-	sata_info.iobase[1] = (ulong)pci_map_bar(devno,
-			PCI_BASE_ADDRESS_2, PCI_REGION_MEM);
-
-	/* mask out the unused bits */
-	sata_info.iobase[0] &= 0xffffff80;
-	sata_info.iobase[1] &= 0xfffffc00;
-
-	/* Enable Bus Mastering and memory region */
-	pci_write_config_word(devno, PCI_COMMAND,
-			      PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
-
-	/* Check if mem accesses and Bus Mastering are enabled. */
-	pci_read_config_word(devno, PCI_COMMAND, &word);
-	if (!(word & PCI_COMMAND_MEMORY) ||
-	    (!(word & PCI_COMMAND_MASTER))) {
-		printf("Error: Can not enable MEM access or Bus Mastering.\n");
-		debug("PCI command: %04x\n", word);
-		return 1;
-	}
-
-	/* GPIO off */
-	writel(0, (void *)(sata_info.iobase[0] + HOST_FLASH_CMD));
-	/* clear global reset & mask interrupts during initialization */
-	writel(0, (void *)(sata_info.iobase[0] + HOST_CTRL));
-
-init_start:
-	return sil_init_sata(dev);
-}
-
-int reset_sata(int dev)
-{
-	return 0;
-}
-
-/*
- * SATA interface between low level driver and command layer
- */
-int scan_sata(int dev)
-{
-	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
-#else
 static int scan_sata(struct udevice *blk_dev, int dev)
 {
 	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
 	struct sil_sata_priv *priv = dev_get_plat(blk_dev);
 	struct sil_sata *sata = priv->sil_sata_desc[dev];
-#endif
 	unsigned char serial[ATA_ID_SERNO_LEN + 1];
 	unsigned char firmware[ATA_ID_FW_REV_LEN + 1];
 	unsigned char product[ATA_ID_PROD_LEN + 1];
@@ -727,16 +628,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
 	/* Product model */
 	ata_id_c_string(id, product, ATA_ID_PROD, sizeof(product));
 
-#if !CONFIG_IS_ENABLED(BLK)
-	memcpy(sata_dev_desc[dev].product, serial, sizeof(serial));
-	memcpy(sata_dev_desc[dev].revision, firmware, sizeof(firmware));
-	memcpy(sata_dev_desc[dev].vendor, product, sizeof(product));
-	/* Totoal sectors */
-	sata_dev_desc[dev].lba = ata_id_n_sectors(id);
-#ifdef CONFIG_LBA48
-	sata_dev_desc[dev].lba48 = sata->lba48;
-#endif
-#else
 	memcpy(desc->product, serial, sizeof(serial));
 	memcpy(desc->revision, firmware, sizeof(firmware));
 	memcpy(desc->vendor, product, sizeof(product));
@@ -744,7 +635,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
 #ifdef CONFIG_LBA48
 	desc->lba48 = sata->lba48;
 #endif
-#endif
 
 #ifdef DEBUG
 	ata_dump_id(id);
@@ -754,7 +644,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
 	return 0;
 }
 
-#if CONFIG_IS_ENABLED(BLK)
 static const struct blk_ops sata_sil_blk_ops = {
 	.read	= sata_read,
 	.write	= sata_write,
@@ -916,4 +805,3 @@ U_BOOT_DRIVER(sil_ahci_pci) = {
 };
 
 U_BOOT_PCI_DEVICE(sil_ahci_pci, supported);
-#endif
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 5/8] ahci: Make ahci drivers depend on AHCI
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
                   ` (3 preceding siblings ...)
  2022-01-31 14:49 ` [PATCH 4/8] sata: sata_sil: Only support BLK Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
                   ` (2 subsequent siblings)
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass,
	Pali Rohár, Rob Herring

At present all ahci drivers depend on AHCI except for DWC_AHCI. But no
boards enable that without also enabling AHCI:

   /tools/moveconfig.py -f ~AHCI DWC_AHCI
   0 matches

Group them together and sort them in order by Kconfig name (except for
AHCI_MVEBU which uses a different naming convention).

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 drivers/ata/Kconfig | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 6e8363c04d9..1adf4dc8e2d 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -42,6 +42,8 @@ config AHCI_PCI
 	help
 	  Enables support for the PCI-based AHCI controller.
 
+if AHCI
+
 config SPL_AHCI_PCI
 	bool "Support for PCI-based AHCI controller for SPL"
 	depends on SPL
@@ -68,23 +70,19 @@ config DWC_AHSATA
 config DWC_AHSATA_AHCI
 	bool "Enable DWC AHSATA AHCI driver support"
 	depends on DWC_AHSATA
-	depends on AHCI
 	default y
 	help
 	  Enable this option unless you need your private ahci implementation
 
-config SUNXI_AHCI
-	bool "Enable Allwinner SATA driver support"
-	depends on AHCI
-	default y if ARCH_SUNXI
+config MTK_AHCI
+	bool "Enable Mediatek AHCI driver support"
 	help
-	  Enable this driver to support the SATA controllers found in the
-	  Allwinner A10, A20 and R40 SoCs.
+	  Enable this driver to support Sata devices through
+	  Mediatek AHCI controller (e.g. MT7622).
 
 config AHCI_MVEBU
 	bool "Marvell EBU AHCI SATA support"
 	depends on ARCH_MVEBU || ARCH_OCTEON
-	depends on AHCI
 	select SCSI_AHCI
 	select DM_SCSI
 	help
@@ -93,12 +91,14 @@ config AHCI_MVEBU
 
 	  If unsure, say N.
 
-config MTK_AHCI
-	bool "Enable Mediatek AHCI driver support"
-	depends on AHCI
+config SUNXI_AHCI
+	bool "Enable Allwinner SATA driver support"
+	default y if ARCH_SUNXI
 	help
-	  Enable this driver to support Sata devices through
-	  Mediatek AHCI controller (e.g. MT7622).
+	  Enable this driver to support the SATA controllers found in the
+	  Allwinner A10, A20 and R40 SoCs.
+
+endif # AHCI
 
 if SATA
 
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
                   ` (4 preceding siblings ...)
  2022-01-31 14:49 ` [PATCH 5/8] ahci: Make ahci drivers depend on AHCI Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-01-31 15:58   ` Heinrich Schuchardt
                     ` (2 more replies)
  2022-01-31 14:49 ` [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig Simon Glass
  2022-01-31 14:49 ` [PATCH 8/8] dm: scsi: Add a migration deadline for scsi Simon Glass
  7 siblings, 3 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass, Alison Wang,
	Andre Przywara, Biwen Li, Dennis Gilmore, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Marek Behún, Mario Six,
	Meenakshi Aggarwal, Mian Yousaf Kaukab, Mingkai Hu,
	Patrick Delaunay, Pramod Kumar, Priyanka Jain, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Rob Herring, Tang Yuantian,
	Wasim Khan, Yangbo Lu, liuhao, shuyiqi

This is defined based on two other CONFIGs for all boards except sandbox
and durian.

For sandbox the value does not matter. For durian the value seems
excessive.

Drop the option completely, to simplify configuration and reduce the
number of things we need to convert to Kconfig.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 README                                     | 8 +++-----
 api/api_storage.c                          | 3 ++-
 arch/arm/include/asm/arch-ls102xa/config.h | 2 --
 drivers/scsi/scsi.c                        | 6 +++---
 include/configs/am57xx_evm.h               | 2 --
 include/configs/clearfog.h                 | 2 --
 include/configs/controlcenterdc.h          | 2 --
 include/configs/db-88f6820-gp.h            | 2 --
 include/configs/durian.h                   | 1 -
 include/configs/helios4.h                  | 2 --
 include/configs/highbank.h                 | 2 --
 include/configs/ls1012a2g5rdb.h            | 2 --
 include/configs/ls1012a_common.h           | 2 --
 include/configs/ls1021aiot.h               | 2 --
 include/configs/ls1028aqds.h               | 2 --
 include/configs/ls1028ardb.h               | 2 --
 include/configs/ls1043aqds.h               | 2 --
 include/configs/ls1043ardb.h               | 2 --
 include/configs/ls1046a_common.h           | 2 --
 include/configs/ls1088a_common.h           | 2 --
 include/configs/ls2080aqds.h               | 2 --
 include/configs/ls2080ardb.h               | 2 --
 include/configs/lx2160a_common.h           | 2 --
 include/configs/mvebu_armada-37xx.h        | 2 --
 include/configs/mvebu_armada-8k.h          | 2 --
 include/configs/omap5_uevm.h               | 2 --
 include/configs/sandbox.h                  | 1 -
 include/scsi.h                             | 4 ++++
 scripts/config_whitelist.txt               | 1 -
 29 files changed, 12 insertions(+), 56 deletions(-)

diff --git a/README b/README
index 9ebd4f2345a..48a3f5ca610 100644
--- a/README
+++ b/README
@@ -744,11 +744,9 @@ The following options need to be configured:
 			Default is 32bit.
 
 - SCSI Support:
-		CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
-		CONFIG_SYS_SCSI_MAX_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
-		CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
-		maximum numbers of LUNs, SCSI ID's and target
-		devices.
+		CONFIG_SYS_SCSI_MAX_LUN [8] and CONFIG_SYS_SCSI_MAX_SCSI_ID [7]
+		can be adjusted to define the maximum numbers of LUNs and SCSI
+		IDs.
 
 		The environment variable 'scsidevs' is set to the number of
 		SCSI devices found during the last scan.
diff --git a/api/api_storage.c b/api/api_storage.c
index a0dacad1a55..adca44b4fd2 100644
--- a/api/api_storage.c
+++ b/api/api_storage.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <api_public.h>
 #include <part.h>
+#include <scsi.h>
 
 #if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
 #include <usb.h>
@@ -71,7 +72,7 @@ void dev_stor_init(void)
 	specs[ENUM_SATA].name = "sata";
 #endif
 #if defined(CONFIG_SCSI)
-	specs[ENUM_SCSI].max_dev = CONFIG_SYS_SCSI_MAX_DEVICE;
+	specs[ENUM_SCSI].max_dev = SCSI_MAX_DEVICE;
 	specs[ENUM_SCSI].enum_started = 0;
 	specs[ENUM_SCSI].enum_ended = 0;
 	specs[ENUM_SCSI].type = DEV_TYP_STOR | DT_STOR_SCSI;
diff --git a/arch/arm/include/asm/arch-ls102xa/config.h b/arch/arm/include/asm/arch-ls102xa/config.h
index 0e1f9e0c0d8..489286ed8d1 100644
--- a/arch/arm/include/asm/arch-ls102xa/config.h
+++ b/arch/arm/include/asm/arch-ls102xa/config.h
@@ -81,8 +81,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 #ifdef CONFIG_DDR_SPD
 #define CONFIG_VERY_BIG_RAM
 #define CONFIG_SYS_LS1_DDR_BLOCK1_SIZE		((phys_size_t)2 << 30)
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index d93d2419285..d7b33010e46 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -46,7 +46,7 @@ static int scsi_max_devs; /* number of highest available scsi device */
 
 static int scsi_curr_dev; /* current device */
 
-static struct blk_desc scsi_dev_desc[CONFIG_SYS_SCSI_MAX_DEVICE];
+static struct blk_desc scsi_dev_desc[SCSI_MAX_DEVICE];
 #endif
 
 /* almost the maximum amount of the scsi_ext command.. */
@@ -655,7 +655,7 @@ int scsi_scan(bool verbose)
 
 	if (verbose)
 		printf("scanning bus for devices...\n");
-	for (i = 0; i < CONFIG_SYS_SCSI_MAX_DEVICE; i++)
+	for (i = 0; i < SCSI_MAX_DEVICE; i++)
 		scsi_init_dev_desc(&scsi_dev_desc[i], i);
 
 	scsi_max_devs = 0;
@@ -703,7 +703,7 @@ U_BOOT_DRIVER(scsi_blk) = {
 U_BOOT_LEGACY_BLK(scsi) = {
 	.if_typename	= "scsi",
 	.if_type	= IF_TYPE_SCSI,
-	.max_devs	= CONFIG_SYS_SCSI_MAX_DEVICE,
+	.max_devs	= SCSI_MAX_DEVICE,
 	.desc		= scsi_dev_desc,
 };
 #endif
diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
index 956844414f8..e4e3872d1ca 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -52,8 +52,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 /*
  * Default to using SPI for environment, etc.
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index c9af5a40cec..d5eacf1ec71 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -40,8 +40,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 /* Keep device tree and initrd in lower memory so the kernel can access them */
diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
index ff385d9c6be..2c27a003b3d 100644
--- a/include/configs/controlcenterdc.h
+++ b/include/configs/controlcenterdc.h
@@ -24,8 +24,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					 CONFIG_SYS_SCSI_MAX_LUN)
 
 /* Environment in SPI NOR flash */
 
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index 5f2611995d3..f5ea3657a4a 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -19,8 +19,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					 CONFIG_SYS_SCSI_MAX_LUN)
 
 /* Environment in SPI NOR flash */
 
diff --git a/include/configs/durian.h b/include/configs/durian.h
index c0ea42e180a..ce9e57c64be 100644
--- a/include/configs/durian.h
+++ b/include/configs/durian.h
@@ -21,7 +21,6 @@
 /* SCSI */
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
 #define CONFIG_SYS_SCSI_MAX_LUN 1
-#define CONFIG_SYS_SCSI_MAX_DEVICE 128
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SATA_MAX_DEVICE 4
 
diff --git a/include/configs/helios4.h b/include/configs/helios4.h
index de1ebbf3751..c1d42f17ca6 100644
--- a/include/configs/helios4.h
+++ b/include/configs/helios4.h
@@ -40,8 +40,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 /* Keep device tree and initrd in lower memory so the kernel can access them */
diff --git a/include/configs/highbank.h b/include/configs/highbank.h
index 4ef3a46cfb9..6d559746ab0 100644
--- a/include/configs/highbank.h
+++ b/include/configs/highbank.h
@@ -19,8 +19,6 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					CONFIG_SYS_SCSI_MAX_LUN)
 
 #define CONFIG_BOOT_RETRY_TIME		-1
 #define CONFIG_RESET_TO_RETRY
diff --git a/include/configs/ls1012a2g5rdb.h b/include/configs/ls1012a2g5rdb.h
index bda4283ef5a..10274317cf8 100644
--- a/include/configs/ls1012a2g5rdb.h
+++ b/include/configs/ls1012a2g5rdb.h
@@ -20,8 +20,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS		\
diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
index 5d561009c56..e33bafac61b 100644
--- a/include/configs/ls1012a_common.h
+++ b/include/configs/ls1012a_common.h
@@ -37,8 +37,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 /* I2C */
 
diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
index 7b4044fba72..c02be10c6fa 100644
--- a/include/configs/ls1021aiot.h
+++ b/include/configs/ls1021aiot.h
@@ -90,8 +90,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-		CONFIG_SYS_SCSI_MAX_LUN)
 
 /* SPI */
 
diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
index 8e3bd7790fe..2c50490b9c6 100644
--- a/include/configs/ls1028aqds.h
+++ b/include/configs/ls1028aqds.h
@@ -77,8 +77,6 @@
 #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 #ifndef SPL_NO_ENV
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS \
diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
index 5ce9ebbae93..653d2ac678a 100644
--- a/include/configs/ls1028ardb.h
+++ b/include/configs/ls1028ardb.h
@@ -59,8 +59,6 @@
 /* SATA */
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 #define SCSI_VEND_ID 0x1b4b
 #define SCSI_DEV_ID  0x9170
 #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
index 5f9cb97855a..083e2e65605 100644
--- a/include/configs/ls1043aqds.h
+++ b/include/configs/ls1043aqds.h
@@ -56,8 +56,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 /*
  * IFC Definitions
diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
index 6d9cbc8c7df..507d770f176 100644
--- a/include/configs/ls1043ardb.h
+++ b/include/configs/ls1043ardb.h
@@ -236,8 +236,6 @@
 #ifndef SPL_NO_SATA
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		2
 #define CONFIG_SYS_SCSI_MAX_LUN			2
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 #define SCSI_VEND_ID 0x1b4b
 #define SCSI_DEV_ID  0x9170
 #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
index d07d27d1f5c..943d65920e8 100644
--- a/include/configs/ls1046a_common.h
+++ b/include/configs/ls1046a_common.h
@@ -130,8 +130,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 /* FMan ucode */
diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
index 2e52108c23e..e385fded579 100644
--- a/include/configs/ls1088a_common.h
+++ b/include/configs/ls1088a_common.h
@@ -135,8 +135,6 @@ unsigned long long get_qixis_addr(void);
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 /* Physical Memory Map */
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index 07cf59fcb8f..8b4ea499e86 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -40,8 +40,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
 #define CONFIG_SYS_NOR_AMASK		IFC_AMASK(128*1024*1024)
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index 6d8effea744..1253698c883 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -50,8 +50,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
 #define CONFIG_SYS_SCSI_MAX_LUN			1
-#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 #if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT)
 
diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
index e285109cbba..eac309de804 100644
--- a/include/configs/lx2160a_common.h
+++ b/include/configs/lx2160a_common.h
@@ -115,8 +115,6 @@
 #define CONFIG_SYS_SATA2		AHCI_BASE_ADDR2
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					CONFIG_SYS_SCSI_MAX_LUN)
 #endif
 
 /* USB */
diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h
index e7f7e772fc7..c192512e85a 100644
--- a/include/configs/mvebu_armada-37xx.h
+++ b/include/configs/mvebu_armada-37xx.h
@@ -57,8 +57,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					 CONFIG_SYS_SCSI_MAX_LUN)
 
 #define BOOT_TARGET_DEVICES(func) \
 	func(MMC, mmc, 1) \
diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
index ac0fdddbd94..6a113ec2145 100644
--- a/include/configs/mvebu_armada-8k.h
+++ b/include/configs/mvebu_armada-8k.h
@@ -52,8 +52,6 @@
 
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-					 CONFIG_SYS_SCSI_MAX_LUN)
 
 /*
  * PCI configuration
diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h
index 188ab0bf365..e9a9d50db1d 100644
--- a/include/configs/omap5_uevm.h
+++ b/include/configs/omap5_uevm.h
@@ -52,7 +52,5 @@
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
 #define CONFIG_SYS_SCSI_MAX_LUN		1
-#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
-						CONFIG_SYS_SCSI_MAX_LUN)
 
 #endif /* __CONFIG_OMAP5_EVM_H */
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 9e0e8c7056f..c4cc57401bc 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -41,7 +41,6 @@
 #endif
 
 #define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_DEVICE	2
 #define CONFIG_SYS_SCSI_MAX_SCSI_ID	8
 #define CONFIG_SYS_SCSI_MAX_LUN		4
 
diff --git a/include/scsi.h b/include/scsi.h
index 66a2caa26e3..b47c7463c1d 100644
--- a/include/scsi.h
+++ b/include/scsi.h
@@ -9,6 +9,10 @@
 #include <asm/cache.h>
 #include <linux/dma-direction.h>
 
+/* Fix this to the maximum */
+#define SCSI_MAX_DEVICE \
+	(CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN)
+
 struct udevice;
 
 struct scsi_cmd {
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 7b45d578a34..c6d735feb0a 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1867,7 +1867,6 @@ CONFIG_SYS_SCCR_TSEC1CM
 CONFIG_SYS_SCCR_TSEC2CM
 CONFIG_SYS_SCCR_USBDRCM
 CONFIG_SYS_SCR
-CONFIG_SYS_SCSI_MAX_DEVICE
 CONFIG_SYS_SCSI_MAX_LUN
 CONFIG_SYS_SCSI_MAX_SCSI_ID
 CONFIG_SYS_SDRAM
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
                   ` (5 preceding siblings ...)
  2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2022-01-31 14:49 ` [PATCH 8/8] dm: scsi: Add a migration deadline for scsi Simon Glass
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass,
	Aleksandar Gerasimovski, Alison Wang, Andre Przywara,
	Andrew F. Davis, Baruch Siach, Bin Meng, Biwen Li,
	Dennis Gilmore, Fabio Estevam, Gerald Kerma, Green Wan,
	Heiko Schocher, Ian Ray, Igor Opaniuk, Jason Cooper, Jason Liu,
	Luka Perkov, Marek Behún, Marek Vasut, Mario Six,
	Martyn Welch, Meenakshi Aggarwal, Mian Yousaf Kaukab, Mingkai Hu,
	Nikita Kiryanov, Olaf Mandel, Pali Rohár, Patrick Delaunay,
	Paul Walmsley, Pragnesh Patel, Pramod Kumar, Priyanka Jain,
	Qiang Zhao, Rainer Boschung, Rajesh Bhagat, Rasmus Villemoes,
	Rick Chen, Ruchika Gupta, Sean Anderson, Shengzhou Liu,
	Simon Guinot, Sinan Akman, Soeren Moch, Tang Yuantian,
	Tim Harvey, Tony Dinh, Troy Kisky, Udit Agarwal, Vladimir Oltean,
	Wasim Khan, Wolfgang Denk, Yangbo Lu, liuhao, shuyiqi

This converts the following to Kconfig:
   CONFIG_SCSI_AHCI_PLAT
   CONFIG_SYS_SCSI_MAX_SCSI_ID
   CONFIG_SYS_SCSI_MAX_LUN
   CONFIG_SYS_SATA_MAX_DEVICE

Drop CONFIG_SCSI for everything except the sandbox build. We only need
one build for tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 README                                        |  8 -----
 arch/Kconfig                                  |  1 -
 arch/arm/include/asm/arch-ls102xa/config.h    |  3 --
 configs/MPC837XERDB_defconfig                 |  1 +
 configs/P1010RDB-PA_36BIT_NAND_defconfig      |  1 +
 configs/P1010RDB-PA_36BIT_NOR_defconfig       |  1 +
 configs/P1010RDB-PA_36BIT_SDCARD_defconfig    |  1 +
 configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1010RDB-PA_NAND_defconfig            |  1 +
 configs/P1010RDB-PA_NOR_defconfig             |  1 +
 configs/P1010RDB-PA_SDCARD_defconfig          |  1 +
 configs/P1010RDB-PA_SPIFLASH_defconfig        |  1 +
 configs/P1010RDB-PB_36BIT_NAND_defconfig      |  1 +
 configs/P1010RDB-PB_36BIT_NOR_defconfig       |  1 +
 configs/P1010RDB-PB_36BIT_SDCARD_defconfig    |  1 +
 configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1010RDB-PB_NAND_defconfig            |  1 +
 configs/P1010RDB-PB_NOR_defconfig             |  1 +
 configs/P1010RDB-PB_SDCARD_defconfig          |  1 +
 configs/P1010RDB-PB_SPIFLASH_defconfig        |  1 +
 configs/P1020RDB-PC_36BIT_NAND_defconfig      |  1 +
 configs/P1020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1020RDB-PC_36BIT_defconfig           |  1 +
 configs/P1020RDB-PC_NAND_defconfig            |  1 +
 configs/P1020RDB-PC_SDCARD_defconfig          |  1 +
 configs/P1020RDB-PC_SPIFLASH_defconfig        |  1 +
 configs/P1020RDB-PC_defconfig                 |  1 +
 configs/P1020RDB-PD_NAND_defconfig            |  1 +
 configs/P1020RDB-PD_SDCARD_defconfig          |  1 +
 configs/P1020RDB-PD_SPIFLASH_defconfig        |  1 +
 configs/P1020RDB-PD_defconfig                 |  1 +
 configs/P2020RDB-PC_36BIT_NAND_defconfig      |  1 +
 configs/P2020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P2020RDB-PC_36BIT_defconfig           |  1 +
 configs/P2020RDB-PC_NAND_defconfig            |  1 +
 configs/P2020RDB-PC_SDCARD_defconfig          |  1 +
 configs/P2020RDB-PC_SPIFLASH_defconfig        |  1 +
 configs/P2020RDB-PC_defconfig                 |  1 +
 configs/P2041RDB_NAND_defconfig               |  1 +
 configs/P2041RDB_SDCARD_defconfig             |  1 +
 configs/P2041RDB_SPIFLASH_defconfig           |  1 +
 configs/P2041RDB_defconfig                    |  1 +
 configs/P3041DS_NAND_defconfig                |  1 +
 configs/P3041DS_SDCARD_defconfig              |  1 +
 configs/P3041DS_SPIFLASH_defconfig            |  1 +
 configs/P3041DS_defconfig                     |  1 +
 configs/P4080DS_SDCARD_defconfig              |  1 +
 configs/P4080DS_SPIFLASH_defconfig            |  1 +
 configs/P4080DS_defconfig                     |  1 +
 configs/P5040DS_NAND_defconfig                |  1 +
 configs/P5040DS_SDCARD_defconfig              |  1 +
 configs/P5040DS_SPIFLASH_defconfig            |  1 +
 configs/P5040DS_defconfig                     |  1 +
 configs/T2080QDS_NAND_defconfig               |  1 +
 configs/T2080QDS_SDCARD_defconfig             |  1 +
 configs/T2080QDS_SECURE_BOOT_defconfig        |  1 +
 configs/T2080QDS_SPIFLASH_defconfig           |  1 +
 configs/T2080QDS_SRIO_PCIE_BOOT_defconfig     |  1 +
 configs/T2080QDS_defconfig                    |  1 +
 configs/T2080RDB_NAND_defconfig               |  1 +
 configs/T2080RDB_SDCARD_defconfig             |  1 +
 configs/T2080RDB_SPIFLASH_defconfig           |  1 +
 configs/T2080RDB_defconfig                    |  1 +
 configs/T2080RDB_revD_NAND_defconfig          |  1 +
 configs/T2080RDB_revD_SDCARD_defconfig        |  1 +
 configs/T2080RDB_revD_SPIFLASH_defconfig      |  1 +
 configs/T2080RDB_revD_defconfig               |  1 +
 configs/T4240RDB_SDCARD_defconfig             |  1 +
 configs/T4240RDB_defconfig                    |  1 +
 configs/am57xx_hs_evm_usb_defconfig           |  3 ++
 configs/cm_fx6_defconfig                      |  1 +
 configs/controlcenterdc_defconfig             |  3 ++
 configs/d2net_v2_defconfig                    |  1 +
 configs/db-mv784mp-gp_defconfig               |  1 +
 configs/dreamplug_defconfig                   |  1 +
 configs/goflexhome_defconfig                  |  1 +
 configs/gwventana_emmc_defconfig              |  1 +
 configs/gwventana_gw5904_defconfig            |  1 +
 configs/gwventana_nand_defconfig              |  1 +
 configs/highbank_defconfig                    |  3 ++
 configs/inetspace_v2_defconfig                |  1 +
 configs/ls1021atsn_qspi_defconfig             |  3 ++
 configs/ls1021atsn_sdcard_defconfig           |  3 ++
 ...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig |  3 ++
 .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  3 ++
 ...1088ardb_sdcard_qspi_SECURE_BOOT_defconfig |  3 ++
 configs/lschlv2_defconfig                     |  1 +
 configs/lsxhl_defconfig                       |  1 +
 configs/mx6cuboxi_defconfig                   |  1 +
 configs/mx6qsabrelite_defconfig               |  1 +
 configs/net2big_v2_defconfig                  |  1 +
 configs/netspace_lite_v2_defconfig            |  1 +
 configs/netspace_max_v2_defconfig             |  1 +
 configs/netspace_mini_v2_defconfig            |  1 +
 configs/netspace_v2_defconfig                 |  1 +
 configs/nitrogen6q2g_defconfig                |  1 +
 configs/nitrogen6q_defconfig                  |  1 +
 configs/nsa310s_defconfig                     |  1 +
 configs/omap5_uevm_defconfig                  |  3 ++
 configs/pg_wcom_expu1_defconfig               |  3 ++
 configs/pg_wcom_seli8_defconfig               |  3 ++
 configs/sandbox64_defconfig                   |  1 +
 configs/sandbox_defconfig                     |  7 ++++-
 configs/sheevaplug_defconfig                  |  1 +
 configs/tbs2910_defconfig                     |  1 +
 configs/theadorable_debug_defconfig           |  1 +
 configs/tools-only_defconfig                  |  3 +-
 configs/wandboard_defconfig                   |  1 +
 drivers/ata/Kconfig                           | 10 +++++++
 drivers/scsi/Kconfig                          | 30 +++++++++++++++++++
 drivers/scsi/Makefile                         |  2 ++
 include/configs/MPC837XERDB.h                 |  1 -
 include/configs/P1010RDB.h                    |  1 -
 include/configs/P2041RDB.h                    |  1 -
 include/configs/P4080DS.h                     |  1 -
 include/configs/T104xRDB.h                    |  1 -
 include/configs/T208xQDS.h                    |  1 -
 include/configs/T208xRDB.h                    |  1 -
 include/configs/T4240RDB.h                    |  2 --
 include/configs/am57xx_evm.h                  |  3 --
 include/configs/clearfog.h                    |  5 ----
 include/configs/cm_fx6.h                      |  1 -
 include/configs/controlcenterdc.h             |  3 --
 include/configs/corenet_ds.h                  |  1 -
 include/configs/db-88f6820-gp.h               |  3 --
 include/configs/db-mv784mp-gp.h               |  1 -
 include/configs/dra7xx_evm.h                  |  1 -
 include/configs/dreamplug.h                   |  1 -
 include/configs/durian.h                      |  4 ---
 include/configs/ge_bx50v3.h                   |  1 -
 include/configs/goflexhome.h                  |  1 -
 include/configs/gw_ventana.h                  |  1 -
 include/configs/helios4.h                     |  5 ----
 include/configs/highbank.h                    |  4 ---
 include/configs/lacie_kw.h                    |  3 --
 include/configs/ls1012a2g5rdb.h               |  4 ---
 include/configs/ls1012a_common.h              |  4 ---
 include/configs/ls1021aiot.h                  |  4 ---
 include/configs/ls1028aqds.h                  |  3 --
 include/configs/ls1028ardb.h                  |  3 --
 include/configs/ls1043aqds.h                  |  4 ---
 include/configs/ls1043ardb.h                  |  2 --
 include/configs/ls1046a_common.h              |  5 ----
 include/configs/ls1088a_common.h              |  4 ---
 include/configs/ls2080aqds.h                  |  4 ---
 include/configs/ls2080ardb.h                  |  4 ---
 include/configs/lsxl.h                        |  1 -
 include/configs/lx2160a_common.h              |  3 --
 include/configs/m53menlo.h                    |  1 -
 include/configs/mvebu_armada-37xx.h           |  4 ---
 include/configs/mvebu_armada-8k.h             |  4 ---
 include/configs/mx53loco.h                    |  1 -
 include/configs/mx6cuboxi.h                   |  1 -
 include/configs/nitrogen6x.h                  |  1 -
 include/configs/nsa310s.h                     |  1 -
 include/configs/omap5_uevm.h                  |  4 ---
 include/configs/p1_p2_rdb_pc.h                |  1 -
 include/configs/sandbox.h                     |  6 ----
 include/configs/sheevaplug.h                  |  1 -
 include/configs/sifive-unmatched.h            |  2 --
 include/configs/tbs2910.h                     |  1 -
 include/configs/theadorable.h                 |  1 -
 include/configs/wandboard.h                   |  1 -
 scripts/config_whitelist.txt                  |  4 ---
 166 files changed, 177 insertions(+), 140 deletions(-)

diff --git a/README b/README
index 48a3f5ca610..6e99789d5b4 100644
--- a/README
+++ b/README
@@ -743,14 +743,6 @@ The following options need to be configured:
 			When enabled, makes the IDE subsystem use 64bit sector addresses.
 			Default is 32bit.
 
-- SCSI Support:
-		CONFIG_SYS_SCSI_MAX_LUN [8] and CONFIG_SYS_SCSI_MAX_SCSI_ID [7]
-		can be adjusted to define the maximum numbers of LUNs and SCSI
-		IDs.
-
-		The environment variable 'scsidevs' is set to the number of
-		SCSI devices found during the last scan.
-
 - NETWORK Support (PCI):
 		CONFIG_E1000_SPI
 		Utility code for direct access to the SPI bus on Intel 8257x.
diff --git a/arch/Kconfig b/arch/Kconfig
index bea8ead5617..e6191446a35 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -172,7 +172,6 @@ config SANDBOX
 	imply FIRMWARE
 	imply HASH_VERIFY
 	imply LZMA
-	imply SCSI
 	imply TEE
 	imply AVB_VERIFY
 	imply LIBAVB
diff --git a/arch/arm/include/asm/arch-ls102xa/config.h b/arch/arm/include/asm/arch-ls102xa/config.h
index 489286ed8d1..86a4e1f6bf3 100644
--- a/arch/arm/include/asm/arch-ls102xa/config.h
+++ b/arch/arm/include/asm/arch-ls102xa/config.h
@@ -78,9 +78,6 @@
 
 /* SATA */
 #define AHCI_BASE_ADDR				(CONFIG_SYS_IMMR + 0x02200000)
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 #ifdef CONFIG_DDR_SPD
 #define CONFIG_VERY_BIG_RAM
 #define CONFIG_SYS_LS1_DDR_BLOCK1_SIZE		((phys_size_t)2 << 30)
diff --git a/configs/MPC837XERDB_defconfig b/configs/MPC837XERDB_defconfig
index 192bcae704e..eac5b74147c 100644
--- a/configs/MPC837XERDB_defconfig
+++ b/configs/MPC837XERDB_defconfig
@@ -170,6 +170,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_ADDR=0xFE080000
 CONFIG_DM=y
 CONFIG_FSL_SATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFE001001
 CONFIG_SYS_OR0_PRELIM=0xFF800193
diff --git a/configs/P1010RDB-PA_36BIT_NAND_defconfig b/configs/P1010RDB-PA_36BIT_NAND_defconfig
index ef7f24b85fa..61fd2a78a4e 100644
--- a/configs/P1010RDB-PA_36BIT_NAND_defconfig
+++ b/configs/P1010RDB-PA_36BIT_NAND_defconfig
@@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_36BIT_NOR_defconfig b/configs/P1010RDB-PA_36BIT_NOR_defconfig
index 892a8a6e056..0e537ebb521 100644
--- a/configs/P1010RDB-PA_36BIT_NOR_defconfig
+++ b/configs/P1010RDB-PA_36BIT_NOR_defconfig
@@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_36BIT_SDCARD_defconfig b/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
index 705d0dad62f..dc113be28d9 100644
--- a/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
+++ b/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig b/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
index e4ad50fc7bb..cd5c80c6346 100644
--- a/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
+++ b/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
@@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_NAND_defconfig b/configs/P1010RDB-PA_NAND_defconfig
index b303c4c46c0..f80a0d929c1 100644
--- a/configs/P1010RDB-PA_NAND_defconfig
+++ b/configs/P1010RDB-PA_NAND_defconfig
@@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_NOR_defconfig b/configs/P1010RDB-PA_NOR_defconfig
index 8db09ba2b83..035aac226bb 100644
--- a/configs/P1010RDB-PA_NOR_defconfig
+++ b/configs/P1010RDB-PA_NOR_defconfig
@@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_SDCARD_defconfig b/configs/P1010RDB-PA_SDCARD_defconfig
index f02757dd6b4..cd031d218c3 100644
--- a/configs/P1010RDB-PA_SDCARD_defconfig
+++ b/configs/P1010RDB-PA_SDCARD_defconfig
@@ -47,6 +47,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PA_SPIFLASH_defconfig b/configs/P1010RDB-PA_SPIFLASH_defconfig
index 9a09473ad41..f339502637b 100644
--- a/configs/P1010RDB-PA_SPIFLASH_defconfig
+++ b/configs/P1010RDB-PA_SPIFLASH_defconfig
@@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_36BIT_NAND_defconfig b/configs/P1010RDB-PB_36BIT_NAND_defconfig
index 85828682837..ba64f8818fb 100644
--- a/configs/P1010RDB-PB_36BIT_NAND_defconfig
+++ b/configs/P1010RDB-PB_36BIT_NAND_defconfig
@@ -55,6 +55,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_36BIT_NOR_defconfig b/configs/P1010RDB-PB_36BIT_NOR_defconfig
index 84173e2d60f..a8e95568714 100644
--- a/configs/P1010RDB-PB_36BIT_NOR_defconfig
+++ b/configs/P1010RDB-PB_36BIT_NOR_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_36BIT_SDCARD_defconfig b/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
index 4b0a1ab53b7..871996711db 100644
--- a/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
+++ b/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
@@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig b/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
index 986b992e6b9..2d646f9f54d 100644
--- a/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
+++ b/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
@@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_NAND_defconfig b/configs/P1010RDB-PB_NAND_defconfig
index e4364769f9f..f8437ff032f 100644
--- a/configs/P1010RDB-PB_NAND_defconfig
+++ b/configs/P1010RDB-PB_NAND_defconfig
@@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_NOR_defconfig b/configs/P1010RDB-PB_NOR_defconfig
index 62f4c892709..b99531c4cd9 100644
--- a/configs/P1010RDB-PB_NOR_defconfig
+++ b/configs/P1010RDB-PB_NOR_defconfig
@@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_SDCARD_defconfig b/configs/P1010RDB-PB_SDCARD_defconfig
index 9cdb3599f76..ebe2af6f4a1 100644
--- a/configs/P1010RDB-PB_SDCARD_defconfig
+++ b/configs/P1010RDB-PB_SDCARD_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1010RDB-PB_SPIFLASH_defconfig b/configs/P1010RDB-PB_SPIFLASH_defconfig
index 299564c9caf..7893782fa44 100644
--- a/configs/P1010RDB-PB_SPIFLASH_defconfig
+++ b/configs/P1010RDB-PB_SPIFLASH_defconfig
@@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_DM_I2C=y
diff --git a/configs/P1020RDB-PC_36BIT_NAND_defconfig b/configs/P1020RDB-PC_36BIT_NAND_defconfig
index 30b841d691b..525bb54fcb8 100644
--- a/configs/P1020RDB-PC_36BIT_NAND_defconfig
+++ b/configs/P1020RDB-PC_36BIT_NAND_defconfig
@@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFF800C21
diff --git a/configs/P1020RDB-PC_36BIT_SDCARD_defconfig b/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
index 79edbf388d4..384a4d0c7ff 100644
--- a/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
+++ b/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
@@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig b/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
index c5a64de98e0..12bf5d1a698 100644
--- a/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
+++ b/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
@@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PC_36BIT_defconfig b/configs/P1020RDB-PC_36BIT_defconfig
index 9671a6d3300..0e535cf91bb 100644
--- a/configs/P1020RDB-PC_36BIT_defconfig
+++ b/configs/P1020RDB-PC_36BIT_defconfig
@@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PC_NAND_defconfig b/configs/P1020RDB-PC_NAND_defconfig
index 0201c51a5d0..f042f25428b 100644
--- a/configs/P1020RDB-PC_NAND_defconfig
+++ b/configs/P1020RDB-PC_NAND_defconfig
@@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFF800C21
diff --git a/configs/P1020RDB-PC_SDCARD_defconfig b/configs/P1020RDB-PC_SDCARD_defconfig
index 371a8b5f8b8..d4a531eff90 100644
--- a/configs/P1020RDB-PC_SDCARD_defconfig
+++ b/configs/P1020RDB-PC_SDCARD_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PC_SPIFLASH_defconfig b/configs/P1020RDB-PC_SPIFLASH_defconfig
index 7c8b3c826cd..4e17f71da8d 100644
--- a/configs/P1020RDB-PC_SPIFLASH_defconfig
+++ b/configs/P1020RDB-PC_SPIFLASH_defconfig
@@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PC_defconfig b/configs/P1020RDB-PC_defconfig
index 01b4fd363c4..e8c889eae9a 100644
--- a/configs/P1020RDB-PC_defconfig
+++ b/configs/P1020RDB-PC_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P1020RDB-PD_NAND_defconfig b/configs/P1020RDB-PD_NAND_defconfig
index e70c1a7cbae..6618d8bd0d5 100644
--- a/configs/P1020RDB-PD_NAND_defconfig
+++ b/configs/P1020RDB-PD_NAND_defconfig
@@ -56,6 +56,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFF800C21
diff --git a/configs/P1020RDB-PD_SDCARD_defconfig b/configs/P1020RDB-PD_SDCARD_defconfig
index 2596b5255d3..eb6a335db2b 100644
--- a/configs/P1020RDB-PD_SDCARD_defconfig
+++ b/configs/P1020RDB-PD_SDCARD_defconfig
@@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEC001001
diff --git a/configs/P1020RDB-PD_SPIFLASH_defconfig b/configs/P1020RDB-PD_SPIFLASH_defconfig
index f6f8888c82a..ee5a164b53c 100644
--- a/configs/P1020RDB-PD_SPIFLASH_defconfig
+++ b/configs/P1020RDB-PD_SPIFLASH_defconfig
@@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEC001001
diff --git a/configs/P1020RDB-PD_defconfig b/configs/P1020RDB-PD_defconfig
index e1a4965caae..51d9fb147d0 100644
--- a/configs/P1020RDB-PD_defconfig
+++ b/configs/P1020RDB-PD_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEC001001
diff --git a/configs/P2020RDB-PC_36BIT_NAND_defconfig b/configs/P2020RDB-PC_36BIT_NAND_defconfig
index 2c302b68216..d25894c13c6 100644
--- a/configs/P2020RDB-PC_36BIT_NAND_defconfig
+++ b/configs/P2020RDB-PC_36BIT_NAND_defconfig
@@ -58,6 +58,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFF800C21
diff --git a/configs/P2020RDB-PC_36BIT_SDCARD_defconfig b/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
index 2d080713e7a..a0c86272287 100644
--- a/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
+++ b/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
@@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig b/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
index 7b53b025171..302038247b0 100644
--- a/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
+++ b/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
@@ -55,6 +55,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2020RDB-PC_36BIT_defconfig b/configs/P2020RDB-PC_36BIT_defconfig
index 5e8a474c905..1242bf53085 100644
--- a/configs/P2020RDB-PC_36BIT_defconfig
+++ b/configs/P2020RDB-PC_36BIT_defconfig
@@ -42,6 +42,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2020RDB-PC_NAND_defconfig b/configs/P2020RDB-PC_NAND_defconfig
index 74165dc60aa..981a6d34c48 100644
--- a/configs/P2020RDB-PC_NAND_defconfig
+++ b/configs/P2020RDB-PC_NAND_defconfig
@@ -57,6 +57,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFF800C21
diff --git a/configs/P2020RDB-PC_SDCARD_defconfig b/configs/P2020RDB-PC_SDCARD_defconfig
index 0505f40a814..7d65e76aaea 100644
--- a/configs/P2020RDB-PC_SDCARD_defconfig
+++ b/configs/P2020RDB-PC_SDCARD_defconfig
@@ -52,6 +52,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2020RDB-PC_SPIFLASH_defconfig b/configs/P2020RDB-PC_SPIFLASH_defconfig
index f1085fde470..0001c80e5cd 100644
--- a/configs/P2020RDB-PC_SPIFLASH_defconfig
+++ b/configs/P2020RDB-PC_SPIFLASH_defconfig
@@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2020RDB-PC_defconfig b/configs/P2020RDB-PC_defconfig
index f933ed42fce..8c4d8e56802 100644
--- a/configs/P2020RDB-PC_defconfig
+++ b/configs/P2020RDB-PC_defconfig
@@ -41,6 +41,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DDR_CLK_FREQ=66666666
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xEF001001
diff --git a/configs/P2041RDB_NAND_defconfig b/configs/P2041RDB_NAND_defconfig
index 9dc72573c17..01d61928a3d 100644
--- a/configs/P2041RDB_NAND_defconfig
+++ b/configs/P2041RDB_NAND_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xFFA00C21
diff --git a/configs/P2041RDB_SDCARD_defconfig b/configs/P2041RDB_SDCARD_defconfig
index 997f4619762..dc56c791d1f 100644
--- a/configs/P2041RDB_SDCARD_defconfig
+++ b/configs/P2041RDB_SDCARD_defconfig
@@ -41,6 +41,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xE8001001
diff --git a/configs/P2041RDB_SPIFLASH_defconfig b/configs/P2041RDB_SPIFLASH_defconfig
index d54d6218366..78a24503a49 100644
--- a/configs/P2041RDB_SPIFLASH_defconfig
+++ b/configs/P2041RDB_SPIFLASH_defconfig
@@ -42,6 +42,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xE8001001
diff --git a/configs/P2041RDB_defconfig b/configs/P2041RDB_defconfig
index b2fb18c552c..f6bf4daf23b 100644
--- a/configs/P2041RDB_defconfig
+++ b/configs/P2041RDB_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_SYS_BR0_PRELIM_BOOL=y
 CONFIG_SYS_BR0_PRELIM=0xE8001001
diff --git a/configs/P3041DS_NAND_defconfig b/configs/P3041DS_NAND_defconfig
index 971254ac061..ec5850017d6 100644
--- a/configs/P3041DS_NAND_defconfig
+++ b/configs/P3041DS_NAND_defconfig
@@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P3041DS_SDCARD_defconfig b/configs/P3041DS_SDCARD_defconfig
index 7cf3c2240cd..58a3eaea72f 100644
--- a/configs/P3041DS_SDCARD_defconfig
+++ b/configs/P3041DS_SDCARD_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P3041DS_SPIFLASH_defconfig b/configs/P3041DS_SPIFLASH_defconfig
index 0e810f8ca90..c48976b3d07 100644
--- a/configs/P3041DS_SPIFLASH_defconfig
+++ b/configs/P3041DS_SPIFLASH_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P3041DS_defconfig b/configs/P3041DS_defconfig
index db1b5fb1691..fcc73610af8 100644
--- a/configs/P3041DS_defconfig
+++ b/configs/P3041DS_defconfig
@@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P4080DS_SDCARD_defconfig b/configs/P4080DS_SDCARD_defconfig
index 25f7861791d..044bf9c734f 100644
--- a/configs/P4080DS_SDCARD_defconfig
+++ b/configs/P4080DS_SDCARD_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P4080DS_SPIFLASH_defconfig b/configs/P4080DS_SPIFLASH_defconfig
index c32c394530b..b33bc16d0d3 100644
--- a/configs/P4080DS_SPIFLASH_defconfig
+++ b/configs/P4080DS_SPIFLASH_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P4080DS_defconfig b/configs/P4080DS_defconfig
index e3c41c316f2..14df6f22c1b 100644
--- a/configs/P4080DS_defconfig
+++ b/configs/P4080DS_defconfig
@@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P5040DS_NAND_defconfig b/configs/P5040DS_NAND_defconfig
index 90503b63a27..279976c04d4 100644
--- a/configs/P5040DS_NAND_defconfig
+++ b/configs/P5040DS_NAND_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P5040DS_SDCARD_defconfig b/configs/P5040DS_SDCARD_defconfig
index 90216f6c7a3..34ebc51922e 100644
--- a/configs/P5040DS_SDCARD_defconfig
+++ b/configs/P5040DS_SDCARD_defconfig
@@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P5040DS_SPIFLASH_defconfig b/configs/P5040DS_SPIFLASH_defconfig
index 8b1781268e8..ea8b6733040 100644
--- a/configs/P5040DS_SPIFLASH_defconfig
+++ b/configs/P5040DS_SPIFLASH_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/P5040DS_defconfig b/configs/P5040DS_defconfig
index 6836fcfe4d0..e9bf7ff0144 100644
--- a/configs/P5040DS_defconfig
+++ b/configs/P5040DS_defconfig
@@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/T2080QDS_NAND_defconfig b/configs/T2080QDS_NAND_defconfig
index 521b0cf6084..1b6ef8aaa1f 100644
--- a/configs/T2080QDS_NAND_defconfig
+++ b/configs/T2080QDS_NAND_defconfig
@@ -56,6 +56,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080QDS_SDCARD_defconfig b/configs/T2080QDS_SDCARD_defconfig
index eb0b341e5c3..8ab1c5d6809 100644
--- a/configs/T2080QDS_SDCARD_defconfig
+++ b/configs/T2080QDS_SDCARD_defconfig
@@ -55,6 +55,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080QDS_SECURE_BOOT_defconfig b/configs/T2080QDS_SECURE_BOOT_defconfig
index 97bfbd951ac..a84b7adab01 100644
--- a/configs/T2080QDS_SECURE_BOOT_defconfig
+++ b/configs/T2080QDS_SECURE_BOOT_defconfig
@@ -40,6 +40,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
 CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
diff --git a/configs/T2080QDS_SPIFLASH_defconfig b/configs/T2080QDS_SPIFLASH_defconfig
index a09d1470a6d..8fd024848ad 100644
--- a/configs/T2080QDS_SPIFLASH_defconfig
+++ b/configs/T2080QDS_SPIFLASH_defconfig
@@ -57,6 +57,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig b/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
index db09d3b92e3..f9dbc84f922 100644
--- a/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
+++ b/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
@@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_REMOTE=y
 CONFIG_ENV_ADDR=0xFFE20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080QDS_defconfig b/configs/T2080QDS_defconfig
index c036d5dfedc..424b3f2cdb8 100644
--- a/configs/T2080QDS_defconfig
+++ b/configs/T2080QDS_defconfig
@@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DYNAMIC_DDR_CLK_FREQ=y
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_NAND_defconfig b/configs/T2080RDB_NAND_defconfig
index 17558d421da..1c55d30b5e1 100644
--- a/configs/T2080RDB_NAND_defconfig
+++ b/configs/T2080RDB_NAND_defconfig
@@ -60,6 +60,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_SDCARD_defconfig b/configs/T2080RDB_SDCARD_defconfig
index 949976b2aff..ea9c479825c 100644
--- a/configs/T2080RDB_SDCARD_defconfig
+++ b/configs/T2080RDB_SDCARD_defconfig
@@ -59,6 +59,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_SPIFLASH_defconfig b/configs/T2080RDB_SPIFLASH_defconfig
index 66ca339e4d4..5e08b82406a 100644
--- a/configs/T2080RDB_SPIFLASH_defconfig
+++ b/configs/T2080RDB_SPIFLASH_defconfig
@@ -61,6 +61,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_defconfig b/configs/T2080RDB_defconfig
index f03440312b7..0515007ef35 100644
--- a/configs/T2080RDB_defconfig
+++ b/configs/T2080RDB_defconfig
@@ -44,6 +44,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_revD_NAND_defconfig b/configs/T2080RDB_revD_NAND_defconfig
index 33591c2a65d..ae924b18173 100644
--- a/configs/T2080RDB_revD_NAND_defconfig
+++ b/configs/T2080RDB_revD_NAND_defconfig
@@ -61,6 +61,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_revD_SDCARD_defconfig b/configs/T2080RDB_revD_SDCARD_defconfig
index 82f6c96acb5..fef08931d0d 100644
--- a/configs/T2080RDB_revD_SDCARD_defconfig
+++ b/configs/T2080RDB_revD_SDCARD_defconfig
@@ -60,6 +60,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_revD_SPIFLASH_defconfig b/configs/T2080RDB_revD_SPIFLASH_defconfig
index 075691fefe1..0b7e71567da 100644
--- a/configs/T2080RDB_revD_SPIFLASH_defconfig
+++ b/configs/T2080RDB_revD_SPIFLASH_defconfig
@@ -62,6 +62,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T2080RDB_revD_defconfig b/configs/T2080RDB_revD_defconfig
index 1d5628f559b..c78b21dd245 100644
--- a/configs/T2080RDB_revD_defconfig
+++ b/configs/T2080RDB_revD_defconfig
@@ -45,6 +45,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133330000
 CONFIG_DDR_ECC=y
diff --git a/configs/T4240RDB_SDCARD_defconfig b/configs/T4240RDB_SDCARD_defconfig
index ef2d1d749db..ea6a5284959 100644
--- a/configs/T4240RDB_SDCARD_defconfig
+++ b/configs/T4240RDB_SDCARD_defconfig
@@ -51,6 +51,7 @@ CONFIG_OF_CONTROL=y
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133333333
 CONFIG_DDR_ECC=y
diff --git a/configs/T4240RDB_defconfig b/configs/T4240RDB_defconfig
index 6784dd7c201..e17e8b129ff 100644
--- a/configs/T4240RDB_defconfig
+++ b/configs/T4240RDB_defconfig
@@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_ENV_ADDR=0xEFF20000
 CONFIG_DM=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_FSL_CAAM=y
 CONFIG_DDR_CLK_FREQ=133333333
 CONFIG_DDR_ECC=y
diff --git a/configs/am57xx_hs_evm_usb_defconfig b/configs/am57xx_hs_evm_usb_defconfig
index 7f19d991c55..02e770b15c4 100644
--- a/configs/am57xx_hs_evm_usb_defconfig
+++ b/configs/am57xx_hs_evm_usb_defconfig
@@ -102,6 +102,9 @@ CONFIG_DM_PMIC=y
 CONFIG_PMIC_PALMAS=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PALMAS=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index 61067940cc4..1291f915225 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -69,6 +69,7 @@ CONFIG_SPL_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
 # CONFIG_DWC_AHSATA_AHCI is not set
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
index b6eb9550869..5245a33666b 100644
--- a/configs/controlcenterdc_defconfig
+++ b/configs/controlcenterdc_defconfig
@@ -77,6 +77,9 @@ CONFIG_PCI=y
 CONFIG_DM_PCI_COMPAT=y
 CONFIG_PCI_MVEBU=y
 CONFIG_SCSI=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=2
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYS_NS16550=y
 CONFIG_KIRKWOOD_SPI=y
diff --git a/configs/d2net_v2_defconfig b/configs/d2net_v2_defconfig
index a856202d110..5e2122a4c6c 100644
--- a/configs/d2net_v2_defconfig
+++ b/configs/d2net_v2_defconfig
@@ -47,6 +47,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
index 3d0b06fbc61..c42bda292d0 100644
--- a/configs/db-mv784mp-gp_defconfig
+++ b/configs/db-mv784mp-gp_defconfig
@@ -49,6 +49,7 @@ CONFIG_ENV_SPI_MAX_HZ=50000000
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MVTWSI=y
 # CONFIG_MMC is not set
diff --git a/configs/dreamplug_defconfig b/configs/dreamplug_defconfig
index 557013dbacd..af73c9be5f7 100644
--- a/configs/dreamplug_defconfig
+++ b/configs/dreamplug_defconfig
@@ -41,6 +41,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
diff --git a/configs/goflexhome_defconfig b/configs/goflexhome_defconfig
index ec8b7398d0a..243116b6d38 100644
--- a/configs/goflexhome_defconfig
+++ b/configs/goflexhome_defconfig
@@ -44,6 +44,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig
index 4371a144f27..b33b90e9159 100644
--- a/configs/gwventana_emmc_defconfig
+++ b/configs/gwventana_emmc_defconfig
@@ -90,6 +90,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
index 8a5050667b6..00e357d8f1d 100644
--- a/configs/gwventana_gw5904_defconfig
+++ b/configs/gwventana_gw5904_defconfig
@@ -90,6 +90,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig
index 9fadc014a2c..ab1fe835c84 100644
--- a/configs/gwventana_nand_defconfig
+++ b/configs/gwventana_nand_defconfig
@@ -92,6 +92,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
diff --git a/configs/highbank_defconfig b/configs/highbank_defconfig
index 3e8bfcf73a6..df36b4167cd 100644
--- a/configs/highbank_defconfig
+++ b/configs/highbank_defconfig
@@ -29,3 +29,6 @@ CONFIG_BOOTCOUNT_LIMIT=y
 # CONFIG_MMC is not set
 CONFIG_CALXEDA_XGMAC=y
 CONFIG_SCSI=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=5
+CONFIG_SYS_SCSI_MAX_LUN=1
diff --git a/configs/inetspace_v2_defconfig b/configs/inetspace_v2_defconfig
index 8779e58b932..c45156c8513 100644
--- a/configs/inetspace_v2_defconfig
+++ b/configs/inetspace_v2_defconfig
@@ -47,6 +47,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/ls1021atsn_qspi_defconfig b/configs/ls1021atsn_qspi_defconfig
index 5c8cee3ea91..e7e8d58e244 100644
--- a/configs/ls1021atsn_qspi_defconfig
+++ b/configs/ls1021atsn_qspi_defconfig
@@ -62,6 +62,9 @@ CONFIG_TSEC_ENET=y
 CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
diff --git a/configs/ls1021atsn_sdcard_defconfig b/configs/ls1021atsn_sdcard_defconfig
index a3b8f248c7d..7158fdd256d 100644
--- a/configs/ls1021atsn_sdcard_defconfig
+++ b/configs/ls1021atsn_sdcard_defconfig
@@ -78,6 +78,9 @@ CONFIG_TSEC_ENET=y
 CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
diff --git a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
index 756e072f9cb..ec20ceb86a5 100644
--- a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
@@ -87,6 +87,9 @@ CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_U_QE=y
 CONFIG_SYS_QE_FW_ADDR=0x940000
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig b/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
index 4c55777b9c9..c4c0655703e 100644
--- a/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
+++ b/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
@@ -86,6 +86,9 @@ CONFIG_PCIE_LAYERSCAPE_EP=y
 CONFIG_POWER_LEGACY=y
 CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
diff --git a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig b/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
index 048b10fb7b9..f634eda43c6 100644
--- a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
+++ b/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
@@ -90,6 +90,9 @@ CONFIG_MII=y
 CONFIG_FSL_LS_MDIO=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
diff --git a/configs/lschlv2_defconfig b/configs/lschlv2_defconfig
index 497da09d439..df214b323f7 100644
--- a/configs/lschlv2_defconfig
+++ b/configs/lschlv2_defconfig
@@ -39,6 +39,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_KIRKWOOD_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/lsxhl_defconfig b/configs/lsxhl_defconfig
index cadeb9afd3c..6ccc0e775e5 100644
--- a/configs/lsxhl_defconfig
+++ b/configs/lsxhl_defconfig
@@ -39,6 +39,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_KIRKWOOD_GPIO=y
 # CONFIG_MMC is not set
 CONFIG_MTD=y
diff --git a/configs/mx6cuboxi_defconfig b/configs/mx6cuboxi_defconfig
index 6422ac50e03..94fcabefaa4 100644
--- a/configs/mx6cuboxi_defconfig
+++ b/configs/mx6cuboxi_defconfig
@@ -52,6 +52,7 @@ CONFIG_DM=y
 CONFIG_SPL_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_FSL_USDHC=y
 CONFIG_PHYLIB=y
diff --git a/configs/mx6qsabrelite_defconfig b/configs/mx6qsabrelite_defconfig
index 2b77a46badd..107172b62ef 100644
--- a/configs/mx6qsabrelite_defconfig
+++ b/configs/mx6qsabrelite_defconfig
@@ -50,6 +50,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_SYS_I2C_LEGACY=y
diff --git a/configs/net2big_v2_defconfig b/configs/net2big_v2_defconfig
index 985f530fb87..f55ca673539 100644
--- a/configs/net2big_v2_defconfig
+++ b/configs/net2big_v2_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/netspace_lite_v2_defconfig b/configs/netspace_lite_v2_defconfig
index 668f4ea291d..53ff4e21775 100644
--- a/configs/netspace_lite_v2_defconfig
+++ b/configs/netspace_lite_v2_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/netspace_max_v2_defconfig b/configs/netspace_max_v2_defconfig
index 25ce3c61a1f..1195cc779b3 100644
--- a/configs/netspace_max_v2_defconfig
+++ b/configs/netspace_max_v2_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/netspace_mini_v2_defconfig b/configs/netspace_mini_v2_defconfig
index 0c9a3036eb1..47ca1bdfae9 100644
--- a/configs/netspace_mini_v2_defconfig
+++ b/configs/netspace_mini_v2_defconfig
@@ -46,6 +46,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_BLK=y
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
diff --git a/configs/netspace_v2_defconfig b/configs/netspace_v2_defconfig
index 8f662edd168..2d920ab1d17 100644
--- a/configs/netspace_v2_defconfig
+++ b/configs/netspace_v2_defconfig
@@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_KIRKWOOD_GPIO=y
 CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MVTWSI=y
diff --git a/configs/nitrogen6q2g_defconfig b/configs/nitrogen6q2g_defconfig
index dbc1818caa4..313187845bb 100644
--- a/configs/nitrogen6q2g_defconfig
+++ b/configs/nitrogen6q2g_defconfig
@@ -58,6 +58,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_SYS_I2C_LEGACY=y
diff --git a/configs/nitrogen6q_defconfig b/configs/nitrogen6q_defconfig
index d88d0719407..51626c14952 100644
--- a/configs/nitrogen6q_defconfig
+++ b/configs/nitrogen6q_defconfig
@@ -58,6 +58,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_USB_FUNCTION_FASTBOOT=y
 CONFIG_FASTBOOT_BUF_ADDR=0x12000000
 CONFIG_SYS_I2C_LEGACY=y
diff --git a/configs/nsa310s_defconfig b/configs/nsa310s_defconfig
index 46ca3bac479..05a6761854b 100644
--- a/configs/nsa310s_defconfig
+++ b/configs/nsa310s_defconfig
@@ -43,6 +43,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 # CONFIG_MMC is not set
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/omap5_uevm_defconfig b/configs/omap5_uevm_defconfig
index c43418a0224..2908bf5d364 100644
--- a/configs/omap5_uevm_defconfig
+++ b/configs/omap5_uevm_defconfig
@@ -47,6 +47,9 @@ CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_DM_ETH=y
 CONFIG_SCSI=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_CONS_INDEX=3
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
diff --git a/configs/pg_wcom_expu1_defconfig b/configs/pg_wcom_expu1_defconfig
index 53d57e0ba20..a97616ad777 100644
--- a/configs/pg_wcom_expu1_defconfig
+++ b/configs/pg_wcom_expu1_defconfig
@@ -73,6 +73,9 @@ CONFIG_PHY_GIGE=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_QE_FW_ADDR=0x60020000
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SPECIFY_CONSOLE_INDEX=y
 CONFIG_DM_SERIAL=y
 CONFIG_SYS_NS16550=y
diff --git a/configs/pg_wcom_seli8_defconfig b/configs/pg_wcom_seli8_defconfig
index 3eaf7fde9c9..65d7b852f49 100644
--- a/configs/pg_wcom_seli8_defconfig
+++ b/configs/pg_wcom_seli8_defconfig
@@ -73,6 +73,9 @@ CONFIG_PHY_GIGE=y
 CONFIG_MII=y
 CONFIG_TSEC_ENET=y
 CONFIG_SYS_QE_FW_ADDR=0x60020000
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=1
+CONFIG_SYS_SCSI_MAX_LUN=1
 CONFIG_SPECIFY_CONSOLE_INDEX=y
 CONFIG_DM_SERIAL=y
 CONFIG_SYS_NS16550=y
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index c9afe4c8408..04a1b26a07a 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -104,6 +104,7 @@ CONFIG_DEVRES=y
 CONFIG_DEBUG_DEVRES=y
 CONFIG_ADC=y
 CONFIG_ADC_SANDBOX=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_AXI=y
 CONFIG_AXI_SANDBOX=y
 CONFIG_BUTTON=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index d0886b7071f..5a7978adeb0 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -128,6 +128,7 @@ CONFIG_DEBUG_DEVRES=y
 CONFIG_SIMPLE_PM_BUS=y
 CONFIG_ADC=y
 CONFIG_ADC_SANDBOX=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_AXI=y
 CONFIG_AXI_SANDBOX=y
 CONFIG_BOOTCOUNT_LIMIT=y
@@ -249,6 +250,9 @@ CONFIG_RESET_SCMI=y
 CONFIG_DM_RNG=y
 CONFIG_DM_RTC=y
 CONFIG_RTC_RV8803=y
+CONFIG_SCSI_AHCI_PLAT=y
+CONFIG_SYS_SCSI_MAX_SCSI_ID=8
+CONFIG_SYS_SCSI_MAX_LUN=4
 CONFIG_SANDBOX_SERIAL=y
 CONFIG_SMEM=y
 CONFIG_SANDBOX_SMEM=y
@@ -258,6 +262,7 @@ CONFIG_SOUND_MAX98357A=y
 CONFIG_SOUND_SANDBOX=y
 CONFIG_SOC_DEVICE=y
 CONFIG_SANDBOX_SPI=y
+CONFIG_SCSI=y
 CONFIG_SPMI=y
 CONFIG_SPMI_SANDBOX=y
 CONFIG_SYSINFO=y
@@ -301,6 +306,7 @@ CONFIG_CMD_DHRYSTONE=y
 CONFIG_ECDSA=y
 CONFIG_ECDSA_VERIFY=y
 CONFIG_TPM=y
+CONFIG_SHA384=y
 CONFIG_LZ4=y
 CONFIG_ERRNO_STR=y
 CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
@@ -312,4 +318,3 @@ CONFIG_TEST_FDTDEC=y
 CONFIG_UNIT_TEST=y
 CONFIG_UT_TIME=y
 CONFIG_UT_DM=y
-CONFIG_SHA384=y
diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig
index 6e39aa178a6..0c5031b2d22 100644
--- a/configs/sheevaplug_defconfig
+++ b/configs/sheevaplug_defconfig
@@ -46,6 +46,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_MVEBU_MMC=y
 CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
index e1278f2e70a..bde063438f1 100644
--- a/configs/tbs2910_defconfig
+++ b/configs/tbs2910_defconfig
@@ -66,6 +66,7 @@ CONFIG_SYS_MMC_ENV_PART=1
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
index a781f150e48..1c3dbe4a557 100644
--- a/configs/theadorable_debug_defconfig
+++ b/configs/theadorable_debug_defconfig
@@ -54,6 +54,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_SATA_MV=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_BOOTCOUNT_RAM=y
 CONFIG_FPGA_ALTERA=y
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
index b78e5099f56..054e008b2a9 100644
--- a/configs/tools-only_defconfig
+++ b/configs/tools-only_defconfig
@@ -18,8 +18,8 @@ CONFIG_MISC_INIT_F=y
 CONFIG_OF_CONTROL=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 # CONFIG_NET is not set
-# CONFIG_GENERATE_ACPI_TABLE is not set
 # CONFIG_ACPIGEN is not set
+CONFIG_SYS_SATA_MAX_DEVICE=2
 CONFIG_AXI=y
 CONFIG_AXI_SANDBOX=y
 CONFIG_SANDBOX_GPIO=y
@@ -33,4 +33,5 @@ CONFIG_I2C_EDID=y
 # CONFIG_VIRTIO_MMIO is not set
 # CONFIG_VIRTIO_PCI is not set
 # CONFIG_VIRTIO_SANDBOX is not set
+# CONFIG_GENERATE_ACPI_TABLE is not set
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
index 90fce5ab4f7..6e8cb68e18a 100644
--- a/configs/wandboard_defconfig
+++ b/configs/wandboard_defconfig
@@ -56,6 +56,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_SYS_SATA_MAX_DEVICE=1
 CONFIG_DM_I2C=y
 CONFIG_SPL_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 1adf4dc8e2d..afc679421b7 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -135,6 +135,16 @@ config SATA_SIL
 	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
 	  SATA controllers.
 
+config SYS_SATA_MAX_DEVICE
+	hex "Maximum number of SATA devices"
+	default 0x8
+	help
+	  Sets the maximum number of SATA devices which can be supported
+	  by U-Boot.
+
+	  This is only partially converted to driver model. See sata_bread()
+	  for example, which shows where the conversion needs to be completed.
+
 endif # SATA
 
 endmenu
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 3c826c95b78..2bee67d2e1a 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -16,3 +16,33 @@ config DM_SCSI
 	  which supports SCSI and SATA HDDs. For every device configuration
 	  (IDs/LUNs) a block device is created with RAW read/write and
 	  filesystem support.
+
+if SCSI && !DM_SCSI
+
+config SCSI_AHCI_PLAT
+	bool "Platform-specific init of AHCI"
+	help
+	  This enables a way for boards to set up an AHCI device manually, by
+	  called ahci_init() and providing an ahci_reset() mechanism.
+
+	  This is deprecated. An AHCI driver should be provided instead.
+
+config SYS_SCSI_MAX_SCSI_ID
+	hex "Maximum supporedt SCSI ID"
+	default 0x1
+	help
+	  Sets the maximum number of SCSI IDs to scan when looking for devices.
+	  IDs from 0 to (this value - 1) are scanned.
+
+	  This is deprecated and is not needed when BLK is enabled.
+
+config SYS_SCSI_MAX_LUN
+	hex "Maximum support SCSI LUN"
+	default 0x1
+	help
+	  Sets the maximum number of SCSI Logical Unit Numbers (LUNs) to scan on
+	  devices. LUNs from 0 to (this value - 1) are scanned.
+
+	  This is deprecated and is not needed when CONFIG_DM_SCSI is enabled.
+
+endif
diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
index e9f848636c6..25194eeec11 100644
--- a/drivers/scsi/Makefile
+++ b/drivers/scsi/Makefile
@@ -15,4 +15,6 @@ obj-$(CONFIG_SCSI) += scsi.o
 endif
 endif
 
+ifdef CONFIG_SCSI
 obj-$(CONFIG_SANDBOX) += sandbox_scsi.o
+endif
diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
index 977d96a5a76..538d9c21978 100644
--- a/include/configs/MPC837XERDB.h
+++ b/include/configs/MPC837XERDB.h
@@ -275,7 +275,6 @@
 /*
  * SATA
  */
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1_OFFSET	0x18000
 #define CONFIG_SYS_SATA1	(CONFIG_SYS_IMMR + CONFIG_SYS_SATA1_OFFSET)
diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
index 23b9969f84b..106d1e6a4b7 100644
--- a/include/configs/P1010RDB.h
+++ b/include/configs/P1010RDB.h
@@ -544,7 +544,6 @@ extern unsigned long get_sdram_size(void);
 #define CONFIG_FSL_SATA_V2
 
 #ifdef CONFIG_FSL_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
index ceaed464fe0..e6d5321070b 100644
--- a/include/configs/P2041RDB.h
+++ b/include/configs/P2041RDB.h
@@ -349,7 +349,6 @@
 #define CONFIG_FSL_SATA_V2
 
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/P4080DS.h b/include/configs/P4080DS.h
index ed88b418441..8a0c7039f66 100644
--- a/include/configs/P4080DS.h
+++ b/include/configs/P4080DS.h
@@ -11,7 +11,6 @@
 
 #define CONFIG_PCIE3
 
-#define CONFIG_SYS_SATA_MAX_DEVICE  2
 #define CONFIG_LBA48
 
 #define CONFIG_SYS_SRIO
diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
index f60010f7876..9433f14227b 100644
--- a/include/configs/T104xRDB.h
+++ b/include/configs/T104xRDB.h
@@ -438,7 +438,6 @@
 /* SATA */
 #define CONFIG_FSL_SATA_V2
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
index f0bdcbae630..a41f9f0d9b8 100644
--- a/include/configs/T208xQDS.h
+++ b/include/configs/T208xQDS.h
@@ -488,7 +488,6 @@
  * SATA
  */
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/T208xRDB.h b/include/configs/T208xRDB.h
index 86dc5bfe82a..7165ba08283 100644
--- a/include/configs/T208xRDB.h
+++ b/include/configs/T208xRDB.h
@@ -443,7 +443,6 @@
  * SATA
  */
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
index 6923774a16f..daccd816c10 100644
--- a/include/configs/T4240RDB.h
+++ b/include/configs/T4240RDB.h
@@ -180,7 +180,6 @@
 
 /* SATA */
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
@@ -466,7 +465,6 @@
 
 /* SATA */
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
index e4e3872d1ca..1f017d13a72 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -49,9 +49,6 @@
 #define PHY_ANEG_TIMEOUT	8000	/* PHY needs longer aneg time at 1G */
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 
 /*
  * Default to using SPI for environment, etc.
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index d5eacf1ec71..896b636cf11 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -36,11 +36,6 @@
 #endif
 
 /* SATA support */
-#ifdef CONFIG_SCSI
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-#endif
 
 /* Keep device tree and initrd in lower memory so the kernel can access them */
 #define RELOCATION_LIMITS_ENV_SETTINGS	\
diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
index 40bc8215480..c19aaaccb10 100644
--- a/include/configs/cm_fx6.h
+++ b/include/configs/cm_fx6.h
@@ -160,7 +160,6 @@
 #define CONFIG_EHCI_HCD_INIT_AFTER_RESET	/* For OTG port */
 
 /* SATA */
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_LBA48
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
index 2c27a003b3d..43f8fdd1656 100644
--- a/include/configs/controlcenterdc.h
+++ b/include/configs/controlcenterdc.h
@@ -21,9 +21,6 @@
 /*
  * SATA/SCSI/AHCI configuration
  */
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 
 /* Environment in SPI NOR flash */
 
diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
index 6d272c6d880..bd264122da7 100644
--- a/include/configs/corenet_ds.h
+++ b/include/configs/corenet_ds.h
@@ -347,7 +347,6 @@
 
 /* SATA */
 #ifdef CONFIG_FSL_SATA_V2
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_SATA1
 #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
 #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index f5ea3657a4a..a81f1eea4d6 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -16,9 +16,6 @@
 /*
  * SATA/SCSI/AHCI configuration
  */
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 
 /* Environment in SPI NOR flash */
 
diff --git a/include/configs/db-mv784mp-gp.h b/include/configs/db-mv784mp-gp.h
index 449a56753b1..7baae3b090d 100644
--- a/include/configs/db-mv784mp-gp.h
+++ b/include/configs/db-mv784mp-gp.h
@@ -28,7 +28,6 @@
 #define PHY_ANEG_TIMEOUT	8000	/* PHY needs a longer aneg time */
 
 /* SATA support */
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_LBA48
 
 /* PCIe support */
diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
index aec30c461de..cb54abaecd4 100644
--- a/include/configs/dra7xx_evm.h
+++ b/include/configs/dra7xx_evm.h
@@ -75,7 +75,6 @@
 /* SPI SPL */
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 /* NAND support */
 #ifdef CONFIG_MTD_RAW_NAND
diff --git a/include/configs/dreamplug.h b/include/configs/dreamplug.h
index beea234d8dc..0b3ee131ae6 100644
--- a/include/configs/dreamplug.h
+++ b/include/configs/dreamplug.h
@@ -45,7 +45,6 @@
  * SATA Driver configuration
  */
 #ifdef CONFIG_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_LBA48
 #endif /* CONFIG_SATA */
 
diff --git a/include/configs/durian.h b/include/configs/durian.h
index ce9e57c64be..d912da0bd00 100644
--- a/include/configs/durian.h
+++ b/include/configs/durian.h
@@ -19,10 +19,6 @@
 #define CONFIG_PCI_SCAN_SHOW
 
 /* SCSI */
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
-#define CONFIG_SYS_SCSI_MAX_LUN 1
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SATA_MAX_DEVICE 4
 
 /* BOOT */
 #define CONFIG_SYS_BOOTM_LEN	(60 * 1024 * 1024)
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index bde14a7b3da..402c5bfacbe 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -21,7 +21,6 @@
 
 /* SATA Configs */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/include/configs/goflexhome.h b/include/configs/goflexhome.h
index 90e37d98535..85b220ffb9a 100644
--- a/include/configs/goflexhome.h
+++ b/include/configs/goflexhome.h
@@ -61,7 +61,6 @@
 
 /* SATA driver configuration */
 #ifdef CONFIG_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_LBA48
 #endif /* CONFIG_SATA */
 
diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
index 2853d75a163..29d538c0f9d 100644
--- a/include/configs/gw_ventana.h
+++ b/include/configs/gw_ventana.h
@@ -41,7 +41,6 @@
  * SATA Configs
  */
 #ifdef CONFIG_CMD_SATA
-  #define CONFIG_SYS_SATA_MAX_DEVICE	1
   #define CONFIG_DWC_AHSATA_PORT_ID	0
   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
   #define CONFIG_LBA48
diff --git a/include/configs/helios4.h b/include/configs/helios4.h
index c1d42f17ca6..56fa135a3fc 100644
--- a/include/configs/helios4.h
+++ b/include/configs/helios4.h
@@ -36,11 +36,6 @@
 #endif
 
 /* SATA support */
-#ifdef CONFIG_SCSI
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-#endif
 
 /* Keep device tree and initrd in lower memory so the kernel can access them */
 #define RELOCATION_LIMITS_ENV_SETTINGS	\
diff --git a/include/configs/highbank.h b/include/configs/highbank.h
index 6d559746ab0..55c874bf619 100644
--- a/include/configs/highbank.h
+++ b/include/configs/highbank.h
@@ -16,10 +16,6 @@
 
 #define CONFIG_SYS_BOOTCOUNT_LE		/* Use little-endian accessors */
 
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-
 #define CONFIG_BOOT_RETRY_TIME		-1
 #define CONFIG_RESET_TO_RETRY
 
diff --git a/include/configs/lacie_kw.h b/include/configs/lacie_kw.h
index 046f1888cb1..a39f786d572 100644
--- a/include/configs/lacie_kw.h
+++ b/include/configs/lacie_kw.h
@@ -32,9 +32,6 @@
 #define CONFIG_LBA48
 #if defined(CONFIG_NETSPACE_MAX_V2) || defined(CONFIG_D2NET_V2) || \
 	defined(CONFIG_NET2BIG_V2)
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
-#else
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #endif
 #endif /* CONFIG_SATA */
 
diff --git a/include/configs/ls1012a2g5rdb.h b/include/configs/ls1012a2g5rdb.h
index 10274317cf8..0263bb82893 100644
--- a/include/configs/ls1012a2g5rdb.h
+++ b/include/configs/ls1012a2g5rdb.h
@@ -14,13 +14,9 @@
 #define CONFIG_SYS_SDRAM_SIZE		0x40000000
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
-
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS		\
 	"verify=no\0"				\
diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
index e33bafac61b..f92ff17eeb8 100644
--- a/include/configs/ls1012a_common.h
+++ b/include/configs/ls1012a_common.h
@@ -31,13 +31,9 @@
 #define CONFIG_SYS_FSL_QSPI_BASE	0x40000000
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
-
 /* I2C */
 
 /* GPIO */
diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
index c02be10c6fa..2e5b804a4cb 100644
--- a/include/configs/ls1021aiot.h
+++ b/include/configs/ls1021aiot.h
@@ -81,16 +81,12 @@
  */
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 #ifndef PCI_DEVICE_ID_FREESCALE_AHCI
 #define PCI_DEVICE_ID_FREESCALE_AHCI	0x0440
 #endif
 #define CONFIG_SCSI_DEV_LIST		{PCI_VENDOR_ID_FREESCALE, \
 	PCI_DEVICE_ID_FREESCALE_AHCI}
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-
 /* SPI */
 
 /*
diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
index 2c50490b9c6..1b4d181310f 100644
--- a/include/configs/ls1028aqds.h
+++ b/include/configs/ls1028aqds.h
@@ -72,11 +72,8 @@
 #endif
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
 #ifndef SPL_NO_ENV
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS \
diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
index 653d2ac678a..0770f4e268a 100644
--- a/include/configs/ls1028ardb.h
+++ b/include/configs/ls1028ardb.h
@@ -57,12 +57,9 @@
 #endif
 
 /* SATA */
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
 #define SCSI_VEND_ID 0x1b4b
 #define SCSI_DEV_ID  0x9170
 #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
-#define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SATA1                        AHCI_BASE_ADDR1
 
 /* Initial environment variables */
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
index 083e2e65605..ea6831bb827 100644
--- a/include/configs/ls1043aqds.h
+++ b/include/configs/ls1043aqds.h
@@ -46,7 +46,6 @@
 #endif
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 /* EEPROM */
 #define CONFIG_SYS_I2C_EEPROM_NXID
@@ -54,9 +53,6 @@
 
 #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
-
 /*
  * IFC Definitions
  */
diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
index 507d770f176..31b578ae33b 100644
--- a/include/configs/ls1043ardb.h
+++ b/include/configs/ls1043ardb.h
@@ -234,8 +234,6 @@
 
 /* SATA */
 #ifndef SPL_NO_SATA
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		2
-#define CONFIG_SYS_SCSI_MAX_LUN			2
 #define SCSI_VEND_ID 0x1b4b
 #define SCSI_DEV_ID  0x9170
 #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
index 943d65920e8..7353552d763 100644
--- a/include/configs/ls1046a_common.h
+++ b/include/configs/ls1046a_common.h
@@ -124,12 +124,7 @@
 
 /* SATA */
 #ifndef SPL_NO_SATA
-#define CONFIG_SCSI_AHCI_PLAT
-
 #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
-
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
 #endif
 
 /* FMan ucode */
diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
index e385fded579..166817f9e12 100644
--- a/include/configs/ls1088a_common.h
+++ b/include/configs/ls1088a_common.h
@@ -130,11 +130,7 @@ unsigned long long get_qixis_addr(void);
 
 /* SATA */
 #ifdef CONFIG_SCSI
-#define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SATA1		AHCI_BASE_ADDR1
-
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 #endif
 
 /* Physical Memory Map */
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index 8b4ea499e86..7554de1f6d3 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -33,14 +33,10 @@
 #endif
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
 #define CONFIG_SYS_SATA2			AHCI_BASE_ADDR2
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
-
 #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
 #define CONFIG_SYS_NOR_AMASK		IFC_AMASK(128*1024*1024)
 #define CONFIG_SYS_NOR_AMASK_EARLY	IFC_AMASK(64*1024*1024)
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index 1253698c883..1c05b086778 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -43,14 +43,10 @@
 #endif
 
 /* SATA */
-#define CONFIG_SCSI_AHCI_PLAT
 
 #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
 #define CONFIG_SYS_SATA2			AHCI_BASE_ADDR2
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
-#define CONFIG_SYS_SCSI_MAX_LUN			1
-
 #if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT)
 
 #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
index e8e02e7f7b8..7fa4f00734c 100644
--- a/include/configs/lsxl.h
+++ b/include/configs/lsxl.h
@@ -96,7 +96,6 @@
 #endif /* CONFIG_CMD_NET */
 
 #ifdef CONFIG_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE 1
 #define CONFIG_SYS_64BIT_LBA
 #define CONFIG_LBA48
 #endif
diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
index eac309de804..a38b2f66650 100644
--- a/include/configs/lx2160a_common.h
+++ b/include/configs/lx2160a_common.h
@@ -110,11 +110,8 @@
 /* SATA */
 
 #ifdef CONFIG_SCSI
-#define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SYS_SATA1		AHCI_BASE_ADDR1
 #define CONFIG_SYS_SATA2		AHCI_BASE_ADDR2
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
 #endif
 
 /* USB */
diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
index 4a1d959d17c..8486cf8fc6e 100644
--- a/include/configs/m53menlo.h
+++ b/include/configs/m53menlo.h
@@ -99,7 +99,6 @@
  * SATA
  */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h
index c192512e85a..fd9ce344dbd 100644
--- a/include/configs/mvebu_armada-37xx.h
+++ b/include/configs/mvebu_armada-37xx.h
@@ -51,13 +51,9 @@
 /*
  * SATA/SCSI/AHCI configuration
  */
-#define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_LBA48
 #define CONFIG_SYS_64BIT_LBA
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-
 #define BOOT_TARGET_DEVICES(func) \
 	func(MMC, mmc, 1) \
 	func(MMC, mmc, 0) \
diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
index 6a113ec2145..44bba6555cb 100644
--- a/include/configs/mvebu_armada-8k.h
+++ b/include/configs/mvebu_armada-8k.h
@@ -46,13 +46,9 @@
 /*
  * SATA/SCSI/AHCI configuration
  */
-#define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_LBA48
 #define CONFIG_SYS_64BIT_LBA
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-
 /*
  * PCI configuration
  */
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 92140df4be1..01ed221873a 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -125,7 +125,6 @@
 #define CONFIG_BOARD_SIZE_LIMIT		785408
 
 #ifdef CONFIG_CMD_SATA
-	#define CONFIG_SYS_SATA_MAX_DEVICE      1
 	#define CONFIG_DWC_AHSATA_PORT_ID       0
 	#define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_BASE_ADDR
 	#define CONFIG_LBA48
diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
index 7d3e651f44d..1c25857296c 100644
--- a/include/configs/mx6cuboxi.h
+++ b/include/configs/mx6cuboxi.h
@@ -18,7 +18,6 @@
 
 /* SATA Configuration */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE      1
 #define CONFIG_DWC_AHSATA_PORT_ID       0
 #define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h
index 1a1c08bd308..678b433cd7b 100644
--- a/include/configs/nitrogen6x.h
+++ b/include/configs/nitrogen6x.h
@@ -23,7 +23,6 @@
  * SATA Configs
  */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/include/configs/nsa310s.h b/include/configs/nsa310s.h
index 8cc9ca6a49d..ccf4519119a 100644
--- a/include/configs/nsa310s.h
+++ b/include/configs/nsa310s.h
@@ -32,7 +32,6 @@
 
 /* SATA driver configuration */
 #ifdef CONFIG_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_LBA48
 #endif /* CONFIG_SATA */
 
diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h
index e9a9d50db1d..75e84c35ee0 100644
--- a/include/configs/omap5_uevm.h
+++ b/include/configs/omap5_uevm.h
@@ -49,8 +49,4 @@
 
 #define CONSOLEDEV		"ttyS2"
 
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
-#define CONFIG_SYS_SCSI_MAX_LUN		1
-
 #endif /* __CONFIG_OMAP5_EVM_H */
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
index b993ec8316f..92008cd38e4 100644
--- a/include/configs/p1_p2_rdb_pc.h
+++ b/include/configs/p1_p2_rdb_pc.h
@@ -138,7 +138,6 @@
 #define CONFIG_PCIE1	/* PCIE controller 1 (slot 1) */
 #define CONFIG_PCIE2	/* PCIE controller 2 (slot 2) */
 
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_LBA48
 
 #define CONFIG_HWCONFIG
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index c4cc57401bc..073086e912a 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -40,10 +40,4 @@
 #define CONFIG_SYS_ATA_STRIDE		4
 #endif
 
-#define CONFIG_SCSI_AHCI_PLAT
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	8
-#define CONFIG_SYS_SCSI_MAX_LUN		4
-
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
-
 #endif
diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h
index 8dba4fcb4f8..4499a63aed2 100644
--- a/include/configs/sheevaplug.h
+++ b/include/configs/sheevaplug.h
@@ -46,7 +46,6 @@
  * SATA driver configuration
  */
 #ifdef CONFIG_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	2
 #define CONFIG_LBA48
 #endif /* CONFIG_SATA */
 
diff --git a/include/configs/sifive-unmatched.h b/include/configs/sifive-unmatched.h
index 30adfe948f1..087764666bf 100644
--- a/include/configs/sifive-unmatched.h
+++ b/include/configs/sifive-unmatched.h
@@ -32,8 +32,6 @@
 
 #define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
 
-#define CONFIG_SYS_SCSI_MAX_SCSI_ID	4
-
 /* Environment options */
 
 #ifndef CONFIG_SPL_BUILD
diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
index 58ccafc385a..065b406e2e7 100644
--- a/include/configs/tbs2910.h
+++ b/include/configs/tbs2910.h
@@ -40,7 +40,6 @@
 
 /* SATA */
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/include/configs/theadorable.h b/include/configs/theadorable.h
index 3c942cc6fa0..14817b165cf 100644
--- a/include/configs/theadorable.h
+++ b/include/configs/theadorable.h
@@ -41,7 +41,6 @@
 	"initrd_high=0x10000000\0"
 
 /* SATA support */
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_LBA48
 
 /* Enable LCD and reserve 512KB from top of memory*/
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
index 051c18ca232..80e8fe1deb2 100644
--- a/include/configs/wandboard.h
+++ b/include/configs/wandboard.h
@@ -17,7 +17,6 @@
 /* SATA Configs */
 
 #ifdef CONFIG_CMD_SATA
-#define CONFIG_SYS_SATA_MAX_DEVICE	1
 #define CONFIG_DWC_AHSATA_PORT_ID	0
 #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
 #define CONFIG_LBA48
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index c6d735feb0a..691c9c4d338 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -725,7 +725,6 @@ CONFIG_SAR_REG
 CONFIG_SATA1
 CONFIG_SATA2
 CONFIG_SCIF_A
-CONFIG_SCSI_AHCI_PLAT
 CONFIG_SCSI_DEV_LIST
 CONFIG_SC_TIMER_CLK
 CONFIG_SDCARD
@@ -1859,7 +1858,6 @@ CONFIG_SYS_SATA2
 CONFIG_SYS_SATA2_FLAGS
 CONFIG_SYS_SATA2_OFFSET
 CONFIG_SYS_SATA_FAT_BOOT_PARTITION
-CONFIG_SYS_SATA_MAX_DEVICE
 CONFIG_SYS_SBFHDR_DATA_OFFSET
 CONFIG_SYS_SBFHDR_SIZE
 CONFIG_SYS_SCCR_SATACM
@@ -1867,8 +1865,6 @@ CONFIG_SYS_SCCR_TSEC1CM
 CONFIG_SYS_SCCR_TSEC2CM
 CONFIG_SYS_SCCR_USBDRCM
 CONFIG_SYS_SCR
-CONFIG_SYS_SCSI_MAX_LUN
-CONFIG_SYS_SCSI_MAX_SCSI_ID
 CONFIG_SYS_SDRAM
 CONFIG_SYS_SDRAM_BASE
 CONFIG_SYS_SDRAM_BASE0
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH 8/8] dm: scsi: Add a migration deadline for scsi
  2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
                   ` (6 preceding siblings ...)
  2022-01-31 14:49 ` [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig Simon Glass
@ 2022-01-31 14:49 ` Simon Glass
  2022-02-01  6:15   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  7 siblings, 2 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 14:49 UTC (permalink / raw)
  To: U-Boot Mailing List
  Cc: Stefan Roese, Tom Rini, Michael Walle, Simon Glass,
	Marek Behún, Marek Vasut, Pavel Herrmann, Rob Herring

Very few boards remain to be migrated:

   am57xx_hs_evm_usb
   controlcenterdc
   highbank
   ls1021atsn_qspi
   ls1021atsn_sdcard
   ls1021atwr_sdcard_ifc_SECURE_BOOT
   ls1046ardb_sdcard_SECURE_BOOT
   ls1088ardb_sdcard_qspi_SECURE_BOOT
   omap5_uevm
   pg_wcom_expu1
   pg_wcom_seli8
   sandbox
   sandbox64
   sandbox_flattree
   sandbox_noinst
   sandbox_spl
   tools-only

Addd a migration deadline for a year out.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Makefile b/Makefile
index 212124522e6..31de3c1ad78 100644
--- a/Makefile
+++ b/Makefile
@@ -1134,6 +1134,7 @@ endif
 	@# is enable to tell 'deprecated' that one of these symbols exists
 	$(call deprecated,CONFIG_TIMER,Timer drivers,v2023.01,$(if $(strip $(CONFIG_SYS_TIMER_RATE)$(CONFIG_SYS_TIMER_COUNTER)),x))
 	$(call deprecated,CONFIG_DM_SERIAL,Serial drivers,v2023.04,$(CONFIG_SERIAL))
+	$(call deprecated,CONFIG_DM_SCSI,SCSI drivers,v2023.04,$(CONFIG_SCSI))
 	@# Check that this build does not use CONFIG options that we do not
 	@# know about unless they are in Kconfig. All the existing CONFIG
 	@# options are whitelisted, so new ones should not be added.
-- 
2.35.0.rc2.247.g8bbb082509-goog


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
@ 2022-01-31 15:58   ` Heinrich Schuchardt
  2022-01-31 16:04     ` Tom Rini
  2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2 siblings, 1 reply; 28+ messages in thread
From: Heinrich Schuchardt @ 2022-01-31 15:58 UTC (permalink / raw)
  To: Simon Glass
  Cc: Stefan Roese, Tom Rini, Michael Walle, Alison Wang,
	Andre Przywara, Biwen Li, Dennis Gilmore, Heiko Schocher,
	Igor Opaniuk, Marek Behún, Mario Six, Meenakshi Aggarwal,
	Mian Yousaf Kaukab, Mingkai Hu, Patrick Delaunay, Pramod Kumar,
	Priyanka Jain, Rajesh Bhagat, Rasmus Villemoes, Rick Chen,
	Rob Herring, Tang Yuantian, Wasim Khan, Yangbo Lu, liuhao,
	shuyiqi, Heinrich Schuchardt, U-Boot Mailing List

On 1/31/22 15:49, Simon Glass wrote:
> This is defined based on two other CONFIGs for all boards except sandbox
> and durian.
> 
> For sandbox the value does not matter. For durian the value seems
> excessive.
> 
> Drop the option completely, to simplify configuration and reduce the
> number of things we need to convert to Kconfig.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>   README                                     | 8 +++-----
>   api/api_storage.c                          | 3 ++-
>   arch/arm/include/asm/arch-ls102xa/config.h | 2 --
>   drivers/scsi/scsi.c                        | 6 +++---
>   include/configs/am57xx_evm.h               | 2 --
>   include/configs/clearfog.h                 | 2 --
>   include/configs/controlcenterdc.h          | 2 --
>   include/configs/db-88f6820-gp.h            | 2 --
>   include/configs/durian.h                   | 1 -
>   include/configs/helios4.h                  | 2 --
>   include/configs/highbank.h                 | 2 --
>   include/configs/ls1012a2g5rdb.h            | 2 --
>   include/configs/ls1012a_common.h           | 2 --
>   include/configs/ls1021aiot.h               | 2 --
>   include/configs/ls1028aqds.h               | 2 --
>   include/configs/ls1028ardb.h               | 2 --
>   include/configs/ls1043aqds.h               | 2 --
>   include/configs/ls1043ardb.h               | 2 --
>   include/configs/ls1046a_common.h           | 2 --
>   include/configs/ls1088a_common.h           | 2 --
>   include/configs/ls2080aqds.h               | 2 --
>   include/configs/ls2080ardb.h               | 2 --
>   include/configs/lx2160a_common.h           | 2 --
>   include/configs/mvebu_armada-37xx.h        | 2 --
>   include/configs/mvebu_armada-8k.h          | 2 --
>   include/configs/omap5_uevm.h               | 2 --
>   include/configs/sandbox.h                  | 1 -
>   include/scsi.h                             | 4 ++++
>   scripts/config_whitelist.txt               | 1 -
>   29 files changed, 12 insertions(+), 56 deletions(-)
> 
> diff --git a/README b/README
> index 9ebd4f2345a..48a3f5ca610 100644
> --- a/README
> +++ b/README
> @@ -744,11 +744,9 @@ The following options need to be configured:
>   			Default is 32bit.
>   
>   - SCSI Support:
> -		CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
> -		CONFIG_SYS_SCSI_MAX_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
> -		CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
> -		maximum numbers of LUNs, SCSI ID's and target
> -		devices.
> +		CONFIG_SYS_SCSI_MAX_LUN [8] and CONFIG_SYS_SCSI_MAX_SCSI_ID [7]
> +		can be adjusted to define the maximum numbers of LUNs and SCSI
> +		IDs.
>   
>   		The environment variable 'scsidevs' is set to the number of
>   		SCSI devices found during the last scan.
> diff --git a/api/api_storage.c b/api/api_storage.c
> index a0dacad1a55..adca44b4fd2 100644
> --- a/api/api_storage.c
> +++ b/api/api_storage.c
> @@ -9,6 +9,7 @@
>   #include <common.h>
>   #include <api_public.h>
>   #include <part.h>
> +#include <scsi.h>
>   
>   #if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
>   #include <usb.h>
> @@ -71,7 +72,7 @@ void dev_stor_init(void)
>   	specs[ENUM_SATA].name = "sata";
>   #endif
>   #if defined(CONFIG_SCSI)
> -	specs[ENUM_SCSI].max_dev = CONFIG_SYS_SCSI_MAX_DEVICE;
> +	specs[ENUM_SCSI].max_dev = SCSI_MAX_DEVICE;
>   	specs[ENUM_SCSI].enum_started = 0;
>   	specs[ENUM_SCSI].enum_ended = 0;
>   	specs[ENUM_SCSI].type = DEV_TYP_STOR | DT_STOR_SCSI;
> diff --git a/arch/arm/include/asm/arch-ls102xa/config.h b/arch/arm/include/asm/arch-ls102xa/config.h
> index 0e1f9e0c0d8..489286ed8d1 100644
> --- a/arch/arm/include/asm/arch-ls102xa/config.h
> +++ b/arch/arm/include/asm/arch-ls102xa/config.h
> @@ -81,8 +81,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #ifdef CONFIG_DDR_SPD
>   #define CONFIG_VERY_BIG_RAM
>   #define CONFIG_SYS_LS1_DDR_BLOCK1_SIZE		((phys_size_t)2 << 30)
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index d93d2419285..d7b33010e46 100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -46,7 +46,7 @@ static int scsi_max_devs; /* number of highest available scsi device */
>   
>   static int scsi_curr_dev; /* current device */
>   
> -static struct blk_desc scsi_dev_desc[CONFIG_SYS_SCSI_MAX_DEVICE];
> +static struct blk_desc scsi_dev_desc[SCSI_MAX_DEVICE];
>   #endif
>   
>   /* almost the maximum amount of the scsi_ext command.. */
> @@ -655,7 +655,7 @@ int scsi_scan(bool verbose)
>   
>   	if (verbose)
>   		printf("scanning bus for devices...\n");
> -	for (i = 0; i < CONFIG_SYS_SCSI_MAX_DEVICE; i++)
> +	for (i = 0; i < SCSI_MAX_DEVICE; i++)
>   		scsi_init_dev_desc(&scsi_dev_desc[i], i);
>   
>   	scsi_max_devs = 0;
> @@ -703,7 +703,7 @@ U_BOOT_DRIVER(scsi_blk) = {
>   U_BOOT_LEGACY_BLK(scsi) = {
>   	.if_typename	= "scsi",
>   	.if_type	= IF_TYPE_SCSI,
> -	.max_devs	= CONFIG_SYS_SCSI_MAX_DEVICE,
> +	.max_devs	= SCSI_MAX_DEVICE,
>   	.desc		= scsi_dev_desc,
>   };
>   #endif
> diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
> index 956844414f8..e4e3872d1ca 100644
> --- a/include/configs/am57xx_evm.h
> +++ b/include/configs/am57xx_evm.h
> @@ -52,8 +52,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * Default to using SPI for environment, etc.
> diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
> index c9af5a40cec..d5eacf1ec71 100644
> --- a/include/configs/clearfog.h
> +++ b/include/configs/clearfog.h
> @@ -40,8 +40,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
> diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
> index ff385d9c6be..2c27a003b3d 100644
> --- a/include/configs/controlcenterdc.h
> +++ b/include/configs/controlcenterdc.h
> @@ -24,8 +24,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index 5f2611995d3..f5ea3657a4a 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -19,8 +19,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/durian.h b/include/configs/durian.h
> index c0ea42e180a..ce9e57c64be 100644
> --- a/include/configs/durian.h
> +++ b/include/configs/durian.h
> @@ -21,7 +21,6 @@
>   /* SCSI */
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
>   #define CONFIG_SYS_SCSI_MAX_LUN 1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE 128
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SATA_MAX_DEVICE 4
>   
> diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> index de1ebbf3751..c1d42f17ca6 100644
> --- a/include/configs/helios4.h
> +++ b/include/configs/helios4.h
> @@ -40,8 +40,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1

This should be Kconfig too. 1 seems to be a reasonable default value as 
it covers most boards. The minimum should be enforced as 1 in Kconfig.

>   #define CONFIG_SYS_SCSI_MAX_LUN		1

Make this Kconfig, please. Let it default to 1 and enforce a minimum of 
1 and a maximum of 256 in Kconfig.

Best regards

Heinrich


> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
> diff --git a/include/configs/highbank.h b/include/configs/highbank.h
> index 4ef3a46cfb9..6d559746ab0 100644
> --- a/include/configs/highbank.h
> +++ b/include/configs/highbank.h
> @@ -19,8 +19,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define CONFIG_BOOT_RETRY_TIME		-1
>   #define CONFIG_RESET_TO_RETRY
> diff --git a/include/configs/ls1012a2g5rdb.h b/include/configs/ls1012a2g5rdb.h
> index bda4283ef5a..10274317cf8 100644
> --- a/include/configs/ls1012a2g5rdb.h
> +++ b/include/configs/ls1012a2g5rdb.h
> @@ -20,8 +20,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS		\
> diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
> index 5d561009c56..e33bafac61b 100644
> --- a/include/configs/ls1012a_common.h
> +++ b/include/configs/ls1012a_common.h
> @@ -37,8 +37,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* I2C */
>   
> diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
> index 7b4044fba72..c02be10c6fa 100644
> --- a/include/configs/ls1021aiot.h
> +++ b/include/configs/ls1021aiot.h
> @@ -90,8 +90,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -		CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* SPI */
>   
> diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
> index 8e3bd7790fe..2c50490b9c6 100644
> --- a/include/configs/ls1028aqds.h
> +++ b/include/configs/ls1028aqds.h
> @@ -77,8 +77,6 @@
>   #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #ifndef SPL_NO_ENV
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS \
> diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
> index 5ce9ebbae93..653d2ac678a 100644
> --- a/include/configs/ls1028ardb.h
> +++ b/include/configs/ls1028ardb.h
> @@ -59,8 +59,6 @@
>   /* SATA */
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
> index 5f9cb97855a..083e2e65605 100644
> --- a/include/configs/ls1043aqds.h
> +++ b/include/configs/ls1043aqds.h
> @@ -56,8 +56,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * IFC Definitions
> diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
> index 6d9cbc8c7df..507d770f176 100644
> --- a/include/configs/ls1043ardb.h
> +++ b/include/configs/ls1043ardb.h
> @@ -236,8 +236,6 @@
>   #ifndef SPL_NO_SATA
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		2
>   #define CONFIG_SYS_SCSI_MAX_LUN			2
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
> index d07d27d1f5c..943d65920e8 100644
> --- a/include/configs/ls1046a_common.h
> +++ b/include/configs/ls1046a_common.h
> @@ -130,8 +130,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* FMan ucode */
> diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
> index 2e52108c23e..e385fded579 100644
> --- a/include/configs/ls1088a_common.h
> +++ b/include/configs/ls1088a_common.h
> @@ -135,8 +135,6 @@ unsigned long long get_qixis_addr(void);
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Physical Memory Map */
> diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
> index 07cf59fcb8f..8b4ea499e86 100644
> --- a/include/configs/ls2080aqds.h
> +++ b/include/configs/ls2080aqds.h
> @@ -40,8 +40,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
>   #define CONFIG_SYS_NOR_AMASK		IFC_AMASK(128*1024*1024)
> diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
> index 6d8effea744..1253698c883 100644
> --- a/include/configs/ls2080ardb.h
> +++ b/include/configs/ls2080ardb.h
> @@ -50,8 +50,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT)
>   
> diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
> index e285109cbba..eac309de804 100644
> --- a/include/configs/lx2160a_common.h
> +++ b/include/configs/lx2160a_common.h
> @@ -115,8 +115,6 @@
>   #define CONFIG_SYS_SATA2		AHCI_BASE_ADDR2
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* USB */
> diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h
> index e7f7e772fc7..c192512e85a 100644
> --- a/include/configs/mvebu_armada-37xx.h
> +++ b/include/configs/mvebu_armada-37xx.h
> @@ -57,8 +57,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define BOOT_TARGET_DEVICES(func) \
>   	func(MMC, mmc, 1) \
> diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
> index ac0fdddbd94..6a113ec2145 100644
> --- a/include/configs/mvebu_armada-8k.h
> +++ b/include/configs/mvebu_armada-8k.h
> @@ -52,8 +52,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * PCI configuration
> diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h
> index 188ab0bf365..e9a9d50db1d 100644
> --- a/include/configs/omap5_uevm.h
> +++ b/include/configs/omap5_uevm.h
> @@ -52,7 +52,5 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #endif /* __CONFIG_OMAP5_EVM_H */
> diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
> index 9e0e8c7056f..c4cc57401bc 100644
> --- a/include/configs/sandbox.h
> +++ b/include/configs/sandbox.h
> @@ -41,7 +41,6 @@
>   #endif
>   
>   #define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	2
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	8
>   #define CONFIG_SYS_SCSI_MAX_LUN		4
>   
> diff --git a/include/scsi.h b/include/scsi.h
> index 66a2caa26e3..b47c7463c1d 100644
> --- a/include/scsi.h
> +++ b/include/scsi.h
> @@ -9,6 +9,10 @@
>   #include <asm/cache.h>
>   #include <linux/dma-direction.h>
>   
> +/* Fix this to the maximum */
> +#define SCSI_MAX_DEVICE \
> +	(CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN)
> +
>   struct udevice;
>   
>   struct scsi_cmd {
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 7b45d578a34..c6d735feb0a 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1867,7 +1867,6 @@ CONFIG_SYS_SCCR_TSEC1CM
>   CONFIG_SYS_SCCR_TSEC2CM
>   CONFIG_SYS_SCCR_USBDRCM
>   CONFIG_SYS_SCR
> -CONFIG_SYS_SCSI_MAX_DEVICE
>   CONFIG_SYS_SCSI_MAX_LUN
>   CONFIG_SYS_SCSI_MAX_SCSI_ID
>   CONFIG_SYS_SDRAM


^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 15:58   ` Heinrich Schuchardt
@ 2022-01-31 16:04     ` Tom Rini
  2022-01-31 16:13       ` Simon Glass
  0 siblings, 1 reply; 28+ messages in thread
From: Tom Rini @ 2022-01-31 16:04 UTC (permalink / raw)
  To: Heinrich Schuchardt
  Cc: Simon Glass, Stefan Roese, Michael Walle, Alison Wang,
	Andre Przywara, Biwen Li, Dennis Gilmore, Heiko Schocher,
	Igor Opaniuk, Marek Behún, Mario Six, Meenakshi Aggarwal,
	Mian Yousaf Kaukab, Mingkai Hu, Patrick Delaunay, Pramod Kumar,
	Priyanka Jain, Rajesh Bhagat, Rasmus Villemoes, Rick Chen,
	Rob Herring, Tang Yuantian, Wasim Khan, Yangbo Lu, liuhao,
	shuyiqi, Heinrich Schuchardt, U-Boot Mailing List

[-- Attachment #1: Type: text/plain, Size: 1346 bytes --]

On Mon, Jan 31, 2022 at 04:58:46PM +0100, Heinrich Schuchardt wrote:
> On 1/31/22 15:49, Simon Glass wrote:
> > This is defined based on two other CONFIGs for all boards except sandbox
> > and durian.
> > 
> > For sandbox the value does not matter. For durian the value seems
> > excessive.
> > 
> > Drop the option completely, to simplify configuration and reduce the
> > number of things we need to convert to Kconfig.
> > 
> > Signed-off-by: Simon Glass <sjg@chromium.org>
[snip]
> > diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> > index de1ebbf3751..c1d42f17ca6 100644
> > --- a/include/configs/helios4.h
> > +++ b/include/configs/helios4.h
> > @@ -40,8 +40,6 @@
> >   #define CONFIG_SCSI_AHCI_PLAT
> >   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> 
> This should be Kconfig too. 1 seems to be a reasonable default value as it
> covers most boards. The minimum should be enforced as 1 in Kconfig.
> 
> >   #define CONFIG_SYS_SCSI_MAX_LUN		1
> 
> Make this Kconfig, please. Let it default to 1 and enforce a minimum of 1
> and a maximum of 256 in Kconfig.

As the series title notes this is "some" options, so yes, a good
follow-up would be to cover more of them.  I believe the end goal here
is that we can drop dead code and more easily check/complain about
unmigrated boards.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 16:04     ` Tom Rini
@ 2022-01-31 16:13       ` Simon Glass
  0 siblings, 0 replies; 28+ messages in thread
From: Simon Glass @ 2022-01-31 16:13 UTC (permalink / raw)
  To: Tom Rini
  Cc: Heinrich Schuchardt, Stefan Roese, Michael Walle, Alison Wang,
	Andre Przywara, Biwen Li, Dennis Gilmore, Heiko Schocher,
	Igor Opaniuk, Marek Behún, Mario Six, Meenakshi Aggarwal,
	Mian Yousaf Kaukab, Mingkai Hu, Patrick Delaunay, Pramod Kumar,
	Priyanka Jain, Rajesh Bhagat, Rasmus Villemoes, Rick Chen,
	Rob Herring, Tang Yuantian, Wasim Khan, Yangbo Lu, liuhao,
	shuyiqi, Heinrich Schuchardt, U-Boot Mailing List

Hi,

On Mon, 31 Jan 2022 at 09:04, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Jan 31, 2022 at 04:58:46PM +0100, Heinrich Schuchardt wrote:
> > On 1/31/22 15:49, Simon Glass wrote:
> > > This is defined based on two other CONFIGs for all boards except sandbox
> > > and durian.
> > >
> > > For sandbox the value does not matter. For durian the value seems
> > > excessive.
> > >
> > > Drop the option completely, to simplify configuration and reduce the
> > > number of things we need to convert to Kconfig.
> > >
> > > Signed-off-by: Simon Glass <sjg@chromium.org>
> [snip]
> > > diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> > > index de1ebbf3751..c1d42f17ca6 100644
> > > --- a/include/configs/helios4.h
> > > +++ b/include/configs/helios4.h
> > > @@ -40,8 +40,6 @@
> > >   #define CONFIG_SCSI_AHCI_PLAT
> > >   #define CONFIG_SYS_SCSI_MAX_SCSI_ID       1
> >
> > This should be Kconfig too. 1 seems to be a reasonable default value as it
> > covers most boards. The minimum should be enforced as 1 in Kconfig.
> >
> > >   #define CONFIG_SYS_SCSI_MAX_LUN           1
> >
> > Make this Kconfig, please. Let it default to 1 and enforce a minimum of 1
> > and a maximum of 256 in Kconfig.
>
> As the series title notes this is "some" options, so yes, a good
> follow-up would be to cover more of them.  I believe the end goal here
> is that we can drop dead code and more easily check/complain about
> unmigrated boards.

Yes.

Also I don't think any of these options should survive, since with
driver model we should a more dynamic approach, configured with device
tree as needed. See ahci_probe_scsi() where it sets the max_lun to a
fixed value at present, and max_id which is calculated after probing.

We just need someone to take on completion of the AHCI/SCSI/SATA
migration. The code could really use a look.

Regards,
Simon

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver
  2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
@ 2022-02-01  6:08   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:08 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Michael Walle, Pali Rohár

On 1/31/22 15:49, Simon Glass wrote:
> This is not used in U-Boot and has not been converted to driver model.
> Drop it.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   drivers/ata/Kconfig        |   6 -
>   drivers/ata/Makefile       |   1 -
>   drivers/ata/sata_sil3114.c | 838 -------------------------------------
>   drivers/ata/sata_sil3114.h | 133 ------
>   4 files changed, 978 deletions(-)
>   delete mode 100644 drivers/ata/sata_sil3114.c
>   delete mode 100644 drivers/ata/sata_sil3114.h
> 
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index 5639536811c..f9978a35796 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -109,12 +109,6 @@ config SATA_SIL
>   	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
>   	  SATA controllers.
>   
> -config SATA_SIL3114
> -	bool "Enable Silicon Image SIL3114 SATA driver support"
> -	select LIBATA
> -	help
> -	  Enable this driver to support the SIL3114 SATA controllers.
> -
>   config SUNXI_AHCI
>   	bool "Enable Allwinner SATA driver support"
>   	depends on AHCI
> diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
> index cd88131dcd1..6e30180b8b4 100644
> --- a/drivers/ata/Makefile
> +++ b/drivers/ata/Makefile
> @@ -13,7 +13,6 @@ obj-$(CONFIG_LIBATA) += libata.o
>   obj-$(CONFIG_SATA) += sata.o
>   obj-$(CONFIG_SATA_CEVA) += sata_ceva.o
>   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/drivers/ata/sata_sil3114.c b/drivers/ata/sata_sil3114.c
> deleted file mode 100644
> index 4d3a680f17f..00000000000
> --- a/drivers/ata/sata_sil3114.c
> +++ /dev/null
> @@ -1,838 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Copyright (C) Excito Elektronik i Skåne AB, All rights reserved.
> - * Author: Tor Krill <tor@excito.com>
> - *
> - * This is a driver for Silicon Image sil3114 sata chip modelled on
> - * the ata_piix driver
> - */
> -
> -#include <common.h>
> -#include <blk.h>
> -#include <log.h>
> -#include <part.h>
> -#include <pci.h>
> -#include <command.h>
> -#include <config.h>
> -#include <asm/byteorder.h>
> -#include <asm/io.h>
> -#include <ide.h>
> -#include <sata.h>
> -#include <libata.h>
> -#include <linux/delay.h>
> -#include "sata_sil3114.h"
> -
> -/* Convert sectorsize to wordsize */
> -#define ATA_SECTOR_WORDS (ATA_SECT_SIZE/2)
> -
> -/* Forwards */
> -u8 sil3114_spin_up (int num);
> -u8 sil3114_spin_down (int num);
> -static int sata_bus_softreset (int num);
> -static void sata_identify (int num, int dev);
> -static u8 check_power_mode (int num);
> -static void sata_port (struct sata_ioports *ioport);
> -static void set_Feature_cmd (int num, int dev);
> -static u8 sata_busy_wait (struct sata_ioports *ioaddr, int bits,
> -			  unsigned int max, u8 usealtstatus);
> -static u8 sata_chk_status (struct sata_ioports *ioaddr, u8 usealtstatus);
> -static void msleep (int count);
> -
> -static u32 iobase[6] = { 0, 0, 0, 0, 0, 0};	/* PCI BAR registers for device */
> -
> -static struct sata_port port[CONFIG_SYS_SATA_MAX_DEVICE];
> -
> -static void output_data (struct sata_ioports *ioaddr, u16 * sect_buf, int words)
> -{
> -	while (words--) {
> -		__raw_writew (*sect_buf++, (void *)ioaddr->data_addr);
> -	}
> -}
> -
> -static int input_data (struct sata_ioports *ioaddr, u16 * sect_buf, int words)
> -{
> -	while (words--) {
> -		*sect_buf++ = __raw_readw ((void *)ioaddr->data_addr);
> -	}
> -	return 0;
> -}
> -
> -static int sata_bus_softreset (int num)
> -{
> -	u8 status = 0;
> -
> -	port[num].dev_mask = 1;
> -
> -	port[num].ctl_reg = 0x08;	/*Default value of control reg */
> -	writeb (port[num].ctl_reg, port[num].ioaddr.ctl_addr);
> -	udelay(10);
> -	writeb (port[num].ctl_reg | ATA_SRST, port[num].ioaddr.ctl_addr);
> -	udelay(10);
> -	writeb (port[num].ctl_reg, port[num].ioaddr.ctl_addr);
> -
> -	/* spec mandates ">= 2ms" before checking status.
> -	 * We wait 150ms, because that was the magic delay used for
> -	 * ATAPI devices in Hale Landis's ATADRVR, for the period of time
> -	 * between when the ATA command register is written, and then
> -	 * status is checked.  Because waiting for "a while" before
> -	 * checking status is fine, post SRST, we perform this magic
> -	 * delay here as well.
> -	 */
> -	msleep (150);
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 300, 0);
> -	while ((status & ATA_BUSY)) {
> -		msleep (100);
> -		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 3, 0);
> -	}
> -
> -	if (status & ATA_BUSY) {
> -		printf ("ata%u is slow to respond,plz be patient\n", num);
> -	}
> -
> -	while ((status & ATA_BUSY)) {
> -		msleep (100);
> -		status = sata_chk_status (&port[num].ioaddr, 0);
> -	}
> -
> -	if (status & ATA_BUSY) {
> -		printf ("ata%u failed to respond : ", num);
> -		printf ("bus reset failed\n");
> -		port[num].dev_mask = 0;
> -		return 1;
> -	}
> -	return 0;
> -}
> -
> -static void sata_identify (int num, int dev)
> -{
> -	u8 cmd = 0, status = 0, devno = num;
> -	u16 iobuf[ATA_SECTOR_WORDS];
> -	u64 n_sectors = 0;
> -
> -	memset (iobuf, 0, sizeof (iobuf));
> -
> -	if (!(port[num].dev_mask & 0x01)) {
> -		printf ("dev%d is not present on port#%d\n", dev, num);
> -		return;
> -	}
> -
> -	debug ("port=%d dev=%d\n", num, dev);
> -
> -	status = 0;
> -	cmd = ATA_CMD_ID_ATA;	/*Device Identify Command */
> -	writeb (cmd, port[num].ioaddr.command_addr);
> -	readb (port[num].ioaddr.altstatus_addr);
> -	udelay(10);
> -
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 1000, 0);
> -	if (status & ATA_ERR) {
> -		printf ("\ndevice not responding\n");
> -		port[num].dev_mask &= ~0x01;
> -		return;
> -	}
> -
> -	input_data (&port[num].ioaddr, iobuf, ATA_SECTOR_WORDS);
> -
> -	ata_swap_buf_le16 (iobuf, ATA_SECTOR_WORDS);
> -
> -	debug ("Specific config: %x\n", iobuf[2]);
> -
> -	/* we require LBA and DMA support (bits 8 & 9 of word 49) */
> -	if (!ata_id_has_dma (iobuf) || !ata_id_has_lba (iobuf)) {
> -		debug ("ata%u: no dma/lba\n", num);
> -	}
> -#ifdef DEBUG
> -	ata_dump_id (iobuf);
> -#endif
> -	n_sectors = ata_id_n_sectors (iobuf);
> -
> -	if (n_sectors == 0) {
> -		port[num].dev_mask &= ~0x01;
> -		return;
> -	}
> -	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].revision,
> -			 ATA_ID_FW_REV, sizeof (sata_dev_desc[devno].revision));
> -	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].vendor,
> -			 ATA_ID_PROD, sizeof (sata_dev_desc[devno].vendor));
> -	ata_id_c_string (iobuf, (unsigned char *)sata_dev_desc[devno].product,
> -			 ATA_ID_SERNO, sizeof (sata_dev_desc[devno].product));
> -
> -	/* TODO - atm we asume harddisk ie not removable */
> -	sata_dev_desc[devno].removable = 0;
> -
> -	sata_dev_desc[devno].lba = (u32) n_sectors;
> -	debug("lba=0x%lx\n", sata_dev_desc[devno].lba);
> -
> -#ifdef CONFIG_LBA48
> -	if (iobuf[83] & (1 << 10)) {
> -		sata_dev_desc[devno].lba48 = 1;
> -	} else {
> -		sata_dev_desc[devno].lba48 = 0;
> -	}
> -#endif
> -
> -	/* assuming HD */
> -	sata_dev_desc[devno].type = DEV_TYPE_HARDDISK;
> -	sata_dev_desc[devno].blksz = ATA_SECT_SIZE;
> -	sata_dev_desc[devno].lun = 0;	/* just to fill something in... */
> -}
> -
> -static void set_Feature_cmd (int num, int dev)
> -{
> -	u8 status = 0;
> -
> -	if (!(port[num].dev_mask & 0x01)) {
> -		debug ("dev%d is not present on port#%d\n", dev, num);
> -		return;
> -	}
> -
> -	writeb (SETFEATURES_XFER, port[num].ioaddr.feature_addr);
> -	writeb (XFER_PIO_4, port[num].ioaddr.nsect_addr);
> -	writeb (0, port[num].ioaddr.lbal_addr);
> -	writeb (0, port[num].ioaddr.lbam_addr);
> -	writeb (0, port[num].ioaddr.lbah_addr);
> -
> -	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
> -	writeb (ATA_CMD_SET_FEATURES, port[num].ioaddr.command_addr);
> -
> -	udelay(50);
> -	msleep (150);
> -
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 5000, 0);
> -	if ((status & (ATA_BUSY | ATA_ERR))) {
> -		printf ("Error  : status 0x%02x\n", status);
> -		port[num].dev_mask &= ~0x01;
> -	}
> -}
> -
> -u8 sil3114_spin_down (int num)
> -{
> -	u8 status = 0;
> -
> -	debug ("Spin down disk\n");
> -
> -	if (!(port[num].dev_mask & 0x01)) {
> -		debug ("Device ata%d is not present\n", num);
> -		return 1;
> -	}
> -
> -	if ((status = check_power_mode (num)) == 0x00) {
> -		debug ("Already in standby\n");
> -		return 0;
> -	}
> -
> -	if (status == 0x01) {
> -		printf ("Failed to check power mode on ata%d\n", num);
> -		return 1;
> -	}
> -
> -	if (!((status = sata_chk_status (&port[num].ioaddr, 0)) & ATA_DRDY)) {
> -		printf ("Device ata%d not ready\n", num);
> -		return 1;
> -	}
> -
> -	writeb (0x00, port[num].ioaddr.feature_addr);
> -
> -	writeb (0x00, port[num].ioaddr.nsect_addr);
> -	writeb (0x00, port[num].ioaddr.lbal_addr);
> -	writeb (0x00, port[num].ioaddr.lbam_addr);
> -	writeb (0x00, port[num].ioaddr.lbah_addr);
> -
> -	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
> -	writeb (ATA_CMD_STANDBY, port[num].ioaddr.command_addr);
> -
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 30000, 0);
> -	if ((status & (ATA_BUSY | ATA_ERR))) {
> -		printf ("Error waiting for disk spin down: status 0x%02x\n",
> -			status);
> -		port[num].dev_mask &= ~0x01;
> -		return 1;
> -	}
> -	return 0;
> -}
> -
> -u8 sil3114_spin_up (int num)
> -{
> -	u8 status = 0;
> -
> -	debug ("Spin up disk\n");
> -
> -	if (!(port[num].dev_mask & 0x01)) {
> -		debug ("Device ata%d is not present\n", num);
> -		return 1;
> -	}
> -
> -	if ((status = check_power_mode (num)) != 0x00) {
> -		if (status == 0x01) {
> -			printf ("Failed to check power mode on ata%d\n", num);
> -			return 1;
> -		} else {
> -			/* should be up and running already */
> -			return 0;
> -		}
> -	}
> -
> -	if (!((status = sata_chk_status (&port[num].ioaddr, 0)) & ATA_DRDY)) {
> -		printf ("Device ata%d not ready\n", num);
> -		return 1;
> -	}
> -
> -	debug ("Stautus of device check: %d\n", status);
> -
> -	writeb (0x00, port[num].ioaddr.feature_addr);
> -
> -	writeb (0x00, port[num].ioaddr.nsect_addr);
> -	writeb (0x00, port[num].ioaddr.lbal_addr);
> -	writeb (0x00, port[num].ioaddr.lbam_addr);
> -	writeb (0x00, port[num].ioaddr.lbah_addr);
> -
> -	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
> -	writeb (ATA_CMD_IDLE, port[num].ioaddr.command_addr);
> -
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 30000, 0);
> -	if ((status & (ATA_BUSY | ATA_ERR))) {
> -		printf ("Error waiting for disk spin up: status 0x%02x\n",
> -			status);
> -		port[num].dev_mask &= ~0x01;
> -		return 1;
> -	}
> -
> -	/* Wait for disk to enter Active state */
> -	do {
> -		msleep (10);
> -		status = check_power_mode (num);
> -	} while ((status == 0x00) || (status == 0x80));
> -
> -	if (status == 0x01) {
> -		printf ("Falied waiting for disk to spin up\n");
> -		return 1;
> -	}
> -
> -	return 0;
> -}
> -
> -/* Return value is not the usual here
> - * 0x00 - Device stand by
> - * 0x01 - Operation failed
> - * 0x80 - Device idle
> - * 0xff - Device active
> -*/
> -static u8 check_power_mode (int num)
> -{
> -	u8 status = 0;
> -	u8 res = 0;
> -	if (!(port[num].dev_mask & 0x01)) {
> -		debug ("Device ata%d is not present\n", num);
> -		return 1;
> -	}
> -
> -	if (!(sata_chk_status (&port[num].ioaddr, 0) & ATA_DRDY)) {
> -		printf ("Device ata%d not ready\n", num);
> -		return 1;
> -	}
> -
> -	writeb (0, port[num].ioaddr.feature_addr);
> -	writeb (0, port[num].ioaddr.nsect_addr);
> -	writeb (0, port[num].ioaddr.lbal_addr);
> -	writeb (0, port[num].ioaddr.lbam_addr);
> -	writeb (0, port[num].ioaddr.lbah_addr);
> -
> -	writeb (ATA_DEVICE_OBS, port[num].ioaddr.device_addr);
> -	writeb (ATA_CMD_CHK_POWER, port[num].ioaddr.command_addr);
> -
> -	status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 5000, 0);
> -	if ((status & (ATA_BUSY | ATA_ERR))) {
> -		printf
> -		    ("Error waiting for check power mode complete  : status 0x%02x\n",
> -		     status);
> -		port[num].dev_mask &= ~0x01;
> -		return 1;
> -	}
> -	res = readb (port[num].ioaddr.nsect_addr);
> -	debug ("Check powermode: %d\n", res);
> -	return res;
> -
> -}
> -
> -static void sata_port (struct sata_ioports *ioport)
> -{
> -	ioport->data_addr = ioport->cmd_addr + ATA_REG_DATA;
> -	ioport->error_addr = ioport->cmd_addr + ATA_REG_ERR;
> -	ioport->feature_addr = ioport->cmd_addr + ATA_REG_FEATURE;
> -	ioport->nsect_addr = ioport->cmd_addr + ATA_REG_NSECT;
> -	ioport->lbal_addr = ioport->cmd_addr + ATA_REG_LBAL;
> -	ioport->lbam_addr = ioport->cmd_addr + ATA_REG_LBAM;
> -	ioport->lbah_addr = ioport->cmd_addr + ATA_REG_LBAH;
> -	ioport->device_addr = ioport->cmd_addr + ATA_REG_DEVICE;
> -	ioport->status_addr = ioport->cmd_addr + ATA_REG_STATUS;
> -	ioport->command_addr = ioport->cmd_addr + ATA_REG_CMD;
> -}
> -
> -static u8 wait_for_irq (int num, unsigned int max)
> -{
> -
> -	u32 port = iobase[5];
> -	switch (num) {
> -	case 0:
> -		port += VND_TF_CNST_CH0;
> -		break;
> -	case 1:
> -		port += VND_TF_CNST_CH1;
> -		break;
> -	case 2:
> -		port += VND_TF_CNST_CH2;
> -		break;
> -	case 3:
> -		port += VND_TF_CNST_CH3;
> -		break;
> -	default:
> -		return 1;
> -	}
> -
> -	do {
> -		if (readl (port) & VND_TF_CNST_INTST) {
> -			break;
> -		}
> -		udelay(1000);
> -		max--;
> -	} while ((max > 0));
> -
> -	return (max == 0);
> -}
> -
> -static u8 sata_busy_wait (struct sata_ioports *ioaddr, int bits,
> -			  unsigned int max, u8 usealtstatus)
> -{
> -	u8 status;
> -
> -	do {
> -		if (!((status = sata_chk_status (ioaddr, usealtstatus)) & bits)) {
> -			break;
> -		}
> -		udelay(1000);
> -		max--;
> -	} while ((status & bits) && (max > 0));
> -
> -	return status;
> -}
> -
> -static u8 sata_chk_status (struct sata_ioports *ioaddr, u8 usealtstatus)
> -{
> -	if (!usealtstatus) {
> -		return readb (ioaddr->status_addr);
> -	} else {
> -		return readb (ioaddr->altstatus_addr);
> -	}
> -}
> -
> -static void msleep (int count)
> -{
> -	int i;
> -
> -	for (i = 0; i < count; i++)
> -		udelay(1000);
> -}
> -
> -/* Read up to 255 sectors
> - *
> - * Returns sectors read
> -*/
> -static u8 do_one_read (int device, ulong block, u8 blkcnt, u16 * buff,
> -		       uchar lba48)
> -{
> -
> -	u8 sr = 0;
> -	u8 status;
> -	u64 blknr = (u64) block;
> -
> -	if (!(sata_chk_status (&port[device].ioaddr, 0) & ATA_DRDY)) {
> -		printf ("Device ata%d not ready\n", device);
> -		return 0;
> -	}
> -
> -	/* Set up transfer */
> -#ifdef CONFIG_LBA48
> -	if (lba48) {
> -		/* write high bits */
> -		writeb (0, port[device].ioaddr.nsect_addr);
> -		writeb ((blknr >> 24) & 0xFF, port[device].ioaddr.lbal_addr);
> -		writeb ((blknr >> 32) & 0xFF, port[device].ioaddr.lbam_addr);
> -		writeb ((blknr >> 40) & 0xFF, port[device].ioaddr.lbah_addr);
> -	}
> -#endif
> -	writeb (blkcnt, port[device].ioaddr.nsect_addr);
> -	writeb (((blknr) >> 0) & 0xFF, port[device].ioaddr.lbal_addr);
> -	writeb ((blknr >> 8) & 0xFF, port[device].ioaddr.lbam_addr);
> -	writeb ((blknr >> 16) & 0xFF, port[device].ioaddr.lbah_addr);
> -
> -#ifdef CONFIG_LBA48
> -	if (lba48) {
> -		writeb (ATA_LBA, port[device].ioaddr.device_addr);
> -		writeb (ATA_CMD_PIO_READ_EXT, port[device].ioaddr.command_addr);
> -	} else
> -#endif
> -	{
> -		writeb (ATA_LBA | ((blknr >> 24) & 0xF),
> -			port[device].ioaddr.device_addr);
> -		writeb (ATA_CMD_PIO_READ, port[device].ioaddr.command_addr);
> -	}
> -
> -	status = sata_busy_wait (&port[device].ioaddr, ATA_BUSY, 10000, 1);
> -
> -	if (status & ATA_BUSY) {
> -		u8 err = 0;
> -
> -		printf ("Device %d not responding status %d\n", device, status);
> -		err = readb (port[device].ioaddr.error_addr);
> -		printf ("Error reg = 0x%x\n", err);
> -
> -		return (sr);
> -	}
> -	while (blkcnt--) {
> -
> -		if (wait_for_irq (device, 500)) {
> -			printf ("ata%u irq failed\n", device);
> -			return sr;
> -		}
> -
> -		status = sata_chk_status (&port[device].ioaddr, 0);
> -		if (status & ATA_ERR) {
> -			printf ("ata%u error %d\n", device,
> -				readb (port[device].ioaddr.error_addr));
> -			return sr;
> -		}
> -		/* Read one sector */
> -		input_data (&port[device].ioaddr, buff, ATA_SECTOR_WORDS);
> -		buff += ATA_SECTOR_WORDS;
> -		sr++;
> -
> -	}
> -	return sr;
> -}
> -
> -ulong sata_read (int device, ulong block, lbaint_t blkcnt, void *buff)
> -{
> -	ulong n = 0, sread;
> -	u16 *buffer = (u16 *) buff;
> -	u8 status = 0;
> -	u64 blknr = (u64) block;
> -	unsigned char lba48 = 0;
> -
> -#ifdef CONFIG_LBA48
> -	if (blknr > 0xfffffff) {
> -		if (!sata_dev_desc[device].lba48) {
> -			printf ("Drive doesn't support 48-bit addressing\n");
> -			return 0;
> -		}
> -		/* more than 28 bits used, use 48bit mode */
> -		lba48 = 1;
> -	}
> -#endif
> -
> -	while (blkcnt > 0) {
> -
> -		if (blkcnt > 255) {
> -			sread = 255;
> -		} else {
> -			sread = blkcnt;
> -		}
> -
> -		status = do_one_read (device, blknr, sread, buffer, lba48);
> -		if (status != sread) {
> -			printf ("Read failed\n");
> -			return n;
> -		}
> -
> -		blkcnt -= sread;
> -		blknr += sread;
> -		n += sread;
> -		buffer += sread * ATA_SECTOR_WORDS;
> -	}
> -	return n;
> -}
> -
> -ulong sata_write (int device, ulong block, lbaint_t blkcnt, const void *buff)
> -{
> -	ulong n = 0;
> -	u16 *buffer = (u16 *) buff;
> -	unsigned char status = 0, num = 0;
> -	u64 blknr = (u64) block;
> -#ifdef CONFIG_LBA48
> -	unsigned char lba48 = 0;
> -
> -	if (blknr > 0xfffffff) {
> -		if (!sata_dev_desc[device].lba48) {
> -			printf ("Drive doesn't support 48-bit addressing\n");
> -			return 0;
> -		}
> -		/* more than 28 bits used, use 48bit mode */
> -		lba48 = 1;
> -	}
> -#endif
> -	/*Port Number */
> -	num = device;
> -
> -	while (blkcnt-- > 0) {
> -		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 500, 0);
> -		if (status & ATA_BUSY) {
> -			printf ("ata%u failed to respond\n", port[num].port_no);
> -			return n;
> -		}
> -#ifdef CONFIG_LBA48
> -		if (lba48) {
> -			/* write high bits */
> -			writeb (0, port[num].ioaddr.nsect_addr);
> -			writeb ((blknr >> 24) & 0xFF,
> -				port[num].ioaddr.lbal_addr);
> -			writeb ((blknr >> 32) & 0xFF,
> -				port[num].ioaddr.lbam_addr);
> -			writeb ((blknr >> 40) & 0xFF,
> -				port[num].ioaddr.lbah_addr);
> -		}
> -#endif
> -		writeb (1, port[num].ioaddr.nsect_addr);
> -		writeb ((blknr >> 0) & 0xFF, port[num].ioaddr.lbal_addr);
> -		writeb ((blknr >> 8) & 0xFF, port[num].ioaddr.lbam_addr);
> -		writeb ((blknr >> 16) & 0xFF, port[num].ioaddr.lbah_addr);
> -#ifdef CONFIG_LBA48
> -		if (lba48) {
> -			writeb (ATA_LBA, port[num].ioaddr.device_addr);
> -			writeb (ATA_CMD_PIO_WRITE_EXT, port[num].ioaddr.command_addr);
> -		} else
> -#endif
> -		{
> -			writeb (ATA_LBA | ((blknr >> 24) & 0xF),
> -				port[num].ioaddr.device_addr);
> -			writeb (ATA_CMD_PIO_WRITE, port[num].ioaddr.command_addr);
> -		}
> -
> -		msleep (50);
> -		/*may take up to 4 sec */
> -		status = sata_busy_wait (&port[num].ioaddr, ATA_BUSY, 4000, 0);
> -		if ((status & (ATA_DRQ | ATA_BUSY | ATA_ERR)) != ATA_DRQ) {
> -			printf ("Error no DRQ dev %d blk %ld: sts 0x%02x\n",
> -				device, (ulong) blknr, status);
> -			return (n);
> -		}
> -
> -		output_data (&port[num].ioaddr, buffer, ATA_SECTOR_WORDS);
> -		readb (port[num].ioaddr.altstatus_addr);
> -		udelay(50);
> -
> -		++n;
> -		++blknr;
> -		buffer += ATA_SECTOR_WORDS;
> -	}
> -	return n;
> -}
> -
> -/* Driver implementation */
> -static u8 sil_get_device_cache_line (pci_dev_t pdev)
> -{
> -	u8 cache_line = 0;
> -	pci_read_config_byte (pdev, PCI_CACHE_LINE_SIZE, &cache_line);
> -	return cache_line;
> -}
> -
> -int init_sata (int dev)
> -{
> -	static u8 init_done = 0;
> -	static int res = 1;
> -	pci_dev_t devno;
> -	u8 cls = 0;
> -	u16 cmd = 0;
> -	u32 sconf = 0;
> -
> -	if (init_done) {
> -		return res;
> -	}
> -
> -	init_done = 1;
> -
> -	if ((devno = pci_find_device (SIL_VEND_ID, SIL3114_DEVICE_ID, 0)) == -1) {
> -		res = 1;
> -		return res;
> -	}
> -
> -	/* Read out all BARs, even though we only use MMIO from BAR5 */
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_0, &iobase[0]);
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_1, &iobase[1]);
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_2, &iobase[2]);
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_3, &iobase[3]);
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_4, &iobase[4]);
> -	pci_read_config_dword (devno, PCI_BASE_ADDRESS_5, &iobase[5]);
> -
> -	if ((iobase[0] == 0xFFFFFFFF) || (iobase[1] == 0xFFFFFFFF) ||
> -	    (iobase[2] == 0xFFFFFFFF) || (iobase[3] == 0xFFFFFFFF) ||
> -	    (iobase[4] == 0xFFFFFFFF) || (iobase[5] == 0xFFFFFFFF)) {
> -		printf ("Error no base addr for SATA controller\n");
> -		res = 1;
> -		return res;
> -	}
> -
> -	/* mask off unused bits */
> -	iobase[0] &= 0xfffffffc;
> -	iobase[1] &= 0xfffffff8;
> -	iobase[2] &= 0xfffffffc;
> -	iobase[3] &= 0xfffffff8;
> -	iobase[4] &= 0xfffffff0;
> -	iobase[5] &= 0xfffffc00;
> -
> -	/* from sata_sil in Linux kernel */
> -	cls = sil_get_device_cache_line (devno);
> -	if (cls) {
> -		cls >>= 3;
> -		cls++;		/* cls = (line_size/8)+1 */
> -		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH0);
> -		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH1);
> -		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH2);
> -		writel (cls << 8 | cls, iobase[5] + VND_FIFOCFG_CH3);
> -	} else {
> -		printf ("Cache line not set. Driver may not function\n");
> -	}
> -
> -	/* Enable operation */
> -	pci_read_config_word (devno, PCI_COMMAND, &cmd);
> -	cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY;
> -	pci_write_config_word (devno, PCI_COMMAND, cmd);
> -
> -	/* Disable interrupt usage */
> -	pci_read_config_dword (devno, VND_SYSCONFSTAT, &sconf);
> -	sconf |= (VND_SYSCONFSTAT_CHN_0_INTBLOCK | VND_SYSCONFSTAT_CHN_1_INTBLOCK);
> -	pci_write_config_dword (devno, VND_SYSCONFSTAT, sconf);
> -
> -	res = 0;
> -	return res;
> -}
> -
> -int reset_sata(int dev)
> -{
> -	return 0;
> -}
> -
> -/* Check if device is connected to port */
> -int sata_bus_probe (int portno)
> -{
> -	u32 port = iobase[5];
> -	u32 val;
> -	switch (portno) {
> -	case 0:
> -		port += VND_SSTATUS_CH0;
> -		break;
> -	case 1:
> -		port += VND_SSTATUS_CH1;
> -		break;
> -	case 2:
> -		port += VND_SSTATUS_CH2;
> -		break;
> -	case 3:
> -		port += VND_SSTATUS_CH3;
> -		break;
> -	default:
> -		return 0;
> -	}
> -	val = readl (port);
> -	if ((val & SATA_DET_PRES) == SATA_DET_PRES) {
> -		return 1;
> -	} else {
> -		return 0;
> -	}
> -}
> -
> -int sata_phy_reset (int portno)
> -{
> -	u32 port = iobase[5];
> -	u32 val;
> -	switch (portno) {
> -	case 0:
> -		port += VND_SCONTROL_CH0;
> -		break;
> -	case 1:
> -		port += VND_SCONTROL_CH1;
> -		break;
> -	case 2:
> -		port += VND_SCONTROL_CH2;
> -		break;
> -	case 3:
> -		port += VND_SCONTROL_CH3;
> -		break;
> -	default:
> -		return 0;
> -	}
> -	val = readl (port);
> -	writel (val | SATA_SC_DET_RST, port);
> -	msleep (150);
> -	writel (val & ~SATA_SC_DET_RST, port);
> -	return 0;
> -}
> -
> -int scan_sata (int dev)
> -{
> -	/* A bit brain dead, but the code has a legacy */
> -	switch (dev) {
> -	case 0:
> -		port[0].port_no = 0;
> -		port[0].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH0;
> -		port[0].ioaddr.altstatus_addr = port[0].ioaddr.ctl_addr =
> -		    (iobase[5] + VND_TF2_CH0) | ATA_PCI_CTL_OFS;
> -		port[0].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH0;
> -		break;
> -#if (CONFIG_SYS_SATA_MAX_DEVICE >= 1)
> -	case 1:
> -		port[1].port_no = 0;
> -		port[1].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH1;
> -		port[1].ioaddr.altstatus_addr = port[1].ioaddr.ctl_addr =
> -		    (iobase[5] + VND_TF2_CH1) | ATA_PCI_CTL_OFS;
> -		port[1].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH1;
> -		break;
> -#elif (CONFIG_SYS_SATA_MAX_DEVICE >= 2)
> -	case 2:
> -		port[2].port_no = 0;
> -		port[2].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH2;
> -		port[2].ioaddr.altstatus_addr = port[2].ioaddr.ctl_addr =
> -		    (iobase[5] + VND_TF2_CH2) | ATA_PCI_CTL_OFS;
> -		port[2].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH2;
> -		break;
> -#elif (CONFIG_SYS_SATA_MAX_DEVICE >= 3)
> -	case 3:
> -		port[3].port_no = 0;
> -		port[3].ioaddr.cmd_addr = iobase[5] + VND_TF0_CH3;
> -		port[3].ioaddr.altstatus_addr = port[3].ioaddr.ctl_addr =
> -		    (iobase[5] + VND_TF2_CH3) | ATA_PCI_CTL_OFS;
> -		port[3].ioaddr.bmdma_addr = iobase[5] + VND_BMDMA_CH3;
> -		break;
> -#endif
> -	default:
> -		printf ("Tried to scan unknown port: ata%d\n", dev);
> -		return 1;
> -	}
> -
> -	/* Initialize other registers */
> -	sata_port (&port[dev].ioaddr);
> -
> -	/* Check for attached device */
> -	if (!sata_bus_probe (dev)) {
> -		port[dev].port_state = 0;
> -		debug ("SATA#%d port is not present\n", dev);
> -	} else {
> -		debug ("SATA#%d port is present\n", dev);
> -		if (sata_bus_softreset (dev)) {
> -			/* soft reset failed, try a hard one */
> -			sata_phy_reset (dev);
> -			if (sata_bus_softreset (dev)) {
> -				port[dev].port_state = 0;
> -			} else {
> -				port[dev].port_state = 1;
> -			}
> -		} else {
> -			port[dev].port_state = 1;
> -		}
> -	}
> -	if (port[dev].port_state == 1) {
> -		/* Probe device and set xfer mode */
> -		sata_identify (dev, 0);
> -		set_Feature_cmd (dev, 0);
> -	}
> -
> -	return 0;
> -}
> diff --git a/drivers/ata/sata_sil3114.h b/drivers/ata/sata_sil3114.h
> deleted file mode 100644
> index a336eb5d1a2..00000000000
> --- a/drivers/ata/sata_sil3114.h
> +++ /dev/null
> @@ -1,133 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Copyright (C) Excito Elektronik i Skåne AB, All rights reserved.
> - * Author: Tor Krill <tor@excito.com>
> - */
> -
> -#ifndef SATA_SIL3114_H
> -#define SATA_SIL3114_H
> -
> -struct sata_ioports {
> -	unsigned long cmd_addr;
> -	unsigned long data_addr;
> -	unsigned long error_addr;
> -	unsigned long feature_addr;
> -	unsigned long nsect_addr;
> -	unsigned long lbal_addr;
> -	unsigned long lbam_addr;
> -	unsigned long lbah_addr;
> -	unsigned long device_addr;
> -	unsigned long status_addr;
> -	unsigned long command_addr;
> -	unsigned long altstatus_addr;
> -	unsigned long ctl_addr;
> -	unsigned long bmdma_addr;
> -	unsigned long scr_addr;
> -};
> -
> -struct sata_port {
> -	unsigned char port_no;	/* primary=0, secondary=1       */
> -	struct sata_ioports ioaddr;	/* ATA cmd/ctl/dma reg blks     */
> -	unsigned char ctl_reg;
> -	unsigned char last_ctl;
> -	unsigned char port_state;	/* 1-port is available and      */
> -	/* 0-port is not available      */
> -	unsigned char dev_mask;
> -};
> -
> -/* Missing ata defines */
> -#define ATA_CMD_STANDBY			0xE2
> -#define ATA_CMD_STANDBYNOW1		0xE0
> -#define ATA_CMD_IDLE			0xE3
> -#define ATA_CMD_IDLEIMMEDIATE	0xE1
> -
> -/* Defines for SIL3114 chip */
> -
> -/* PCI defines */
> -#define SIL_VEND_ID		0x1095
> -#define SIL3114_DEVICE_ID	0x3114
> -
> -/* some vendor specific registers */
> -#define	VND_SYSCONFSTAT	0x88	/* System Configuration Status and Command */
> -#define VND_SYSCONFSTAT_CHN_0_INTBLOCK (1<<22)
> -#define VND_SYSCONFSTAT_CHN_1_INTBLOCK (1<<23)
> -#define VND_SYSCONFSTAT_CHN_2_INTBLOCK (1<<24)
> -#define VND_SYSCONFSTAT_CHN_3_INTBLOCK (1<<25)
> -
> -/* internal registers mapped by BAR5 */
> -/* SATA Control*/
> -#define VND_SCONTROL_CH0	0x100
> -#define VND_SCONTROL_CH1	0x180
> -#define VND_SCONTROL_CH2	0x300
> -#define VND_SCONTROL_CH3	0x380
> -
> -#define SATA_SC_IPM_T2P		(1<<16)
> -#define SATA_SC_IPM_T2S		(2<<16)
> -#define SATA_SC_SPD_1_5		(1<<4)
> -#define SATA_SC_SPD_3_0		(2<<4)
> -#define SATA_SC_DET_RST		(1)	/* ATA Reset sequence */
> -#define SATA_SC_DET_PDIS	(4)	/* PHY Disable */
> -
> -/* SATA Status */
> -#define VND_SSTATUS_CH0		0x104
> -#define VND_SSTATUS_CH1		0x184
> -#define VND_SSTATUS_CH2		0x304
> -#define VND_SSTATUS_CH3		0x384
> -
> -#define SATA_SS_IPM_ACTIVE	(1<<8)
> -#define SATA_SS_IPM_PARTIAL	(2<<8)
> -#define SATA_SS_IPM_SLUMBER	(6<<8)
> -#define SATA_SS_SPD_1_5		(1<<4)
> -#define SATA_SS_SPD_3_0		(2<<4)
> -#define SATA_DET_P_NOPHY	(1)	/* Device presence but no PHY connection established */
> -#define SATA_DET_PRES		(3)	/* Device presence and active PHY */
> -#define SATA_DET_OFFLINE	(4)	/* Device offline or in loopback mode */
> -
> -/* Task file registers in BAR5 mapping */
> -#define VND_TF0_CH0			0x80
> -#define VND_TF0_CH1			0xc0
> -#define VND_TF0_CH2			0x280
> -#define VND_TF0_CH3			0x2c0
> -#define VND_TF1_CH0			0x88
> -#define VND_TF1_CH1			0xc8
> -#define VND_TF1_CH2			0x288
> -#define VND_TF1_CH3			0x2c8
> -#define VND_TF2_CH0			0x88
> -#define VND_TF2_CH1			0xc8
> -#define VND_TF2_CH2			0x288
> -#define VND_TF2_CH3			0x2c8
> -
> -#define VND_BMDMA_CH0		0x00
> -#define VND_BMDMA_CH1		0x08
> -#define VND_BMDMA_CH2		0x200
> -#define VND_BMDMA_CH3		0x208
> -#define VND_BMDMA2_CH0		0x10
> -#define VND_BMDMA2_CH1		0x18
> -#define VND_BMDMA2_CH2		0x210
> -#define VND_BMDMA2_CH3		0x218
> -
> -/* FIFO control */
> -#define	VND_FIFOCFG_CH0		0x40
> -#define	VND_FIFOCFG_CH1		0x44
> -#define	VND_FIFOCFG_CH2		0x240
> -#define	VND_FIFOCFG_CH3		0x244
> -
> -/* Task File configuration and status */
> -#define VND_TF_CNST_CH0		0xa0
> -#define VND_TF_CNST_CH1		0xe0
> -#define VND_TF_CNST_CH2		0x2a0
> -#define VND_TF_CNST_CH3		0x2e0
> -
> -#define VND_TF_CNST_BFCMD	(1<<1)
> -#define VND_TF_CNST_CHNRST	(1<<2)
> -#define VND_TF_CNST_VDMA	(1<<10)
> -#define VND_TF_CNST_INTST	(1<<11)
> -#define VND_TF_CNST_WDTO	(1<<12)
> -#define VND_TF_CNST_WDEN	(1<<13)
> -#define VND_TF_CNST_WDIEN	(1<<14)
> -
> -/* for testing */
> -#define VND_SSDR			0x04c	/* System Software Data Register */
> -#define VND_FMACS			0x050	/* Flash Memory Address control and status */
> -
> -#endif

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 2/8] sata: Only support BLK
  2022-01-31 14:49 ` [PATCH 2/8] sata: Only support BLK Simon Glass
@ 2022-02-01  6:08   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:08 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Michael Walle, Pali Rohár

On 1/31/22 15:49, Simon Glass wrote:
> No boards currently use SATA without BLK:
> 
>     ./tools/moveconfig.py -f SATA ~BLK
>     0 matches
> 
> Make SATA depend on BLK to avoid any future confusion. Drop the dead code.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   drivers/ata/Kconfig |  4 +---
>   drivers/ata/sata.c  | 27 ---------------------------
>   2 files changed, 1 insertion(+), 30 deletions(-)
> 
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index f9978a35796..1def9305dd5 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -9,6 +9,7 @@ config AHCI
>   
>   config SATA
>   	bool "Support SATA controllers"
> +	depends on BLK
>   	select HAVE_BLOCK_DEVICE
>   	help
>   	  This enables support for SATA (Serial Advanced Technology
> @@ -86,7 +87,6 @@ config FSL_SATA
>   	bool "Enable Freescale SATA controller driver support"
>   	select AHCI
>   	select LIBATA
> -	depends on BLK
>   	help
>   	  Enable this driver to support the SATA controller found in
>   	  some Freescale PowerPC SoCs.
> @@ -95,7 +95,6 @@ config SATA_MV
>   	bool "Enable Marvell SATA controller driver support"
>   	select AHCI
>   	select LIBATA
> -	depends on BLK
>   	help
>   	  Enable this driver to support the SATA controller found in
>   	  some Marvell SoCs.
> @@ -104,7 +103,6 @@ config SATA_SIL
>   	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
>   	select AHCI
>   	select LIBATA
> -	depends on BLK
>   	help
>   	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
>   	  SATA controllers.
> diff --git a/drivers/ata/sata.c b/drivers/ata/sata.c
> index 6a38d500245..0e6c8cdd422 100644
> --- a/drivers/ata/sata.c
> +++ b/drivers/ata/sata.c
> @@ -59,7 +59,6 @@ struct blk_desc *sata_get_dev(int dev)
>   #endif
>   #endif
>   
> -#ifdef CONFIG_BLK
>   static unsigned long sata_bread(struct udevice *dev, lbaint_t start,
>   				lbaint_t blkcnt, void *dst)
>   {
> @@ -71,19 +70,6 @@ static unsigned long sata_bwrite(struct udevice *dev, lbaint_t start,
>   {
>   	return -ENOSYS;
>   }
> -#else
> -static unsigned long sata_bread(struct blk_desc *block_dev, lbaint_t start,
> -				lbaint_t blkcnt, void *dst)
> -{
> -	return sata_read(block_dev->devnum, start, blkcnt, dst);
> -}
> -
> -static unsigned long sata_bwrite(struct blk_desc *block_dev, lbaint_t start,
> -				 lbaint_t blkcnt, const void *buffer)
> -{
> -	return sata_write(block_dev->devnum, start, blkcnt, buffer);
> -}
> -#endif
>   
>   #ifndef CONFIG_AHCI
>   int __sata_initialize(void)
> @@ -100,10 +86,6 @@ int __sata_initialize(void)
>   		sata_dev_desc[i].lba = 0;
>   		sata_dev_desc[i].blksz = 512;
>   		sata_dev_desc[i].log2blksz = LOG2(sata_dev_desc[i].blksz);
> -#ifndef CONFIG_BLK
> -		sata_dev_desc[i].block_read = sata_bread;
> -		sata_dev_desc[i].block_write = sata_bwrite;
> -#endif
>   		rc = init_sata(i);
>   		if (!rc) {
>   			rc = scan_sata(i);
> @@ -134,7 +116,6 @@ __weak int __sata_stop(void)
>   int sata_stop(void) __attribute__((weak, alias("__sata_stop")));
>   #endif
>   
> -#ifdef CONFIG_BLK
>   static const struct blk_ops sata_blk_ops = {
>   	.read	= sata_bread,
>   	.write	= sata_bwrite,
> @@ -145,11 +126,3 @@ U_BOOT_DRIVER(sata_blk) = {
>   	.id		= UCLASS_BLK,
>   	.ops		= &sata_blk_ops,
>   };
> -#else
> -U_BOOT_LEGACY_BLK(sata) = {
> -	.if_typename	= "sata",
> -	.if_type	= IF_TYPE_SATA,
> -	.max_devs	= CONFIG_SYS_SATA_MAX_DEVICE,
> -	.desc		= sata_dev_desc,
> -};
> -#endif

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 3/8] sata: Rearrange Kconfig for SATA
  2022-01-31 14:49 ` [PATCH 3/8] sata: Rearrange Kconfig for SATA Simon Glass
@ 2022-02-01  6:09   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:09 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Michael Walle, Pali Rohár

On 1/31/22 15:49, Simon Glass wrote:
> Move the SATA options inside an 'if SATA' part, so they are grouped.
> 
> Fix the 'Complient' typo while we are here.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   drivers/ata/Kconfig | 71 +++++++++++++++++++++++----------------------
>   1 file changed, 37 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index 1def9305dd5..6e8363c04d9 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -48,16 +48,6 @@ config SPL_AHCI_PCI
>   	depends on SPL_PCI
>   	depends on SPL_SATA_SUPPORT && DM_SCSI
>   
> -config SATA_CEVA
> -	bool "Ceva Sata controller"
> -	depends on AHCI
> -	depends on DM_SCSI
> -	help
> -	  This option enables Ceva Sata controller hard IP available on Xilinx
> -	  ZynqMP. Support up to 2 external devices. Complient with SATA 3.1 and
> -	  AHCI 1.3 specifications with hot-plug detect feature.
> -
> -
>   config DWC_AHCI
>   	bool "Enable Synopsys DWC AHCI driver support"
>   	select SCSI_AHCI
> @@ -83,30 +73,6 @@ config DWC_AHSATA_AHCI
>   	help
>   	  Enable this option unless you need your private ahci implementation
>   
> -config FSL_SATA
> -	bool "Enable Freescale SATA controller driver support"
> -	select AHCI
> -	select LIBATA
> -	help
> -	  Enable this driver to support the SATA controller found in
> -	  some Freescale PowerPC SoCs.
> -
> -config SATA_MV
> -	bool "Enable Marvell SATA controller driver support"
> -	select AHCI
> -	select LIBATA
> -	help
> -	  Enable this driver to support the SATA controller found in
> -	  some Marvell SoCs.
> -
> -config SATA_SIL
> -	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
> -	select AHCI
> -	select LIBATA
> -	help
> -	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
> -	  SATA controllers.
> -
>   config SUNXI_AHCI
>   	bool "Enable Allwinner SATA driver support"
>   	depends on AHCI
> @@ -134,4 +100,41 @@ config MTK_AHCI
>   	  Enable this driver to support Sata devices through
>   	  Mediatek AHCI controller (e.g. MT7622).
>   
> +if SATA
> +
> +config SATA_CEVA
> +	bool "Ceva Sata controller"
> +	depends on AHCI
> +	depends on DM_SCSI
> +	help
> +	  This option enables Ceva Sata controller hard IP available on Xilinx
> +	  ZynqMP. Support up to 2 external devices. Compliant with SATA 3.1 and
> +	  AHCI 1.3 specifications with hot-plug detect feature.
> +
> +config FSL_SATA
> +	bool "Enable Freescale SATA controller driver support"
> +	select AHCI
> +	select LIBATA
> +	help
> +	  Enable this driver to support the SATA controller found in
> +	  some Freescale PowerPC SoCs.
> +
> +config SATA_MV
> +	bool "Enable Marvell SATA controller driver support"
> +	select AHCI
> +	select LIBATA
> +	help
> +	  Enable this driver to support the SATA controller found in
> +	  some Marvell SoCs.
> +
> +config SATA_SIL
> +	bool "Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support"
> +	select AHCI
> +	select LIBATA
> +	help
> +	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
> +	  SATA controllers.
> +
> +endif # SATA
> +
>   endmenu

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 4/8] sata: sata_sil: Only support BLK
  2022-01-31 14:49 ` [PATCH 4/8] sata: sata_sil: Only support BLK Simon Glass
@ 2022-02-01  6:13   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:13 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Michael Walle

On 1/31/22 15:49, Simon Glass wrote:
> No boards use this driver without CONFIG_BLK, so clean up the dead code.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   drivers/ata/sata_sil.c | 118 ++---------------------------------------
>   1 file changed, 3 insertions(+), 115 deletions(-)
> 
> diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
> index dda712f42cb..a4f0dae4bbd 100644
> --- a/drivers/ata/sata_sil.c
> +++ b/drivers/ata/sata_sil.c
> @@ -6,7 +6,9 @@
>    */
>   
>   #include <common.h>
> +#include <blk.h>
>   #include <cpu_func.h>
> +#include <dm.h>
>   #include <log.h>
>   #include <pci.h>
>   #include <command.h>
> @@ -17,13 +19,8 @@
>   #include <sata.h>
>   #include <libata.h>
>   #include <sata.h>
> -#include <linux/delay.h>
> -
> -#if CONFIG_IS_ENABLED(BLK)
> -#include <dm.h>
> -#include <blk.h>
>   #include <dm/device-internal.h>
> -#endif
> +#include <linux/delay.h>
>   
>   #include "sata_sil.h"
>   
> @@ -480,18 +477,12 @@ static void sil_sata_cmd_flush_cache_ext(struct sil_sata *sata)
>   /*
>    * SATA interface between low level driver and command layer
>    */
> -#if !CONFIG_IS_ENABLED(BLK)
> -ulong sata_read(int dev, ulong blknr, lbaint_t blkcnt, void *buffer)
> -{
> -	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
> -#else
>   static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>   		       void *buffer)
>   {
>   	struct sil_sata_priv *priv = dev_get_plat(dev);
>   	int port_number = priv->port_num;
>   	struct sil_sata *sata = priv->sil_sata_desc[port_number];
> -#endif
>   	ulong rc;
>   
>   	if (sata->lba48)
> @@ -505,18 +496,12 @@ static ulong sata_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>   /*
>    * SATA interface between low level driver and command layer
>    */
> -#if !CONFIG_IS_ENABLED(BLK)
> -ulong sata_write(int dev, ulong blknr, lbaint_t blkcnt, const void *buffer)
> -{
> -	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
> -#else
>   ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>   		 const void *buffer)
>   {
>   	struct sil_sata_priv *priv = dev_get_plat(dev);
>   	int port_number = priv->port_num;
>   	struct sil_sata *sata = priv->sil_sata_desc[port_number];
> -#endif
>   	ulong rc;
>   
>   	if (sata->lba48) {
> @@ -532,14 +517,9 @@ ulong sata_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>   	return rc;
>   }
>   
> -#if !CONFIG_IS_ENABLED(BLK)
> -static int sil_init_sata(int dev)
> -{
> -#else
>   static int sil_init_sata(struct udevice *uc_dev, int dev)
>   {
>   	struct sil_sata_priv *priv = dev_get_plat(uc_dev);
> -#endif
>   	struct sil_sata *sata;
>   	void *port;
>   	u32 tmp;
> @@ -606,14 +586,9 @@ static int sil_init_sata(struct udevice *uc_dev, int dev)
>   	memset((void *)sata, 0, sizeof(struct sil_sata));
>   
>   	/* Save the private struct to block device struct */
> -#if !CONFIG_IS_ENABLED(BLK)
> -	sata_dev_desc[dev].priv = (void *)sata;
> -	sata->devno = sata_info.devno;
> -#else
>   	priv->sil_sata_desc[dev] = sata;
>   	priv->port_num = dev;
>   	sata->devno = uc_dev->parent;
> -#endif
>   	sata->id = dev;
>   	sata->port = port;
>   	sprintf(sata->name, "SATA#%d", dev);
> @@ -625,85 +600,11 @@ static int sil_init_sata(struct udevice *uc_dev, int dev)
>   	return 0;
>   }
>   
> -#if !CONFIG_IS_ENABLED(BLK)
> -/*
> - * SATA interface between low level driver and command layer
> - */
> -int init_sata(int dev)
> -{
> -	static int init_done, idx;
> -	pci_dev_t devno;
> -	u16 word;
> -
> -	if (init_done == 1 && dev < sata_info.maxport)
> -		goto init_start;
> -
> -	init_done = 1;
> -
> -	/* Find PCI device(s) */
> -	devno = pci_find_devices(supported, idx++);
> -	if (devno == -1)
> -		return 1;
> -
> -	pci_read_config_word(devno, PCI_DEVICE_ID, &word);
> -
> -	/* get the port count */
> -	word &= 0xf;
> -
> -	sata_info.portbase = 0;
> -	sata_info.maxport = sata_info.portbase + word;
> -	sata_info.devno = devno;
> -
> -	/* Read out all BARs */
> -	sata_info.iobase[0] = (ulong)pci_map_bar(devno,
> -			PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
> -	sata_info.iobase[1] = (ulong)pci_map_bar(devno,
> -			PCI_BASE_ADDRESS_2, PCI_REGION_MEM);
> -
> -	/* mask out the unused bits */
> -	sata_info.iobase[0] &= 0xffffff80;
> -	sata_info.iobase[1] &= 0xfffffc00;
> -
> -	/* Enable Bus Mastering and memory region */
> -	pci_write_config_word(devno, PCI_COMMAND,
> -			      PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
> -
> -	/* Check if mem accesses and Bus Mastering are enabled. */
> -	pci_read_config_word(devno, PCI_COMMAND, &word);
> -	if (!(word & PCI_COMMAND_MEMORY) ||
> -	    (!(word & PCI_COMMAND_MASTER))) {
> -		printf("Error: Can not enable MEM access or Bus Mastering.\n");
> -		debug("PCI command: %04x\n", word);
> -		return 1;
> -	}
> -
> -	/* GPIO off */
> -	writel(0, (void *)(sata_info.iobase[0] + HOST_FLASH_CMD));
> -	/* clear global reset & mask interrupts during initialization */
> -	writel(0, (void *)(sata_info.iobase[0] + HOST_CTRL));
> -
> -init_start:
> -	return sil_init_sata(dev);
> -}
> -
> -int reset_sata(int dev)
> -{
> -	return 0;
> -}
> -
> -/*
> - * SATA interface between low level driver and command layer
> - */
> -int scan_sata(int dev)
> -{
> -	struct sil_sata *sata = (struct sil_sata *)sata_dev_desc[dev].priv;
> -#else
>   static int scan_sata(struct udevice *blk_dev, int dev)
>   {
>   	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
>   	struct sil_sata_priv *priv = dev_get_plat(blk_dev);
>   	struct sil_sata *sata = priv->sil_sata_desc[dev];
> -#endif
>   	unsigned char serial[ATA_ID_SERNO_LEN + 1];
>   	unsigned char firmware[ATA_ID_FW_REV_LEN + 1];
>   	unsigned char product[ATA_ID_PROD_LEN + 1];
> @@ -727,16 +628,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
>   	/* Product model */
>   	ata_id_c_string(id, product, ATA_ID_PROD, sizeof(product));
>   
> -#if !CONFIG_IS_ENABLED(BLK)
> -	memcpy(sata_dev_desc[dev].product, serial, sizeof(serial));
> -	memcpy(sata_dev_desc[dev].revision, firmware, sizeof(firmware));
> -	memcpy(sata_dev_desc[dev].vendor, product, sizeof(product));
> -	/* Totoal sectors */
> -	sata_dev_desc[dev].lba = ata_id_n_sectors(id);
> -#ifdef CONFIG_LBA48
> -	sata_dev_desc[dev].lba48 = sata->lba48;
> -#endif
> -#else
>   	memcpy(desc->product, serial, sizeof(serial));
>   	memcpy(desc->revision, firmware, sizeof(firmware));
>   	memcpy(desc->vendor, product, sizeof(product));
> @@ -744,7 +635,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
>   #ifdef CONFIG_LBA48
>   	desc->lba48 = sata->lba48;
>   #endif
> -#endif
>   
>   #ifdef DEBUG
>   	ata_dump_id(id);
> @@ -754,7 +644,6 @@ static int scan_sata(struct udevice *blk_dev, int dev)
>   	return 0;
>   }
>   
> -#if CONFIG_IS_ENABLED(BLK)
>   static const struct blk_ops sata_sil_blk_ops = {
>   	.read	= sata_read,
>   	.write	= sata_write,
> @@ -916,4 +805,3 @@ U_BOOT_DRIVER(sil_ahci_pci) = {
>   };
>   
>   U_BOOT_PCI_DEVICE(sil_ahci_pci, supported);
> -#endif

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 5/8] ahci: Make ahci drivers depend on AHCI
  2022-01-31 14:49 ` [PATCH 5/8] ahci: Make ahci drivers depend on AHCI Simon Glass
@ 2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:14 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List
  Cc: Tom Rini, Michael Walle, Pali Rohár, Rob Herring

On 1/31/22 15:49, Simon Glass wrote:
> At present all ahci drivers depend on AHCI except for DWC_AHCI. But no
> boards enable that without also enabling AHCI:
> 
>     /tools/moveconfig.py -f ~AHCI DWC_AHCI
>     0 matches
> 
> Group them together and sort them in order by Kconfig name (except for
> AHCI_MVEBU which uses a different naming convention).
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   drivers/ata/Kconfig | 26 +++++++++++++-------------
>   1 file changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index 6e8363c04d9..1adf4dc8e2d 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -42,6 +42,8 @@ config AHCI_PCI
>   	help
>   	  Enables support for the PCI-based AHCI controller.
>   
> +if AHCI
> +
>   config SPL_AHCI_PCI
>   	bool "Support for PCI-based AHCI controller for SPL"
>   	depends on SPL
> @@ -68,23 +70,19 @@ config DWC_AHSATA
>   config DWC_AHSATA_AHCI
>   	bool "Enable DWC AHSATA AHCI driver support"
>   	depends on DWC_AHSATA
> -	depends on AHCI
>   	default y
>   	help
>   	  Enable this option unless you need your private ahci implementation
>   
> -config SUNXI_AHCI
> -	bool "Enable Allwinner SATA driver support"
> -	depends on AHCI
> -	default y if ARCH_SUNXI
> +config MTK_AHCI
> +	bool "Enable Mediatek AHCI driver support"
>   	help
> -	  Enable this driver to support the SATA controllers found in the
> -	  Allwinner A10, A20 and R40 SoCs.
> +	  Enable this driver to support Sata devices through
> +	  Mediatek AHCI controller (e.g. MT7622).
>   
>   config AHCI_MVEBU
>   	bool "Marvell EBU AHCI SATA support"
>   	depends on ARCH_MVEBU || ARCH_OCTEON
> -	depends on AHCI
>   	select SCSI_AHCI
>   	select DM_SCSI
>   	help
> @@ -93,12 +91,14 @@ config AHCI_MVEBU
>   
>   	  If unsure, say N.
>   
> -config MTK_AHCI
> -	bool "Enable Mediatek AHCI driver support"
> -	depends on AHCI
> +config SUNXI_AHCI
> +	bool "Enable Allwinner SATA driver support"
> +	default y if ARCH_SUNXI
>   	help
> -	  Enable this driver to support Sata devices through
> -	  Mediatek AHCI controller (e.g. MT7622).
> +	  Enable this driver to support the SATA controllers found in the
> +	  Allwinner A10, A20 and R40 SoCs.
> +
> +endif # AHCI
>   
>   if SATA
>   

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
  2022-01-31 15:58   ` Heinrich Schuchardt
@ 2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  2 siblings, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:14 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List
  Cc: Tom Rini, Michael Walle, Alison Wang, Andre Przywara, Biwen Li,
	Dennis Gilmore, Heiko Schocher, Heinrich Schuchardt,
	Igor Opaniuk, Marek Behún, Mario Six, Meenakshi Aggarwal,
	Mian Yousaf Kaukab, Mingkai Hu, Patrick Delaunay, Pramod Kumar,
	Priyanka Jain, Rajesh Bhagat, Rasmus Villemoes, Rick Chen,
	Rob Herring, Tang Yuantian, Wasim Khan, Yangbo Lu, liuhao,
	shuyiqi

On 1/31/22 15:49, Simon Glass wrote:
> This is defined based on two other CONFIGs for all boards except sandbox
> and durian.
> 
> For sandbox the value does not matter. For durian the value seems
> excessive.
> 
> Drop the option completely, to simplify configuration and reduce the
> number of things we need to convert to Kconfig.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   README                                     | 8 +++-----
>   api/api_storage.c                          | 3 ++-
>   arch/arm/include/asm/arch-ls102xa/config.h | 2 --
>   drivers/scsi/scsi.c                        | 6 +++---
>   include/configs/am57xx_evm.h               | 2 --
>   include/configs/clearfog.h                 | 2 --
>   include/configs/controlcenterdc.h          | 2 --
>   include/configs/db-88f6820-gp.h            | 2 --
>   include/configs/durian.h                   | 1 -
>   include/configs/helios4.h                  | 2 --
>   include/configs/highbank.h                 | 2 --
>   include/configs/ls1012a2g5rdb.h            | 2 --
>   include/configs/ls1012a_common.h           | 2 --
>   include/configs/ls1021aiot.h               | 2 --
>   include/configs/ls1028aqds.h               | 2 --
>   include/configs/ls1028ardb.h               | 2 --
>   include/configs/ls1043aqds.h               | 2 --
>   include/configs/ls1043ardb.h               | 2 --
>   include/configs/ls1046a_common.h           | 2 --
>   include/configs/ls1088a_common.h           | 2 --
>   include/configs/ls2080aqds.h               | 2 --
>   include/configs/ls2080ardb.h               | 2 --
>   include/configs/lx2160a_common.h           | 2 --
>   include/configs/mvebu_armada-37xx.h        | 2 --
>   include/configs/mvebu_armada-8k.h          | 2 --
>   include/configs/omap5_uevm.h               | 2 --
>   include/configs/sandbox.h                  | 1 -
>   include/scsi.h                             | 4 ++++
>   scripts/config_whitelist.txt               | 1 -
>   29 files changed, 12 insertions(+), 56 deletions(-)
> 
> diff --git a/README b/README
> index 9ebd4f2345a..48a3f5ca610 100644
> --- a/README
> +++ b/README
> @@ -744,11 +744,9 @@ The following options need to be configured:
>   			Default is 32bit.
>   
>   - SCSI Support:
> -		CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
> -		CONFIG_SYS_SCSI_MAX_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
> -		CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
> -		maximum numbers of LUNs, SCSI ID's and target
> -		devices.
> +		CONFIG_SYS_SCSI_MAX_LUN [8] and CONFIG_SYS_SCSI_MAX_SCSI_ID [7]
> +		can be adjusted to define the maximum numbers of LUNs and SCSI
> +		IDs.
>   
>   		The environment variable 'scsidevs' is set to the number of
>   		SCSI devices found during the last scan.
> diff --git a/api/api_storage.c b/api/api_storage.c
> index a0dacad1a55..adca44b4fd2 100644
> --- a/api/api_storage.c
> +++ b/api/api_storage.c
> @@ -9,6 +9,7 @@
>   #include <common.h>
>   #include <api_public.h>
>   #include <part.h>
> +#include <scsi.h>
>   
>   #if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
>   #include <usb.h>
> @@ -71,7 +72,7 @@ void dev_stor_init(void)
>   	specs[ENUM_SATA].name = "sata";
>   #endif
>   #if defined(CONFIG_SCSI)
> -	specs[ENUM_SCSI].max_dev = CONFIG_SYS_SCSI_MAX_DEVICE;
> +	specs[ENUM_SCSI].max_dev = SCSI_MAX_DEVICE;
>   	specs[ENUM_SCSI].enum_started = 0;
>   	specs[ENUM_SCSI].enum_ended = 0;
>   	specs[ENUM_SCSI].type = DEV_TYP_STOR | DT_STOR_SCSI;
> diff --git a/arch/arm/include/asm/arch-ls102xa/config.h b/arch/arm/include/asm/arch-ls102xa/config.h
> index 0e1f9e0c0d8..489286ed8d1 100644
> --- a/arch/arm/include/asm/arch-ls102xa/config.h
> +++ b/arch/arm/include/asm/arch-ls102xa/config.h
> @@ -81,8 +81,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #ifdef CONFIG_DDR_SPD
>   #define CONFIG_VERY_BIG_RAM
>   #define CONFIG_SYS_LS1_DDR_BLOCK1_SIZE		((phys_size_t)2 << 30)
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index d93d2419285..d7b33010e46 100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -46,7 +46,7 @@ static int scsi_max_devs; /* number of highest available scsi device */
>   
>   static int scsi_curr_dev; /* current device */
>   
> -static struct blk_desc scsi_dev_desc[CONFIG_SYS_SCSI_MAX_DEVICE];
> +static struct blk_desc scsi_dev_desc[SCSI_MAX_DEVICE];
>   #endif
>   
>   /* almost the maximum amount of the scsi_ext command.. */
> @@ -655,7 +655,7 @@ int scsi_scan(bool verbose)
>   
>   	if (verbose)
>   		printf("scanning bus for devices...\n");
> -	for (i = 0; i < CONFIG_SYS_SCSI_MAX_DEVICE; i++)
> +	for (i = 0; i < SCSI_MAX_DEVICE; i++)
>   		scsi_init_dev_desc(&scsi_dev_desc[i], i);
>   
>   	scsi_max_devs = 0;
> @@ -703,7 +703,7 @@ U_BOOT_DRIVER(scsi_blk) = {
>   U_BOOT_LEGACY_BLK(scsi) = {
>   	.if_typename	= "scsi",
>   	.if_type	= IF_TYPE_SCSI,
> -	.max_devs	= CONFIG_SYS_SCSI_MAX_DEVICE,
> +	.max_devs	= SCSI_MAX_DEVICE,
>   	.desc		= scsi_dev_desc,
>   };
>   #endif
> diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
> index 956844414f8..e4e3872d1ca 100644
> --- a/include/configs/am57xx_evm.h
> +++ b/include/configs/am57xx_evm.h
> @@ -52,8 +52,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * Default to using SPI for environment, etc.
> diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
> index c9af5a40cec..d5eacf1ec71 100644
> --- a/include/configs/clearfog.h
> +++ b/include/configs/clearfog.h
> @@ -40,8 +40,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
> diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
> index ff385d9c6be..2c27a003b3d 100644
> --- a/include/configs/controlcenterdc.h
> +++ b/include/configs/controlcenterdc.h
> @@ -24,8 +24,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index 5f2611995d3..f5ea3657a4a 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -19,8 +19,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/durian.h b/include/configs/durian.h
> index c0ea42e180a..ce9e57c64be 100644
> --- a/include/configs/durian.h
> +++ b/include/configs/durian.h
> @@ -21,7 +21,6 @@
>   /* SCSI */
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
>   #define CONFIG_SYS_SCSI_MAX_LUN 1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE 128
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SATA_MAX_DEVICE 4
>   
> diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> index de1ebbf3751..c1d42f17ca6 100644
> --- a/include/configs/helios4.h
> +++ b/include/configs/helios4.h
> @@ -40,8 +40,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
> diff --git a/include/configs/highbank.h b/include/configs/highbank.h
> index 4ef3a46cfb9..6d559746ab0 100644
> --- a/include/configs/highbank.h
> +++ b/include/configs/highbank.h
> @@ -19,8 +19,6 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define CONFIG_BOOT_RETRY_TIME		-1
>   #define CONFIG_RESET_TO_RETRY
> diff --git a/include/configs/ls1012a2g5rdb.h b/include/configs/ls1012a2g5rdb.h
> index bda4283ef5a..10274317cf8 100644
> --- a/include/configs/ls1012a2g5rdb.h
> +++ b/include/configs/ls1012a2g5rdb.h
> @@ -20,8 +20,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS		\
> diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
> index 5d561009c56..e33bafac61b 100644
> --- a/include/configs/ls1012a_common.h
> +++ b/include/configs/ls1012a_common.h
> @@ -37,8 +37,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* I2C */
>   
> diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
> index 7b4044fba72..c02be10c6fa 100644
> --- a/include/configs/ls1021aiot.h
> +++ b/include/configs/ls1021aiot.h
> @@ -90,8 +90,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -		CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /* SPI */
>   
> diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
> index 8e3bd7790fe..2c50490b9c6 100644
> --- a/include/configs/ls1028aqds.h
> +++ b/include/configs/ls1028aqds.h
> @@ -77,8 +77,6 @@
>   #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #ifndef SPL_NO_ENV
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS \
> diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
> index 5ce9ebbae93..653d2ac678a 100644
> --- a/include/configs/ls1028ardb.h
> +++ b/include/configs/ls1028ardb.h
> @@ -59,8 +59,6 @@
>   /* SATA */
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
> index 5f9cb97855a..083e2e65605 100644
> --- a/include/configs/ls1043aqds.h
> +++ b/include/configs/ls1043aqds.h
> @@ -56,8 +56,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * IFC Definitions
> diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
> index 6d9cbc8c7df..507d770f176 100644
> --- a/include/configs/ls1043ardb.h
> +++ b/include/configs/ls1043ardb.h
> @@ -236,8 +236,6 @@
>   #ifndef SPL_NO_SATA
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		2
>   #define CONFIG_SYS_SCSI_MAX_LUN			2
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
> index d07d27d1f5c..943d65920e8 100644
> --- a/include/configs/ls1046a_common.h
> +++ b/include/configs/ls1046a_common.h
> @@ -130,8 +130,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* FMan ucode */
> diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
> index 2e52108c23e..e385fded579 100644
> --- a/include/configs/ls1088a_common.h
> +++ b/include/configs/ls1088a_common.h
> @@ -135,8 +135,6 @@ unsigned long long get_qixis_addr(void);
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* Physical Memory Map */
> diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
> index 07cf59fcb8f..8b4ea499e86 100644
> --- a/include/configs/ls2080aqds.h
> +++ b/include/configs/ls2080aqds.h
> @@ -40,8 +40,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
>   #define CONFIG_SYS_NOR_AMASK		IFC_AMASK(128*1024*1024)
> diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
> index 6d8effea744..1253698c883 100644
> --- a/include/configs/ls2080ardb.h
> +++ b/include/configs/ls2080ardb.h
> @@ -50,8 +50,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
>   #define CONFIG_SYS_SCSI_MAX_LUN			1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT)
>   
> diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
> index e285109cbba..eac309de804 100644
> --- a/include/configs/lx2160a_common.h
> +++ b/include/configs/lx2160a_common.h
> @@ -115,8 +115,6 @@
>   #define CONFIG_SYS_SATA2		AHCI_BASE_ADDR2
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					CONFIG_SYS_SCSI_MAX_LUN)
>   #endif
>   
>   /* USB */
> diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h
> index e7f7e772fc7..c192512e85a 100644
> --- a/include/configs/mvebu_armada-37xx.h
> +++ b/include/configs/mvebu_armada-37xx.h
> @@ -57,8 +57,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #define BOOT_TARGET_DEVICES(func) \
>   	func(MMC, mmc, 1) \
> diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
> index ac0fdddbd94..6a113ec2145 100644
> --- a/include/configs/mvebu_armada-8k.h
> +++ b/include/configs/mvebu_armada-8k.h
> @@ -52,8 +52,6 @@
>   
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -					 CONFIG_SYS_SCSI_MAX_LUN)
>   
>   /*
>    * PCI configuration
> diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h
> index 188ab0bf365..e9a9d50db1d 100644
> --- a/include/configs/omap5_uevm.h
> +++ b/include/configs/omap5_uevm.h
> @@ -52,7 +52,5 @@
>   #define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
>   #define CONFIG_SYS_SCSI_MAX_LUN		1
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
> -						CONFIG_SYS_SCSI_MAX_LUN)
>   
>   #endif /* __CONFIG_OMAP5_EVM_H */
> diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
> index 9e0e8c7056f..c4cc57401bc 100644
> --- a/include/configs/sandbox.h
> +++ b/include/configs/sandbox.h
> @@ -41,7 +41,6 @@
>   #endif
>   
>   #define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_DEVICE	2
>   #define CONFIG_SYS_SCSI_MAX_SCSI_ID	8
>   #define CONFIG_SYS_SCSI_MAX_LUN		4
>   
> diff --git a/include/scsi.h b/include/scsi.h
> index 66a2caa26e3..b47c7463c1d 100644
> --- a/include/scsi.h
> +++ b/include/scsi.h
> @@ -9,6 +9,10 @@
>   #include <asm/cache.h>
>   #include <linux/dma-direction.h>
>   
> +/* Fix this to the maximum */
> +#define SCSI_MAX_DEVICE \
> +	(CONFIG_SYS_SCSI_MAX_SCSI_ID * CONFIG_SYS_SCSI_MAX_LUN)
> +
>   struct udevice;
>   
>   struct scsi_cmd {
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index 7b45d578a34..c6d735feb0a 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -1867,7 +1867,6 @@ CONFIG_SYS_SCCR_TSEC1CM
>   CONFIG_SYS_SCCR_TSEC2CM
>   CONFIG_SYS_SCCR_USBDRCM
>   CONFIG_SYS_SCR
> -CONFIG_SYS_SCSI_MAX_DEVICE
>   CONFIG_SYS_SCSI_MAX_LUN
>   CONFIG_SYS_SCSI_MAX_SCSI_ID
>   CONFIG_SYS_SDRAM

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig
  2022-01-31 14:49 ` [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig Simon Glass
@ 2022-02-01  6:14   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:14 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List
  Cc: Tom Rini, Michael Walle, Aleksandar Gerasimovski, Alison Wang,
	Andre Przywara, Andrew F. Davis, Baruch Siach, Bin Meng,
	Biwen Li, Dennis Gilmore, Fabio Estevam, Gerald Kerma, Green Wan,
	Heiko Schocher, Ian Ray, Igor Opaniuk, Jason Cooper, Jason Liu,
	Luka Perkov, Marek Behún, Marek Vasut, Mario Six,
	Martyn Welch, Meenakshi Aggarwal, Mian Yousaf Kaukab, Mingkai Hu,
	Nikita Kiryanov, Olaf Mandel, Pali Rohár, Patrick Delaunay,
	Paul Walmsley, Pragnesh Patel, Pramod Kumar, Priyanka Jain,
	Qiang Zhao, Rainer Boschung, Rajesh Bhagat, Rasmus Villemoes,
	Rick Chen, Ruchika Gupta, Sean Anderson, Shengzhou Liu,
	Simon Guinot, Sinan Akman, Soeren Moch, Tang Yuantian,
	Tim Harvey, Tony Dinh, Troy Kisky, Udit Agarwal, Vladimir Oltean,
	Wasim Khan, Wolfgang Denk, Yangbo Lu, liuhao, shuyiqi

On 1/31/22 15:49, Simon Glass wrote:
> This converts the following to Kconfig:
>     CONFIG_SCSI_AHCI_PLAT
>     CONFIG_SYS_SCSI_MAX_SCSI_ID
>     CONFIG_SYS_SCSI_MAX_LUN
>     CONFIG_SYS_SATA_MAX_DEVICE
> 
> Drop CONFIG_SCSI for everything except the sandbox build. We only need
> one build for tests.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   README                                        |  8 -----
>   arch/Kconfig                                  |  1 -
>   arch/arm/include/asm/arch-ls102xa/config.h    |  3 --
>   configs/MPC837XERDB_defconfig                 |  1 +
>   configs/P1010RDB-PA_36BIT_NAND_defconfig      |  1 +
>   configs/P1010RDB-PA_36BIT_NOR_defconfig       |  1 +
>   configs/P1010RDB-PA_36BIT_SDCARD_defconfig    |  1 +
>   configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig  |  1 +
>   configs/P1010RDB-PA_NAND_defconfig            |  1 +
>   configs/P1010RDB-PA_NOR_defconfig             |  1 +
>   configs/P1010RDB-PA_SDCARD_defconfig          |  1 +
>   configs/P1010RDB-PA_SPIFLASH_defconfig        |  1 +
>   configs/P1010RDB-PB_36BIT_NAND_defconfig      |  1 +
>   configs/P1010RDB-PB_36BIT_NOR_defconfig       |  1 +
>   configs/P1010RDB-PB_36BIT_SDCARD_defconfig    |  1 +
>   configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig  |  1 +
>   configs/P1010RDB-PB_NAND_defconfig            |  1 +
>   configs/P1010RDB-PB_NOR_defconfig             |  1 +
>   configs/P1010RDB-PB_SDCARD_defconfig          |  1 +
>   configs/P1010RDB-PB_SPIFLASH_defconfig        |  1 +
>   configs/P1020RDB-PC_36BIT_NAND_defconfig      |  1 +
>   configs/P1020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
>   configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
>   configs/P1020RDB-PC_36BIT_defconfig           |  1 +
>   configs/P1020RDB-PC_NAND_defconfig            |  1 +
>   configs/P1020RDB-PC_SDCARD_defconfig          |  1 +
>   configs/P1020RDB-PC_SPIFLASH_defconfig        |  1 +
>   configs/P1020RDB-PC_defconfig                 |  1 +
>   configs/P1020RDB-PD_NAND_defconfig            |  1 +
>   configs/P1020RDB-PD_SDCARD_defconfig          |  1 +
>   configs/P1020RDB-PD_SPIFLASH_defconfig        |  1 +
>   configs/P1020RDB-PD_defconfig                 |  1 +
>   configs/P2020RDB-PC_36BIT_NAND_defconfig      |  1 +
>   configs/P2020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
>   configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
>   configs/P2020RDB-PC_36BIT_defconfig           |  1 +
>   configs/P2020RDB-PC_NAND_defconfig            |  1 +
>   configs/P2020RDB-PC_SDCARD_defconfig          |  1 +
>   configs/P2020RDB-PC_SPIFLASH_defconfig        |  1 +
>   configs/P2020RDB-PC_defconfig                 |  1 +
>   configs/P2041RDB_NAND_defconfig               |  1 +
>   configs/P2041RDB_SDCARD_defconfig             |  1 +
>   configs/P2041RDB_SPIFLASH_defconfig           |  1 +
>   configs/P2041RDB_defconfig                    |  1 +
>   configs/P3041DS_NAND_defconfig                |  1 +
>   configs/P3041DS_SDCARD_defconfig              |  1 +
>   configs/P3041DS_SPIFLASH_defconfig            |  1 +
>   configs/P3041DS_defconfig                     |  1 +
>   configs/P4080DS_SDCARD_defconfig              |  1 +
>   configs/P4080DS_SPIFLASH_defconfig            |  1 +
>   configs/P4080DS_defconfig                     |  1 +
>   configs/P5040DS_NAND_defconfig                |  1 +
>   configs/P5040DS_SDCARD_defconfig              |  1 +
>   configs/P5040DS_SPIFLASH_defconfig            |  1 +
>   configs/P5040DS_defconfig                     |  1 +
>   configs/T2080QDS_NAND_defconfig               |  1 +
>   configs/T2080QDS_SDCARD_defconfig             |  1 +
>   configs/T2080QDS_SECURE_BOOT_defconfig        |  1 +
>   configs/T2080QDS_SPIFLASH_defconfig           |  1 +
>   configs/T2080QDS_SRIO_PCIE_BOOT_defconfig     |  1 +
>   configs/T2080QDS_defconfig                    |  1 +
>   configs/T2080RDB_NAND_defconfig               |  1 +
>   configs/T2080RDB_SDCARD_defconfig             |  1 +
>   configs/T2080RDB_SPIFLASH_defconfig           |  1 +
>   configs/T2080RDB_defconfig                    |  1 +
>   configs/T2080RDB_revD_NAND_defconfig          |  1 +
>   configs/T2080RDB_revD_SDCARD_defconfig        |  1 +
>   configs/T2080RDB_revD_SPIFLASH_defconfig      |  1 +
>   configs/T2080RDB_revD_defconfig               |  1 +
>   configs/T4240RDB_SDCARD_defconfig             |  1 +
>   configs/T4240RDB_defconfig                    |  1 +
>   configs/am57xx_hs_evm_usb_defconfig           |  3 ++
>   configs/cm_fx6_defconfig                      |  1 +
>   configs/controlcenterdc_defconfig             |  3 ++
>   configs/d2net_v2_defconfig                    |  1 +
>   configs/db-mv784mp-gp_defconfig               |  1 +
>   configs/dreamplug_defconfig                   |  1 +
>   configs/goflexhome_defconfig                  |  1 +
>   configs/gwventana_emmc_defconfig              |  1 +
>   configs/gwventana_gw5904_defconfig            |  1 +
>   configs/gwventana_nand_defconfig              |  1 +
>   configs/highbank_defconfig                    |  3 ++
>   configs/inetspace_v2_defconfig                |  1 +
>   configs/ls1021atsn_qspi_defconfig             |  3 ++
>   configs/ls1021atsn_sdcard_defconfig           |  3 ++
>   ...s1021atwr_sdcard_ifc_SECURE_BOOT_defconfig |  3 ++
>   .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  3 ++
>   ...1088ardb_sdcard_qspi_SECURE_BOOT_defconfig |  3 ++
>   configs/lschlv2_defconfig                     |  1 +
>   configs/lsxhl_defconfig                       |  1 +
>   configs/mx6cuboxi_defconfig                   |  1 +
>   configs/mx6qsabrelite_defconfig               |  1 +
>   configs/net2big_v2_defconfig                  |  1 +
>   configs/netspace_lite_v2_defconfig            |  1 +
>   configs/netspace_max_v2_defconfig             |  1 +
>   configs/netspace_mini_v2_defconfig            |  1 +
>   configs/netspace_v2_defconfig                 |  1 +
>   configs/nitrogen6q2g_defconfig                |  1 +
>   configs/nitrogen6q_defconfig                  |  1 +
>   configs/nsa310s_defconfig                     |  1 +
>   configs/omap5_uevm_defconfig                  |  3 ++
>   configs/pg_wcom_expu1_defconfig               |  3 ++
>   configs/pg_wcom_seli8_defconfig               |  3 ++
>   configs/sandbox64_defconfig                   |  1 +
>   configs/sandbox_defconfig                     |  7 ++++-
>   configs/sheevaplug_defconfig                  |  1 +
>   configs/tbs2910_defconfig                     |  1 +
>   configs/theadorable_debug_defconfig           |  1 +
>   configs/tools-only_defconfig                  |  3 +-
>   configs/wandboard_defconfig                   |  1 +
>   drivers/ata/Kconfig                           | 10 +++++++
>   drivers/scsi/Kconfig                          | 30 +++++++++++++++++++
>   drivers/scsi/Makefile                         |  2 ++
>   include/configs/MPC837XERDB.h                 |  1 -
>   include/configs/P1010RDB.h                    |  1 -
>   include/configs/P2041RDB.h                    |  1 -
>   include/configs/P4080DS.h                     |  1 -
>   include/configs/T104xRDB.h                    |  1 -
>   include/configs/T208xQDS.h                    |  1 -
>   include/configs/T208xRDB.h                    |  1 -
>   include/configs/T4240RDB.h                    |  2 --
>   include/configs/am57xx_evm.h                  |  3 --
>   include/configs/clearfog.h                    |  5 ----
>   include/configs/cm_fx6.h                      |  1 -
>   include/configs/controlcenterdc.h             |  3 --
>   include/configs/corenet_ds.h                  |  1 -
>   include/configs/db-88f6820-gp.h               |  3 --
>   include/configs/db-mv784mp-gp.h               |  1 -
>   include/configs/dra7xx_evm.h                  |  1 -
>   include/configs/dreamplug.h                   |  1 -
>   include/configs/durian.h                      |  4 ---
>   include/configs/ge_bx50v3.h                   |  1 -
>   include/configs/goflexhome.h                  |  1 -
>   include/configs/gw_ventana.h                  |  1 -
>   include/configs/helios4.h                     |  5 ----
>   include/configs/highbank.h                    |  4 ---
>   include/configs/lacie_kw.h                    |  3 --
>   include/configs/ls1012a2g5rdb.h               |  4 ---
>   include/configs/ls1012a_common.h              |  4 ---
>   include/configs/ls1021aiot.h                  |  4 ---
>   include/configs/ls1028aqds.h                  |  3 --
>   include/configs/ls1028ardb.h                  |  3 --
>   include/configs/ls1043aqds.h                  |  4 ---
>   include/configs/ls1043ardb.h                  |  2 --
>   include/configs/ls1046a_common.h              |  5 ----
>   include/configs/ls1088a_common.h              |  4 ---
>   include/configs/ls2080aqds.h                  |  4 ---
>   include/configs/ls2080ardb.h                  |  4 ---
>   include/configs/lsxl.h                        |  1 -
>   include/configs/lx2160a_common.h              |  3 --
>   include/configs/m53menlo.h                    |  1 -
>   include/configs/mvebu_armada-37xx.h           |  4 ---
>   include/configs/mvebu_armada-8k.h             |  4 ---
>   include/configs/mx53loco.h                    |  1 -
>   include/configs/mx6cuboxi.h                   |  1 -
>   include/configs/nitrogen6x.h                  |  1 -
>   include/configs/nsa310s.h                     |  1 -
>   include/configs/omap5_uevm.h                  |  4 ---
>   include/configs/p1_p2_rdb_pc.h                |  1 -
>   include/configs/sandbox.h                     |  6 ----
>   include/configs/sheevaplug.h                  |  1 -
>   include/configs/sifive-unmatched.h            |  2 --
>   include/configs/tbs2910.h                     |  1 -
>   include/configs/theadorable.h                 |  1 -
>   include/configs/wandboard.h                   |  1 -
>   scripts/config_whitelist.txt                  |  4 ---
>   166 files changed, 177 insertions(+), 140 deletions(-)
> 
> diff --git a/README b/README
> index 48a3f5ca610..6e99789d5b4 100644
> --- a/README
> +++ b/README
> @@ -743,14 +743,6 @@ The following options need to be configured:
>   			When enabled, makes the IDE subsystem use 64bit sector addresses.
>   			Default is 32bit.
>   
> -- SCSI Support:
> -		CONFIG_SYS_SCSI_MAX_LUN [8] and CONFIG_SYS_SCSI_MAX_SCSI_ID [7]
> -		can be adjusted to define the maximum numbers of LUNs and SCSI
> -		IDs.
> -
> -		The environment variable 'scsidevs' is set to the number of
> -		SCSI devices found during the last scan.
> -
>   - NETWORK Support (PCI):
>   		CONFIG_E1000_SPI
>   		Utility code for direct access to the SPI bus on Intel 8257x.
> diff --git a/arch/Kconfig b/arch/Kconfig
> index bea8ead5617..e6191446a35 100644
> --- a/arch/Kconfig
> +++ b/arch/Kconfig
> @@ -172,7 +172,6 @@ config SANDBOX
>   	imply FIRMWARE
>   	imply HASH_VERIFY
>   	imply LZMA
> -	imply SCSI
>   	imply TEE
>   	imply AVB_VERIFY
>   	imply LIBAVB
> diff --git a/arch/arm/include/asm/arch-ls102xa/config.h b/arch/arm/include/asm/arch-ls102xa/config.h
> index 489286ed8d1..86a4e1f6bf3 100644
> --- a/arch/arm/include/asm/arch-ls102xa/config.h
> +++ b/arch/arm/include/asm/arch-ls102xa/config.h
> @@ -78,9 +78,6 @@
>   
>   /* SATA */
>   #define AHCI_BASE_ADDR				(CONFIG_SYS_IMMR + 0x02200000)
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   #ifdef CONFIG_DDR_SPD
>   #define CONFIG_VERY_BIG_RAM
>   #define CONFIG_SYS_LS1_DDR_BLOCK1_SIZE		((phys_size_t)2 << 30)
> diff --git a/configs/MPC837XERDB_defconfig b/configs/MPC837XERDB_defconfig
> index 192bcae704e..eac5b74147c 100644
> --- a/configs/MPC837XERDB_defconfig
> +++ b/configs/MPC837XERDB_defconfig
> @@ -170,6 +170,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_ADDR=0xFE080000
>   CONFIG_DM=y
>   CONFIG_FSL_SATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFE001001
>   CONFIG_SYS_OR0_PRELIM=0xFF800193
> diff --git a/configs/P1010RDB-PA_36BIT_NAND_defconfig b/configs/P1010RDB-PA_36BIT_NAND_defconfig
> index ef7f24b85fa..61fd2a78a4e 100644
> --- a/configs/P1010RDB-PA_36BIT_NAND_defconfig
> +++ b/configs/P1010RDB-PA_36BIT_NAND_defconfig
> @@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_36BIT_NOR_defconfig b/configs/P1010RDB-PA_36BIT_NOR_defconfig
> index 892a8a6e056..0e537ebb521 100644
> --- a/configs/P1010RDB-PA_36BIT_NOR_defconfig
> +++ b/configs/P1010RDB-PA_36BIT_NOR_defconfig
> @@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_36BIT_SDCARD_defconfig b/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
> index 705d0dad62f..dc113be28d9 100644
> --- a/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
> +++ b/configs/P1010RDB-PA_36BIT_SDCARD_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig b/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
> index e4ad50fc7bb..cd5c80c6346 100644
> --- a/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
> +++ b/configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig
> @@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_NAND_defconfig b/configs/P1010RDB-PA_NAND_defconfig
> index b303c4c46c0..f80a0d929c1 100644
> --- a/configs/P1010RDB-PA_NAND_defconfig
> +++ b/configs/P1010RDB-PA_NAND_defconfig
> @@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_NOR_defconfig b/configs/P1010RDB-PA_NOR_defconfig
> index 8db09ba2b83..035aac226bb 100644
> --- a/configs/P1010RDB-PA_NOR_defconfig
> +++ b/configs/P1010RDB-PA_NOR_defconfig
> @@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_SDCARD_defconfig b/configs/P1010RDB-PA_SDCARD_defconfig
> index f02757dd6b4..cd031d218c3 100644
> --- a/configs/P1010RDB-PA_SDCARD_defconfig
> +++ b/configs/P1010RDB-PA_SDCARD_defconfig
> @@ -47,6 +47,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PA_SPIFLASH_defconfig b/configs/P1010RDB-PA_SPIFLASH_defconfig
> index 9a09473ad41..f339502637b 100644
> --- a/configs/P1010RDB-PA_SPIFLASH_defconfig
> +++ b/configs/P1010RDB-PA_SPIFLASH_defconfig
> @@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_36BIT_NAND_defconfig b/configs/P1010RDB-PB_36BIT_NAND_defconfig
> index 85828682837..ba64f8818fb 100644
> --- a/configs/P1010RDB-PB_36BIT_NAND_defconfig
> +++ b/configs/P1010RDB-PB_36BIT_NAND_defconfig
> @@ -55,6 +55,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_36BIT_NOR_defconfig b/configs/P1010RDB-PB_36BIT_NOR_defconfig
> index 84173e2d60f..a8e95568714 100644
> --- a/configs/P1010RDB-PB_36BIT_NOR_defconfig
> +++ b/configs/P1010RDB-PB_36BIT_NOR_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_36BIT_SDCARD_defconfig b/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
> index 4b0a1ab53b7..871996711db 100644
> --- a/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
> +++ b/configs/P1010RDB-PB_36BIT_SDCARD_defconfig
> @@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig b/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
> index 986b992e6b9..2d646f9f54d 100644
> --- a/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
> +++ b/configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig
> @@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_NAND_defconfig b/configs/P1010RDB-PB_NAND_defconfig
> index e4364769f9f..f8437ff032f 100644
> --- a/configs/P1010RDB-PB_NAND_defconfig
> +++ b/configs/P1010RDB-PB_NAND_defconfig
> @@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_NOR_defconfig b/configs/P1010RDB-PB_NOR_defconfig
> index 62f4c892709..b99531c4cd9 100644
> --- a/configs/P1010RDB-PB_NOR_defconfig
> +++ b/configs/P1010RDB-PB_NOR_defconfig
> @@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_SDCARD_defconfig b/configs/P1010RDB-PB_SDCARD_defconfig
> index 9cdb3599f76..ebe2af6f4a1 100644
> --- a/configs/P1010RDB-PB_SDCARD_defconfig
> +++ b/configs/P1010RDB-PB_SDCARD_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1010RDB-PB_SPIFLASH_defconfig b/configs/P1010RDB-PB_SPIFLASH_defconfig
> index 299564c9caf..7893782fa44 100644
> --- a/configs/P1010RDB-PB_SPIFLASH_defconfig
> +++ b/configs/P1010RDB-PB_SPIFLASH_defconfig
> @@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_DM_I2C=y
> diff --git a/configs/P1020RDB-PC_36BIT_NAND_defconfig b/configs/P1020RDB-PC_36BIT_NAND_defconfig
> index 30b841d691b..525bb54fcb8 100644
> --- a/configs/P1020RDB-PC_36BIT_NAND_defconfig
> +++ b/configs/P1020RDB-PC_36BIT_NAND_defconfig
> @@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFF800C21
> diff --git a/configs/P1020RDB-PC_36BIT_SDCARD_defconfig b/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
> index 79edbf388d4..384a4d0c7ff 100644
> --- a/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
> +++ b/configs/P1020RDB-PC_36BIT_SDCARD_defconfig
> @@ -49,6 +49,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig b/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
> index c5a64de98e0..12bf5d1a698 100644
> --- a/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
> +++ b/configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig
> @@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PC_36BIT_defconfig b/configs/P1020RDB-PC_36BIT_defconfig
> index 9671a6d3300..0e535cf91bb 100644
> --- a/configs/P1020RDB-PC_36BIT_defconfig
> +++ b/configs/P1020RDB-PC_36BIT_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PC_NAND_defconfig b/configs/P1020RDB-PC_NAND_defconfig
> index 0201c51a5d0..f042f25428b 100644
> --- a/configs/P1020RDB-PC_NAND_defconfig
> +++ b/configs/P1020RDB-PC_NAND_defconfig
> @@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFF800C21
> diff --git a/configs/P1020RDB-PC_SDCARD_defconfig b/configs/P1020RDB-PC_SDCARD_defconfig
> index 371a8b5f8b8..d4a531eff90 100644
> --- a/configs/P1020RDB-PC_SDCARD_defconfig
> +++ b/configs/P1020RDB-PC_SDCARD_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PC_SPIFLASH_defconfig b/configs/P1020RDB-PC_SPIFLASH_defconfig
> index 7c8b3c826cd..4e17f71da8d 100644
> --- a/configs/P1020RDB-PC_SPIFLASH_defconfig
> +++ b/configs/P1020RDB-PC_SPIFLASH_defconfig
> @@ -50,6 +50,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PC_defconfig b/configs/P1020RDB-PC_defconfig
> index 01b4fd363c4..e8c889eae9a 100644
> --- a/configs/P1020RDB-PC_defconfig
> +++ b/configs/P1020RDB-PC_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P1020RDB-PD_NAND_defconfig b/configs/P1020RDB-PD_NAND_defconfig
> index e70c1a7cbae..6618d8bd0d5 100644
> --- a/configs/P1020RDB-PD_NAND_defconfig
> +++ b/configs/P1020RDB-PD_NAND_defconfig
> @@ -56,6 +56,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFF800C21
> diff --git a/configs/P1020RDB-PD_SDCARD_defconfig b/configs/P1020RDB-PD_SDCARD_defconfig
> index 2596b5255d3..eb6a335db2b 100644
> --- a/configs/P1020RDB-PD_SDCARD_defconfig
> +++ b/configs/P1020RDB-PD_SDCARD_defconfig
> @@ -51,6 +51,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEC001001
> diff --git a/configs/P1020RDB-PD_SPIFLASH_defconfig b/configs/P1020RDB-PD_SPIFLASH_defconfig
> index f6f8888c82a..ee5a164b53c 100644
> --- a/configs/P1020RDB-PD_SPIFLASH_defconfig
> +++ b/configs/P1020RDB-PD_SPIFLASH_defconfig
> @@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEC001001
> diff --git a/configs/P1020RDB-PD_defconfig b/configs/P1020RDB-PD_defconfig
> index e1a4965caae..51d9fb147d0 100644
> --- a/configs/P1020RDB-PD_defconfig
> +++ b/configs/P1020RDB-PD_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEC001001
> diff --git a/configs/P2020RDB-PC_36BIT_NAND_defconfig b/configs/P2020RDB-PC_36BIT_NAND_defconfig
> index 2c302b68216..d25894c13c6 100644
> --- a/configs/P2020RDB-PC_36BIT_NAND_defconfig
> +++ b/configs/P2020RDB-PC_36BIT_NAND_defconfig
> @@ -58,6 +58,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFF800C21
> diff --git a/configs/P2020RDB-PC_36BIT_SDCARD_defconfig b/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
> index 2d080713e7a..a0c86272287 100644
> --- a/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
> +++ b/configs/P2020RDB-PC_36BIT_SDCARD_defconfig
> @@ -53,6 +53,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig b/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
> index 7b53b025171..302038247b0 100644
> --- a/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
> +++ b/configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig
> @@ -55,6 +55,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2020RDB-PC_36BIT_defconfig b/configs/P2020RDB-PC_36BIT_defconfig
> index 5e8a474c905..1242bf53085 100644
> --- a/configs/P2020RDB-PC_36BIT_defconfig
> +++ b/configs/P2020RDB-PC_36BIT_defconfig
> @@ -42,6 +42,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2020RDB-PC_NAND_defconfig b/configs/P2020RDB-PC_NAND_defconfig
> index 74165dc60aa..981a6d34c48 100644
> --- a/configs/P2020RDB-PC_NAND_defconfig
> +++ b/configs/P2020RDB-PC_NAND_defconfig
> @@ -57,6 +57,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFF800C21
> diff --git a/configs/P2020RDB-PC_SDCARD_defconfig b/configs/P2020RDB-PC_SDCARD_defconfig
> index 0505f40a814..7d65e76aaea 100644
> --- a/configs/P2020RDB-PC_SDCARD_defconfig
> +++ b/configs/P2020RDB-PC_SDCARD_defconfig
> @@ -52,6 +52,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2020RDB-PC_SPIFLASH_defconfig b/configs/P2020RDB-PC_SPIFLASH_defconfig
> index f1085fde470..0001c80e5cd 100644
> --- a/configs/P2020RDB-PC_SPIFLASH_defconfig
> +++ b/configs/P2020RDB-PC_SPIFLASH_defconfig
> @@ -54,6 +54,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2020RDB-PC_defconfig b/configs/P2020RDB-PC_defconfig
> index f933ed42fce..8c4d8e56802 100644
> --- a/configs/P2020RDB-PC_defconfig
> +++ b/configs/P2020RDB-PC_defconfig
> @@ -41,6 +41,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DDR_CLK_FREQ=66666666
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xEF001001
> diff --git a/configs/P2041RDB_NAND_defconfig b/configs/P2041RDB_NAND_defconfig
> index 9dc72573c17..01d61928a3d 100644
> --- a/configs/P2041RDB_NAND_defconfig
> +++ b/configs/P2041RDB_NAND_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xFFA00C21
> diff --git a/configs/P2041RDB_SDCARD_defconfig b/configs/P2041RDB_SDCARD_defconfig
> index 997f4619762..dc56c791d1f 100644
> --- a/configs/P2041RDB_SDCARD_defconfig
> +++ b/configs/P2041RDB_SDCARD_defconfig
> @@ -41,6 +41,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xE8001001
> diff --git a/configs/P2041RDB_SPIFLASH_defconfig b/configs/P2041RDB_SPIFLASH_defconfig
> index d54d6218366..78a24503a49 100644
> --- a/configs/P2041RDB_SPIFLASH_defconfig
> +++ b/configs/P2041RDB_SPIFLASH_defconfig
> @@ -42,6 +42,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xE8001001
> diff --git a/configs/P2041RDB_defconfig b/configs/P2041RDB_defconfig
> index b2fb18c552c..f6bf4daf23b 100644
> --- a/configs/P2041RDB_defconfig
> +++ b/configs/P2041RDB_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_SYS_BR0_PRELIM_BOOL=y
>   CONFIG_SYS_BR0_PRELIM=0xE8001001
> diff --git a/configs/P3041DS_NAND_defconfig b/configs/P3041DS_NAND_defconfig
> index 971254ac061..ec5850017d6 100644
> --- a/configs/P3041DS_NAND_defconfig
> +++ b/configs/P3041DS_NAND_defconfig
> @@ -38,6 +38,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P3041DS_SDCARD_defconfig b/configs/P3041DS_SDCARD_defconfig
> index 7cf3c2240cd..58a3eaea72f 100644
> --- a/configs/P3041DS_SDCARD_defconfig
> +++ b/configs/P3041DS_SDCARD_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P3041DS_SPIFLASH_defconfig b/configs/P3041DS_SPIFLASH_defconfig
> index 0e810f8ca90..c48976b3d07 100644
> --- a/configs/P3041DS_SPIFLASH_defconfig
> +++ b/configs/P3041DS_SPIFLASH_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P3041DS_defconfig b/configs/P3041DS_defconfig
> index db1b5fb1691..fcc73610af8 100644
> --- a/configs/P3041DS_defconfig
> +++ b/configs/P3041DS_defconfig
> @@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P4080DS_SDCARD_defconfig b/configs/P4080DS_SDCARD_defconfig
> index 25f7861791d..044bf9c734f 100644
> --- a/configs/P4080DS_SDCARD_defconfig
> +++ b/configs/P4080DS_SDCARD_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P4080DS_SPIFLASH_defconfig b/configs/P4080DS_SPIFLASH_defconfig
> index c32c394530b..b33bc16d0d3 100644
> --- a/configs/P4080DS_SPIFLASH_defconfig
> +++ b/configs/P4080DS_SPIFLASH_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P4080DS_defconfig b/configs/P4080DS_defconfig
> index e3c41c316f2..14df6f22c1b 100644
> --- a/configs/P4080DS_defconfig
> +++ b/configs/P4080DS_defconfig
> @@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P5040DS_NAND_defconfig b/configs/P5040DS_NAND_defconfig
> index 90503b63a27..279976c04d4 100644
> --- a/configs/P5040DS_NAND_defconfig
> +++ b/configs/P5040DS_NAND_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P5040DS_SDCARD_defconfig b/configs/P5040DS_SDCARD_defconfig
> index 90216f6c7a3..34ebc51922e 100644
> --- a/configs/P5040DS_SDCARD_defconfig
> +++ b/configs/P5040DS_SDCARD_defconfig
> @@ -39,6 +39,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P5040DS_SPIFLASH_defconfig b/configs/P5040DS_SPIFLASH_defconfig
> index 8b1781268e8..ea8b6733040 100644
> --- a/configs/P5040DS_SPIFLASH_defconfig
> +++ b/configs/P5040DS_SPIFLASH_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/P5040DS_defconfig b/configs/P5040DS_defconfig
> index 6836fcfe4d0..e9bf7ff0144 100644
> --- a/configs/P5040DS_defconfig
> +++ b/configs/P5040DS_defconfig
> @@ -35,6 +35,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/T2080QDS_NAND_defconfig b/configs/T2080QDS_NAND_defconfig
> index 521b0cf6084..1b6ef8aaa1f 100644
> --- a/configs/T2080QDS_NAND_defconfig
> +++ b/configs/T2080QDS_NAND_defconfig
> @@ -56,6 +56,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080QDS_SDCARD_defconfig b/configs/T2080QDS_SDCARD_defconfig
> index eb0b341e5c3..8ab1c5d6809 100644
> --- a/configs/T2080QDS_SDCARD_defconfig
> +++ b/configs/T2080QDS_SDCARD_defconfig
> @@ -55,6 +55,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080QDS_SECURE_BOOT_defconfig b/configs/T2080QDS_SECURE_BOOT_defconfig
> index 97bfbd951ac..a84b7adab01 100644
> --- a/configs/T2080QDS_SECURE_BOOT_defconfig
> +++ b/configs/T2080QDS_SECURE_BOOT_defconfig
> @@ -40,6 +40,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
>   CONFIG_ECC_INIT_VIA_DDRCONTROLLER=y
> diff --git a/configs/T2080QDS_SPIFLASH_defconfig b/configs/T2080QDS_SPIFLASH_defconfig
> index a09d1470a6d..8fd024848ad 100644
> --- a/configs/T2080QDS_SPIFLASH_defconfig
> +++ b/configs/T2080QDS_SPIFLASH_defconfig
> @@ -57,6 +57,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig b/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
> index db09d3b92e3..f9dbc84f922 100644
> --- a/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
> +++ b/configs/T2080QDS_SRIO_PCIE_BOOT_defconfig
> @@ -37,6 +37,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_REMOTE=y
>   CONFIG_ENV_ADDR=0xFFE20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080QDS_defconfig b/configs/T2080QDS_defconfig
> index c036d5dfedc..424b3f2cdb8 100644
> --- a/configs/T2080QDS_defconfig
> +++ b/configs/T2080QDS_defconfig
> @@ -40,6 +40,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DYNAMIC_DDR_CLK_FREQ=y
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_NAND_defconfig b/configs/T2080RDB_NAND_defconfig
> index 17558d421da..1c55d30b5e1 100644
> --- a/configs/T2080RDB_NAND_defconfig
> +++ b/configs/T2080RDB_NAND_defconfig
> @@ -60,6 +60,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_SDCARD_defconfig b/configs/T2080RDB_SDCARD_defconfig
> index 949976b2aff..ea9c479825c 100644
> --- a/configs/T2080RDB_SDCARD_defconfig
> +++ b/configs/T2080RDB_SDCARD_defconfig
> @@ -59,6 +59,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_SPIFLASH_defconfig b/configs/T2080RDB_SPIFLASH_defconfig
> index 66ca339e4d4..5e08b82406a 100644
> --- a/configs/T2080RDB_SPIFLASH_defconfig
> +++ b/configs/T2080RDB_SPIFLASH_defconfig
> @@ -61,6 +61,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_defconfig b/configs/T2080RDB_defconfig
> index f03440312b7..0515007ef35 100644
> --- a/configs/T2080RDB_defconfig
> +++ b/configs/T2080RDB_defconfig
> @@ -44,6 +44,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_revD_NAND_defconfig b/configs/T2080RDB_revD_NAND_defconfig
> index 33591c2a65d..ae924b18173 100644
> --- a/configs/T2080RDB_revD_NAND_defconfig
> +++ b/configs/T2080RDB_revD_NAND_defconfig
> @@ -61,6 +61,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_NAND=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_revD_SDCARD_defconfig b/configs/T2080RDB_revD_SDCARD_defconfig
> index 82f6c96acb5..fef08931d0d 100644
> --- a/configs/T2080RDB_revD_SDCARD_defconfig
> +++ b/configs/T2080RDB_revD_SDCARD_defconfig
> @@ -60,6 +60,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_revD_SPIFLASH_defconfig b/configs/T2080RDB_revD_SPIFLASH_defconfig
> index 075691fefe1..0b7e71567da 100644
> --- a/configs/T2080RDB_revD_SPIFLASH_defconfig
> +++ b/configs/T2080RDB_revD_SPIFLASH_defconfig
> @@ -62,6 +62,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_SPI_FLASH=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T2080RDB_revD_defconfig b/configs/T2080RDB_revD_defconfig
> index 1d5628f559b..c78b21dd245 100644
> --- a/configs/T2080RDB_revD_defconfig
> +++ b/configs/T2080RDB_revD_defconfig
> @@ -45,6 +45,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133330000
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T4240RDB_SDCARD_defconfig b/configs/T4240RDB_SDCARD_defconfig
> index ef2d1d749db..ea6a5284959 100644
> --- a/configs/T4240RDB_SDCARD_defconfig
> +++ b/configs/T4240RDB_SDCARD_defconfig
> @@ -51,6 +51,7 @@ CONFIG_OF_CONTROL=y
>   CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_MMC=y
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133333333
>   CONFIG_DDR_ECC=y
> diff --git a/configs/T4240RDB_defconfig b/configs/T4240RDB_defconfig
> index 6784dd7c201..e17e8b129ff 100644
> --- a/configs/T4240RDB_defconfig
> +++ b/configs/T4240RDB_defconfig
> @@ -36,6 +36,7 @@ CONFIG_ENV_OVERWRITE=y
>   CONFIG_ENV_IS_IN_FLASH=y
>   CONFIG_ENV_ADDR=0xEFF20000
>   CONFIG_DM=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_FSL_CAAM=y
>   CONFIG_DDR_CLK_FREQ=133333333
>   CONFIG_DDR_ECC=y
> diff --git a/configs/am57xx_hs_evm_usb_defconfig b/configs/am57xx_hs_evm_usb_defconfig
> index 7f19d991c55..02e770b15c4 100644
> --- a/configs/am57xx_hs_evm_usb_defconfig
> +++ b/configs/am57xx_hs_evm_usb_defconfig
> @@ -102,6 +102,9 @@ CONFIG_DM_PMIC=y
>   CONFIG_PMIC_PALMAS=y
>   CONFIG_DM_REGULATOR=y
>   CONFIG_DM_REGULATOR_PALMAS=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_DM_SERIAL=y
>   CONFIG_SPI=y
>   CONFIG_DM_SPI=y
> diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
> index 61067940cc4..1291f915225 100644
> --- a/configs/cm_fx6_defconfig
> +++ b/configs/cm_fx6_defconfig
> @@ -69,6 +69,7 @@ CONFIG_SPL_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
>   # CONFIG_DWC_AHSATA_AHCI is not set
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MXC=y
> diff --git a/configs/controlcenterdc_defconfig b/configs/controlcenterdc_defconfig
> index b6eb9550869..5245a33666b 100644
> --- a/configs/controlcenterdc_defconfig
> +++ b/configs/controlcenterdc_defconfig
> @@ -77,6 +77,9 @@ CONFIG_PCI=y
>   CONFIG_DM_PCI_COMPAT=y
>   CONFIG_PCI_MVEBU=y
>   CONFIG_SCSI=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=2
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_DEBUG_UART_SHIFT=2
>   CONFIG_SYS_NS16550=y
>   CONFIG_KIRKWOOD_SPI=y
> diff --git a/configs/d2net_v2_defconfig b/configs/d2net_v2_defconfig
> index a856202d110..5e2122a4c6c 100644
> --- a/configs/d2net_v2_defconfig
> +++ b/configs/d2net_v2_defconfig
> @@ -47,6 +47,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/db-mv784mp-gp_defconfig b/configs/db-mv784mp-gp_defconfig
> index 3d0b06fbc61..c42bda292d0 100644
> --- a/configs/db-mv784mp-gp_defconfig
> +++ b/configs/db-mv784mp-gp_defconfig
> @@ -49,6 +49,7 @@ CONFIG_ENV_SPI_MAX_HZ=50000000
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_SPL_OF_TRANSLATE=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_DM_I2C=y
>   CONFIG_SYS_I2C_MVTWSI=y
>   # CONFIG_MMC is not set
> diff --git a/configs/dreamplug_defconfig b/configs/dreamplug_defconfig
> index 557013dbacd..af73c9be5f7 100644
> --- a/configs/dreamplug_defconfig
> +++ b/configs/dreamplug_defconfig
> @@ -41,6 +41,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   # CONFIG_MMC is not set
>   CONFIG_MTD=y
>   CONFIG_DM_SPI_FLASH=y
> diff --git a/configs/goflexhome_defconfig b/configs/goflexhome_defconfig
> index ec8b7398d0a..243116b6d38 100644
> --- a/configs/goflexhome_defconfig
> +++ b/configs/goflexhome_defconfig
> @@ -44,6 +44,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   # CONFIG_MMC is not set
>   CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig
> index 4371a144f27..b33b90e9159 100644
> --- a/configs/gwventana_emmc_defconfig
> +++ b/configs/gwventana_emmc_defconfig
> @@ -90,6 +90,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MXC=y
> diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
> index 8a5050667b6..00e357d8f1d 100644
> --- a/configs/gwventana_gw5904_defconfig
> +++ b/configs/gwventana_gw5904_defconfig
> @@ -90,6 +90,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MXC=y
> diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig
> index 9fadc014a2c..ab1fe835c84 100644
> --- a/configs/gwventana_nand_defconfig
> +++ b/configs/gwventana_nand_defconfig
> @@ -92,6 +92,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MXC=y
> diff --git a/configs/highbank_defconfig b/configs/highbank_defconfig
> index 3e8bfcf73a6..df36b4167cd 100644
> --- a/configs/highbank_defconfig
> +++ b/configs/highbank_defconfig
> @@ -29,3 +29,6 @@ CONFIG_BOOTCOUNT_LIMIT=y
>   # CONFIG_MMC is not set
>   CONFIG_CALXEDA_XGMAC=y
>   CONFIG_SCSI=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=5
> +CONFIG_SYS_SCSI_MAX_LUN=1
> diff --git a/configs/inetspace_v2_defconfig b/configs/inetspace_v2_defconfig
> index 8779e58b932..c45156c8513 100644
> --- a/configs/inetspace_v2_defconfig
> +++ b/configs/inetspace_v2_defconfig
> @@ -47,6 +47,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/ls1021atsn_qspi_defconfig b/configs/ls1021atsn_qspi_defconfig
> index 5c8cee3ea91..e7e8d58e244 100644
> --- a/configs/ls1021atsn_qspi_defconfig
> +++ b/configs/ls1021atsn_qspi_defconfig
> @@ -62,6 +62,9 @@ CONFIG_TSEC_ENET=y
>   CONFIG_NVME=y
>   CONFIG_PCI=y
>   CONFIG_PCIE_LAYERSCAPE_RC=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SYS_NS16550=y
>   CONFIG_SPI=y
>   CONFIG_DM_SPI=y
> diff --git a/configs/ls1021atsn_sdcard_defconfig b/configs/ls1021atsn_sdcard_defconfig
> index a3b8f248c7d..7158fdd256d 100644
> --- a/configs/ls1021atsn_sdcard_defconfig
> +++ b/configs/ls1021atsn_sdcard_defconfig
> @@ -78,6 +78,9 @@ CONFIG_TSEC_ENET=y
>   CONFIG_NVME=y
>   CONFIG_PCI=y
>   CONFIG_PCIE_LAYERSCAPE_RC=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SYS_NS16550=y
>   CONFIG_SPI=y
>   CONFIG_DM_SPI=y
> diff --git a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
> index 756e072f9cb..ec20ceb86a5 100644
> --- a/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
> +++ b/configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig
> @@ -87,6 +87,9 @@ CONFIG_PCI=y
>   CONFIG_PCIE_LAYERSCAPE_RC=y
>   CONFIG_U_QE=y
>   CONFIG_SYS_QE_FW_ADDR=0x940000
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SYS_NS16550=y
>   CONFIG_USB=y
>   CONFIG_USB_XHCI_HCD=y
> diff --git a/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig b/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
> index 4c55777b9c9..c4c0655703e 100644
> --- a/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
> +++ b/configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
> @@ -86,6 +86,9 @@ CONFIG_PCIE_LAYERSCAPE_EP=y
>   CONFIG_POWER_LEGACY=y
>   CONFIG_POWER_I2C=y
>   CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SYS_NS16550=y
>   CONFIG_SPI=y
>   CONFIG_DM_SPI=y
> diff --git a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig b/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
> index 048b10fb7b9..f634eda43c6 100644
> --- a/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
> +++ b/configs/ls1088ardb_sdcard_qspi_SECURE_BOOT_defconfig
> @@ -90,6 +90,9 @@ CONFIG_MII=y
>   CONFIG_FSL_LS_MDIO=y
>   CONFIG_PCI=y
>   CONFIG_PCIE_LAYERSCAPE_RC=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SYS_NS16550=y
>   CONFIG_SPI=y
>   CONFIG_DM_SPI=y
> diff --git a/configs/lschlv2_defconfig b/configs/lschlv2_defconfig
> index 497da09d439..df214b323f7 100644
> --- a/configs/lschlv2_defconfig
> +++ b/configs/lschlv2_defconfig
> @@ -39,6 +39,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_KIRKWOOD_GPIO=y
>   # CONFIG_MMC is not set
>   CONFIG_MTD=y
> diff --git a/configs/lsxhl_defconfig b/configs/lsxhl_defconfig
> index cadeb9afd3c..6ccc0e775e5 100644
> --- a/configs/lsxhl_defconfig
> +++ b/configs/lsxhl_defconfig
> @@ -39,6 +39,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_KIRKWOOD_GPIO=y
>   # CONFIG_MMC is not set
>   CONFIG_MTD=y
> diff --git a/configs/mx6cuboxi_defconfig b/configs/mx6cuboxi_defconfig
> index 6422ac50e03..94fcabefaa4 100644
> --- a/configs/mx6cuboxi_defconfig
> +++ b/configs/mx6cuboxi_defconfig
> @@ -52,6 +52,7 @@ CONFIG_DM=y
>   CONFIG_SPL_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_FSL_USDHC=y
>   CONFIG_PHYLIB=y
> diff --git a/configs/mx6qsabrelite_defconfig b/configs/mx6qsabrelite_defconfig
> index 2b77a46badd..107172b62ef 100644
> --- a/configs/mx6qsabrelite_defconfig
> +++ b/configs/mx6qsabrelite_defconfig
> @@ -50,6 +50,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_USB_FUNCTION_FASTBOOT=y
>   CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>   CONFIG_SYS_I2C_LEGACY=y
> diff --git a/configs/net2big_v2_defconfig b/configs/net2big_v2_defconfig
> index 985f530fb87..f55ca673539 100644
> --- a/configs/net2big_v2_defconfig
> +++ b/configs/net2big_v2_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/netspace_lite_v2_defconfig b/configs/netspace_lite_v2_defconfig
> index 668f4ea291d..53ff4e21775 100644
> --- a/configs/netspace_lite_v2_defconfig
> +++ b/configs/netspace_lite_v2_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/netspace_max_v2_defconfig b/configs/netspace_max_v2_defconfig
> index 25ce3c61a1f..1195cc779b3 100644
> --- a/configs/netspace_max_v2_defconfig
> +++ b/configs/netspace_max_v2_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/netspace_mini_v2_defconfig b/configs/netspace_mini_v2_defconfig
> index 0c9a3036eb1..47ca1bdfae9 100644
> --- a/configs/netspace_mini_v2_defconfig
> +++ b/configs/netspace_mini_v2_defconfig
> @@ -46,6 +46,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_BLK=y
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
> diff --git a/configs/netspace_v2_defconfig b/configs/netspace_v2_defconfig
> index 8f662edd168..2d920ab1d17 100644
> --- a/configs/netspace_v2_defconfig
> +++ b/configs/netspace_v2_defconfig
> @@ -48,6 +48,7 @@ CONFIG_ENV_ADDR=0x70000
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_KIRKWOOD_GPIO=y
>   CONFIG_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MVTWSI=y
> diff --git a/configs/nitrogen6q2g_defconfig b/configs/nitrogen6q2g_defconfig
> index dbc1818caa4..313187845bb 100644
> --- a/configs/nitrogen6q2g_defconfig
> +++ b/configs/nitrogen6q2g_defconfig
> @@ -58,6 +58,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_USB_FUNCTION_FASTBOOT=y
>   CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>   CONFIG_SYS_I2C_LEGACY=y
> diff --git a/configs/nitrogen6q_defconfig b/configs/nitrogen6q_defconfig
> index d88d0719407..51626c14952 100644
> --- a/configs/nitrogen6q_defconfig
> +++ b/configs/nitrogen6q_defconfig
> @@ -58,6 +58,7 @@ CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_USB_FUNCTION_FASTBOOT=y
>   CONFIG_FASTBOOT_BUF_ADDR=0x12000000
>   CONFIG_SYS_I2C_LEGACY=y
> diff --git a/configs/nsa310s_defconfig b/configs/nsa310s_defconfig
> index 46ca3bac479..05a6761854b 100644
> --- a/configs/nsa310s_defconfig
> +++ b/configs/nsa310s_defconfig
> @@ -43,6 +43,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   # CONFIG_MMC is not set
>   CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/omap5_uevm_defconfig b/configs/omap5_uevm_defconfig
> index c43418a0224..2908bf5d364 100644
> --- a/configs/omap5_uevm_defconfig
> +++ b/configs/omap5_uevm_defconfig
> @@ -47,6 +47,9 @@ CONFIG_SUPPORT_EMMC_BOOT=y
>   CONFIG_MMC_OMAP_HS=y
>   CONFIG_DM_ETH=y
>   CONFIG_SCSI=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_CONS_INDEX=3
>   CONFIG_SYS_NS16550=y
>   CONFIG_USB=y
> diff --git a/configs/pg_wcom_expu1_defconfig b/configs/pg_wcom_expu1_defconfig
> index 53d57e0ba20..a97616ad777 100644
> --- a/configs/pg_wcom_expu1_defconfig
> +++ b/configs/pg_wcom_expu1_defconfig
> @@ -73,6 +73,9 @@ CONFIG_PHY_GIGE=y
>   CONFIG_MII=y
>   CONFIG_TSEC_ENET=y
>   CONFIG_SYS_QE_FW_ADDR=0x60020000
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SPECIFY_CONSOLE_INDEX=y
>   CONFIG_DM_SERIAL=y
>   CONFIG_SYS_NS16550=y
> diff --git a/configs/pg_wcom_seli8_defconfig b/configs/pg_wcom_seli8_defconfig
> index 3eaf7fde9c9..65d7b852f49 100644
> --- a/configs/pg_wcom_seli8_defconfig
> +++ b/configs/pg_wcom_seli8_defconfig
> @@ -73,6 +73,9 @@ CONFIG_PHY_GIGE=y
>   CONFIG_MII=y
>   CONFIG_TSEC_ENET=y
>   CONFIG_SYS_QE_FW_ADDR=0x60020000
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=1
> +CONFIG_SYS_SCSI_MAX_LUN=1
>   CONFIG_SPECIFY_CONSOLE_INDEX=y
>   CONFIG_DM_SERIAL=y
>   CONFIG_SYS_NS16550=y
> diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
> index c9afe4c8408..04a1b26a07a 100644
> --- a/configs/sandbox64_defconfig
> +++ b/configs/sandbox64_defconfig
> @@ -104,6 +104,7 @@ CONFIG_DEVRES=y
>   CONFIG_DEBUG_DEVRES=y
>   CONFIG_ADC=y
>   CONFIG_ADC_SANDBOX=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_AXI=y
>   CONFIG_AXI_SANDBOX=y
>   CONFIG_BUTTON=y
> diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
> index d0886b7071f..5a7978adeb0 100644
> --- a/configs/sandbox_defconfig
> +++ b/configs/sandbox_defconfig
> @@ -128,6 +128,7 @@ CONFIG_DEBUG_DEVRES=y
>   CONFIG_SIMPLE_PM_BUS=y
>   CONFIG_ADC=y
>   CONFIG_ADC_SANDBOX=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_AXI=y
>   CONFIG_AXI_SANDBOX=y
>   CONFIG_BOOTCOUNT_LIMIT=y
> @@ -249,6 +250,9 @@ CONFIG_RESET_SCMI=y
>   CONFIG_DM_RNG=y
>   CONFIG_DM_RTC=y
>   CONFIG_RTC_RV8803=y
> +CONFIG_SCSI_AHCI_PLAT=y
> +CONFIG_SYS_SCSI_MAX_SCSI_ID=8
> +CONFIG_SYS_SCSI_MAX_LUN=4
>   CONFIG_SANDBOX_SERIAL=y
>   CONFIG_SMEM=y
>   CONFIG_SANDBOX_SMEM=y
> @@ -258,6 +262,7 @@ CONFIG_SOUND_MAX98357A=y
>   CONFIG_SOUND_SANDBOX=y
>   CONFIG_SOC_DEVICE=y
>   CONFIG_SANDBOX_SPI=y
> +CONFIG_SCSI=y
>   CONFIG_SPMI=y
>   CONFIG_SPMI_SANDBOX=y
>   CONFIG_SYSINFO=y
> @@ -301,6 +306,7 @@ CONFIG_CMD_DHRYSTONE=y
>   CONFIG_ECDSA=y
>   CONFIG_ECDSA_VERIFY=y
>   CONFIG_TPM=y
> +CONFIG_SHA384=y
>   CONFIG_LZ4=y
>   CONFIG_ERRNO_STR=y
>   CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
> @@ -312,4 +318,3 @@ CONFIG_TEST_FDTDEC=y
>   CONFIG_UNIT_TEST=y
>   CONFIG_UT_TIME=y
>   CONFIG_UT_DM=y
> -CONFIG_SHA384=y
> diff --git a/configs/sheevaplug_defconfig b/configs/sheevaplug_defconfig
> index 6e39aa178a6..0c5031b2d22 100644
> --- a/configs/sheevaplug_defconfig
> +++ b/configs/sheevaplug_defconfig
> @@ -46,6 +46,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_NETCONSOLE=y
>   CONFIG_DM=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_MVEBU_MMC=y
>   CONFIG_MTD=y
>   CONFIG_MTD_RAW_NAND=y
> diff --git a/configs/tbs2910_defconfig b/configs/tbs2910_defconfig
> index e1278f2e70a..bde063438f1 100644
> --- a/configs/tbs2910_defconfig
> +++ b/configs/tbs2910_defconfig
> @@ -66,6 +66,7 @@ CONFIG_SYS_MMC_ENV_PART=1
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_DM_I2C=y
>   CONFIG_SYS_I2C_MXC=y
>   CONFIG_FSL_USDHC=y
> diff --git a/configs/theadorable_debug_defconfig b/configs/theadorable_debug_defconfig
> index a781f150e48..1c3dbe4a557 100644
> --- a/configs/theadorable_debug_defconfig
> +++ b/configs/theadorable_debug_defconfig
> @@ -54,6 +54,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   CONFIG_NET_RANDOM_ETHADDR=y
>   CONFIG_SPL_OF_TRANSLATE=y
>   CONFIG_SATA_MV=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_BOOTCOUNT_LIMIT=y
>   CONFIG_BOOTCOUNT_RAM=y
>   CONFIG_FPGA_ALTERA=y
> diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
> index b78e5099f56..054e008b2a9 100644
> --- a/configs/tools-only_defconfig
> +++ b/configs/tools-only_defconfig
> @@ -18,8 +18,8 @@ CONFIG_MISC_INIT_F=y
>   CONFIG_OF_CONTROL=y
>   CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>   # CONFIG_NET is not set
> -# CONFIG_GENERATE_ACPI_TABLE is not set
>   # CONFIG_ACPIGEN is not set
> +CONFIG_SYS_SATA_MAX_DEVICE=2
>   CONFIG_AXI=y
>   CONFIG_AXI_SANDBOX=y
>   CONFIG_SANDBOX_GPIO=y
> @@ -33,4 +33,5 @@ CONFIG_I2C_EDID=y
>   # CONFIG_VIRTIO_MMIO is not set
>   # CONFIG_VIRTIO_PCI is not set
>   # CONFIG_VIRTIO_SANDBOX is not set
> +# CONFIG_GENERATE_ACPI_TABLE is not set
>   # CONFIG_EFI_LOADER is not set
> diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
> index 90fce5ab4f7..6e8cb68e18a 100644
> --- a/configs/wandboard_defconfig
> +++ b/configs/wandboard_defconfig
> @@ -56,6 +56,7 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
>   CONFIG_DM=y
>   CONFIG_BOUNCE_BUFFER=y
>   CONFIG_DWC_AHSATA=y
> +CONFIG_SYS_SATA_MAX_DEVICE=1
>   CONFIG_DM_I2C=y
>   CONFIG_SPL_SYS_I2C_LEGACY=y
>   CONFIG_SYS_I2C_MXC=y
> diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
> index 1adf4dc8e2d..afc679421b7 100644
> --- a/drivers/ata/Kconfig
> +++ b/drivers/ata/Kconfig
> @@ -135,6 +135,16 @@ config SATA_SIL
>   	  Enable this driver to support the SIL3131, SIL3132 and SIL3124
>   	  SATA controllers.
>   
> +config SYS_SATA_MAX_DEVICE
> +	hex "Maximum number of SATA devices"
> +	default 0x8
> +	help
> +	  Sets the maximum number of SATA devices which can be supported
> +	  by U-Boot.
> +
> +	  This is only partially converted to driver model. See sata_bread()
> +	  for example, which shows where the conversion needs to be completed.
> +
>   endif # SATA
>   
>   endmenu
> diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
> index 3c826c95b78..2bee67d2e1a 100644
> --- a/drivers/scsi/Kconfig
> +++ b/drivers/scsi/Kconfig
> @@ -16,3 +16,33 @@ config DM_SCSI
>   	  which supports SCSI and SATA HDDs. For every device configuration
>   	  (IDs/LUNs) a block device is created with RAW read/write and
>   	  filesystem support.
> +
> +if SCSI && !DM_SCSI
> +
> +config SCSI_AHCI_PLAT
> +	bool "Platform-specific init of AHCI"
> +	help
> +	  This enables a way for boards to set up an AHCI device manually, by
> +	  called ahci_init() and providing an ahci_reset() mechanism.
> +
> +	  This is deprecated. An AHCI driver should be provided instead.
> +
> +config SYS_SCSI_MAX_SCSI_ID
> +	hex "Maximum supporedt SCSI ID"
> +	default 0x1
> +	help
> +	  Sets the maximum number of SCSI IDs to scan when looking for devices.
> +	  IDs from 0 to (this value - 1) are scanned.
> +
> +	  This is deprecated and is not needed when BLK is enabled.
> +
> +config SYS_SCSI_MAX_LUN
> +	hex "Maximum support SCSI LUN"
> +	default 0x1
> +	help
> +	  Sets the maximum number of SCSI Logical Unit Numbers (LUNs) to scan on
> +	  devices. LUNs from 0 to (this value - 1) are scanned.
> +
> +	  This is deprecated and is not needed when CONFIG_DM_SCSI is enabled.
> +
> +endif
> diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
> index e9f848636c6..25194eeec11 100644
> --- a/drivers/scsi/Makefile
> +++ b/drivers/scsi/Makefile
> @@ -15,4 +15,6 @@ obj-$(CONFIG_SCSI) += scsi.o
>   endif
>   endif
>   
> +ifdef CONFIG_SCSI
>   obj-$(CONFIG_SANDBOX) += sandbox_scsi.o
> +endif
> diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
> index 977d96a5a76..538d9c21978 100644
> --- a/include/configs/MPC837XERDB.h
> +++ b/include/configs/MPC837XERDB.h
> @@ -275,7 +275,6 @@
>   /*
>    * SATA
>    */
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1_OFFSET	0x18000
>   #define CONFIG_SYS_SATA1	(CONFIG_SYS_IMMR + CONFIG_SYS_SATA1_OFFSET)
> diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
> index 23b9969f84b..106d1e6a4b7 100644
> --- a/include/configs/P1010RDB.h
> +++ b/include/configs/P1010RDB.h
> @@ -544,7 +544,6 @@ extern unsigned long get_sdram_size(void);
>   #define CONFIG_FSL_SATA_V2
>   
>   #ifdef CONFIG_FSL_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
> index ceaed464fe0..e6d5321070b 100644
> --- a/include/configs/P2041RDB.h
> +++ b/include/configs/P2041RDB.h
> @@ -349,7 +349,6 @@
>   #define CONFIG_FSL_SATA_V2
>   
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/P4080DS.h b/include/configs/P4080DS.h
> index ed88b418441..8a0c7039f66 100644
> --- a/include/configs/P4080DS.h
> +++ b/include/configs/P4080DS.h
> @@ -11,7 +11,6 @@
>   
>   #define CONFIG_PCIE3
>   
> -#define CONFIG_SYS_SATA_MAX_DEVICE  2
>   #define CONFIG_LBA48
>   
>   #define CONFIG_SYS_SRIO
> diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
> index f60010f7876..9433f14227b 100644
> --- a/include/configs/T104xRDB.h
> +++ b/include/configs/T104xRDB.h
> @@ -438,7 +438,6 @@
>   /* SATA */
>   #define CONFIG_FSL_SATA_V2
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
> index f0bdcbae630..a41f9f0d9b8 100644
> --- a/include/configs/T208xQDS.h
> +++ b/include/configs/T208xQDS.h
> @@ -488,7 +488,6 @@
>    * SATA
>    */
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/T208xRDB.h b/include/configs/T208xRDB.h
> index 86dc5bfe82a..7165ba08283 100644
> --- a/include/configs/T208xRDB.h
> +++ b/include/configs/T208xRDB.h
> @@ -443,7 +443,6 @@
>    * SATA
>    */
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
> index 6923774a16f..daccd816c10 100644
> --- a/include/configs/T4240RDB.h
> +++ b/include/configs/T4240RDB.h
> @@ -180,7 +180,6 @@
>   
>   /* SATA */
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> @@ -466,7 +465,6 @@
>   
>   /* SATA */
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
> index e4e3872d1ca..1f017d13a72 100644
> --- a/include/configs/am57xx_evm.h
> +++ b/include/configs/am57xx_evm.h
> @@ -49,9 +49,6 @@
>   #define PHY_ANEG_TIMEOUT	8000	/* PHY needs longer aneg time at 1G */
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   
>   /*
>    * Default to using SPI for environment, etc.
> diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
> index d5eacf1ec71..896b636cf11 100644
> --- a/include/configs/clearfog.h
> +++ b/include/configs/clearfog.h
> @@ -36,11 +36,6 @@
>   #endif
>   
>   /* SATA support */
> -#ifdef CONFIG_SCSI
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -#endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
>   #define RELOCATION_LIMITS_ENV_SETTINGS	\
> diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h
> index 40bc8215480..c19aaaccb10 100644
> --- a/include/configs/cm_fx6.h
> +++ b/include/configs/cm_fx6.h
> @@ -160,7 +160,6 @@
>   #define CONFIG_EHCI_HCD_INIT_AFTER_RESET	/* For OTG port */
>   
>   /* SATA */
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_LBA48
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
> diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h
> index 2c27a003b3d..43f8fdd1656 100644
> --- a/include/configs/controlcenterdc.h
> +++ b/include/configs/controlcenterdc.h
> @@ -21,9 +21,6 @@
>   /*
>    * SATA/SCSI/AHCI configuration
>    */
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
> index 6d272c6d880..bd264122da7 100644
> --- a/include/configs/corenet_ds.h
> +++ b/include/configs/corenet_ds.h
> @@ -347,7 +347,6 @@
>   
>   /* SATA */
>   #ifdef CONFIG_FSL_SATA_V2
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_SATA1
>   #define CONFIG_SYS_SATA1		CONFIG_SYS_MPC85xx_SATA1_ADDR
>   #define CONFIG_SYS_SATA1_FLAGS		FLAGS_DMA
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index f5ea3657a4a..a81f1eea4d6 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -16,9 +16,6 @@
>   /*
>    * SATA/SCSI/AHCI configuration
>    */
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   
>   /* Environment in SPI NOR flash */
>   
> diff --git a/include/configs/db-mv784mp-gp.h b/include/configs/db-mv784mp-gp.h
> index 449a56753b1..7baae3b090d 100644
> --- a/include/configs/db-mv784mp-gp.h
> +++ b/include/configs/db-mv784mp-gp.h
> @@ -28,7 +28,6 @@
>   #define PHY_ANEG_TIMEOUT	8000	/* PHY needs a longer aneg time */
>   
>   /* SATA support */
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_LBA48
>   
>   /* PCIe support */
> diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
> index aec30c461de..cb54abaecd4 100644
> --- a/include/configs/dra7xx_evm.h
> +++ b/include/configs/dra7xx_evm.h
> @@ -75,7 +75,6 @@
>   /* SPI SPL */
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   /* NAND support */
>   #ifdef CONFIG_MTD_RAW_NAND
> diff --git a/include/configs/dreamplug.h b/include/configs/dreamplug.h
> index beea234d8dc..0b3ee131ae6 100644
> --- a/include/configs/dreamplug.h
> +++ b/include/configs/dreamplug.h
> @@ -45,7 +45,6 @@
>    * SATA Driver configuration
>    */
>   #ifdef CONFIG_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_LBA48
>   #endif /* CONFIG_SATA */
>   
> diff --git a/include/configs/durian.h b/include/configs/durian.h
> index ce9e57c64be..d912da0bd00 100644
> --- a/include/configs/durian.h
> +++ b/include/configs/durian.h
> @@ -19,10 +19,6 @@
>   #define CONFIG_PCI_SCAN_SHOW
>   
>   /* SCSI */
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID 4
> -#define CONFIG_SYS_SCSI_MAX_LUN 1
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SATA_MAX_DEVICE 4
>   
>   /* BOOT */
>   #define CONFIG_SYS_BOOTM_LEN	(60 * 1024 * 1024)
> diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
> index bde14a7b3da..402c5bfacbe 100644
> --- a/include/configs/ge_bx50v3.h
> +++ b/include/configs/ge_bx50v3.h
> @@ -21,7 +21,6 @@
>   
>   /* SATA Configs */
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/include/configs/goflexhome.h b/include/configs/goflexhome.h
> index 90e37d98535..85b220ffb9a 100644
> --- a/include/configs/goflexhome.h
> +++ b/include/configs/goflexhome.h
> @@ -61,7 +61,6 @@
>   
>   /* SATA driver configuration */
>   #ifdef CONFIG_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_LBA48
>   #endif /* CONFIG_SATA */
>   
> diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
> index 2853d75a163..29d538c0f9d 100644
> --- a/include/configs/gw_ventana.h
> +++ b/include/configs/gw_ventana.h
> @@ -41,7 +41,6 @@
>    * SATA Configs
>    */
>   #ifdef CONFIG_CMD_SATA
> -  #define CONFIG_SYS_SATA_MAX_DEVICE	1
>     #define CONFIG_DWC_AHSATA_PORT_ID	0
>     #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>     #define CONFIG_LBA48
> diff --git a/include/configs/helios4.h b/include/configs/helios4.h
> index c1d42f17ca6..56fa135a3fc 100644
> --- a/include/configs/helios4.h
> +++ b/include/configs/helios4.h
> @@ -36,11 +36,6 @@
>   #endif
>   
>   /* SATA support */
> -#ifdef CONFIG_SCSI
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -#endif
>   
>   /* Keep device tree and initrd in lower memory so the kernel can access them */
>   #define RELOCATION_LIMITS_ENV_SETTINGS	\
> diff --git a/include/configs/highbank.h b/include/configs/highbank.h
> index 6d559746ab0..55c874bf619 100644
> --- a/include/configs/highbank.h
> +++ b/include/configs/highbank.h
> @@ -16,10 +16,6 @@
>   
>   #define CONFIG_SYS_BOOTCOUNT_LE		/* Use little-endian accessors */
>   
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	5
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -
>   #define CONFIG_BOOT_RETRY_TIME		-1
>   #define CONFIG_RESET_TO_RETRY
>   
> diff --git a/include/configs/lacie_kw.h b/include/configs/lacie_kw.h
> index 046f1888cb1..a39f786d572 100644
> --- a/include/configs/lacie_kw.h
> +++ b/include/configs/lacie_kw.h
> @@ -32,9 +32,6 @@
>   #define CONFIG_LBA48
>   #if defined(CONFIG_NETSPACE_MAX_V2) || defined(CONFIG_D2NET_V2) || \
>   	defined(CONFIG_NET2BIG_V2)
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
> -#else
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #endif
>   #endif /* CONFIG_SATA */
>   
> diff --git a/include/configs/ls1012a2g5rdb.h b/include/configs/ls1012a2g5rdb.h
> index 10274317cf8..0263bb82893 100644
> --- a/include/configs/ls1012a2g5rdb.h
> +++ b/include/configs/ls1012a2g5rdb.h
> @@ -14,13 +14,9 @@
>   #define CONFIG_SYS_SDRAM_SIZE		0x40000000
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
> -
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS		\
>   	"verify=no\0"				\
> diff --git a/include/configs/ls1012a_common.h b/include/configs/ls1012a_common.h
> index e33bafac61b..f92ff17eeb8 100644
> --- a/include/configs/ls1012a_common.h
> +++ b/include/configs/ls1012a_common.h
> @@ -31,13 +31,9 @@
>   #define CONFIG_SYS_FSL_QSPI_BASE	0x40000000
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
> -
>   /* I2C */
>   
>   /* GPIO */
> diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
> index c02be10c6fa..2e5b804a4cb 100644
> --- a/include/configs/ls1021aiot.h
> +++ b/include/configs/ls1021aiot.h
> @@ -81,16 +81,12 @@
>    */
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   #ifndef PCI_DEVICE_ID_FREESCALE_AHCI
>   #define PCI_DEVICE_ID_FREESCALE_AHCI	0x0440
>   #endif
>   #define CONFIG_SCSI_DEV_LIST		{PCI_VENDOR_ID_FREESCALE, \
>   	PCI_DEVICE_ID_FREESCALE_AHCI}
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -
>   /* SPI */
>   
>   /*
> diff --git a/include/configs/ls1028aqds.h b/include/configs/ls1028aqds.h
> index 2c50490b9c6..1b4d181310f 100644
> --- a/include/configs/ls1028aqds.h
> +++ b/include/configs/ls1028aqds.h
> @@ -72,11 +72,8 @@
>   #endif
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
>   #ifndef SPL_NO_ENV
>   #undef CONFIG_EXTRA_ENV_SETTINGS
>   #define CONFIG_EXTRA_ENV_SETTINGS \
> diff --git a/include/configs/ls1028ardb.h b/include/configs/ls1028ardb.h
> index 653d2ac678a..0770f4e268a 100644
> --- a/include/configs/ls1028ardb.h
> +++ b/include/configs/ls1028ardb.h
> @@ -57,12 +57,9 @@
>   #endif
>   
>   /* SATA */
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> -#define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SATA1                        AHCI_BASE_ADDR1
>   
>   /* Initial environment variables */
> diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
> index 083e2e65605..ea6831bb827 100644
> --- a/include/configs/ls1043aqds.h
> +++ b/include/configs/ls1043aqds.h
> @@ -46,7 +46,6 @@
>   #endif
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   /* EEPROM */
>   #define CONFIG_SYS_I2C_EEPROM_NXID
> @@ -54,9 +53,6 @@
>   
>   #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
> -
>   /*
>    * IFC Definitions
>    */
> diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
> index 507d770f176..31b578ae33b 100644
> --- a/include/configs/ls1043ardb.h
> +++ b/include/configs/ls1043ardb.h
> @@ -234,8 +234,6 @@
>   
>   /* SATA */
>   #ifndef SPL_NO_SATA
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		2
> -#define CONFIG_SYS_SCSI_MAX_LUN			2
>   #define SCSI_VEND_ID 0x1b4b
>   #define SCSI_DEV_ID  0x9170
>   #define CONFIG_SCSI_DEV_LIST {SCSI_VEND_ID, SCSI_DEV_ID}
> diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
> index 943d65920e8..7353552d763 100644
> --- a/include/configs/ls1046a_common.h
> +++ b/include/configs/ls1046a_common.h
> @@ -124,12 +124,7 @@
>   
>   /* SATA */
>   #ifndef SPL_NO_SATA
> -#define CONFIG_SCSI_AHCI_PLAT
> -
>   #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
> -
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
>   #endif
>   
>   /* FMan ucode */
> diff --git a/include/configs/ls1088a_common.h b/include/configs/ls1088a_common.h
> index e385fded579..166817f9e12 100644
> --- a/include/configs/ls1088a_common.h
> +++ b/include/configs/ls1088a_common.h
> @@ -130,11 +130,7 @@ unsigned long long get_qixis_addr(void);
>   
>   /* SATA */
>   #ifdef CONFIG_SCSI
> -#define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SATA1		AHCI_BASE_ADDR1
> -
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   #endif
>   
>   /* Physical Memory Map */
> diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
> index 8b4ea499e86..7554de1f6d3 100644
> --- a/include/configs/ls2080aqds.h
> +++ b/include/configs/ls2080aqds.h
> @@ -33,14 +33,10 @@
>   #endif
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
>   #define CONFIG_SYS_SATA2			AHCI_BASE_ADDR2
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
> -
>   #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
>   #define CONFIG_SYS_NOR_AMASK		IFC_AMASK(128*1024*1024)
>   #define CONFIG_SYS_NOR_AMASK_EARLY	IFC_AMASK(64*1024*1024)
> diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
> index 1253698c883..1c05b086778 100644
> --- a/include/configs/ls2080ardb.h
> +++ b/include/configs/ls2080ardb.h
> @@ -43,14 +43,10 @@
>   #endif
>   
>   /* SATA */
> -#define CONFIG_SCSI_AHCI_PLAT
>   
>   #define CONFIG_SYS_SATA1			AHCI_BASE_ADDR1
>   #define CONFIG_SYS_SATA2			AHCI_BASE_ADDR2
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
> -#define CONFIG_SYS_SCSI_MAX_LUN			1
> -
>   #if !defined(CONFIG_FSL_QSPI) || defined(CONFIG_TFABOOT)
>   
>   #define CONFIG_SYS_NOR0_CSPR_EXT	(0x0)
> diff --git a/include/configs/lsxl.h b/include/configs/lsxl.h
> index e8e02e7f7b8..7fa4f00734c 100644
> --- a/include/configs/lsxl.h
> +++ b/include/configs/lsxl.h
> @@ -96,7 +96,6 @@
>   #endif /* CONFIG_CMD_NET */
>   
>   #ifdef CONFIG_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE 1
>   #define CONFIG_SYS_64BIT_LBA
>   #define CONFIG_LBA48
>   #endif
> diff --git a/include/configs/lx2160a_common.h b/include/configs/lx2160a_common.h
> index eac309de804..a38b2f66650 100644
> --- a/include/configs/lx2160a_common.h
> +++ b/include/configs/lx2160a_common.h
> @@ -110,11 +110,8 @@
>   /* SATA */
>   
>   #ifdef CONFIG_SCSI
> -#define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_SYS_SATA1		AHCI_BASE_ADDR1
>   #define CONFIG_SYS_SATA2		AHCI_BASE_ADDR2
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
>   #endif
>   
>   /* USB */
> diff --git a/include/configs/m53menlo.h b/include/configs/m53menlo.h
> index 4a1d959d17c..8486cf8fc6e 100644
> --- a/include/configs/m53menlo.h
> +++ b/include/configs/m53menlo.h
> @@ -99,7 +99,6 @@
>    * SATA
>    */
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/include/configs/mvebu_armada-37xx.h b/include/configs/mvebu_armada-37xx.h
> index c192512e85a..fd9ce344dbd 100644
> --- a/include/configs/mvebu_armada-37xx.h
> +++ b/include/configs/mvebu_armada-37xx.h
> @@ -51,13 +51,9 @@
>   /*
>    * SATA/SCSI/AHCI configuration
>    */
> -#define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_LBA48
>   #define CONFIG_SYS_64BIT_LBA
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -
>   #define BOOT_TARGET_DEVICES(func) \
>   	func(MMC, mmc, 1) \
>   	func(MMC, mmc, 0) \
> diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
> index 6a113ec2145..44bba6555cb 100644
> --- a/include/configs/mvebu_armada-8k.h
> +++ b/include/configs/mvebu_armada-8k.h
> @@ -46,13 +46,9 @@
>   /*
>    * SATA/SCSI/AHCI configuration
>    */
> -#define CONFIG_SCSI_AHCI_PLAT
>   #define CONFIG_LBA48
>   #define CONFIG_SYS_64BIT_LBA
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	2
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -
>   /*
>    * PCI configuration
>    */
> diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
> index 92140df4be1..01ed221873a 100644
> --- a/include/configs/mx53loco.h
> +++ b/include/configs/mx53loco.h
> @@ -125,7 +125,6 @@
>   #define CONFIG_BOARD_SIZE_LIMIT		785408
>   
>   #ifdef CONFIG_CMD_SATA
> -	#define CONFIG_SYS_SATA_MAX_DEVICE      1
>   	#define CONFIG_DWC_AHSATA_PORT_ID       0
>   	#define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_BASE_ADDR
>   	#define CONFIG_LBA48
> diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h
> index 7d3e651f44d..1c25857296c 100644
> --- a/include/configs/mx6cuboxi.h
> +++ b/include/configs/mx6cuboxi.h
> @@ -18,7 +18,6 @@
>   
>   /* SATA Configuration */
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE      1
>   #define CONFIG_DWC_AHSATA_PORT_ID       0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR     SATA_ARB_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h
> index 1a1c08bd308..678b433cd7b 100644
> --- a/include/configs/nitrogen6x.h
> +++ b/include/configs/nitrogen6x.h
> @@ -23,7 +23,6 @@
>    * SATA Configs
>    */
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/include/configs/nsa310s.h b/include/configs/nsa310s.h
> index 8cc9ca6a49d..ccf4519119a 100644
> --- a/include/configs/nsa310s.h
> +++ b/include/configs/nsa310s.h
> @@ -32,7 +32,6 @@
>   
>   /* SATA driver configuration */
>   #ifdef CONFIG_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_LBA48
>   #endif /* CONFIG_SATA */
>   
> diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h
> index e9a9d50db1d..75e84c35ee0 100644
> --- a/include/configs/omap5_uevm.h
> +++ b/include/configs/omap5_uevm.h
> @@ -49,8 +49,4 @@
>   
>   #define CONSOLEDEV		"ttyS2"
>   
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
> -#define CONFIG_SYS_SCSI_MAX_LUN		1
> -
>   #endif /* __CONFIG_OMAP5_EVM_H */
> diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
> index b993ec8316f..92008cd38e4 100644
> --- a/include/configs/p1_p2_rdb_pc.h
> +++ b/include/configs/p1_p2_rdb_pc.h
> @@ -138,7 +138,6 @@
>   #define CONFIG_PCIE1	/* PCIE controller 1 (slot 1) */
>   #define CONFIG_PCIE2	/* PCIE controller 2 (slot 2) */
>   
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_LBA48
>   
>   #define CONFIG_HWCONFIG
> diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
> index c4cc57401bc..073086e912a 100644
> --- a/include/configs/sandbox.h
> +++ b/include/configs/sandbox.h
> @@ -40,10 +40,4 @@
>   #define CONFIG_SYS_ATA_STRIDE		4
>   #endif
>   
> -#define CONFIG_SCSI_AHCI_PLAT
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	8
> -#define CONFIG_SYS_SCSI_MAX_LUN		4
> -
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
> -
>   #endif
> diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h
> index 8dba4fcb4f8..4499a63aed2 100644
> --- a/include/configs/sheevaplug.h
> +++ b/include/configs/sheevaplug.h
> @@ -46,7 +46,6 @@
>    * SATA driver configuration
>    */
>   #ifdef CONFIG_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	2
>   #define CONFIG_LBA48
>   #endif /* CONFIG_SATA */
>   
> diff --git a/include/configs/sifive-unmatched.h b/include/configs/sifive-unmatched.h
> index 30adfe948f1..087764666bf 100644
> --- a/include/configs/sifive-unmatched.h
> +++ b/include/configs/sifive-unmatched.h
> @@ -32,8 +32,6 @@
>   
>   #define CONFIG_STANDALONE_LOAD_ADDR	0x80200000
>   
> -#define CONFIG_SYS_SCSI_MAX_SCSI_ID	4
> -
>   /* Environment options */
>   
>   #ifndef CONFIG_SPL_BUILD
> diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h
> index 58ccafc385a..065b406e2e7 100644
> --- a/include/configs/tbs2910.h
> +++ b/include/configs/tbs2910.h
> @@ -40,7 +40,6 @@
>   
>   /* SATA */
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/include/configs/theadorable.h b/include/configs/theadorable.h
> index 3c942cc6fa0..14817b165cf 100644
> --- a/include/configs/theadorable.h
> +++ b/include/configs/theadorable.h
> @@ -41,7 +41,6 @@
>   	"initrd_high=0x10000000\0"
>   
>   /* SATA support */
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_LBA48
>   
>   /* Enable LCD and reserve 512KB from top of memory*/
> diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
> index 051c18ca232..80e8fe1deb2 100644
> --- a/include/configs/wandboard.h
> +++ b/include/configs/wandboard.h
> @@ -17,7 +17,6 @@
>   /* SATA Configs */
>   
>   #ifdef CONFIG_CMD_SATA
> -#define CONFIG_SYS_SATA_MAX_DEVICE	1
>   #define CONFIG_DWC_AHSATA_PORT_ID	0
>   #define CONFIG_DWC_AHSATA_BASE_ADDR	SATA_ARB_BASE_ADDR
>   #define CONFIG_LBA48
> diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
> index c6d735feb0a..691c9c4d338 100644
> --- a/scripts/config_whitelist.txt
> +++ b/scripts/config_whitelist.txt
> @@ -725,7 +725,6 @@ CONFIG_SAR_REG
>   CONFIG_SATA1
>   CONFIG_SATA2
>   CONFIG_SCIF_A
> -CONFIG_SCSI_AHCI_PLAT
>   CONFIG_SCSI_DEV_LIST
>   CONFIG_SC_TIMER_CLK
>   CONFIG_SDCARD
> @@ -1859,7 +1858,6 @@ CONFIG_SYS_SATA2
>   CONFIG_SYS_SATA2_FLAGS
>   CONFIG_SYS_SATA2_OFFSET
>   CONFIG_SYS_SATA_FAT_BOOT_PARTITION
> -CONFIG_SYS_SATA_MAX_DEVICE
>   CONFIG_SYS_SBFHDR_DATA_OFFSET
>   CONFIG_SYS_SBFHDR_SIZE
>   CONFIG_SYS_SCCR_SATACM
> @@ -1867,8 +1865,6 @@ CONFIG_SYS_SCCR_TSEC1CM
>   CONFIG_SYS_SCCR_TSEC2CM
>   CONFIG_SYS_SCCR_USBDRCM
>   CONFIG_SYS_SCR
> -CONFIG_SYS_SCSI_MAX_LUN
> -CONFIG_SYS_SCSI_MAX_SCSI_ID
>   CONFIG_SYS_SDRAM
>   CONFIG_SYS_SDRAM_BASE
>   CONFIG_SYS_SDRAM_BASE0

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 8/8] dm: scsi: Add a migration deadline for scsi
  2022-01-31 14:49 ` [PATCH 8/8] dm: scsi: Add a migration deadline for scsi Simon Glass
@ 2022-02-01  6:15   ` Stefan Roese
  2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Roese @ 2022-02-01  6:15 UTC (permalink / raw)
  To: Simon Glass, U-Boot Mailing List
  Cc: Tom Rini, Michael Walle, Marek Behún, Marek Vasut,
	Pavel Herrmann, Rob Herring

On 1/31/22 15:49, Simon Glass wrote:
> Very few boards remain to be migrated:
> 
>     am57xx_hs_evm_usb
>     controlcenterdc
>     highbank
>     ls1021atsn_qspi
>     ls1021atsn_sdcard
>     ls1021atwr_sdcard_ifc_SECURE_BOOT
>     ls1046ardb_sdcard_SECURE_BOOT
>     ls1088ardb_sdcard_qspi_SECURE_BOOT
>     omap5_uevm
>     pg_wcom_expu1
>     pg_wcom_seli8
>     sandbox
>     sandbox64
>     sandbox_flattree
>     sandbox_noinst
>     sandbox_spl
>     tools-only
> 
> Addd a migration deadline for a year out.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
> 
>   Makefile | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/Makefile b/Makefile
> index 212124522e6..31de3c1ad78 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1134,6 +1134,7 @@ endif
>   	@# is enable to tell 'deprecated' that one of these symbols exists
>   	$(call deprecated,CONFIG_TIMER,Timer drivers,v2023.01,$(if $(strip $(CONFIG_SYS_TIMER_RATE)$(CONFIG_SYS_TIMER_COUNTER)),x))
>   	$(call deprecated,CONFIG_DM_SERIAL,Serial drivers,v2023.04,$(CONFIG_SERIAL))
> +	$(call deprecated,CONFIG_DM_SCSI,SCSI drivers,v2023.04,$(CONFIG_SCSI))
>   	@# Check that this build does not use CONFIG options that we do not
>   	@# know about unless they are in Kconfig. All the existing CONFIG
>   	@# options are whitelisted, so new ones should not be added.

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver
  2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
  2022-02-01  6:08   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle, Pali Rohár

[-- Attachment #1: Type: text/plain, Size: 294 bytes --]

On Mon, Jan 31, 2022 at 07:49:31AM -0700, Simon Glass wrote:

> This is not used in U-Boot and has not been converted to driver model.
> Drop it.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 2/8] sata: Only support BLK
  2022-01-31 14:49 ` [PATCH 2/8] sata: Only support BLK Simon Glass
  2022-02-01  6:08   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle, Pali Rohár

[-- Attachment #1: Type: text/plain, Size: 396 bytes --]

On Mon, Jan 31, 2022 at 07:49:32AM -0700, Simon Glass wrote:

> No boards currently use SATA without BLK:
> 
>    ./tools/moveconfig.py -f SATA ~BLK
>    0 matches
> 
> Make SATA depend on BLK to avoid any future confusion. Drop the dead code.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 3/8] sata: Rearrange Kconfig for SATA
  2022-01-31 14:49 ` [PATCH 3/8] sata: Rearrange Kconfig for SATA Simon Glass
  2022-02-01  6:09   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle, Pali Rohár

[-- Attachment #1: Type: text/plain, Size: 331 bytes --]

On Mon, Jan 31, 2022 at 07:49:33AM -0700, Simon Glass wrote:

> Move the SATA options inside an 'if SATA' part, so they are grouped.
> 
> Fix the 'Complient' typo while we are here.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 4/8] sata: sata_sil: Only support BLK
  2022-01-31 14:49 ` [PATCH 4/8] sata: sata_sil: Only support BLK Simon Glass
  2022-02-01  6:13   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass; +Cc: U-Boot Mailing List, Stefan Roese, Michael Walle

[-- Attachment #1: Type: text/plain, Size: 284 bytes --]

On Mon, Jan 31, 2022 at 07:49:34AM -0700, Simon Glass wrote:

> No boards use this driver without CONFIG_BLK, so clean up the dead code.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 5/8] ahci: Make ahci drivers depend on AHCI
  2022-01-31 14:49 ` [PATCH 5/8] ahci: Make ahci drivers depend on AHCI Simon Glass
  2022-02-01  6:14   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle,
	Pali Rohár, Rob Herring

[-- Attachment #1: Type: text/plain, Size: 532 bytes --]

On Mon, Jan 31, 2022 at 07:49:35AM -0700, Simon Glass wrote:

> At present all ahci drivers depend on AHCI except for DWC_AHCI. But no
> boards enable that without also enabling AHCI:
> 
>    /tools/moveconfig.py -f ~AHCI DWC_AHCI
>    0 matches
> 
> Group them together and sort them in order by Kconfig name (except for
> AHCI_MVEBU which uses a different naming convention).
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE
  2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
  2022-01-31 15:58   ` Heinrich Schuchardt
  2022-02-01  6:14   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  2 siblings, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle, Alison Wang,
	Andre Przywara, Biwen Li, Dennis Gilmore, Heiko Schocher,
	Heinrich Schuchardt, Igor Opaniuk, Marek Behún, Mario Six,
	Meenakshi Aggarwal, Mian Yousaf Kaukab, Mingkai Hu,
	Patrick Delaunay, Pramod Kumar, Priyanka Jain, Rajesh Bhagat,
	Rasmus Villemoes, Rick Chen, Rob Herring, Tang Yuantian,
	Wasim Khan, Yangbo Lu, liuhao, shuyiqi

[-- Attachment #1: Type: text/plain, Size: 513 bytes --]

On Mon, Jan 31, 2022 at 07:49:36AM -0700, Simon Glass wrote:

> This is defined based on two other CONFIGs for all boards except sandbox
> and durian.
> 
> For sandbox the value does not matter. For durian the value seems
> excessive.
> 
> Drop the option completely, to simplify configuration and reduce the
> number of things we need to convert to Kconfig.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig
  2022-01-31 14:49 ` [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig Simon Glass
  2022-02-01  6:14   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle,
	Aleksandar Gerasimovski, Alison Wang, Andre Przywara,
	Andrew F. Davis, Baruch Siach, Bin Meng, Biwen Li,
	Dennis Gilmore, Fabio Estevam, Gerald Kerma, Green Wan,
	Heiko Schocher, Ian Ray, Igor Opaniuk, Jason Cooper, Jason Liu,
	Luka Perkov, Marek Behún, Marek Vasut, Mario Six,
	Martyn Welch, Meenakshi Aggarwal, Mian Yousaf Kaukab, Mingkai Hu,
	Nikita Kiryanov, Olaf Mandel, Pali Rohár, Patrick Delaunay,
	Paul Walmsley, Pragnesh Patel, Pramod Kumar, Priyanka Jain,
	Qiang Zhao, Rainer Boschung, Rajesh Bhagat, Rasmus Villemoes,
	Rick Chen, Ruchika Gupta, Sean Anderson, Shengzhou Liu,
	Simon Guinot, Sinan Akman, Soeren Moch, Tang Yuantian,
	Tim Harvey, Tony Dinh, Troy Kisky, Udit Agarwal, Vladimir Oltean,
	Wasim Khan, Wolfgang Denk, Yangbo Lu, liuhao, shuyiqi

[-- Attachment #1: Type: text/plain, Size: 478 bytes --]

On Mon, Jan 31, 2022 at 07:49:37AM -0700, Simon Glass wrote:

> This converts the following to Kconfig:
>    CONFIG_SCSI_AHCI_PLAT
>    CONFIG_SYS_SCSI_MAX_SCSI_ID
>    CONFIG_SYS_SCSI_MAX_LUN
>    CONFIG_SYS_SATA_MAX_DEVICE
> 
> Drop CONFIG_SCSI for everything except the sandbox build. We only need
> one build for tests.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH 8/8] dm: scsi: Add a migration deadline for scsi
  2022-01-31 14:49 ` [PATCH 8/8] dm: scsi: Add a migration deadline for scsi Simon Glass
  2022-02-01  6:15   ` Stefan Roese
@ 2022-02-09 16:39   ` Tom Rini
  1 sibling, 0 replies; 28+ messages in thread
From: Tom Rini @ 2022-02-09 16:39 UTC (permalink / raw)
  To: Simon Glass
  Cc: U-Boot Mailing List, Stefan Roese, Michael Walle,
	Marek Behún, Marek Vasut, Pavel Herrmann, Rob Herring

[-- Attachment #1: Type: text/plain, Size: 693 bytes --]

On Mon, Jan 31, 2022 at 07:49:38AM -0700, Simon Glass wrote:

> Very few boards remain to be migrated:
> 
>    am57xx_hs_evm_usb
>    controlcenterdc
>    highbank
>    ls1021atsn_qspi
>    ls1021atsn_sdcard
>    ls1021atwr_sdcard_ifc_SECURE_BOOT
>    ls1046ardb_sdcard_SECURE_BOOT
>    ls1088ardb_sdcard_qspi_SECURE_BOOT
>    omap5_uevm
>    pg_wcom_expu1
>    pg_wcom_seli8
>    sandbox
>    sandbox64
>    sandbox_flattree
>    sandbox_noinst
>    sandbox_spl
>    tools-only
> 
> Addd a migration deadline for a year out.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-02-09 16:43 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-31 14:49 [PATCH 0/8] scsi: Convert some options to Kconfig Simon Glass
2022-01-31 14:49 ` [PATCH 1/8] sata: Drop Silicon Image SIL3114 SATA driver Simon Glass
2022-02-01  6:08   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 2/8] sata: Only support BLK Simon Glass
2022-02-01  6:08   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 3/8] sata: Rearrange Kconfig for SATA Simon Glass
2022-02-01  6:09   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 4/8] sata: sata_sil: Only support BLK Simon Glass
2022-02-01  6:13   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 5/8] ahci: Make ahci drivers depend on AHCI Simon Glass
2022-02-01  6:14   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 6/8] scsi: Drop CONFIG_SYS_SCSI_MAX_DEVICE Simon Glass
2022-01-31 15:58   ` Heinrich Schuchardt
2022-01-31 16:04     ` Tom Rini
2022-01-31 16:13       ` Simon Glass
2022-02-01  6:14   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 7/8] Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig Simon Glass
2022-02-01  6:14   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini
2022-01-31 14:49 ` [PATCH 8/8] dm: scsi: Add a migration deadline for scsi Simon Glass
2022-02-01  6:15   ` Stefan Roese
2022-02-09 16:39   ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.