From 201a500deccd2375e663d9266f2ae0173d173a81 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Mon, 17 Feb 2020 19:37:28 +0100 Subject: arm: mvebu: clearfog: add scsi target to distro-boot Support for sata devices via the scsi command is available and already enabled by default for the Clearfog Base and Pro. This change adds scsi to the list of boot targets used by distro-boot. Signed-off-by: Josua Mayer Cc: Stefan Roese Reviewed-by: Stefan Roese --- include/configs/clearfog.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 633187d86f..33c71b3d51 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -104,6 +104,12 @@ #define BOOT_TARGET_DEVICES_MMC(func) #endif +#ifdef CONFIG_SCSI +#define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0) +#else +#define BOOT_TARGET_DEVICES_SCSI(func) +#endif + #ifdef CONFIG_USB_STORAGE #define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0) #else @@ -112,6 +118,7 @@ #define BOOT_TARGET_DEVICES(func) \ BOOT_TARGET_DEVICES_MMC(func) \ + BOOT_TARGET_DEVICES_SCSI(func) \ BOOT_TARGET_DEVICES_USB(func) \ func(PXE, pxe, na) \ func(DHCP, dhcp, na) -- cgit From bd02fd29f996f90308d54632da767e586f6c1b44 Mon Sep 17 00:00:00 2001 From: Joel Johnson Date: Mon, 23 Mar 2020 11:26:31 -0600 Subject: arm: mvebu: clearfog: add SCSI to distro bootcmd 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 --- include/configs/clearfog.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include') diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 33c71b3d51..eef6983202 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -116,10 +116,17 @@ #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_SCSI(func) \ BOOT_TARGET_DEVICES_USB(func) \ + BOOT_TARGET_DEVICES_SCSI(func) \ func(PXE, pxe, na) \ func(DHCP, dhcp, na) -- cgit From cecf38a75581b0d4c4922b9a4ff94a626604830e Mon Sep 17 00:00:00 2001 From: Joel Johnson Date: Mon, 23 Mar 2020 11:26:32 -0600 Subject: arm: mvebu: clearfog: support multiple SATA boot Enable distro bootcmd support for additional SATA ports if enabled. Signed-off-by: Joel Johnson Reviewed-by: Stefan Roese --- include/configs/clearfog.h | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index eef6983202..52945d1703 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -116,17 +116,47 @@ #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 -#define BOOT_TARGET_DEVICES_SCSI(func) +/* + * 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_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_SCSI(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) -- cgit From 8eccd0dda0eea1d8ddc922d55d118f8db31715ad Mon Sep 17 00:00:00 2001 From: Joel Johnson Date: Mon, 23 Mar 2020 14:21:35 -0600 Subject: arm: mvebu: clearfog: Unify DT selection paths Unify the location of DT selection into board_late_init instead of split between detection and static configuration paths. Signed-off-by: Joel Johnson Reviewed-by: Stefan Roese --- include/configs/clearfog.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 52945d1703..8314956db6 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -178,7 +178,6 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ RELOCATION_LIMITS_ENV_SETTINGS \ LOAD_ADDRESS_ENV_SETTINGS \ - "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ "console=ttyS0,115200\0" \ BOOTENV -- cgit