[PATCH v3] arm64: versal: Add SelectMAP boot mode identification

The SelectMAP configuration interface provides an 8-bit, 16-bit or 32-bit bidirectional data bus interface to the Versal FPGA configuration logic that can be used for both configuration and readback.
A connected microcontoller to the SelectMAP interface can load boot image with bitstream, TF-A (ARM Trusted Firmware) and U-Boot.
This commit adds the missing identification of the SelectMAP mode.
Signed-off-by: Polak, Leszek LPolak@arri.de Reviewed-by: Stefan Roese sr@denx.de Cc: Michal Simek michal.simek@amd.com Cc: Stefan Roese sr@denx.de --- v2: - Drop assignment of 'mode' as selectmap is not be supported by distro boot v3: - Changed E-Mail/Name to be the same as git setup
--- arch/arm/mach-versal-net/include/mach/hardware.h | 1 + arch/arm/mach-versal/include/mach/hardware.h | 1 + board/xilinx/versal-net/board.c | 3 +++ board/xilinx/versal/board.c | 4 ++++ 4 files changed, 9 insertions(+)
diff --git a/arch/arm/mach-versal-net/include/mach/hardware.h b/arch/arm/mach-versal-net/include/mach/hardware.h index 9bddb8b007..767cdd3686 100644 --- a/arch/arm/mach-versal-net/include/mach/hardware.h +++ b/arch/arm/mach-versal-net/include/mach/hardware.h @@ -66,6 +66,7 @@ struct crp_regs { #define EMMC_MODE 0x00000006 #define USB_MODE 0x00000007 #define OSPI_MODE 0x00000008 +#define SELECTMAP_MODE 0x0000000A #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */ #define JTAG_MODE 0x00000000 #define BOOT_MODE_USE_ALT 0x100 diff --git a/arch/arm/mach-versal/include/mach/hardware.h b/arch/arm/mach-versal/include/mach/hardware.h index 000af974e8..9d1c2f0dcf 100644 --- a/arch/arm/mach-versal/include/mach/hardware.h +++ b/arch/arm/mach-versal/include/mach/hardware.h @@ -82,6 +82,7 @@ struct crp_regs { #define EMMC_MODE 0x00000006 #define USB_MODE 0x00000007 #define OSPI_MODE 0x00000008 +#define SELECTMAP_MODE 0x0000000A #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */ #define JTAG_MODE 0x00000000 #define BOOT_MODE_USE_ALT 0x100 diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c index f0d2224b33..651b7d24d7 100644 --- a/board/xilinx/versal-net/board.c +++ b/board/xilinx/versal-net/board.c @@ -260,6 +260,9 @@ int board_late_init(void) mode = "mmc"; bootseq = dev_seq(dev); break; + case SELECTMAP_MODE: + puts("SELECTMAP_MODE\n"); + break; case SD_MODE: puts("SD_MODE\n"); if (uclass_get_device_by_name(UCLASS_MMC, diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index 60bf37d3c9..26b4c7bf39 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -182,6 +182,9 @@ int board_late_init(void) mode = "mmc"; bootseq = dev_seq(dev); break; + case SELECTMAP_MODE: + puts("SELECTMAP_MODE\n"); + break; case SD_MODE: puts("SD_MODE\n"); if (uclass_get_device_by_name(UCLASS_MMC, @@ -298,6 +301,7 @@ enum env_location env_get_location(enum env_operation op, int prio) return ENVL_SPI_FLASH; return ENVL_NOWHERE; case JTAG_MODE: + case SELECTMAP_MODE: default: return ENVL_NOWHERE; }

Hi,
On 10/3/23 19:04, Polak, Leszek wrote:
The SelectMAP configuration interface provides an 8-bit, 16-bit or 32-bit bidirectional data bus interface to the Versal FPGA configuration logic that can be used for both configuration and readback.
A connected microcontoller to the SelectMAP interface can load boot image with bitstream, TF-A (ARM Trusted Firmware) and U-Boot.
This commit adds the missing identification of the SelectMAP mode.
Signed-off-by: Polak, Leszek LPolak@arri.de Reviewed-by: Stefan Roese sr@denx.de Cc: Michal Simek michal.simek@amd.com Cc: Stefan Roese sr@denx.de
v2:
- Drop assignment of 'mode' as selectmap is not be supported by distro boot
v3:
- Changed E-Mail/Name to be the same as git setup
arch/arm/mach-versal-net/include/mach/hardware.h | 1 + arch/arm/mach-versal/include/mach/hardware.h | 1 + board/xilinx/versal-net/board.c | 3 +++ board/xilinx/versal/board.c | 4 ++++ 4 files changed, 9 insertions(+)
diff --git a/arch/arm/mach-versal-net/include/mach/hardware.h b/arch/arm/mach-versal-net/include/mach/hardware.h index 9bddb8b007..767cdd3686 100644 --- a/arch/arm/mach-versal-net/include/mach/hardware.h +++ b/arch/arm/mach-versal-net/include/mach/hardware.h @@ -66,6 +66,7 @@ struct crp_regs { #define EMMC_MODE 0x00000006 #define USB_MODE 0x00000007 #define OSPI_MODE 0x00000008 +#define SELECTMAP_MODE 0x0000000A #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */ #define JTAG_MODE 0x00000000 #define BOOT_MODE_USE_ALT 0x100 diff --git a/arch/arm/mach-versal/include/mach/hardware.h b/arch/arm/mach-versal/include/mach/hardware.h index 000af974e8..9d1c2f0dcf 100644 --- a/arch/arm/mach-versal/include/mach/hardware.h +++ b/arch/arm/mach-versal/include/mach/hardware.h @@ -82,6 +82,7 @@ struct crp_regs { #define EMMC_MODE 0x00000006 #define USB_MODE 0x00000007 #define OSPI_MODE 0x00000008 +#define SELECTMAP_MODE 0x0000000A #define SD1_LSHFT_MODE 0x0000000E /* SD1 Level shifter */ #define JTAG_MODE 0x00000000 #define BOOT_MODE_USE_ALT 0x100 diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c index f0d2224b33..651b7d24d7 100644 --- a/board/xilinx/versal-net/board.c +++ b/board/xilinx/versal-net/board.c @@ -260,6 +260,9 @@ int board_late_init(void) mode = "mmc"; bootseq = dev_seq(dev); break;
case SELECTMAP_MODE:
puts("SELECTMAP_MODE\n");
break; case SD_MODE: puts("SD_MODE\n"); if (uclass_get_device_by_name(UCLASS_MMC,
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c index 60bf37d3c9..26b4c7bf39 100644 --- a/board/xilinx/versal/board.c +++ b/board/xilinx/versal/board.c @@ -182,6 +182,9 @@ int board_late_init(void) mode = "mmc"; bootseq = dev_seq(dev); break;
case SELECTMAP_MODE:
puts("SELECTMAP_MODE\n");
break; case SD_MODE: puts("SD_MODE\n"); if (uclass_get_device_by_name(UCLASS_MMC,
@@ -298,6 +301,7 @@ enum env_location env_get_location(enum env_operation op, int prio) return ENVL_SPI_FLASH; return ENVL_NOWHERE; case JTAG_MODE:
case SELECTMAP_MODE: default: return ENVL_NOWHERE; }
If I compare v2 with with v3 I see that tabs have been converted to spaces which is nicely visible above if you focus on alignment. This is causing that I can't apply the patch. Please fix it.
Thanks, Michal
[u-boot](debian-sent3)$ b4 am DU0PR07MB84197FD4D47E8F4921E200B1C8C4A@DU0PR07MB8419.eurprd07.prod.outlook.com Grabbing thread from lore.kernel.org/all/DU0PR07MB84197FD4D47E8F4921E200B1C8C4A%40DU0PR07MB8419.eurprd07.prod.outlook.com/t.mbox.gz Analyzing 1 messages in the thread Checking attestation on all messages, may take a moment... --- ✓ [PATCH v3] arm64: versal: Add SelectMAP boot mode identification --- ✓ Signed: DKIM/arrigroup.onmicrosoft.com (From: LPolak@arri.de) --- Total patches: 1 --- Link: https://lore.kernel.org/r/DU0PR07MB84197FD4D47E8F4921E200B1C8C4A@DU0PR07MB84... Base: not specified git am ./v3_20231003_lpolak_arm64_versal_add_selectmap_boot_mode_identification.mbx [u-boot](debian-sent3)$ git am -s ./v3_20231003_lpolak_arm64_versal_add_selectmap_boot_mode_identification.mbx Adding link to lore.kernel.org Applying: arm64: versal: Add SelectMAP boot mode identification error: patch failed: arch/arm/mach-versal-net/include/mach/hardware.h:66 error: arch/arm/mach-versal-net/include/mach/hardware.h: patch does not apply error: patch failed: arch/arm/mach-versal/include/mach/hardware.h:82 error: arch/arm/mach-versal/include/mach/hardware.h: patch does not apply error: patch failed: board/xilinx/versal-net/board.c:260 error: board/xilinx/versal-net/board.c: patch does not apply error: patch failed: board/xilinx/versal/board.c:182 error: board/xilinx/versal/board.c: patch does not apply Patch failed at 0001 arm64: versal: Add SelectMAP boot mode identification hint: Use 'git am --show-current-patch=diff' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
participants (2)
-
Michal Simek
-
Polak, Leszek