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

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:

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
participants (1)
-
Michal Simek