At present U-Boot has a SCSI uclass but it does not have any operations. The global scsi_exec() function is still used to execute SCSI commands.
This series tidies this up with the following changes: - Move CONFIG_SCSI and CONFIG_CMD_SATA to use Kconfig - Move SCSI and SATA code into separate drivers/ directories - Add operations to the SCSI uclass - Add driver-model support to AHCI - Move link over to use CONFIG_DM_SCSI - Drops an old SCSI driver for a single board that will likely be removed More work is still needed, such as adding operations to the AHCI uclass, but from what I can tell this can be done as a separate step. Simon Glass (29): configs: Resync with savedefconfig Convert CONFIG_SCSI to Kconfig scsi: Drop sym53c8xx driver scsi: Drop scsi_print_error() Convert CONFIG_CMD_SATA to Kconfig Kconfig: Add CONFIG_SATA to enable SATA sata: Move drivers into new drivers/ata directory scsi: Move drivers into new drivers/scsi directory dm: scsi: Rearrange header file for driver model dm: scsi: Rename struct SCSI_cmd_block to struct scsi_cmd dm: scsi: Drop the ccb typedef dm: scsi: Use the uclass platform data dm: ahci: Rename struct ahci_probe_ent dm: sata: Move ataid into struct ahci_uc_priv dm: ahci: Refactor to avoid static variables dm: scsi: Indent the confusing #ifdefs dm: ahci: Move common code for starting ports into a function dm: ahci: Unwind the confusing init code dm: ahci: Drop use of probe_ent dm: scsi: Add operations dm: scsi: Add a device pointer to scan_exec(), scsi_bus_reset() dm: scsi: Document and rename the scsi_scan() parameter dm: ahci: Create a local version of two SCSI functions dm: scsi: Add operations for SCSI devices dm: scsi: Adjust return value of scsi_exec() dm: scsi: Split out the bus scanning code dm: ahci: Add a driver for SCSI on AHCI dm: scsi: Drop scsi_init() when driver model is used RFC: x86: Move link to use driver model for SCSI README | 6 - api/api_storage.c | 2 +- arch/Kconfig | 2 + arch/arm/Kconfig | 10 + arch/arm/cpu/armv7/ls102xa/Kconfig | 1 + arch/arm/cpu/armv7/ls102xa/ls102xa_sata.c | 2 +- arch/arm/cpu/armv7/mx6/Kconfig | 4 + arch/arm/cpu/armv7/mx6/clock.c | 6 +- arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 2 + arch/arm/cpu/armv8/fsl-layerscape/soc.c | 4 +- arch/arm/imx-common/Makefile | 2 +- arch/arm/imx-common/cpu.c | 2 +- arch/arm/include/asm/arch-ls102xa/config.h | 1 - arch/arm/mach-mvebu/Kconfig | 4 + arch/arm/mach-omap2/omap5/Kconfig | 2 + arch/arm/mach-omap2/sata.c | 4 +- arch/powerpc/cpu/mpc83xx/Kconfig | 1 + arch/powerpc/cpu/mpc85xx/Kconfig | 46 ++ arch/powerpc/cpu/mpc85xx/cpu_init.c | 4 +- arch/powerpc/cpu/mpc86xx/Kconfig | 1 + arch/x86/cpu/ivybridge/sata.c | 38 +- board/advantech/dms-ba16/dms-ba16.c | 2 +- board/bachmann/ot1200/ot1200.c | 2 +- board/boundary/nitrogen6x/nitrogen6x.c | 2 +- board/congatec/Kconfig | 1 + board/congatec/cgtqmx6eval/cgtqmx6eval.c | 2 +- board/dfi/Kconfig | 1 + board/gateworks/gw_ventana/gw_ventana.c | 2 +- board/highbank/ahci.c | 2 +- board/highbank/highbank.c | 2 +- board/kosagi/novena/novena.c | 2 +- board/mpl/pip405/README | 5 +- board/toradex/apalis_imx6/apalis_imx6.c | 2 +- board/toradex/colibri_imx6/colibri_imx6.c | 2 +- board/udoo/udoo.c | 2 +- board/wandboard/wandboard.c | 2 +- cmd/Kconfig | 13 + cmd/scsi.c | 6 +- common/Makefile | 5 - common/spl/spl_sata.c | 2 +- common/splash_source.c | 2 +- common/usb_storage.c | 44 +- configs/A10-OLinuXino-Lime_defconfig | 1 + configs/A20-OLinuXino-Lime2_defconfig | 1 + configs/A20-OLinuXino-Lime_defconfig | 1 + configs/A20-OLinuXino_MICRO_defconfig | 1 + configs/A20-Olimex-SOM-EVB_defconfig | 1 + configs/Bananapi_M2_Ultra_defconfig | 1 + configs/Bananapi_defconfig | 1 + configs/Bananapro_defconfig | 1 + configs/Cubieboard2_defconfig | 1 + configs/Cubieboard_defconfig | 1 + configs/Cubietruck_defconfig | 1 + configs/Itead_Ibox_A20_defconfig | 1 + configs/Lamobo_R1_defconfig | 1 + configs/Linksprite_pcDuino3_Nano_defconfig | 1 + configs/Linksprite_pcDuino3_defconfig | 1 + configs/MPC8315ERDB_defconfig | 1 + configs/MPC8349ITX_LOWBOOT_defconfig | 1 + configs/MPC8349ITX_defconfig | 1 + configs/MPC837XERDB_defconfig | 1 + configs/MPC8544DS_defconfig | 1 + configs/MPC8610HPCD_defconfig | 1 + configs/Marsboard_A10_defconfig | 1 + configs/Mele_A1000_defconfig | 1 + configs/Mele_M5_defconfig | 1 + configs/Orangepi_defconfig | 1 + configs/Orangepi_mini_defconfig | 1 + configs/Sinovoip_BPI_M2_Plus_defconfig | 1 - configs/UCP1020_SPIFLASH_defconfig | 2 +- configs/UCP1020_defconfig | 2 +- configs/Wits_Pro_A20_DKT_defconfig | 1 + configs/adp-ae3xx_defconfig | 6 +- configs/adp-ag101p_defconfig | 6 +- configs/am335x_baltos_defconfig | 4 +- configs/am335x_boneblack_vboot_defconfig | 1 - configs/am335x_evm_defconfig | 1 - configs/am335x_hs_evm_defconfig | 4 - configs/am335x_igep003x_defconfig | 6 +- configs/am335x_shc_defconfig | 4 +- configs/am335x_shc_ict_defconfig | 4 +- configs/am335x_shc_netboot_defconfig | 4 +- configs/am335x_shc_prompt_defconfig | 4 +- configs/am335x_shc_sdboot_defconfig | 4 +- configs/am335x_shc_sdboot_prompt_defconfig | 4 +- configs/am335x_sl50_defconfig | 4 +- configs/am43xx_evm_defconfig | 3 +- configs/am43xx_evm_usbhost_boot_defconfig | 1 - configs/am43xx_hs_evm_defconfig | 3 +- configs/am57xx_evm_defconfig | 5 +- configs/am57xx_hs_evm_defconfig | 5 +- configs/at91sam9263ek_norflash_boot_defconfig | 2 +- configs/at91sam9263ek_norflash_defconfig | 2 +- configs/bayleybay_defconfig | 1 + configs/bcm958622hr_defconfig | 2 +- configs/birdland_bav335a_defconfig | 2 +- configs/birdland_bav335b_defconfig | 2 +- configs/blanche_defconfig | 1 - configs/brppt1_mmc_defconfig | 2 +- configs/brppt1_nand_defconfig | 2 +- configs/brppt1_spi_defconfig | 2 +- configs/brxre1_defconfig | 2 +- configs/canyonlands_defconfig | 1 + configs/cgtqmx6eval_defconfig | 1 + configs/chiliboard_defconfig | 4 +- configs/chromebook_link64_defconfig | 1 + configs/chromebook_link_defconfig | 3 + configs/chromebook_minnie_defconfig | 2 +- configs/chromebook_samus_defconfig | 1 + configs/chromebox_panther_defconfig | 1 + configs/clearfog_defconfig | 2 - configs/cm_fx6_defconfig | 3 +- configs/cm_t335_defconfig | 2 +- configs/cm_t43_defconfig | 2 +- configs/cm_t54_defconfig | 1 + configs/colibri_imx7_defconfig | 2 +- configs/colibri_vf_defconfig | 2 +- configs/comtrend_ar5387un_ram_defconfig | 66 +- configs/comtrend_ct5361_ram_defconfig | 68 +- configs/comtrend_vr3032u_ram_defconfig | 66 +- .../controlcenterd_36BIT_SDCARD_DEVELOP_defconfig | 1 + configs/controlcenterd_36BIT_SDCARD_defconfig | 1 + configs/controlcenterdc_defconfig | 1 + configs/cougarcanyon2_defconfig | 1 + configs/crownbay_defconfig | 1 + configs/db-88f6820-gp_defconfig | 1 + configs/db-mv784mp-gp_defconfig | 1 + configs/dra7xx_evm_defconfig | 12 +- configs/dra7xx_hs_evm_defconfig | 9 +- configs/evb-ast2500_defconfig | 12 +- configs/evb-rk3399_defconfig | 5 +- configs/firefly-rk3399_defconfig | 1 - configs/gwventana_emmc_defconfig | 2 +- configs/gwventana_gw5904_defconfig | 2 +- configs/gwventana_nand_defconfig | 2 +- configs/highbank_defconfig | 1 + configs/huawei_hg556a_ram_defconfig | 67 +- configs/imx6qdl_icore_mmc_defconfig | 4 +- configs/imx6qdl_icore_rqs_mmc_defconfig | 2 +- configs/k2e_evm_defconfig | 5 +- configs/k2e_hs_evm_defconfig | 3 +- configs/k2g_evm_defconfig | 5 +- configs/k2g_hs_evm_defconfig | 6 +- configs/k2hk_evm_defconfig | 4 +- configs/k2hk_hs_evm_defconfig | 3 +- configs/k2l_evm_defconfig | 4 +- configs/ls1012aqds_qspi_defconfig | 1 + configs/ls2081ardb_defconfig | 14 +- configs/ls2088ardb_qspi_defconfig | 13 +- configs/m53evk_defconfig | 3 +- configs/minnowmax_defconfig | 1 + configs/mx51evk_defconfig | 2 +- configs/mx53cx9020_defconfig | 2 +- configs/mx53loco_defconfig | 3 +- configs/mx6cuboxi_defconfig | 2 +- configs/mx6qsabrelite_defconfig | 1 + configs/mx6sxsabresd_defconfig | 2 +- configs/mx6sxsabresd_spl_defconfig | 2 +- configs/mx7dsabresd_defconfig | 2 +- configs/nanopi_neo_air_defconfig | 2 +- configs/nanopi_neo_defconfig | 2 +- configs/netgear_cg3100d_ram_defconfig | 66 +- configs/nitrogen6q2g_defconfig | 1 + configs/nitrogen6q_defconfig | 1 + configs/novena_defconfig | 3 +- configs/omap3_logic_defconfig | 1 - configs/omap5_uevm_defconfig | 1 + configs/opos6uldev_defconfig | 2 +- configs/orangepi_2_defconfig | 1 - configs/orangepi_lite_defconfig | 1 - configs/orangepi_one_defconfig | 1 - configs/orangepi_pc2_defconfig | 1 - configs/orangepi_pc_defconfig | 1 - configs/orangepi_pc_plus_defconfig | 1 - configs/orangepi_plus2e_defconfig | 1 - configs/orangepi_plus_defconfig | 1 - configs/orangepi_zero_defconfig | 2 +- configs/pcm051_rev1_defconfig | 2 +- configs/pcm051_rev3_defconfig | 2 +- configs/pengwyn_defconfig | 2 +- configs/pepper_defconfig | 2 +- configs/pine64_plus_defconfig | 3 +- configs/puma-rk3399_defconfig | 1 - configs/pxm2_defconfig | 2 +- configs/r8a7795_salvator-x_defconfig | 19 +- configs/r8a7796_salvator-x_defconfig | 20 +- configs/rut_defconfig | 2 +- configs/sagem_f@st1704_ram_defconfig | 66 +- configs/sama5d2_xplained_mmc_defconfig | 4 +- configs/sama5d2_xplained_spiflash_defconfig | 2 +- configs/sandbox_defconfig | 9 +- configs/sandbox_flattree_defconfig | 11 +- configs/sandbox_noblk_defconfig | 5 +- configs/sandbox_spl_defconfig | 4 +- configs/sfr_nb4-ser_ram_defconfig | 66 +- configs/som-db5800-som-6867_defconfig | 1 + configs/stm32f746-disco_defconfig | 14 +- configs/tbs2910_defconfig | 3 +- configs/udoo_defconfig | 1 + configs/wandboard_defconfig | 1 + configs/xilinx_zynqmp_ep_defconfig | 1 + configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 2 +- configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 2 +- configs/xilinx_zynqmp_zcu102_defconfig | 3 +- configs/xilinx_zynqmp_zcu102_revB_defconfig | 3 +- drivers/Kconfig | 4 + drivers/Makefile | 4 +- drivers/ata/Kconfig | 62 ++ drivers/ata/Makefile | 22 + drivers/{block => ata}/ahci-uclass.c | 0 drivers/{block => ata}/ahci.c | 390 ++++++---- drivers/{block => ata}/dwc_ahci.c | 10 +- drivers/{block => ata}/dwc_ahsata.c | 74 +- drivers/{block => ata}/dwc_ahsata.h | 0 drivers/{block => ata}/fsl_sata.c | 0 drivers/{block => ata}/fsl_sata.h | 0 drivers/{block => ata}/libata.c | 0 drivers/{block => ata}/mvsata_ide.c | 0 drivers/{block => ata}/mxc_ata.c | 0 {common => drivers/ata}/sata.c | 0 drivers/{block => ata}/sata_ceva.c | 9 +- drivers/{block => ata}/sata_dwc.c | 0 drivers/{block => ata}/sata_dwc.h | 0 drivers/{block => ata}/sata_mv.c | 0 drivers/{block => ata}/sata_sandbox.c | 0 drivers/{block => ata}/sata_sil.c | 0 drivers/{block => ata}/sata_sil.h | 0 drivers/{block => ata}/sata_sil3114.c | 0 drivers/{block => ata}/sata_sil3114.h | 0 drivers/block/Kconfig | 41 - drivers/block/Makefile | 17 +- drivers/block/scsi-uclass.c | 27 - drivers/block/sym53c8xx.c | 851 --------------------- drivers/scsi/Kconfig | 17 + drivers/scsi/Makefile | 19 + drivers/{block => scsi}/sandbox_scsi.c | 9 +- drivers/scsi/scsi-uclass.c | 40 + {common => drivers/scsi}/scsi.c | 147 ++-- drivers/usb/emul/sandbox_flash.c | 2 +- fs/fat/fat.c | 2 +- include/ahci.h | 60 +- include/config_cmd_all.h | 1 - include/config_distro_bootcmd.h | 6 +- include/config_fallbacks.h | 2 +- include/configs/MPC8315ERDB.h | 1 - include/configs/MPC8349ITX.h | 4 - include/configs/MPC837XEMDS.h | 1 - include/configs/MPC837XERDB.h | 1 - include/configs/MPC8536DS.h | 1 - include/configs/MPC8544DS.h | 1 - include/configs/MPC8572DS.h | 1 - include/configs/MPC8610HPCD.h | 1 - include/configs/MPC8641HPCN.h | 1 - include/configs/P1010RDB.h | 1 - include/configs/P1022DS.h | 1 - include/configs/P2041RDB.h | 1 - include/configs/P4080DS.h | 1 - include/configs/PIP405.h | 10 - include/configs/T102xQDS.h | 1 - include/configs/T1040QDS.h | 1 - include/configs/T104xRDB.h | 1 - include/configs/T208xQDS.h | 1 - include/configs/T208xRDB.h | 1 - include/configs/T4240QDS.h | 1 - include/configs/T4240RDB.h | 2 - include/configs/UCP1020.h | 1 - include/configs/advantech_dms-ba16.h | 1 - include/configs/am57xx_evm.h | 1 - include/configs/apalis_imx6.h | 4 - include/configs/canyonlands.h | 1 - include/configs/cgtqmx6eval.h | 1 - include/configs/cm_fx6.h | 1 - include/configs/cm_t54.h | 1 - include/configs/controlcenterd.h | 1 - include/configs/controlcenterdc.h | 1 - include/configs/corenet_ds.h | 1 - include/configs/cyrus.h | 1 - include/configs/db-88f6820-gp.h | 1 - include/configs/db-mv784mp-gp.h | 1 - include/configs/dra7xx_evm.h | 1 - include/configs/efi-x86.h | 1 - include/configs/galileo.h | 1 - include/configs/gw_ventana.h | 1 - include/configs/highbank.h | 1 - include/configs/ls1012aqds.h | 1 - include/configs/ls1012ardb.h | 1 - include/configs/ls1043aqds.h | 1 - include/configs/ls1046aqds.h | 1 - include/configs/ls1046ardb.h | 1 - include/configs/ls2080aqds.h | 1 - include/configs/ls2080ardb.h | 1 - include/configs/m53evk.h | 1 - include/configs/mvebu_armada-37xx.h | 1 - include/configs/mvebu_armada-8k.h | 1 - include/configs/mx53loco.h | 1 - include/configs/nitrogen6x.h | 4 - include/configs/novena.h | 1 - include/configs/omap5_uevm.h | 1 - include/configs/ot1200.h | 4 - include/configs/p1_p2_rdb_pc.h | 1 - include/configs/p1_twr.h | 1 - include/configs/qemu-x86.h | 1 - include/configs/sandbox.h | 2 - include/configs/sunxi-common.h | 1 - include/configs/t4qds.h | 1 - include/configs/tbs2910.h | 1 - include/configs/theadorable.h | 1 - include/configs/udoo.h | 1 - include/configs/wandboard.h | 1 - include/configs/x86-common.h | 1 - include/configs/xilinx_zynqmp.h | 1 - include/scsi.h | 85 +- scripts/config_whitelist.txt | 4 - 313 files changed, 1262 insertions(+), 1879 deletions(-) create mode 100644 drivers/ata/Kconfig create mode 100644 drivers/ata/Makefile rename drivers/{block => ata}/ahci-uclass.c (100%) rename drivers/{block => ata}/ahci.c (74%) rename drivers/{block => ata}/dwc_ahci.c (92%) rename drivers/{block => ata}/dwc_ahsata.c (92%) rename drivers/{block => ata}/dwc_ahsata.h (100%) rename drivers/{block => ata}/fsl_sata.c (100%) rename drivers/{block => ata}/fsl_sata.h (100%) rename drivers/{block => ata}/libata.c (100%) rename drivers/{block => ata}/mvsata_ide.c (100%) rename drivers/{block => ata}/mxc_ata.c (100%) rename {common => drivers/ata}/sata.c (100%) rename drivers/{block => ata}/sata_ceva.c (95%) rename drivers/{block => ata}/sata_dwc.c (100%) rename drivers/{block => ata}/sata_dwc.h (100%) rename drivers/{block => ata}/sata_mv.c (100%) rename drivers/{block => ata}/sata_sandbox.c (100%) rename drivers/{block => ata}/sata_sil.c (100%) rename drivers/{block => ata}/sata_sil.h (100%) rename drivers/{block => ata}/sata_sil3114.c (100%) rename drivers/{block => ata}/sata_sil3114.h (100%) delete mode 100644 drivers/block/scsi-uclass.c delete mode 100644 drivers/block/sym53c8xx.c create mode 100644 drivers/scsi/Kconfig create mode 100644 drivers/scsi/Makefile rename drivers/{block => scsi}/sandbox_scsi.c (75%) create mode 100644 drivers/scsi/scsi-uclass.c rename {common => drivers/scsi}/scsi.c (86%) -- 2.13.0.506.g27d5fe0cd-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot