瀏覽代碼

Merge git://git.denx.de/u-boot-dm

Tom Rini 7 年之前
父節點
當前提交
8d3a25685e
共有 100 個文件被更改,包括 330 次插入114 次删除
  1. 0 6
      README
  2. 1 1
      api/api_storage.c
  3. 2 0
      arch/Kconfig
  4. 10 0
      arch/arm/Kconfig
  5. 1 0
      arch/arm/cpu/armv7/ls102xa/Kconfig
  6. 1 1
      arch/arm/cpu/armv7/ls102xa/ls102xa_sata.c
  7. 4 0
      arch/arm/cpu/armv7/mx6/Kconfig
  8. 3 3
      arch/arm/cpu/armv7/mx6/clock.c
  9. 2 0
      arch/arm/cpu/armv8/fsl-layerscape/Kconfig
  10. 2 2
      arch/arm/cpu/armv8/fsl-layerscape/soc.c
  11. 3 0
      arch/arm/dts/rk3328.dtsi
  12. 4 0
      arch/arm/dts/tegra114-dalmore.dts
  13. 4 0
      arch/arm/dts/tegra124-cei-tk1-som.dts
  14. 4 0
      arch/arm/dts/tegra124-jetson-tk1.dts
  15. 4 0
      arch/arm/dts/tegra124-venice2.dts
  16. 4 0
      arch/arm/dts/tegra186-p2771-0000.dtsi
  17. 4 0
      arch/arm/dts/tegra20-colibri.dts
  18. 4 0
      arch/arm/dts/tegra20-harmony.dts
  19. 4 0
      arch/arm/dts/tegra20-trimslice.dts
  20. 4 0
      arch/arm/dts/tegra210-e2220-1170.dts
  21. 4 0
      arch/arm/dts/tegra210-p2371-0000.dts
  22. 4 0
      arch/arm/dts/tegra210-p2371-2180.dts
  23. 4 0
      arch/arm/dts/tegra210-p2571.dts
  24. 4 0
      arch/arm/dts/tegra30-apalis.dts
  25. 4 0
      arch/arm/dts/tegra30-beaver.dts
  26. 4 0
      arch/arm/dts/tegra30-cardhu.dts
  27. 4 0
      arch/arm/dts/tegra30-colibri.dts
  28. 4 0
      arch/arm/dts/tegra30-tec-ng.dts
  29. 1 1
      arch/arm/imx-common/Makefile
  30. 1 1
      arch/arm/imx-common/cpu.c
  31. 0 1
      arch/arm/include/asm/arch-ls102xa/config.h
  32. 4 0
      arch/arm/mach-mvebu/Kconfig
  33. 2 0
      arch/arm/mach-omap2/omap5/Kconfig
  34. 3 1
      arch/arm/mach-omap2/sata.c
  35. 11 15
      arch/arm/mach-tegra/board2.c
  36. 2 2
      arch/arm/mach-tegra/clock.c
  37. 1 0
      arch/powerpc/cpu/mpc83xx/Kconfig
  38. 46 0
      arch/powerpc/cpu/mpc85xx/Kconfig
  39. 2 2
      arch/powerpc/cpu/mpc85xx/cpu_init.c
  40. 1 0
      arch/powerpc/cpu/mpc86xx/Kconfig
  41. 0 11
      arch/sandbox/cpu/spl.c
  42. 1 0
      arch/sandbox/dts/sandbox.dts
  43. 19 0
      arch/sandbox/dts/test.dts
  44. 21 1
      arch/x86/cpu/ivybridge/sata.c
  45. 1 1
      board/advantech/dms-ba16/dms-ba16.c
  46. 1 1
      board/bachmann/ot1200/ot1200.c
  47. 1 1
      board/boundary/nitrogen6x/nitrogen6x.c
  48. 1 0
      board/congatec/Kconfig
  49. 1 1
      board/congatec/cgtqmx6eval/cgtqmx6eval.c
  50. 1 0
      board/dfi/Kconfig
  51. 1 1
      board/gateworks/gw_ventana/gw_ventana.c
  52. 1 1
      board/highbank/ahci.c
  53. 1 1
      board/highbank/highbank.c
  54. 1 1
      board/kosagi/novena/novena.c
  55. 1 1
      board/sandbox/README.sandbox
  56. 1 1
      board/toradex/apalis_imx6/apalis_imx6.c
  57. 1 1
      board/toradex/colibri_imx6/colibri_imx6.c
  58. 1 1
      board/udoo/udoo.c
  59. 1 1
      board/wandboard/wandboard.c
  60. 13 0
      cmd/Kconfig
  61. 4 0
      cmd/fdt.c
  62. 3 3
      cmd/scsi.c
  63. 3 1
      cmd/version.c
  64. 1 1
      common/Kconfig
  65. 0 5
      common/Makefile
  66. 1 0
      common/board_r.c
  67. 22 19
      common/console.c
  68. 1 1
      common/spl/spl_sata.c
  69. 1 1
      common/splash_source.c
  70. 22 22
      common/usb_storage.c
  71. 1 0
      configs/A10-OLinuXino-Lime_defconfig
  72. 1 0
      configs/A20-OLinuXino-Lime2_defconfig
  73. 1 0
      configs/A20-OLinuXino-Lime_defconfig
  74. 1 0
      configs/A20-OLinuXino_MICRO_defconfig
  75. 1 0
      configs/A20-Olimex-SOM-EVB_defconfig
  76. 1 0
      configs/Bananapi_M2_Ultra_defconfig
  77. 1 0
      configs/Bananapi_defconfig
  78. 1 0
      configs/Bananapro_defconfig
  79. 1 0
      configs/Cubieboard2_defconfig
  80. 1 0
      configs/Cubieboard_defconfig
  81. 1 0
      configs/Cubietruck_defconfig
  82. 1 0
      configs/Itead_Ibox_A20_defconfig
  83. 1 0
      configs/Lamobo_R1_defconfig
  84. 1 0
      configs/Linksprite_pcDuino3_Nano_defconfig
  85. 1 0
      configs/Linksprite_pcDuino3_defconfig
  86. 1 0
      configs/MPC8315ERDB_defconfig
  87. 1 0
      configs/MPC8349ITX_LOWBOOT_defconfig
  88. 1 0
      configs/MPC8349ITX_defconfig
  89. 1 0
      configs/MPC837XERDB_defconfig
  90. 1 0
      configs/MPC8544DS_defconfig
  91. 1 0
      configs/MPC8610HPCD_defconfig
  92. 1 0
      configs/Marsboard_A10_defconfig
  93. 1 0
      configs/Mele_A1000_defconfig
  94. 1 0
      configs/Mele_M5_defconfig
  95. 1 0
      configs/Orangepi_defconfig
  96. 1 0
      configs/Orangepi_mini_defconfig
  97. 1 0
      configs/Wits_Pro_A20_DKT_defconfig
  98. 1 0
      configs/bayleybay_defconfig
  99. 1 0
      configs/cgtqmx6eval_defconfig
  100. 3 0
      configs/chromebook_link64_defconfig

+ 0 - 6
README

@@ -826,7 +826,6 @@ The following options need to be configured:
 		CONFIG_CMD_RUN		  run command in env variable
 		CONFIG_CMD_RUN		  run command in env variable
 		CONFIG_CMD_SANDBOX	* sb command to access sandbox features
 		CONFIG_CMD_SANDBOX	* sb command to access sandbox features
 		CONFIG_CMD_SAVES	* save S record dump
 		CONFIG_CMD_SAVES	* save S record dump
-		CONFIG_SCSI		* SCSI Support
 		CONFIG_CMD_SDRAM	* print SDRAM configuration information
 		CONFIG_CMD_SDRAM	* print SDRAM configuration information
 					  (requires CONFIG_CMD_I2C)
 					  (requires CONFIG_CMD_I2C)
 		CONFIG_CMD_SF		* Read/write/erase SPI NOR flash
 		CONFIG_CMD_SF		* Read/write/erase SPI NOR flash
@@ -1043,16 +1042,11 @@ The following options need to be configured:
 			Default is 32bit.
 			Default is 32bit.
 
 
 - SCSI Support:
 - SCSI Support:
-		At the moment only there is only support for the
-		SYM53C8XX SCSI controller; define
-		CONFIG_SCSI_SYM53C8XX to enable it.
-
 		CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
 		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_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
 		CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
 		CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
 		maximum numbers of LUNs, SCSI ID's and target
 		maximum numbers of LUNs, SCSI ID's and target
 		devices.
 		devices.
-		CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
 
 
 		The environment variable 'scsidevs' is set to the number of
 		The environment variable 'scsidevs' is set to the number of
 		SCSI devices found during the last scan.
 		SCSI devices found during the last scan.

+ 1 - 1
api/api_storage.c

@@ -63,7 +63,7 @@ void dev_stor_init(void)
 	specs[ENUM_MMC].type = DEV_TYP_STOR | DT_STOR_MMC;
 	specs[ENUM_MMC].type = DEV_TYP_STOR | DT_STOR_MMC;
 	specs[ENUM_MMC].name = "mmc";
 	specs[ENUM_MMC].name = "mmc";
 #endif
 #endif
-#if defined(CONFIG_CMD_SATA)
+#if defined(CONFIG_SATA)
 	specs[ENUM_SATA].max_dev = CONFIG_SYS_SATA_MAX_DEVICE;
 	specs[ENUM_SATA].max_dev = CONFIG_SYS_SATA_MAX_DEVICE;
 	specs[ENUM_SATA].enum_started = 0;
 	specs[ENUM_SATA].enum_started = 0;
 	specs[ENUM_SATA].enum_ended = 0;
 	specs[ENUM_SATA].enum_ended = 0;

+ 2 - 0
arch/Kconfig

@@ -75,6 +75,8 @@ config SANDBOX
 	imply FAT_WRITE
 	imply FAT_WRITE
 	imply HASH_VERIFY
 	imply HASH_VERIFY
 	imply LZMA
 	imply LZMA
+	imply SCSI
+	imply CMD_SATA
 
 
 config SH
 config SH
 	bool "SuperH architecture"
 	bool "SuperH architecture"

+ 10 - 0
arch/arm/Kconfig

@@ -792,6 +792,7 @@ config TARGET_LS2080AQDS
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select ARCH_MISC_INIT
 	select ARCH_MISC_INIT
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS2080AQDS platform
 	  Support for Freescale LS2080AQDS platform
 	  The LS2080A Development System (QDS) is a high-performance
 	  The LS2080A Development System (QDS) is a high-performance
@@ -806,6 +807,7 @@ config TARGET_LS2080ARDB
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select ARCH_MISC_INIT
 	select ARCH_MISC_INIT
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS2080ARDB platform.
 	  Support for Freescale LS2080ARDB platform.
 	  The LS2080A Reference design board (RDB) is a high-performance
 	  The LS2080A Reference design board (RDB) is a high-performance
@@ -866,6 +868,7 @@ config TARGET_LS1012ARDB
 	select ARCH_LS1012A
 	select ARCH_LS1012A
 	select ARM64
 	select ARM64
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1012ARDB platform.
 	  Support for Freescale LS1012ARDB platform.
 	  The LS1012A Reference design board (RDB) is a high-performance
 	  The LS1012A Reference design board (RDB) is a high-performance
@@ -894,6 +897,7 @@ config TARGET_LS1021AQDS
 	select LS1_DEEP_SLEEP
 	select LS1_DEEP_SLEEP
 	select SYS_FSL_DDR
 	select SYS_FSL_DDR
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 
 
 config TARGET_LS1021ATWR
 config TARGET_LS1021ATWR
 	bool "Support ls1021atwr"
 	bool "Support ls1021atwr"
@@ -906,6 +910,7 @@ config TARGET_LS1021ATWR
 	select ARCH_SUPPORT_PSCI
 	select ARCH_SUPPORT_PSCI
 	select LS1_DEEP_SLEEP
 	select LS1_DEEP_SLEEP
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 
 
 config TARGET_LS1021AIOT
 config TARGET_LS1021AIOT
 	bool "Support ls1021aiot"
 	bool "Support ls1021aiot"
@@ -916,6 +921,7 @@ config TARGET_LS1021AIOT
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select ARCH_LS1021A
 	select ARCH_LS1021A
 	select ARCH_SUPPORT_PSCI
 	select ARCH_SUPPORT_PSCI
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1021AIOT platform.
 	  Support for Freescale LS1021AIOT platform.
 	  The LS1021A Freescale board (IOT) is a high-performance
 	  The LS1021A Freescale board (IOT) is a high-performance
@@ -930,6 +936,7 @@ config TARGET_LS1043AQDS
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1043AQDS platform.
 	  Support for Freescale LS1043AQDS platform.
 
 
@@ -941,6 +948,7 @@ config TARGET_LS1043ARDB
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1043ARDB platform.
 	  Support for Freescale LS1043ARDB platform.
 
 
@@ -953,6 +961,7 @@ config TARGET_LS1046AQDS
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select DM_SPI_FLASH if DM_SPI
 	select DM_SPI_FLASH if DM_SPI
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1046AQDS platform.
 	  Support for Freescale LS1046AQDS platform.
 	  The LS1046A Development System (QDS) is a high-performance
 	  The LS1046A Development System (QDS) is a high-performance
@@ -969,6 +978,7 @@ config TARGET_LS1046ARDB
 	select DM_SPI_FLASH if DM_SPI
 	select DM_SPI_FLASH if DM_SPI
 	select POWER_MC34VR500
 	select POWER_MC34VR500
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 	help
 	help
 	  Support for Freescale LS1046ARDB platform.
 	  Support for Freescale LS1046ARDB platform.
 	  The LS1046A Reference Design Board (RDB) is a high-performance
 	  The LS1046A Reference Design Board (RDB) is a high-performance

+ 1 - 0
arch/arm/cpu/armv7/ls102xa/Kconfig

@@ -14,6 +14,7 @@ config ARCH_LS1021A
 	select SYS_FSL_HAS_SEC
 	select SYS_FSL_HAS_SEC
 	select SYS_FSL_SEC_COMPAT_5
 	select SYS_FSL_SEC_COMPAT_5
 	select SYS_FSL_SEC_LE
 	select SYS_FSL_SEC_LE
+	imply SCSI
 
 
 menu "LS102xA architecture"
 menu "LS102xA architecture"
 	depends on ARCH_LS1021A
 	depends on ARCH_LS1021A

+ 1 - 1
arch/arm/cpu/armv7/ls102xa/ls102xa_sata.c

@@ -36,7 +36,7 @@ int ls1021a_sata_init(void)
 	out_le32(&ccsr_ahci->ptc, AHCI_PORT_TRANS_CFG);
 	out_le32(&ccsr_ahci->ptc, AHCI_PORT_TRANS_CFG);
 
 
 	ahci_init((void __iomem *)AHCI_BASE_ADDR);
 	ahci_init((void __iomem *)AHCI_BASE_ADDR);
-	scsi_scan(0);
+	scsi_scan(false);
 
 
 	return 0;
 	return 0;
 }
 }

+ 4 - 0
arch/arm/cpu/armv7/mx6/Kconfig

@@ -77,6 +77,7 @@ config TARGET_ADVANTECH_DMS_BA16
 	bool "Advantech dms-ba16"
 	bool "Advantech dms-ba16"
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select MX6Q
 	select MX6Q
+	imply CMD_SATA
 
 
 config TARGET_APALIS_IMX6
 config TARGET_APALIS_IMX6
 	bool "Toradex Apalis iMX6 board"
 	bool "Toradex Apalis iMX6 board"
@@ -85,6 +86,7 @@ config TARGET_APALIS_IMX6
 	select DM
 	select DM
 	select DM_SERIAL
 	select DM_SERIAL
 	select DM_THERMAL
 	select DM_THERMAL
+	imply CMD_SATA
 
 
 config TARGET_ARISTAINETOS
 config TARGET_ARISTAINETOS
 	bool "aristainetos"
 	bool "aristainetos"
@@ -141,6 +143,7 @@ config TARGET_GE_B850V3
 config TARGET_GW_VENTANA
 config TARGET_GW_VENTANA
 	bool "gw_ventana"
 	bool "gw_ventana"
 	select SUPPORT_SPL
 	select SUPPORT_SPL
+	imply CMD_SATA
 
 
 config TARGET_KOSAGI_NOVENA
 config TARGET_KOSAGI_NOVENA
 	bool "Kosagi Novena"
 	bool "Kosagi Novena"
@@ -302,6 +305,7 @@ config TARGET_OPOS6ULDEV
 config TARGET_OT1200
 config TARGET_OT1200
 	bool "Bachmann OT1200"
 	bool "Bachmann OT1200"
 	select SUPPORT_SPL
 	select SUPPORT_SPL
+	imply CMD_SATA
 
 
 config TARGET_PICO_IMX6UL
 config TARGET_PICO_IMX6UL
 	bool "PICO-IMX6UL-EMMC"
 	bool "PICO-IMX6UL-EMMC"

+ 3 - 3
arch/arm/cpu/armv7/mx6/clock.c

@@ -1042,7 +1042,7 @@ u32 imx_get_fecclk(void)
 	return mxc_get_clock(MXC_IPG_CLK);
 	return mxc_get_clock(MXC_IPG_CLK);
 }
 }
 
 
-#if defined(CONFIG_CMD_SATA) || defined(CONFIG_PCIE_IMX)
+#if defined(CONFIG_SATA) || defined(CONFIG_PCIE_IMX)
 static int enable_enet_pll(uint32_t en)
 static int enable_enet_pll(uint32_t en)
 {
 {
 	struct mxc_ccm_reg *const imx_ccm
 	struct mxc_ccm_reg *const imx_ccm
@@ -1069,7 +1069,7 @@ static int enable_enet_pll(uint32_t en)
 }
 }
 #endif
 #endif
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 static void ungate_sata_clock(void)
 static void ungate_sata_clock(void)
 {
 {
 	struct mxc_ccm_reg *const imx_ccm =
 	struct mxc_ccm_reg *const imx_ccm =
@@ -1143,7 +1143,7 @@ int enable_pcie_clock(void)
 	clrbits_le32(&ccm_regs->cbcmr, MXC_CCM_CBCMR_PCIE_AXI_CLK_SEL);
 	clrbits_le32(&ccm_regs->cbcmr, MXC_CCM_CBCMR_PCIE_AXI_CLK_SEL);
 
 
 	/* Party time! Ungate the clock to the PCIe. */
 	/* Party time! Ungate the clock to the PCIe. */
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	ungate_sata_clock();
 	ungate_sata_clock();
 #endif
 #endif
 	ungate_pcie_clock();
 	ungate_pcie_clock();

+ 2 - 0
arch/arm/cpu/armv8/fsl-layerscape/Kconfig

@@ -26,6 +26,7 @@ config ARCH_LS1043A
 	select SYS_FSL_HAS_DDR4
 	select SYS_FSL_HAS_DDR4
 	select ARCH_EARLY_INIT_R
 	select ARCH_EARLY_INIT_R
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 
 
 config ARCH_LS1046A
 config ARCH_LS1046A
 	bool
 	bool
@@ -46,6 +47,7 @@ config ARCH_LS1046A
 	select SYS_FSL_SRDS_2
 	select SYS_FSL_SRDS_2
 	select ARCH_EARLY_INIT_R
 	select ARCH_EARLY_INIT_R
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply SCSI
 
 
 config ARCH_LS2080A
 config ARCH_LS2080A
 	bool
 	bool

+ 2 - 2
arch/arm/cpu/armv8/fsl-layerscape/soc.c

@@ -225,7 +225,7 @@ int sata_init(void)
 	out_le32(&ccsr_ahci->axicc, AHCI_PORT_AXICC_CFG);
 	out_le32(&ccsr_ahci->axicc, AHCI_PORT_AXICC_CFG);
 
 
 	ahci_init((void __iomem *)CONFIG_SYS_SATA1);
 	ahci_init((void __iomem *)CONFIG_SYS_SATA1);
-	scsi_scan(0);
+	scsi_scan(false);
 
 
 	return 0;
 	return 0;
 }
 }
@@ -244,7 +244,7 @@ int sata_init(void)
 	out_le32(&ccsr_ahci->axicc, AHCI_PORT_AXICC_CFG);
 	out_le32(&ccsr_ahci->axicc, AHCI_PORT_AXICC_CFG);
 
 
 	ahci_init((void __iomem *)CONFIG_SYS_SATA);
 	ahci_init((void __iomem *)CONFIG_SYS_SATA);
-	scsi_scan(0);
+	scsi_scan(false);
 
 
 	return 0;
 	return 0;
 }
 }

+ 3 - 0
arch/arm/dts/rk3328.dtsi

@@ -25,6 +25,9 @@
 		i2c1 = &i2c1;
 		i2c1 = &i2c1;
 		i2c2 = &i2c2;
 		i2c2 = &i2c2;
 		i2c3 = &i2c3;
 		i2c3 = &i2c3;
+		mmc0 = &emmc;
+		mmc1 = &sdmmc;
+		mmc2 = &sdmmc_ext;
 	};
 	};
 
 
 	cpus {
 	cpus {

+ 4 - 0
arch/arm/dts/tegra114-dalmore.dts

@@ -93,3 +93,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uartd {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra124-cei-tk1-som.dts

@@ -475,3 +475,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uartd {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra124-jetson-tk1.dts

@@ -480,3 +480,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uartd {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra124-venice2.dts

@@ -109,3 +109,7 @@
 	};
 	};
 
 
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra186-p2771-0000.dtsi

@@ -76,3 +76,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra20-colibri.dts

@@ -162,3 +162,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra20-harmony.dts

@@ -812,3 +812,7 @@
 		clock-names = "pll_a", "pll_a_out0", "mclk";
 		clock-names = "pll_a", "pll_a_out0", "mclk";
 	};
 	};
 };
 };
+
+&uartd {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra20-trimslice.dts

@@ -129,3 +129,7 @@
 	};
 	};
 
 
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra210-e2220-1170.dts

@@ -57,3 +57,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra210-p2371-0000.dts

@@ -58,3 +58,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra210-p2371-2180.dts

@@ -109,3 +109,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra210-p2571.dts

@@ -105,3 +105,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra30-apalis.dts

@@ -332,3 +332,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra30-beaver.dts

@@ -346,3 +346,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra30-cardhu.dts

@@ -451,3 +451,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra30-colibri.dts

@@ -106,3 +106,7 @@
 		};
 		};
 	};
 	};
 };
 };
+
+&uarta {
+	status = "okay";
+};

+ 4 - 0
arch/arm/dts/tegra30-tec-ng.dts

@@ -20,3 +20,7 @@
 		status = "okay";
 		status = "okay";
 	};
 	};
 };
 };
+
+&uartd {
+	status = "okay";
+};

+ 1 - 1
arch/arm/imx-common/Makefile

@@ -25,7 +25,7 @@ obj-$(CONFIG_SYSCOUNTER_TIMER) += syscounter.o
 endif
 endif
 ifeq ($(SOC),$(filter $(SOC),mx6 mx7))
 ifeq ($(SOC),$(filter $(SOC),mx6 mx7))
 obj-y 	+= cache.o init.o
 obj-y 	+= cache.o init.o
-obj-$(CONFIG_CMD_SATA) += sata.o
+obj-$(CONFIG_SATA) += sata.o
 obj-$(CONFIG_IMX_VIDEO_SKIP) += video.o
 obj-$(CONFIG_IMX_VIDEO_SKIP) += video.o
 obj-$(CONFIG_IMX_RDC) += rdc-sema.o
 obj-$(CONFIG_IMX_RDC) += rdc-sema.o
 obj-$(CONFIG_IMX_BOOTAUX) += imx_bootaux.o
 obj-$(CONFIG_IMX_BOOTAUX) += imx_bootaux.o

+ 1 - 1
arch/arm/imx-common/cpu.c

@@ -278,7 +278,7 @@ void arch_preboot_os(void)
 #if defined(CONFIG_PCIE_IMX)
 #if defined(CONFIG_PCIE_IMX)
 	imx_pcie_remove();
 	imx_pcie_remove();
 #endif
 #endif
-#if defined(CONFIG_CMD_SATA)
+#if defined(CONFIG_SATA)
 	sata_stop();
 	sata_stop();
 #if defined(CONFIG_MX6)
 #if defined(CONFIG_MX6)
 	disable_sata_clock();
 	disable_sata_clock();

+ 0 - 1
arch/arm/include/asm/arch-ls102xa/config.h

@@ -81,7 +81,6 @@
 
 
 /* SATA */
 /* SATA */
 #define AHCI_BASE_ADDR				(CONFIG_SYS_IMMR + 0x02200000)
 #define AHCI_BASE_ADDR				(CONFIG_SYS_IMMR + 0x02200000)
-#define CONFIG_SCSI
 #define CONFIG_LIBATA
 #define CONFIG_LIBATA
 #define CONFIG_SCSI_AHCI
 #define CONFIG_SCSI_AHCI
 #define CONFIG_SCSI_AHCI_PLAT
 #define CONFIG_SCSI_AHCI_PLAT

+ 4 - 0
arch/arm/mach-mvebu/Kconfig

@@ -57,6 +57,7 @@ config MV78230
 config MV78260
 config MV78260
 	bool
 	bool
 	select ARMADA_XP
 	select ARMADA_XP
+	imply CMD_SATA
 
 
 config MV78460
 config MV78460
 	bool
 	bool
@@ -77,6 +78,7 @@ config TARGET_CLEARFOG
 config TARGET_MVEBU_ARMADA_37XX
 config TARGET_MVEBU_ARMADA_37XX
 	bool "Support Armada 37xx platforms"
 	bool "Support Armada 37xx platforms"
 	select ARMADA_3700
 	select ARMADA_3700
+	imply SCSI
 
 
 config TARGET_DB_88F6720
 config TARGET_DB_88F6720
 	bool "Support DB-88F6720 Armada 375"
 	bool "Support DB-88F6720 Armada 375"
@@ -94,6 +96,7 @@ config TARGET_MVEBU_ARMADA_8K
 	bool "Support Armada 7k/8k platforms"
 	bool "Support Armada 7k/8k platforms"
 	select ARMADA_8K
 	select ARMADA_8K
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
+	imply SCSI
 
 
 config TARGET_DB_MV784MP_GP
 config TARGET_DB_MV784MP_GP
 	bool "Support db-mv784mp-gp"
 	bool "Support db-mv784mp-gp"
@@ -111,6 +114,7 @@ config TARGET_THEADORABLE
 	bool "Support theadorable Armada XP"
 	bool "Support theadorable Armada XP"
 	select BOARD_LATE_INIT if USB
 	select BOARD_LATE_INIT if USB
 	select MV78260
 	select MV78260
+	imply CMD_SATA
 
 
 config TARGET_CONTROLCENTERDC
 config TARGET_CONTROLCENTERDC
 	bool "Support CONTROLCENTERDC"
 	bool "Support CONTROLCENTERDC"

+ 2 - 0
arch/arm/mach-omap2/omap5/Kconfig

@@ -25,12 +25,14 @@ config TARGET_DRA7XX_EVM
 	select DRA7XX
 	select DRA7XX
 	select TI_I2C_BOARD_DETECT
 	select TI_I2C_BOARD_DETECT
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply SCSI
 
 
 config TARGET_AM57XX_EVM
 config TARGET_AM57XX_EVM
 	bool "AM57XX"
 	bool "AM57XX"
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
 	select DRA7XX
 	select DRA7XX
 	select TI_I2C_BOARD_DETECT
 	select TI_I2C_BOARD_DETECT
+	imply SCSI
 
 
 endchoice
 endchoice
 
 

+ 3 - 1
arch/arm/mach-omap2/sata.c

@@ -63,8 +63,10 @@ void scsi_init(void)
 	scsi_scan(1);
 	scsi_scan(1);
 }
 }
 
 
-void scsi_bus_reset(void)
+int scsi_bus_reset(struct udevice *dev)
 {
 {
 	ahci_reset((void __iomem *)DWC_AHSATA_BASE);
 	ahci_reset((void __iomem *)DWC_AHSATA_BASE);
 	ahci_init((void __iomem *)DWC_AHSATA_BASE);
 	ahci_init((void __iomem *)DWC_AHSATA_BASE);
+
+	return 0;
 }
 }

+ 11 - 15
arch/arm/mach-tegra/board2.c

@@ -9,14 +9,8 @@
 #include <dm.h>
 #include <dm.h>
 #include <errno.h>
 #include <errno.h>
 #include <ns16550.h>
 #include <ns16550.h>
-#include <linux/compiler.h>
-#include <linux/sizes.h>
+#include <usb.h>
 #include <asm/io.h>
 #include <asm/io.h>
-#include <asm/arch/clock.h>
-#include <asm/arch/funcmux.h>
-#include <asm/arch/pinmux.h>
-#include <asm/arch/pmu.h>
-#include <asm/arch/tegra.h>
 #include <asm/arch-tegra/ap.h>
 #include <asm/arch-tegra/ap.h>
 #include <asm/arch-tegra/board.h>
 #include <asm/arch-tegra/board.h>
 #include <asm/arch-tegra/clk_rst.h>
 #include <asm/arch-tegra/clk_rst.h>
@@ -25,17 +19,17 @@
 #include <asm/arch-tegra/uart.h>
 #include <asm/arch-tegra/uart.h>
 #include <asm/arch-tegra/warmboot.h>
 #include <asm/arch-tegra/warmboot.h>
 #include <asm/arch-tegra/gpu.h>
 #include <asm/arch-tegra/gpu.h>
+#include <asm/arch-tegra/usb.h>
+#include <asm/arch-tegra/xusb-padctl.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/funcmux.h>
+#include <asm/arch/pinmux.h>
+#include <asm/arch/pmu.h>
+#include <asm/arch/tegra.h>
 #ifdef CONFIG_TEGRA_CLOCK_SCALING
 #ifdef CONFIG_TEGRA_CLOCK_SCALING
 #include <asm/arch/emc.h>
 #include <asm/arch/emc.h>
 #endif
 #endif
-#include <asm/arch-tegra/usb.h>
-#ifdef CONFIG_USB_EHCI_TEGRA
-#include <usb.h>
-#endif
-#include <asm/arch-tegra/xusb-padctl.h>
 #include <power/as3722.h>
 #include <power/as3722.h>
-#include <i2c.h>
-#include <spi.h>
 #include "emc.h"
 #include "emc.h"
 
 
 DECLARE_GLOBAL_DATA_PTR;
 DECLARE_GLOBAL_DATA_PTR;
@@ -162,8 +156,10 @@ int board_init(void)
 #if defined(CONFIG_DM_VIDEO)
 #if defined(CONFIG_DM_VIDEO)
 	board_id = tegra_board_id();
 	board_id = tegra_board_id();
 	err = tegra_lcd_pmic_init(board_id);
 	err = tegra_lcd_pmic_init(board_id);
-	if (err)
+	if (err) {
+		debug("Failed to set up LCD PMIC\n");
 		return err;
 		return err;
+	}
 #endif
 #endif
 
 
 #ifdef CONFIG_TEGRA_NAND
 #ifdef CONFIG_TEGRA_NAND

+ 2 - 2
arch/arm/mach-tegra/clock.c

@@ -7,6 +7,8 @@
 /* Tegra SoC common clock control functions */
 /* Tegra SoC common clock control functions */
 
 
 #include <common.h>
 #include <common.h>
+#include <div64.h>
+#include <dm.h>
 #include <errno.h>
 #include <errno.h>
 #include <asm/io.h>
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/clock.h>
@@ -15,8 +17,6 @@
 #include <asm/arch-tegra/clk_rst.h>
 #include <asm/arch-tegra/clk_rst.h>
 #include <asm/arch-tegra/pmc.h>
 #include <asm/arch-tegra/pmc.h>
 #include <asm/arch-tegra/timer.h>
 #include <asm/arch-tegra/timer.h>
-#include <div64.h>
-#include <fdtdec.h>
 
 
 /*
 /*
  * This is our record of the current clock rate of each clock. We don't
  * This is our record of the current clock rate of each clock. We don't

+ 1 - 0
arch/powerpc/cpu/mpc83xx/Kconfig

@@ -54,6 +54,7 @@ config TARGET_MPC8349ITX
 config TARGET_MPC837XEMDS
 config TARGET_MPC837XEMDS
 	bool "Support MPC837XEMDS"
 	bool "Support MPC837XEMDS"
 	select BOARD_EARLY_INIT_F
 	select BOARD_EARLY_INIT_F
+	imply CMD_SATA
 
 
 config TARGET_MPC837XERDB
 config TARGET_MPC837XERDB
 	bool "Support MPC837XERDB"
 	bool "Support MPC837XERDB"

+ 46 - 0
arch/powerpc/cpu/mpc85xx/Kconfig

@@ -63,30 +63,35 @@ config TARGET_P3041DS
 	select PHYS_64BIT
 	select PHYS_64BIT
 	select ARCH_P3041
 	select ARCH_P3041
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
+	imply CMD_SATA
 
 
 config TARGET_P4080DS
 config TARGET_P4080DS
 	bool "Support P4080DS"
 	bool "Support P4080DS"
 	select PHYS_64BIT
 	select PHYS_64BIT
 	select ARCH_P4080
 	select ARCH_P4080
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
+	imply CMD_SATA
 
 
 config TARGET_P5020DS
 config TARGET_P5020DS
 	bool "Support P5020DS"
 	bool "Support P5020DS"
 	select PHYS_64BIT
 	select PHYS_64BIT
 	select ARCH_P5020
 	select ARCH_P5020
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
+	imply CMD_SATA
 
 
 config TARGET_P5040DS
 config TARGET_P5040DS
 	bool "Support P5040DS"
 	bool "Support P5040DS"
 	select PHYS_64BIT
 	select PHYS_64BIT
 	select ARCH_P5040
 	select ARCH_P5040
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
+	imply CMD_SATA
 
 
 config TARGET_MPC8536DS
 config TARGET_MPC8536DS
 	bool "Support MPC8536DS"
 	bool "Support MPC8536DS"
 	select ARCH_MPC8536
 	select ARCH_MPC8536
 # Use DDR3 controller with DDR2 DIMMs on this board
 # Use DDR3 controller with DDR2 DIMMs on this board
 	select SYS_FSL_DDRC_GEN3
 	select SYS_FSL_DDRC_GEN3
+	imply CMD_SATA
 
 
 config TARGET_MPC8541CDS
 config TARGET_MPC8541CDS
 	bool "Support MPC8541CDS"
 	bool "Support MPC8541CDS"
@@ -117,6 +122,7 @@ config TARGET_MPC8572DS
 	select ARCH_MPC8572
 	select ARCH_MPC8572
 # Use DDR3 controller with DDR2 DIMMs on this board
 # Use DDR3 controller with DDR2 DIMMs on this board
 	select SYS_FSL_DDRC_GEN3
 	select SYS_FSL_DDRC_GEN3
+	imply SCSI
 
 
 config TARGET_P1010RDB_PA
 config TARGET_P1010RDB_PA
 	bool "Support P1010RDB_PA"
 	bool "Support P1010RDB_PA"
@@ -125,6 +131,7 @@ config TARGET_P1010RDB_PA
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1010RDB_PB
 config TARGET_P1010RDB_PB
 	bool "Support P1010RDB_PB"
 	bool "Support P1010RDB_PB"
@@ -133,12 +140,14 @@ config TARGET_P1010RDB_PB
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1022DS
 config TARGET_P1022DS
 	bool "Support P1022DS"
 	bool "Support P1022DS"
 	select ARCH_P1022
 	select ARCH_P1022
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select SUPPORT_TPL
 	select SUPPORT_TPL
+	imply CMD_SATA
 
 
 config TARGET_P1023RDB
 config TARGET_P1023RDB
 	bool "Support P1023RDB"
 	bool "Support P1023RDB"
@@ -151,6 +160,7 @@ config TARGET_P1020MBG
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1020
 	select ARCH_P1020
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1020RDB_PC
 config TARGET_P1020RDB_PC
 	bool "Support P1020RDB-PC"
 	bool "Support P1020RDB-PC"
@@ -158,6 +168,7 @@ config TARGET_P1020RDB_PC
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1020
 	select ARCH_P1020
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1020RDB_PD
 config TARGET_P1020RDB_PD
 	bool "Support P1020RDB-PD"
 	bool "Support P1020RDB-PD"
@@ -165,6 +176,7 @@ config TARGET_P1020RDB_PD
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1020
 	select ARCH_P1020
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1020UTM
 config TARGET_P1020UTM
 	bool "Support P1020UTM"
 	bool "Support P1020UTM"
@@ -172,6 +184,7 @@ config TARGET_P1020UTM
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1020
 	select ARCH_P1020
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1021RDB
 config TARGET_P1021RDB
 	bool "Support P1021RDB"
 	bool "Support P1021RDB"
@@ -179,6 +192,7 @@ config TARGET_P1021RDB
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1021
 	select ARCH_P1021
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1024RDB
 config TARGET_P1024RDB
 	bool "Support P1024RDB"
 	bool "Support P1024RDB"
@@ -186,6 +200,7 @@ config TARGET_P1024RDB
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1024
 	select ARCH_P1024
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1025RDB
 config TARGET_P1025RDB
 	bool "Support P1025RDB"
 	bool "Support P1025RDB"
@@ -193,6 +208,7 @@ config TARGET_P1025RDB
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P1025
 	select ARCH_P1025
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P2020RDB
 config TARGET_P2020RDB
 	bool "Support P2020RDB-PC"
 	bool "Support P2020RDB-PC"
@@ -200,6 +216,7 @@ config TARGET_P2020RDB
 	select SUPPORT_TPL
 	select SUPPORT_TPL
 	select ARCH_P2020
 	select ARCH_P2020
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_P1_TWR
 config TARGET_P1_TWR
 	bool "Support p1_twr"
 	bool "Support p1_twr"
@@ -210,6 +227,7 @@ config TARGET_P2041RDB
 	select ARCH_P2041
 	select ARCH_P2041
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_QEMU_PPCE500
 config TARGET_QEMU_PPCE500
 	bool "Support qemu-ppce500"
 	bool "Support qemu-ppce500"
@@ -223,6 +241,7 @@ config TARGET_T1024QDS
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_T1023RDB
 config TARGET_T1023RDB
 	bool "Support T1023RDB"
 	bool "Support T1023RDB"
@@ -246,6 +265,7 @@ config TARGET_T1040QDS
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select PHYS_64BIT
 	select PHYS_64BIT
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config TARGET_T1040RDB
 config TARGET_T1040RDB
 	bool "Support T1040RDB"
 	bool "Support T1040RDB"
@@ -253,6 +273,7 @@ config TARGET_T1040RDB
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T1040D4RDB
 config TARGET_T1040D4RDB
 	bool "Support T1040D4RDB"
 	bool "Support T1040D4RDB"
@@ -260,6 +281,7 @@ config TARGET_T1040D4RDB
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T1042RDB
 config TARGET_T1042RDB
 	bool "Support T1042RDB"
 	bool "Support T1042RDB"
@@ -267,6 +289,7 @@ config TARGET_T1042RDB
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T1042D4RDB
 config TARGET_T1042D4RDB
 	bool "Support T1042D4RDB"
 	bool "Support T1042D4RDB"
@@ -274,6 +297,7 @@ config TARGET_T1042D4RDB
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T1042RDB_PI
 config TARGET_T1042RDB_PI
 	bool "Support T1042RDB_PI"
 	bool "Support T1042RDB_PI"
@@ -281,6 +305,7 @@ config TARGET_T1042RDB_PI
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T2080QDS
 config TARGET_T2080QDS
 	bool "Support T2080QDS"
 	bool "Support T2080QDS"
@@ -288,6 +313,7 @@ config TARGET_T2080QDS
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T2080RDB
 config TARGET_T2080RDB
 	bool "Support T2080RDB"
 	bool "Support T2080RDB"
@@ -295,6 +321,7 @@ config TARGET_T2080RDB
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T2081QDS
 config TARGET_T2081QDS
 	bool "Support T2081QDS"
 	bool "Support T2081QDS"
@@ -308,6 +335,7 @@ config TARGET_T4160QDS
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T4160RDB
 config TARGET_T4160RDB
 	bool "Support T4160RDB"
 	bool "Support T4160RDB"
@@ -321,12 +349,14 @@ config TARGET_T4240QDS
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select BOARD_LATE_INIT if CHAIN_OF_TRUST
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_T4240RDB
 config TARGET_T4240RDB
 	bool "Support T4240RDB"
 	bool "Support T4240RDB"
 	select ARCH_T4240
 	select ARCH_T4240
 	select SUPPORT_SPL
 	select SUPPORT_SPL
 	select PHYS_64BIT
 	select PHYS_64BIT
+	imply CMD_SATA
 
 
 config TARGET_CONTROLCENTERD
 config TARGET_CONTROLCENTERD
 	bool "Support controlcenterd"
 	bool "Support controlcenterd"
@@ -356,6 +386,7 @@ config TARGET_XPEDITE550X
 config TARGET_UCP1020
 config TARGET_UCP1020
 	bool "Support uCP1020"
 	bool "Support uCP1020"
 	select ARCH_P1020
 	select ARCH_P1020
+	imply CMD_SATA
 
 
 config TARGET_CYRUS_P5020
 config TARGET_CYRUS_P5020
 	bool "Support Varisys Cyrus P5020"
 	bool "Support Varisys Cyrus P5020"
@@ -477,6 +508,7 @@ config ARCH_MPC8536
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_MPC8540
 config ARCH_MPC8540
 	bool
 	bool
@@ -585,6 +617,7 @@ config ARCH_P1010
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_IFC
 	select FSL_IFC
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config ARCH_P1011
 config ARCH_P1011
 	bool
 	bool
@@ -613,6 +646,7 @@ config ARCH_P1020
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P1021
 config ARCH_P1021
 	bool
 	bool
@@ -627,6 +661,7 @@ config ARCH_P1021
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P1022
 config ARCH_P1022
 	bool
 	bool
@@ -670,6 +705,7 @@ config ARCH_P1024
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_ELBC
 	select FSL_ELBC
 	imply CMD_EEPROM
 	imply CMD_EEPROM
+	imply CMD_SATA
 
 
 config ARCH_P1025
 config ARCH_P1025
 	bool
 	bool
@@ -684,6 +720,7 @@ config ARCH_P1025
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_FSL_SEC_COMPAT_2
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select SYS_PPC_E500_USE_DEBUG_TLB
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P2020
 config ARCH_P2020
 	bool
 	bool
@@ -746,6 +783,7 @@ config ARCH_P3041
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P4080
 config ARCH_P4080
 	bool
 	bool
@@ -781,6 +819,7 @@ config ARCH_P4080
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P5020
 config ARCH_P5020
 	bool
 	bool
@@ -802,6 +841,7 @@ config ARCH_P5020
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_PPC64
 	select SYS_PPC64
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_P5040
 config ARCH_P5040
 	bool
 	bool
@@ -823,6 +863,7 @@ config ARCH_P5040
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_PPC64
 	select SYS_PPC64
 	select FSL_ELBC
 	select FSL_ELBC
+	imply CMD_SATA
 
 
 config ARCH_QEMU_E500
 config ARCH_QEMU_E500
 	bool
 	bool
@@ -880,6 +921,7 @@ config ARCH_T1040
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_COMPAT_5
 	select SYS_FSL_SEC_COMPAT_5
 	select FSL_IFC
 	select FSL_IFC
+	imply CMD_SATA
 
 
 config ARCH_T1042
 config ARCH_T1042
 	bool
 	bool
@@ -898,6 +940,7 @@ config ARCH_T1042
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_BE
 	select SYS_FSL_SEC_COMPAT_5
 	select SYS_FSL_SEC_COMPAT_5
 	select FSL_IFC
 	select FSL_IFC
+	imply CMD_SATA
 
 
 config ARCH_T2080
 config ARCH_T2080
 	bool
 	bool
@@ -920,6 +963,7 @@ config ARCH_T2080
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_PPC64
 	select SYS_PPC64
 	select FSL_IFC
 	select FSL_IFC
+	imply CMD_SATA
 
 
 config ARCH_T2081
 config ARCH_T2081
 	bool
 	bool
@@ -961,6 +1005,7 @@ config ARCH_T4160
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_PPC64
 	select SYS_PPC64
 	select FSL_IFC
 	select FSL_IFC
+	imply CMD_SATA
 
 
 config ARCH_T4240
 config ARCH_T4240
 	bool
 	bool
@@ -985,6 +1030,7 @@ config ARCH_T4240
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_PPC64
 	select SYS_PPC64
 	select FSL_IFC
 	select FSL_IFC
+	imply CMD_SATA
 
 
 config BOOKE
 config BOOKE
 	bool
 	bool

+ 2 - 2
arch/powerpc/cpu/mpc85xx/cpu_init.c

@@ -48,7 +48,7 @@
 #ifndef CONFIG_ARCH_QEMU_E500
 #ifndef CONFIG_ARCH_QEMU_E500
 #include <fsl_ddr.h>
 #include <fsl_ddr.h>
 #endif
 #endif
-#include "../../../../drivers/block/fsl_sata.h"
+#include "../../../../drivers/ata/fsl_sata.h"
 #ifdef CONFIG_U_QE
 #ifdef CONFIG_U_QE
 #include <fsl_qe.h>
 #include <fsl_qe.h>
 #endif
 #endif
@@ -1024,7 +1024,7 @@ void arch_preboot_os(void)
 	mtmsr(msr);
 	mtmsr(msr);
 }
 }
 
 
-#if defined(CONFIG_CMD_SATA) && defined(CONFIG_FSL_SATA)
+#if defined(CONFIG_SATA) && defined(CONFIG_FSL_SATA)
 int sata_initialize(void)
 int sata_initialize(void)
 {
 {
 	if (is_serdes_configured(SATA1) || is_serdes_configured(SATA2))
 	if (is_serdes_configured(SATA1) || is_serdes_configured(SATA2))

+ 1 - 0
arch/powerpc/cpu/mpc86xx/Kconfig

@@ -21,6 +21,7 @@ config TARGET_MPC8610HPCD
 config TARGET_MPC8641HPCN
 config TARGET_MPC8641HPCN
 	bool "Support MPC8641HPCN"
 	bool "Support MPC8641HPCN"
 	select ARCH_MPC8641
 	select ARCH_MPC8641
+	imply SCSI
 
 
 config TARGET_XPEDITE517X
 config TARGET_XPEDITE517X
 	bool "Support xpedite517x"
 	bool "Support xpedite517x"

+ 0 - 11
arch/sandbox/cpu/spl.c

@@ -44,16 +44,5 @@ SPL_LOAD_IMAGE_METHOD("sandbox", 0, BOOT_DEVICE_BOARD, spl_board_load_image);
 
 
 void spl_board_init(void)
 void spl_board_init(void)
 {
 {
-	struct udevice *dev;
-
 	preloader_console_init();
 	preloader_console_init();
-
-	/*
-	* Scan all the devices so that we can output their platform data. See
-	* sandbox_spl_probe().
-	*/
-	for (uclass_first_device(UCLASS_MISC, &dev);
-	dev;
-	uclass_next_device(&dev))
-		;
 }
 }

+ 1 - 0
arch/sandbox/dts/sandbox.dts

@@ -5,6 +5,7 @@
 / {
 / {
 	#address-cells = <1>;
 	#address-cells = <1>;
 	#size-cells = <1>;
 	#size-cells = <1>;
+	model = "sandbox";
 
 
 	aliases {
 	aliases {
 		eth5 = "/eth@90000000";
 		eth5 = "/eth@90000000";

+ 19 - 0
arch/sandbox/dts/test.dts

@@ -289,6 +289,25 @@
 		};
 		};
 	};
 	};
 
 
+	probing {
+		compatible = "simple-bus";
+		test1 {
+			compatible = "denx,u-boot-probe-test";
+		};
+
+		test2 {
+			compatible = "denx,u-boot-probe-test";
+		};
+
+		test3 {
+			compatible = "denx,u-boot-probe-test";
+		};
+
+		test4 {
+			compatible = "denx,u-boot-probe-test";
+		};
+	};
+
 	pwrdom: power-domain {
 	pwrdom: power-domain {
 		compatible = "sandbox,power-domain";
 		compatible = "sandbox,power-domain";
 		#power-domain-cells = <1>;
 		#power-domain-cells = <1>;

+ 21 - 1
arch/x86/cpu/ivybridge/sata.c

@@ -6,6 +6,7 @@
  */
  */
 
 
 #include <common.h>
 #include <common.h>
+#include <ahci.h>
 #include <dm.h>
 #include <dm.h>
 #include <fdtdec.h>
 #include <fdtdec.h>
 #include <asm/io.h>
 #include <asm/io.h>
@@ -208,6 +209,20 @@ static void bd82x6x_sata_enable(struct udevice *dev)
 	dm_pci_write_config16(dev, 0x90, map);
 	dm_pci_write_config16(dev, 0x90, map);
 }
 }
 
 
+static int bd82x6x_sata_bind(struct udevice *dev)
+{
+	struct udevice *scsi_dev;
+	int ret;
+
+	if (gd->flags & GD_FLG_RELOC) {
+		ret = ahci_bind_scsi(dev, &scsi_dev);
+		if (ret)
+			return ret;
+	}
+
+	return 0;
+}
+
 static int bd82x6x_sata_probe(struct udevice *dev)
 static int bd82x6x_sata_probe(struct udevice *dev)
 {
 {
 	struct udevice *pch;
 	struct udevice *pch;
@@ -219,8 +234,12 @@ static int bd82x6x_sata_probe(struct udevice *dev)
 
 
 	if (!(gd->flags & GD_FLG_RELOC))
 	if (!(gd->flags & GD_FLG_RELOC))
 		bd82x6x_sata_enable(dev);
 		bd82x6x_sata_enable(dev);
-	else
+	else {
 		bd82x6x_sata_init(dev, pch);
 		bd82x6x_sata_init(dev, pch);
+		ret = ahci_probe_scsi(dev);
+		if (ret)
+			return ret;
+	}
 
 
 	return 0;
 	return 0;
 }
 }
@@ -234,5 +253,6 @@ U_BOOT_DRIVER(ahci_ivybridge_drv) = {
 	.name		= "ahci_ivybridge",
 	.name		= "ahci_ivybridge",
 	.id		= UCLASS_AHCI,
 	.id		= UCLASS_AHCI,
 	.of_match	= bd82x6x_ahci_ids,
 	.of_match	= bd82x6x_ahci_ids,
+	.bind		= bd82x6x_sata_bind,
 	.probe		= bd82x6x_sata_probe,
 	.probe		= bd82x6x_sata_probe,
 };
 };

+ 1 - 1
board/advantech/dms-ba16/dms-ba16.c

@@ -609,7 +609,7 @@ int board_late_init(void)
 	pwm_enable(0);
 	pwm_enable(0);
 #endif
 #endif
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_ba16_sata();
 	setup_ba16_sata();
 #endif
 #endif
 
 

+ 1 - 1
board/bachmann/ot1200/ot1200.c

@@ -338,7 +338,7 @@ int board_init(void)
 
 
 	leds_on();
 	leds_on();
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 1
board/boundary/nitrogen6x/nitrogen6x.c

@@ -903,7 +903,7 @@ int board_init(void)
 	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
 	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
 	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
 	setup_i2c(2, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 0
board/congatec/Kconfig

@@ -13,6 +13,7 @@ choice
 config TARGET_CONGA_QEVAL20_QA3_E3845
 config TARGET_CONGA_QEVAL20_QA3_E3845
 	bool "congatec QEVAL 2.0 & conga-QA3/E3845"
 	bool "congatec QEVAL 2.0 & conga-QA3/E3845"
 	select BOARD_LATE_INIT
 	select BOARD_LATE_INIT
+	imply SCSI
 	help
 	help
 	  This is the congatec Qseven 2.0 evaluation carrier board
 	  This is the congatec Qseven 2.0 evaluation carrier board
 	  (conga-QEVAL) equipped with the conga-QA3/E3845-4G SoM.
 	  (conga-QEVAL) equipped with the conga-QA3/E3845-4G SoM.

+ 1 - 1
board/congatec/cgtqmx6eval/cgtqmx6eval.c

@@ -702,7 +702,7 @@ int board_init(void)
 	else
 	else
 		setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info1);
 		setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &mx6dl_i2c_pad_info1);
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 0
board/dfi/Kconfig

@@ -12,6 +12,7 @@ choice
 
 
 config TARGET_DFI_BT700
 config TARGET_DFI_BT700
 	bool "DFI BT700 BayTrail"
 	bool "DFI BT700 BayTrail"
+	imply SCSI
 	help
 	help
 	  This is the DFI Q7X-151 baseboard equipped with the
 	  This is the DFI Q7X-151 baseboard equipped with the
 	  DFI BayTrail Bt700 SoM. It contains an Atom E3845 with
 	  DFI BayTrail Bt700 SoM. It contains an Atom E3845 with

+ 1 - 1
board/gateworks/gw_ventana/gw_ventana.c

@@ -633,7 +633,7 @@ int board_init(void)
 #endif
 #endif
 	setup_ventana_i2c();
 	setup_ventana_i2c();
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 	/* read Gateworks EEPROM into global struct (used later) */
 	/* read Gateworks EEPROM into global struct (used later) */

+ 1 - 1
board/highbank/ahci.c

@@ -172,7 +172,7 @@ static void cphy_override_lane(u8 port)
 
 
 #define WAIT_MS_LINKUP	4
 #define WAIT_MS_LINKUP	4
 
 
-int ahci_link_up(struct ahci_probe_ent *probe_ent, int port)
+int ahci_link_up(struct ahci_uc_priv *probe_ent, int port)
 {
 {
 	u32 tmp;
 	u32 tmp;
 	int j = 0;
 	int j = 0;

+ 1 - 1
board/highbank/highbank.c

@@ -67,7 +67,7 @@ void scsi_init(void)
 	cphy_disable_overrides();
 	cphy_disable_overrides();
 	if (reg & PWRDOM_STAT_SATA) {
 	if (reg & PWRDOM_STAT_SATA) {
 		ahci_init((void __iomem *)HB_AHCI_BASE);
 		ahci_init((void __iomem *)HB_AHCI_BASE);
-		scsi_scan(1);
+		scsi_scan(true);
 	}
 	}
 }
 }
 #endif
 #endif

+ 1 - 1
board/kosagi/novena/novena.c

@@ -167,7 +167,7 @@ int board_init(void)
 	/* address of boot parameters */
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 1
board/sandbox/README.sandbox

@@ -333,7 +333,7 @@ the contents of the root directory on the second partion of the image
 A disk image can be created using the following commands:
 A disk image can be created using the following commands:
 
 
 $> truncate -s 1200M ./disk.raw
 $> truncate -s 1200M ./disk.raw
-$> echo -e "label: gpt\n,64M,U\n,,L" | /usr/sbin/sfdisk  ./disk.raw
+$> echo -e "label: gpt\n,64M,U\n,,L" | /usr/sbin/sgdisk  ./disk.raw
 $> lodev=`sudo losetup -P -f --show ./disk.raw`
 $> lodev=`sudo losetup -P -f --show ./disk.raw`
 $> sudo mkfs.vfat -n EFI -v ${lodev}p1
 $> sudo mkfs.vfat -n EFI -v ${lodev}p1
 $> sudo mkfs.ext4 -L ROOT -v ${lodev}p2
 $> sudo mkfs.ext4 -L ROOT -v ${lodev}p2

+ 1 - 1
board/toradex/apalis_imx6/apalis_imx6.c

@@ -784,7 +784,7 @@ int board_init(void)
 	(void) pmic_init();
 	(void) pmic_init();
 #endif
 #endif
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 1
board/toradex/colibri_imx6/colibri_imx6.c

@@ -657,7 +657,7 @@ int board_init(void)
 	(void) pmic_init();
 	(void) pmic_init();
 #endif
 #endif
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	setup_sata();
 	setup_sata();
 #endif
 #endif
 
 

+ 1 - 1
board/udoo/udoo.c

@@ -244,7 +244,7 @@ int board_init(void)
 	/* address of boot parameters */
 	/* address of boot parameters */
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	if (is_cpu_type(MXC_CPU_MX6Q))
 	if (is_cpu_type(MXC_CPU_MX6Q))
 		setup_sata();
 		setup_sata();
 #endif
 #endif

+ 1 - 1
board/wandboard/wandboard.c

@@ -379,7 +379,7 @@ int board_early_init_f(void)
 #if defined(CONFIG_VIDEO_IPUV3)
 #if defined(CONFIG_VIDEO_IPUV3)
 	setup_display();
 	setup_display();
 #endif
 #endif
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 	/* Only mx6q wandboard has SATA */
 	/* Only mx6q wandboard has SATA */
 	if (is_cpu_type(MXC_CPU_MX6Q))
 	if (is_cpu_type(MXC_CPU_MX6Q))
 		setup_sata();
 		setup_sata();

+ 13 - 0
cmd/Kconfig

@@ -734,6 +734,19 @@ config CMD_FDC
 	help
 	help
 	  The 'fdtboot' command allows booting an image from a floppy disk.
 	  The 'fdtboot' command allows booting an image from a floppy disk.
 
 
+config CMD_SATA
+	bool "sata - Access SATA subsystem"
+	select SATA
+	help
+	  SATA (Serial Advanced Technology Attachment) is a serial bus
+	  standard for connecting to hard drives and other storage devices.
+	  This command provides information about attached devices and allows
+	  reading, writing and other operations.
+
+	  SATA replaces PATA (originally just ATA), which stands for Parallel AT
+	  Attachment, where AT refers to an IBM AT (Advanced Technology)
+	  computer released in 1984.
+
 endmenu
 endmenu
 
 
 
 

+ 4 - 0
cmd/fdt.c

@@ -284,6 +284,10 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			len = 0;
 			len = 0;
 		} else {
 		} else {
 			ptmp = fdt_getprop(working_fdt, nodeoffset, prop, &len);
 			ptmp = fdt_getprop(working_fdt, nodeoffset, prop, &len);
+			if (!ptmp) {
+				printf("prop (%s) not found!\n", prop);
+				return 1;
+			}
 			if (len > SCRATCHPAD) {
 			if (len > SCRATCHPAD) {
 				printf("prop (%d) doesn't fit in scratchpad!\n",
 				printf("prop (%d) doesn't fit in scratchpad!\n",
 				       len);
 				       len);

+ 3 - 3
cmd/scsi.c

@@ -36,8 +36,8 @@ static int do_scsi(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
 	case 2:
 	case 2:
 		if (strncmp(argv[1], "res", 3) == 0) {
 		if (strncmp(argv[1], "res", 3) == 0) {
 			printf("\nReset SCSI\n");
 			printf("\nReset SCSI\n");
-			scsi_bus_reset();
-			ret = scsi_scan(1);
+			scsi_bus_reset(NULL);
+			ret = scsi_scan(true);
 			if (ret)
 			if (ret)
 				return CMD_RET_FAILURE;
 				return CMD_RET_FAILURE;
 			return ret;
 			return ret;
@@ -55,7 +55,7 @@ static int do_scsi(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
 			return 0;
 			return 0;
 		}
 		}
 		if (strncmp(argv[1], "scan", 4) == 0) {
 		if (strncmp(argv[1], "scan", 4) == 0) {
-			ret = scsi_scan(1);
+			ret = scsi_scan(true);
 			if (ret)
 			if (ret)
 				return CMD_RET_FAILURE;
 				return CMD_RET_FAILURE;
 			return ret;
 			return ret;

+ 3 - 1
cmd/version.c

@@ -17,7 +17,9 @@ const char __weak version_string[] = U_BOOT_VERSION_STRING;
 
 
 static int do_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 static int do_version(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 {
-	printf("\n%s\n", version_string);
+	char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
+
+	printf(display_options_get_banner(false, buf, sizeof(buf)));
 #ifdef CC_VERSION_STRING
 #ifdef CC_VERSION_STRING
 	puts(CC_VERSION_STRING "\n");
 	puts(CC_VERSION_STRING "\n");
 #endif
 #endif

+ 1 - 1
common/Kconfig

@@ -488,7 +488,7 @@ config DISPLAY_CPUINFO
 
 
 config DISPLAY_BOARDINFO
 config DISPLAY_BOARDINFO
 	bool "Display information about the board during start up"
 	bool "Display information about the board during start up"
-	default y if ARM || M68K || MIPS || PPC || XTENSA
+	default y if ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
 	help
 	help
 	  Display information about the board that U-Boot is running on
 	  Display information about the board that U-Boot is running on
 	  when U-Boot starts up. The board function checkboard() is called
 	  when U-Boot starts up. The board function checkboard() is called

+ 0 - 5
common/Makefile

@@ -79,8 +79,6 @@ obj-$(CONFIG_LCD_ROTATION) += lcd_console_rotation.o
 obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
 obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
 obj-$(CONFIG_LYNXKDI) += lynxkdi.o
 obj-$(CONFIG_LYNXKDI) += lynxkdi.o
 obj-$(CONFIG_MENU) += menu.o
 obj-$(CONFIG_MENU) += menu.o
-obj-$(CONFIG_CMD_SATA) += sata.o
-obj-$(CONFIG_SCSI) += scsi.o
 obj-$(CONFIG_UPDATE_TFTP) += update.o
 obj-$(CONFIG_UPDATE_TFTP) += update.o
 obj-$(CONFIG_DFU_TFTP) += update.o
 obj-$(CONFIG_DFU_TFTP) += update.o
 obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
 obj-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
@@ -122,9 +120,6 @@ obj-$(CONFIG_ENV_IS_IN_NAND) += env_nand.o
 obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
 obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
 obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
 obj-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o
 endif
 endif
-ifdef CONFIG_SPL_SATA_SUPPORT
-obj-$(CONFIG_SCSI) += scsi.o
-endif
 endif
 endif
 #environment
 #environment
 obj-y += env_common.o
 obj-y += env_common.o

+ 1 - 0
common/board_r.c

@@ -829,6 +829,7 @@ static init_fnc_t init_sequence_r[] = {
 #endif
 #endif
 	console_init_r,		/* fully init console as a device */
 	console_init_r,		/* fully init console as a device */
 #ifdef CONFIG_DISPLAY_BOARDINFO_LATE
 #ifdef CONFIG_DISPLAY_BOARDINFO_LATE
+	console_announce_r,
 	show_board_info,
 	show_board_info,
 #endif
 #endif
 #ifdef CONFIG_ARCH_MISC_INIT
 #ifdef CONFIG_ARCH_MISC_INIT

+ 22 - 19
common/console.c

@@ -11,6 +11,7 @@
 #include <stdarg.h>
 #include <stdarg.h>
 #include <iomux.h>
 #include <iomux.h>
 #include <malloc.h>
 #include <malloc.h>
+#include <mapmem.h>
 #include <os.h>
 #include <os.h>
 #include <serial.h>
 #include <serial.h>
 #include <stdio_dev.h>
 #include <stdio_dev.h>
@@ -202,7 +203,6 @@ static void console_putc(int file, const char c)
 	}
 	}
 }
 }
 
 
-#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
 static void console_puts_noserial(int file, const char *s)
 static void console_puts_noserial(int file, const char *s)
 {
 {
 	int i;
 	int i;
@@ -214,7 +214,6 @@ static void console_puts_noserial(int file, const char *s)
 			dev->puts(dev, s);
 			dev->puts(dev, s);
 	}
 	}
 }
 }
-#endif
 
 
 static void console_puts(int file, const char *s)
 static void console_puts(int file, const char *s)
 {
 {
@@ -248,13 +247,11 @@ static inline void console_putc(int file, const char c)
 	stdio_devices[file]->putc(stdio_devices[file], c);
 	stdio_devices[file]->putc(stdio_devices[file], c);
 }
 }
 
 
-#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
 static inline void console_puts_noserial(int file, const char *s)
 static inline void console_puts_noserial(int file, const char *s)
 {
 {
 	if (strcmp(stdio_devices[file]->name, "serial") != 0)
 	if (strcmp(stdio_devices[file]->name, "serial") != 0)
 		stdio_devices[file]->puts(stdio_devices[file], s);
 		stdio_devices[file]->puts(stdio_devices[file], s);
 }
 }
-#endif
 
 
 static inline void console_puts(int file, const char *s)
 static inline void console_puts(int file, const char *s)
 {
 {
@@ -420,9 +417,13 @@ int tstc(void)
 
 
 static void pre_console_putc(const char c)
 static void pre_console_putc(const char c)
 {
 {
-	char *buffer = (char *)CONFIG_PRE_CON_BUF_ADDR;
+	char *buffer;
+
+	buffer = map_sysmem(CONFIG_PRE_CON_BUF_ADDR, CONFIG_PRE_CON_BUF_SZ);
 
 
 	buffer[CIRC_BUF_IDX(gd->precon_buf_idx++)] = c;
 	buffer[CIRC_BUF_IDX(gd->precon_buf_idx++)] = c;
+
+	unmap_sysmem(buffer);
 }
 }
 
 
 static void pre_console_puts(const char *s)
 static void pre_console_puts(const char *s)
@@ -434,14 +435,16 @@ static void pre_console_puts(const char *s)
 static void print_pre_console_buffer(int flushpoint)
 static void print_pre_console_buffer(int flushpoint)
 {
 {
 	unsigned long in = 0, out = 0;
 	unsigned long in = 0, out = 0;
-	char *buf_in = (char *)CONFIG_PRE_CON_BUF_ADDR;
 	char buf_out[CONFIG_PRE_CON_BUF_SZ + 1];
 	char buf_out[CONFIG_PRE_CON_BUF_SZ + 1];
+	char *buf_in;
 
 
+	buf_in = map_sysmem(CONFIG_PRE_CON_BUF_ADDR, CONFIG_PRE_CON_BUF_SZ);
 	if (gd->precon_buf_idx > CONFIG_PRE_CON_BUF_SZ)
 	if (gd->precon_buf_idx > CONFIG_PRE_CON_BUF_SZ)
 		in = gd->precon_buf_idx - CONFIG_PRE_CON_BUF_SZ;
 		in = gd->precon_buf_idx - CONFIG_PRE_CON_BUF_SZ;
 
 
 	while (in < gd->precon_buf_idx)
 	while (in < gd->precon_buf_idx)
 		buf_out[out++] = buf_in[CIRC_BUF_IDX(in++)];
 		buf_out[out++] = buf_in[CIRC_BUF_IDX(in++)];
+	unmap_sysmem(buf_in);
 
 
 	buf_out[out] = 0;
 	buf_out[out] = 0;
 
 
@@ -462,13 +465,6 @@ static inline void print_pre_console_buffer(int flushpoint) {}
 
 
 void putc(const char c)
 void putc(const char c)
 {
 {
-#ifdef CONFIG_SANDBOX
-	/* sandbox can send characters to stdout before it has a console */
-	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
-		os_putc(c);
-		return;
-	}
-#endif
 #ifdef CONFIG_DEBUG_UART
 #ifdef CONFIG_DEBUG_UART
 	/* if we don't have a console yet, use the debug UART */
 	/* if we don't have a console yet, use the debug UART */
 	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
 	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
@@ -505,12 +501,6 @@ void putc(const char c)
 
 
 void puts(const char *s)
 void puts(const char *s)
 {
 {
-#ifdef CONFIG_SANDBOX
-	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
-		os_puts(s);
-		return;
-	}
-#endif
 #ifdef CONFIG_DEBUG_UART
 #ifdef CONFIG_DEBUG_UART
 	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
 	if (!gd || !(gd->flags & GD_FLG_SERIAL_READY)) {
 		while (*s) {
 		while (*s) {
@@ -699,6 +689,19 @@ static void console_update_silent(void)
 #endif
 #endif
 }
 }
 
 
+int console_announce_r(void)
+{
+#if !CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
+	char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
+
+	display_options_get_banner(false, buf, sizeof(buf));
+
+	console_puts_noserial(stdout, buf);
+#endif
+
+	return 0;
+}
+
 /* Called before relocation - use serial functions */
 /* Called before relocation - use serial functions */
 int console_init_f(void)
 int console_init_f(void)
 {
 {

+ 1 - 1
common/spl/spl_sata.c

@@ -34,7 +34,7 @@ static int spl_sata_load_image(struct spl_image_info *spl_image,
 		return err;
 		return err;
 	} else {
 	} else {
 		/* try to recognize storage devices immediately */
 		/* try to recognize storage devices immediately */
-		scsi_scan(0);
+		scsi_scan(false);
 		stor_dev = blk_get_devnum_by_type(IF_TYPE_SCSI, 0);
 		stor_dev = blk_get_devnum_by_type(IF_TYPE_SCSI, 0);
 		if (!stor_dev)
 		if (!stor_dev)
 			return -ENODEV;
 			return -ENODEV;

+ 1 - 1
common/splash_source.c

@@ -162,7 +162,7 @@ static inline int splash_init_usb(void)
 }
 }
 #endif
 #endif
 
 
-#ifdef CONFIG_CMD_SATA
+#ifdef CONFIG_SATA
 static int splash_init_sata(void)
 static int splash_init_sata(void)
 {
 {
 	return sata_initialize();
 	return sata_initialize();

+ 22 - 22
common/usb_storage.c

@@ -63,7 +63,7 @@ static const unsigned char us_direction[256/8] = {
 };
 };
 #define US_DIRECTION(x) ((us_direction[x>>3] >> (x & 7)) & 1)
 #define US_DIRECTION(x) ((us_direction[x>>3] >> (x & 7)) & 1)
 
 
-static ccb usb_ccb __attribute__((aligned(ARCH_DMA_MINALIGN)));
+static struct scsi_cmd usb_ccb __aligned(ARCH_DMA_MINALIGN);
 static __u32 CBWTag;
 static __u32 CBWTag;
 
 
 static int usb_max_devs; /* number of highest available usb device */
 static int usb_max_devs; /* number of highest available usb device */
@@ -73,7 +73,7 @@ static struct blk_desc usb_dev_desc[USB_MAX_STOR_DEV];
 #endif
 #endif
 
 
 struct us_data;
 struct us_data;
-typedef int (*trans_cmnd)(ccb *cb, struct us_data *data);
+typedef int (*trans_cmnd)(struct scsi_cmd *cb, struct us_data *data);
 typedef int (*trans_reset)(struct us_data *data);
 typedef int (*trans_reset)(struct us_data *data);
 
 
 struct us_data {
 struct us_data {
@@ -95,7 +95,7 @@ struct us_data {
 	unsigned int	irqpipe;	 	/* pipe for release_irq */
 	unsigned int	irqpipe;	 	/* pipe for release_irq */
 	unsigned char	irqmaxp;		/* max packed for irq Pipe */
 	unsigned char	irqmaxp;		/* max packed for irq Pipe */
 	unsigned char	irqinterval;		/* Intervall for IRQ Pipe */
 	unsigned char	irqinterval;		/* Intervall for IRQ Pipe */
-	ccb		*srb;			/* current srb */
+	struct scsi_cmd	*srb;			/* current srb */
 	trans_reset	transport_reset;	/* reset routine */
 	trans_reset	transport_reset;	/* reset routine */
 	trans_cmnd	transport;		/* transport routine */
 	trans_cmnd	transport;		/* transport routine */
 };
 };
@@ -349,7 +349,7 @@ static int usb_stor_irq(struct usb_device *dev)
 
 
 #ifdef	DEBUG
 #ifdef	DEBUG
 
 
-static void usb_show_srb(ccb *pccb)
+static void usb_show_srb(struct scsi_cmd *pccb)
 {
 {
 	int i;
 	int i;
 	printf("SRB: len %d datalen 0x%lX\n ", pccb->cmdlen, pccb->datalen);
 	printf("SRB: len %d datalen 0x%lX\n ", pccb->cmdlen, pccb->datalen);
@@ -541,7 +541,7 @@ static int usb_stor_CB_reset(struct us_data *us)
  * Set up the command for a BBB device. Note that the actual SCSI
  * Set up the command for a BBB device. Note that the actual SCSI
  * command is copied into cbw.CBWCDB.
  * command is copied into cbw.CBWCDB.
  */
  */
-static int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
+static int usb_stor_BBB_comdat(struct scsi_cmd *srb, struct us_data *us)
 {
 {
 	int result;
 	int result;
 	int actlen;
 	int actlen;
@@ -590,7 +590,7 @@ static int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
 /* FIXME: we also need a CBI_command which sets up the completion
 /* FIXME: we also need a CBI_command which sets up the completion
  * interrupt, and waits for it
  * interrupt, and waits for it
  */
  */
-static int usb_stor_CB_comdat(ccb *srb, struct us_data *us)
+static int usb_stor_CB_comdat(struct scsi_cmd *srb, struct us_data *us)
 {
 {
 	int result = 0;
 	int result = 0;
 	int dir_in, retry;
 	int dir_in, retry;
@@ -659,7 +659,7 @@ static int usb_stor_CB_comdat(ccb *srb, struct us_data *us)
 }
 }
 
 
 
 
-static int usb_stor_CBI_get_status(ccb *srb, struct us_data *us)
+static int usb_stor_CBI_get_status(struct scsi_cmd *srb, struct us_data *us)
 {
 {
 	int timeout;
 	int timeout;
 
 
@@ -714,7 +714,7 @@ static int usb_stor_BBB_clear_endpt_stall(struct us_data *us, __u8 endpt)
 			       endpt, NULL, 0, USB_CNTL_TIMEOUT * 5);
 			       endpt, NULL, 0, USB_CNTL_TIMEOUT * 5);
 }
 }
 
 
-static int usb_stor_BBB_transport(ccb *srb, struct us_data *us)
+static int usb_stor_BBB_transport(struct scsi_cmd *srb, struct us_data *us)
 {
 {
 	int result, retry;
 	int result, retry;
 	int dir_in;
 	int dir_in;
@@ -837,11 +837,11 @@ again:
 	return result;
 	return result;
 }
 }
 
 
-static int usb_stor_CB_transport(ccb *srb, struct us_data *us)
+static int usb_stor_CB_transport(struct scsi_cmd *srb, struct us_data *us)
 {
 {
 	int result, status;
 	int result, status;
-	ccb *psrb;
-	ccb reqsrb;
+	struct scsi_cmd *psrb;
+	struct scsi_cmd reqsrb;
 	int retry, notready;
 	int retry, notready;
 
 
 	psrb = &reqsrb;
 	psrb = &reqsrb;
@@ -950,7 +950,7 @@ do_retry:
 }
 }
 
 
 
 
-static int usb_inquiry(ccb *srb, struct us_data *ss)
+static int usb_inquiry(struct scsi_cmd *srb, struct us_data *ss)
 {
 {
 	int retry, i;
 	int retry, i;
 	retry = 5;
 	retry = 5;
@@ -974,7 +974,7 @@ static int usb_inquiry(ccb *srb, struct us_data *ss)
 	return 0;
 	return 0;
 }
 }
 
 
-static int usb_request_sense(ccb *srb, struct us_data *ss)
+static int usb_request_sense(struct scsi_cmd *srb, struct us_data *ss)
 {
 {
 	char *ptr;
 	char *ptr;
 
 
@@ -994,7 +994,7 @@ static int usb_request_sense(ccb *srb, struct us_data *ss)
 	return 0;
 	return 0;
 }
 }
 
 
-static int usb_test_unit_ready(ccb *srb, struct us_data *ss)
+static int usb_test_unit_ready(struct scsi_cmd *srb, struct us_data *ss)
 {
 {
 	int retries = 10;
 	int retries = 10;
 
 
@@ -1025,7 +1025,7 @@ static int usb_test_unit_ready(ccb *srb, struct us_data *ss)
 	return -1;
 	return -1;
 }
 }
 
 
-static int usb_read_capacity(ccb *srb, struct us_data *ss)
+static int usb_read_capacity(struct scsi_cmd *srb, struct us_data *ss)
 {
 {
 	int retry;
 	int retry;
 	/* XXX retries */
 	/* XXX retries */
@@ -1043,8 +1043,8 @@ static int usb_read_capacity(ccb *srb, struct us_data *ss)
 	return -1;
 	return -1;
 }
 }
 
 
-static int usb_read_10(ccb *srb, struct us_data *ss, unsigned long start,
-		       unsigned short blocks)
+static int usb_read_10(struct scsi_cmd *srb, struct us_data *ss,
+		       unsigned long start, unsigned short blocks)
 {
 {
 	memset(&srb->cmd[0], 0, 12);
 	memset(&srb->cmd[0], 0, 12);
 	srb->cmd[0] = SCSI_READ10;
 	srb->cmd[0] = SCSI_READ10;
@@ -1060,8 +1060,8 @@ static int usb_read_10(ccb *srb, struct us_data *ss, unsigned long start,
 	return ss->transport(srb, ss);
 	return ss->transport(srb, ss);
 }
 }
 
 
-static int usb_write_10(ccb *srb, struct us_data *ss, unsigned long start,
-			unsigned short blocks)
+static int usb_write_10(struct scsi_cmd *srb, struct us_data *ss,
+			unsigned long start, unsigned short blocks)
 {
 {
 	memset(&srb->cmd[0], 0, 12);
 	memset(&srb->cmd[0], 0, 12);
 	srb->cmd[0] = SCSI_WRITE10;
 	srb->cmd[0] = SCSI_WRITE10;
@@ -1115,7 +1115,7 @@ static unsigned long usb_stor_read(struct blk_desc *block_dev, lbaint_t blknr,
 	struct usb_device *udev;
 	struct usb_device *udev;
 	struct us_data *ss;
 	struct us_data *ss;
 	int retry;
 	int retry;
-	ccb *srb = &usb_ccb;
+	struct scsi_cmd *srb = &usb_ccb;
 #ifdef CONFIG_BLK
 #ifdef CONFIG_BLK
 	struct blk_desc *block_dev;
 	struct blk_desc *block_dev;
 #endif
 #endif
@@ -1197,7 +1197,7 @@ static unsigned long usb_stor_write(struct blk_desc *block_dev, lbaint_t blknr,
 	struct usb_device *udev;
 	struct usb_device *udev;
 	struct us_data *ss;
 	struct us_data *ss;
 	int retry;
 	int retry;
-	ccb *srb = &usb_ccb;
+	struct scsi_cmd *srb = &usb_ccb;
 #ifdef CONFIG_BLK
 #ifdef CONFIG_BLK
 	struct blk_desc *block_dev;
 	struct blk_desc *block_dev;
 #endif
 #endif
@@ -1395,7 +1395,7 @@ int usb_stor_get_info(struct usb_device *dev, struct us_data *ss,
 	ALLOC_CACHE_ALIGN_BUFFER(u32, cap, 2);
 	ALLOC_CACHE_ALIGN_BUFFER(u32, cap, 2);
 	ALLOC_CACHE_ALIGN_BUFFER(u8, usb_stor_buf, 36);
 	ALLOC_CACHE_ALIGN_BUFFER(u8, usb_stor_buf, 36);
 	u32 capacity, blksz;
 	u32 capacity, blksz;
-	ccb *pccb = &usb_ccb;
+	struct scsi_cmd *pccb = &usb_ccb;
 
 
 	pccb->pdata = usb_stor_buf;
 	pccb->pdata = usb_stor_buf;
 
 

+ 1 - 0
configs/A10-OLinuXino-Lime_defconfig

@@ -18,6 +18,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_AXP_ALDO3_VOLT=2800
 CONFIG_AXP_ALDO3_VOLT=2800
 CONFIG_AXP_ALDO4_VOLT=2800
 CONFIG_AXP_ALDO4_VOLT=2800

+ 1 - 0
configs/A20-OLinuXino-Lime2_defconfig

@@ -20,6 +20,7 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
+CONFIG_SCSI=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_RAM=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y

+ 1 - 0
configs/A20-OLinuXino-Lime_defconfig

@@ -16,6 +16,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_AXP_ALDO3_VOLT=2800
 CONFIG_AXP_ALDO3_VOLT=2800

+ 1 - 0
configs/A20-OLinuXino_MICRO_defconfig

@@ -19,6 +19,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_AXP_ALDO3_VOLT=2800
 CONFIG_AXP_ALDO3_VOLT=2800

+ 1 - 0
configs/A20-Olimex-SOM-EVB_defconfig

@@ -20,6 +20,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Bananapi_M2_Ultra_defconfig

@@ -14,5 +14,6 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SCSI=y
 CONFIG_AXP_DLDO4_VOLT=2500
 CONFIG_AXP_DLDO4_VOLT=2500
 CONFIG_AXP_ELDO3_VOLT=1200
 CONFIG_AXP_ELDO3_VOLT=1200

+ 1 - 0
configs/Bananapi_defconfig

@@ -17,6 +17,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_NETCONSOLE=y
 CONFIG_NETCONSOLE=y
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Bananapro_defconfig

@@ -19,6 +19,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_NETCONSOLE=y
 CONFIG_NETCONSOLE=y
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Cubieboard2_defconfig

@@ -15,6 +15,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Cubieboard_defconfig

@@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Cubietruck_defconfig

@@ -22,6 +22,7 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
 # CONFIG_SPL_PARTITION_UUIDS is not set
+CONFIG_SCSI=y
 CONFIG_DFU_RAM=y
 CONFIG_DFU_RAM=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y

+ 1 - 0
configs/Itead_Ibox_A20_defconfig

@@ -15,6 +15,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Lamobo_R1_defconfig

@@ -17,6 +17,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Linksprite_pcDuino3_Nano_defconfig

@@ -17,6 +17,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Linksprite_pcDuino3_defconfig

@@ -15,6 +15,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/MPC8315ERDB_defconfig

@@ -7,6 +7,7 @@ CONFIG_BOOTDELAY=6
 CONFIG_HUSH_PARSER=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_SATA=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_MII=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_PING=y

+ 1 - 0
configs/MPC8349ITX_LOWBOOT_defconfig

@@ -10,6 +10,7 @@ CONFIG_SYS_PROMPT="MPC8349E-mITX> "
 CONFIG_CMD_IDE=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_SATA=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_PING=y

+ 1 - 0
configs/MPC8349ITX_defconfig

@@ -10,6 +10,7 @@ CONFIG_SYS_PROMPT="MPC8349E-mITX> "
 CONFIG_CMD_IDE=y
 CONFIG_CMD_IDE=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_SATA=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_PING=y

+ 1 - 0
configs/MPC837XERDB_defconfig

@@ -8,6 +8,7 @@ CONFIG_HUSH_PARSER=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_SATA=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_MII=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_PING=y

+ 1 - 0
configs/MPC8544DS_defconfig

@@ -15,6 +15,7 @@ CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_HASH is not set
 # CONFIG_CMD_HASH is not set
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT2=y
+CONFIG_SCSI=y
 # CONFIG_MMC is not set
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_NETDEVICES=y
 CONFIG_NETDEVICES=y

+ 1 - 0
configs/MPC8610HPCD_defconfig

@@ -15,6 +15,7 @@ CONFIG_CMD_PING=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_BMP=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_EXT2=y
 CONFIG_DOS_PARTITION=y
 CONFIG_DOS_PARTITION=y
+CONFIG_SCSI=y
 # CONFIG_MMC is not set
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_MTD_NOR_FLASH=y
 CONFIG_SYS_NS16550=y
 CONFIG_SYS_NS16550=y

+ 1 - 0
configs/Marsboard_A10_defconfig

@@ -11,6 +11,7 @@ CONFIG_SPL=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_SUNXI_NO_PMIC=y
 CONFIG_SUNXI_NO_PMIC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Mele_A1000_defconfig

@@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_SUN4I_EMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Mele_M5_defconfig

@@ -16,6 +16,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_HCD=y

+ 1 - 0
configs/Orangepi_defconfig

@@ -19,6 +19,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Orangepi_mini_defconfig

@@ -21,6 +21,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/Wits_Pro_A20_DKT_defconfig

@@ -19,6 +19,7 @@ CONFIG_SPL_I2C_SUPPORT=y
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_DOS_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_ISO_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
 # CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_SCSI=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_RGMII=y
 CONFIG_RGMII=y
 CONFIG_SUN7I_GMAC=y
 CONFIG_SUN7I_GMAC=y

+ 1 - 0
configs/bayleybay_defconfig

@@ -46,6 +46,7 @@ CONFIG_EFI_PARTITION=y
 CONFIG_OF_CONTROL=y
 CONFIG_OF_CONTROL=y
 CONFIG_REGMAP=y
 CONFIG_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_SYSCON=y
+CONFIG_SCSI=y
 CONFIG_CPU=y
 CONFIG_CPU=y
 CONFIG_MMC=y
 CONFIG_MMC=y
 CONFIG_MMC_PCI=y
 CONFIG_MMC_PCI=y

+ 1 - 0
configs/cgtqmx6eval_defconfig

@@ -33,6 +33,7 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_DFU=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_USB_MASS_STORAGE=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPIO=y
+CONFIG_CMD_SATA=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_MII=y

+ 3 - 0
configs/chromebook_link64_defconfig

@@ -57,6 +57,9 @@ CONFIG_REGMAP=y
 CONFIG_SPL_REGMAP=y
 CONFIG_SPL_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_SYSCON=y
 CONFIG_SPL_SYSCON=y
 CONFIG_SPL_SYSCON=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_BLK=y
 CONFIG_CPU=y
 CONFIG_CPU=y
 CONFIG_DM_I2C=y
 CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_INTEL=y
 CONFIG_SYS_I2C_INTEL=y

部分文件因文件數量過多而無法顯示