diff mbox series

xilinx: versal: Do not prioritize boot device if driver is not enabled

Message ID 8b7cca5c7b84cb4854104e0c48f8aa63c4ec5ace.1715322156.git.michal.simek@amd.com
State New
Delegated to: Michal Simek
Headers show
Series xilinx: versal: Do not prioritize boot device if driver is not enabled | expand

Commit Message

Michal Simek May 10, 2024, 6:22 a.m. UTC
From: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>

SOC can boot out of the device which is not accessible from APU and running
this is detected as a warning, as the device is not accessible.For example
getting below warning when the boot mode is OSPI and OSPI is not enabled in
device tree.
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)

Ignoring the prioritization of the boot device which driver is not enabled
and continue with the default boot_targets. Recommendation is to use custom
boot_targets via environment file as is done for example for Kria via
zynqmp_kria.env file.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
---

 board/xilinx/versal/board.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Michal Simek May 29, 2024, 1:15 p.m. UTC | #1
On 5/10/24 08:22, Michal Simek wrote:
> From: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
> 
> SOC can boot out of the device which is not accessible from APU and running
> this is detected as a warning, as the device is not accessible.For example
> getting below warning when the boot mode is OSPI and OSPI is not enabled in
> device tree.
> Invalid bus 0 (err=-19)
> Failed to initialize SPI flash at 0:0 (error -19)
> 
> Ignoring the prioritization of the boot device which driver is not enabled
> and continue with the default boot_targets. Recommendation is to use custom
> boot_targets via environment file as is done for example for Kria via
> zynqmp_kria.env file.
> 
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
> Signed-off-by: Michal Simek <michal.simek@amd.com>
> ---
> 
>   board/xilinx/versal/board.c | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 
> diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
> index 4f6d56119db1..f00605da7825 100644
> --- a/board/xilinx/versal/board.c
> +++ b/board/xilinx/versal/board.c
> @@ -151,14 +151,29 @@ static int boot_targets_setup(void)
>   		break;
>   	case QSPI_MODE_24BIT:
>   		puts("QSPI_MODE_24\n");
> +		if (uclass_get_device_by_name(UCLASS_SPI,
> +					      "spi@f1030000", &dev)) {
> +			debug("QSPI driver for QSPI device is not present\n");
> +			break;
> +		}
>   		mode = "xspi0";
>   		break;
>   	case QSPI_MODE_32BIT:
>   		puts("QSPI_MODE_32\n");
> +		if (uclass_get_device_by_name(UCLASS_SPI,
> +					      "spi@f1030000", &dev)) {
> +			debug("QSPI driver for QSPI device is not present\n");
> +			break;
> +		}
>   		mode = "xspi0";
>   		break;
>   	case OSPI_MODE:
>   		puts("OSPI_MODE\n");
> +		if (uclass_get_device_by_name(UCLASS_SPI,
> +					      "spi@f1010000", &dev)) {
> +			debug("OSPI driver for OSPI device is not present\n");
> +			break;
> +		}
>   		mode = "xspi0";
>   		break;
>   	case EMMC_MODE:

Applied.

M
diff mbox series

Patch

diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 4f6d56119db1..f00605da7825 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -151,14 +151,29 @@  static int boot_targets_setup(void)
 		break;
 	case QSPI_MODE_24BIT:
 		puts("QSPI_MODE_24\n");
+		if (uclass_get_device_by_name(UCLASS_SPI,
+					      "spi@f1030000", &dev)) {
+			debug("QSPI driver for QSPI device is not present\n");
+			break;
+		}
 		mode = "xspi0";
 		break;
 	case QSPI_MODE_32BIT:
 		puts("QSPI_MODE_32\n");
+		if (uclass_get_device_by_name(UCLASS_SPI,
+					      "spi@f1030000", &dev)) {
+			debug("QSPI driver for QSPI device is not present\n");
+			break;
+		}
 		mode = "xspi0";
 		break;
 	case OSPI_MODE:
 		puts("OSPI_MODE\n");
+		if (uclass_get_device_by_name(UCLASS_SPI,
+					      "spi@f1010000", &dev)) {
+			debug("OSPI driver for OSPI device is not present\n");
+			break;
+		}
 		mode = "xspi0";
 		break;
 	case EMMC_MODE: