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

Michal Simek michal.simek at amd.com
Wed Oct 4 08:22:57 CEST 2023


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 at arri.de>
> Reviewed-by: Stefan Roese <sr at denx.de>
> Cc: Michal Simek <michal.simek at amd.com>
> Cc: Stefan Roese <sr at 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 at 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 at arri.de)
---
Total patches: 1
---
  Link: 
https://lore.kernel.org/r/DU0PR07MB84197FD4D47E8F4921E200B1C8C4A@DU0PR07MB8419.eurprd07.prod.outlook.com
  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".



More information about the U-Boot mailing list