From patchwork Mon Mar 23 17:26:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Johnson X-Patchwork-Id: 244148 List-Id: U-Boot discussion From: mrjoel at lixil.net (Joel Johnson) Date: Mon, 23 Mar 2020 11:26:31 -0600 Subject: [PATCH v2 1/2] arm: mvebu: clearfog: add SCSI to distro bootcmd Message-ID: <20200323172632.206912-1-mrjoel@lixil.net> Include attempting to boot from SCSI (SATA) devices within generated board distro bootcmd environment. The reasoning for boot ordering is that MMC and USB are external and removable, while when a case is in use, replacing M.2 or mSATA drives requires disassembly. Therefore, to boot SCSI, [bootable] external media must be removed. If SCSI were placed before MMC or USB, then removing a bootable SCSI drive to enable MMC or USB booting would be more difficult. Signed-off-by: Joel Johnson Reviewed-by: Stefan Roese --- v2 changes - none --- include/configs/clearfog.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 633187d86f..a452f4b009 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -110,9 +110,16 @@ #define BOOT_TARGET_DEVICES_USB(func) #endif +#ifdef CONFIG_SCSI +#define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0) +#else +#define BOOT_TARGET_DEVICES_SCSI(func) +#endif + #define BOOT_TARGET_DEVICES(func) \ BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_USB(func) \ + BOOT_TARGET_DEVICES_SCSI(func) \ func(PXE, pxe, na) \ func(DHCP, dhcp, na) From patchwork Mon Mar 23 17:26:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Johnson X-Patchwork-Id: 244149 List-Id: U-Boot discussion From: mrjoel at lixil.net (Joel Johnson) Date: Mon, 23 Mar 2020 11:26:32 -0600 Subject: [PATCH v2 2/2] arm: mvebu: clearfog: support multiple SATA boot In-Reply-To: <20200323172632.206912-1-mrjoel@lixil.net> References: <20200323172632.206912-1-mrjoel@lixil.net> Message-ID: <20200323172632.206912-2-mrjoel@lixil.net> Enable distro bootcmd support for additional SATA ports if enabled. Signed-off-by: Joel Johnson Reviewed-by: Stefan Roese --- This patch builds on and requires the separate patch in the "ClearFog Base static variant support" series adding configurable SATA support ("arm: mvebu: clearfog: Add SATA mode flags"). v2 changes: - name macros SCSI_BUSN to better distinguish between bus and connection - move not SCSI case first, otherwise it tends to get lost --- include/configs/clearfog.h | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index a452f4b009..0c314c4c53 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -110,16 +110,46 @@ #define BOOT_TARGET_DEVICES_USB(func) #endif -#ifdef CONFIG_SCSI -#define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0) +#ifndef CONFIG_SCSI +#define BOOT_TARGET_DEVICES_SCSI_BUS0(func) +#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) +#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) +#else +/* + * With SCSI enabled, M.2 SATA is always located on bus 0 + */ +#define BOOT_TARGET_DEVICES_SCSI_BUS0(func) func(SCSI, scsi, 0) + +/* + * Either one or both mPCIe slots may be configured as mSATA interfaces. The + * SCSI bus ids are assigned based on sequence of hardware present, not always + * tied to hardware slot ids. As such, use second SCSI bus if either slot is + * set for SATA, and only use third SCSI bus if both slots are SATA enabled. + */ +#if defined (CONFIG_CLEARFOG_CON2_SATA) || defined (CONFIG_CLEARFOG_CON3_SATA) +#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) func(SCSI, scsi, 1) #else -#define BOOT_TARGET_DEVICES_SCSI(func) +#define BOOT_TARGET_DEVICES_SCSI_BUS1(func) #endif +#if defined (CONFIG_CLEARFOG_CON2_SATA) && defined (CONFIG_CLEARFOG_CON3_SATA) +#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) func(SCSI, scsi, 2) +#else +#define BOOT_TARGET_DEVICES_SCSI_BUS2(func) +#endif + +#endif /* CONFIG_SCSI */ + +/* + * The SCSI buses are attempted in increasing bus order, there is no current + * mechanism to alter the default bus priority order for booting. + */ #define BOOT_TARGET_DEVICES(func) \ BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_USB(func) \ - BOOT_TARGET_DEVICES_SCSI(func) \ + BOOT_TARGET_DEVICES_SCSI_BUS0(func) \ + BOOT_TARGET_DEVICES_SCSI_BUS1(func) \ + BOOT_TARGET_DEVICES_SCSI_BUS2(func) \ func(PXE, pxe, na) \ func(DHCP, dhcp, na)