All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: versal: Add SelectMAP boot mode identification
@ 2023-09-19 12:47 Polak, Leszek
  2023-09-21 11:14 ` Michal Simek
  0 siblings, 1 reply; 3+ messages in thread
From: Polak, Leszek @ 2023-09-19 12:47 UTC (permalink / raw)
  To: u-boot; +Cc: michal.simek, Stefan Roese

Add missing SelectMAP bootmode for proper identification during boot.

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: Leszek Polak <lpolak@arri.de>
Cc: Michal Simek <michal.simek@amd.com>
Cc: Stefan Roese <sr@denx.de>
---
 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                  | 4 ++++
 board/xilinx/versal/board.c                      | 5 +++++
 4 files changed, 11 insertions(+)

diff --git a/arch/arm/mach-versal-net/include/mach/hardware.h b/arch/arm/mach-versal-net/include/mach/hardware.h
index 9bddb8b00723..767cdd368682 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 000af974e867..9d1c2f0dcfc1 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 f0d2224b332e..992e0df73b30 100644
--- a/board/xilinx/versal-net/board.c
+++ b/board/xilinx/versal-net/board.c
@@ -287,6 +287,10 @@ int board_late_init(void)
 		mode = "mmc";
 		bootseq = dev_seq(dev);
 		break;
+	case SELECTMAP_MODE:
+		puts("SELECTMAP_MODE\n");
+		mode = "selectmap";
+		break;
 	default:
 		mode = "";
 		printf("Invalid Boot Mode:0x%x\n", bootmode);
diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
index 60bf37d3c90f..b619dbc73c80 100644
--- a/board/xilinx/versal/board.c
+++ b/board/xilinx/versal/board.c
@@ -213,6 +213,10 @@ int board_late_init(void)
 		mode = "mmc";
 		bootseq = dev_seq(dev);
 		break;
+	case SELECTMAP_MODE:
+		puts("SELECTMAP_MODE\n");
+		mode = "selectmap";
+		break;
 	default:
 		mode = "";
 		printf("Invalid Boot Mode:0x%x\n", bootmode);
@@ -298,6 +302,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;
 	}
--
2.42.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64: versal: Add SelectMAP boot mode identification
  2023-09-19 12:47 [PATCH] arm64: versal: Add SelectMAP boot mode identification Polak, Leszek
@ 2023-09-21 11:14 ` Michal Simek
  2023-09-21 15:16   ` Stefan Roese
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Simek @ 2023-09-21 11:14 UTC (permalink / raw)
  To: Polak, Leszek, u-boot; +Cc: Stefan Roese



On 9/19/23 14:47, Polak, Leszek wrote:
> Add missing SelectMAP bootmode for proper identification during boot.
> 
> 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: Leszek Polak <lpolak@arri.de>
> Cc: Michal Simek <michal.simek@amd.com>
> Cc: Stefan Roese <sr@denx.de>
> ---
>   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                  | 4 ++++
>   board/xilinx/versal/board.c                      | 5 +++++
>   4 files changed, 11 insertions(+)
> 
> diff --git a/arch/arm/mach-versal-net/include/mach/hardware.h b/arch/arm/mach-versal-net/include/mach/hardware.h
> index 9bddb8b00723..767cdd368682 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 000af974e867..9d1c2f0dcfc1 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 f0d2224b332e..992e0df73b30 100644
> --- a/board/xilinx/versal-net/board.c
> +++ b/board/xilinx/versal-net/board.c
> @@ -287,6 +287,10 @@ int board_late_init(void)
>   		mode = "mmc";
>   		bootseq = dev_seq(dev);
>   		break;
> +	case SELECTMAP_MODE:
> +		puts("SELECTMAP_MODE\n");
> +		mode = "selectmap";

We are not defining distro boot for selectmap that's why boot_targets don't need 
to be extended. That's why please remove this line.

> +		break;
>   	default:
>   		mode = "";
>   		printf("Invalid Boot Mode:0x%x\n", bootmode);
> diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
> index 60bf37d3c90f..b619dbc73c80 100644
> --- a/board/xilinx/versal/board.c
> +++ b/board/xilinx/versal/board.c
> @@ -213,6 +213,10 @@ int board_late_init(void)
>   		mode = "mmc";
>   		bootseq = dev_seq(dev);
>   		break;
> +	case SELECTMAP_MODE:
> +		puts("SELECTMAP_MODE\n");
> +		mode = "selectmap";

The same here.

> +		break;
>   	default:
>   		mode = "";
>   		printf("Invalid Boot Mode:0x%x\n", bootmode);
> @@ -298,6 +302,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;
>   	}
> --
> 2.42.0

The rest looks good to me.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64: versal: Add SelectMAP boot mode identification
  2023-09-21 11:14 ` Michal Simek
@ 2023-09-21 15:16   ` Stefan Roese
  0 siblings, 0 replies; 3+ messages in thread
From: Stefan Roese @ 2023-09-21 15:16 UTC (permalink / raw)
  To: Michal Simek, Polak, Leszek, u-boot

On 9/21/23 13:14, Michal Simek wrote:
> 
> 
> On 9/19/23 14:47, Polak, Leszek wrote:
>> Add missing SelectMAP bootmode for proper identification during boot.
>>
>> 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: Leszek Polak <lpolak@arri.de>
>> Cc: Michal Simek <michal.simek@amd.com>
>> Cc: Stefan Roese <sr@denx.de>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

>> ---
>>   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                  | 4 ++++
>>   board/xilinx/versal/board.c                      | 5 +++++
>>   4 files changed, 11 insertions(+)
>>
>> diff --git a/arch/arm/mach-versal-net/include/mach/hardware.h 
>> b/arch/arm/mach-versal-net/include/mach/hardware.h
>> index 9bddb8b00723..767cdd368682 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 000af974e867..9d1c2f0dcfc1 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 f0d2224b332e..992e0df73b30 100644
>> --- a/board/xilinx/versal-net/board.c
>> +++ b/board/xilinx/versal-net/board.c
>> @@ -287,6 +287,10 @@ int board_late_init(void)
>>           mode = "mmc";
>>           bootseq = dev_seq(dev);
>>           break;
>> +    case SELECTMAP_MODE:
>> +        puts("SELECTMAP_MODE\n");
>> +        mode = "selectmap";
> 
> We are not defining distro boot for selectmap that's why boot_targets 
> don't need to be extended. That's why please remove this line.
> 
>> +        break;
>>       default:
>>           mode = "";
>>           printf("Invalid Boot Mode:0x%x\n", bootmode);
>> diff --git a/board/xilinx/versal/board.c b/board/xilinx/versal/board.c
>> index 60bf37d3c90f..b619dbc73c80 100644
>> --- a/board/xilinx/versal/board.c
>> +++ b/board/xilinx/versal/board.c
>> @@ -213,6 +213,10 @@ int board_late_init(void)
>>           mode = "mmc";
>>           bootseq = dev_seq(dev);
>>           break;
>> +    case SELECTMAP_MODE:
>> +        puts("SELECTMAP_MODE\n");
>> +        mode = "selectmap";
> 
> The same here.
> 
>> +        break;
>>       default:
>>           mode = "";
>>           printf("Invalid Boot Mode:0x%x\n", bootmode);
>> @@ -298,6 +302,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;
>>       }
>> -- 
>> 2.42.0
> 
> The rest looks good to me.
> 
> Thanks,
> Michal

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-21 15:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-19 12:47 [PATCH] arm64: versal: Add SelectMAP boot mode identification Polak, Leszek
2023-09-21 11:14 ` Michal Simek
2023-09-21 15:16   ` Stefan Roese

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.