U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] bloblist: fix typo in code comments
       [not found] <20241218153933.37649-1-harrison.mutai@arm.com>
@ 2024-12-18 15:39 ` Harrison Mutai
  2024-12-18 15:48   ` Tom Rini
  2024-12-18 15:39 ` [PATCH 2/4] board: vexpress64: default to hardware device tree Harrison Mutai
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-18 15:39 UTC (permalink / raw)
  To: Tom Rini; +Cc: nd, andre.przywara, manish.pandey2, Harrison Mutai, u-boot

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
---
 common/Kconfig     | 2 +-
 include/bloblist.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/Kconfig b/common/Kconfig
index e8d89bf6eb..9e89ccd390 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1075,7 +1075,7 @@ config BLOBLIST_SIZE
 	  Sets the size of the bloblist in bytes. This must include all
 	  overhead (alignment, bloblist header, record header). The bloblist
 	  is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
-	  proper), and this sane bloblist is used for subsequent phases.
+	  proper), and this same bloblist is used for subsequent phases.

 config BLOBLIST_SIZE_RELOC
 	hex "Size of bloblist after relocation"
diff --git a/include/bloblist.h b/include/bloblist.h
index ff32d3fecf..9d3ec3a8fa 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -456,7 +456,7 @@ int bloblist_init(void);
 /**
  * bloblist_maybe_init() - Init the bloblist system if not already done
  *
- * Calls bloblist_init() if the GD_FLG_BLOBLIST_READY flag is not et
+ * Calls bloblist_init() if the GD_FLG_BLOBLIST_READY flag is not set
  *
  * Return: 0 if OK, -ve on error
  */
--
2.46.2


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

* [PATCH 2/4] board: vexpress64: default to hardware device tree
       [not found] <20241218153933.37649-1-harrison.mutai@arm.com>
  2024-12-18 15:39 ` [PATCH 1/4] bloblist: fix typo in code comments Harrison Mutai
@ 2024-12-18 15:39 ` Harrison Mutai
  2024-12-27  8:25   ` Linus Walleij
  2024-12-18 15:39 ` [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE Harrison Mutai
  2024-12-18 15:39 ` [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff Harrison Mutai
  3 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-18 15:39 UTC (permalink / raw)
  To: David Feng, Linus Walleij, Peter Hoyes, Liviu Dudau, Tom Rini
  Cc: nd, andre.przywara, manish.pandey2, Harrison Mutai, u-boot

When booting into the Linux kernel with semi-hosting, use the device
tree provided by hardware unless one is provided in the current
directory.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
---
 include/configs/vexpress_aemv8.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h
index 8020689e39..2341b3a938 100644
--- a/include/configs/vexpress_aemv8.h
+++ b/include/configs/vexpress_aemv8.h
@@ -169,12 +169,14 @@
 		"  if load hostfs - ${kernel_addr_r} ${kernel_name}; then"	\
 		"    setenv fdt_high 0xffffffffffffffff;"		\
 		"    setenv initrd_high 0xffffffffffffffff;"		\
-		"    load hostfs - ${fdt_addr_r} ${fdtfile};"			\
+		"    if test -n load hostfs - ${fdt_addr_r} ${fdtfile}; then"			\
+		"        fdt move $fdtcontroladdr $fdt_addr_r;"			\
+		"    fi;"			\
 		"    load hostfs - ${ramdisk_addr_r} ${ramdisk_name};" \
 		"    fdt addr ${fdt_addr_r};"				\
 		"    fdt resize;"					\
 		"    fdt chosen ${ramdisk_addr_r} ${filesize};"	\
-		"    booti $kernel_addr_r - $fdt_addr_r;"		\
+		"    booti $kernel_addr_r - ${fdt_addr_r};"		\
 		"  fi;"							\
 		"fi\0"
 #define BOOTENV_DEV_NAME_SMH(devtypeu, devtypel, instance) "smh "
--
2.46.2


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

* [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE
       [not found] <20241218153933.37649-1-harrison.mutai@arm.com>
  2024-12-18 15:39 ` [PATCH 1/4] bloblist: fix typo in code comments Harrison Mutai
  2024-12-18 15:39 ` [PATCH 2/4] board: vexpress64: default to hardware device tree Harrison Mutai
@ 2024-12-18 15:39 ` Harrison Mutai
  2024-12-18 16:21   ` Tom Rini
  2024-12-18 15:39 ` [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff Harrison Mutai
  3 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-18 15:39 UTC (permalink / raw)
  To: Tom Rini; +Cc: nd, andre.przywara, manish.pandey2, Harrison Mutai, u-boot

When the configuration option CONFIG_BLOBLIST_PASSAGE is selected, the
bloblist present in the incoming standard passage is utilised in-place.
There is no need to specify the size of the bloblist as the system
automatically detects it using the header information.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
---
 common/Kconfig    | 7 +++++++
 common/bloblist.c | 5 ++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/common/Kconfig b/common/Kconfig
index 9e89ccd390..11066ec643 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1056,6 +1056,12 @@ config BLOBLIST_ALLOC
 	  specify a fixed address on systems where this is unknown or can
 	  change at runtime.

+config BLOBLIST_PASSAGE
+	bool "Use bloblist in-place"
+	help
+	  Use a bloblist in the incoming standard passage. The size is detected
+	  automatically so CONFIG_BLOBLIST_SIZE can be 0.
+
 endchoice

 config BLOBLIST_ADDR
@@ -1070,6 +1076,7 @@ config BLOBLIST_ADDR

 config BLOBLIST_SIZE
 	hex "Size of bloblist"
+	default 0x0 if BLOBLIST_PASSAGE
 	default 0x400
 	help
 	  Sets the size of the bloblist in bytes. This must include all
diff --git a/common/bloblist.c b/common/bloblist.c
index ec6ff7a5a9..db0091dc0e 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -475,6 +475,9 @@ int bloblist_reloc(void *to, uint to_size)
 {
 	struct bloblist_hdr *hdr;

+	if (to_size == 0)
+		return 0;
+
 	if (to_size < gd->bloblist->total_size)
 		return -ENOSPC;

@@ -510,7 +513,7 @@ int bloblist_init(void)
 	 * install the bloblist passed from previous loader to this fixed
 	 * address.
 	 */
-	bool from_boot_arg = fixed && xpl_is_first_phase();
+	bool from_boot_arg = xpl_is_first_phase();

 	if (xpl_prev_phase() == PHASE_TPL && !IS_ENABLED(CONFIG_TPL_BLOBLIST))
 		from_addr = false;
--
2.46.2


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

* [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff
       [not found] <20241218153933.37649-1-harrison.mutai@arm.com>
                   ` (2 preceding siblings ...)
  2024-12-18 15:39 ` [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE Harrison Mutai
@ 2024-12-18 15:39 ` Harrison Mutai
  2024-12-18 16:31   ` Tom Rini
  3 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-18 15:39 UTC (permalink / raw)
  To: David Feng, Linus Walleij, Peter Hoyes, Liviu Dudau, Tom Rini
  Cc: nd, andre.przywara, manish.pandey2, Harrison Mutai, u-boot

Enable bloblist on vexpress64 platforms to facilitate information
passing from TF-A using the firmware handoff framework.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
---
 board/armltd/vexpress64/Makefile        |  3 ++-
 board/armltd/vexpress64/vexpress64.c    |  4 ++++
 configs/vexpress_fvp_bloblist_defconfig |  5 +++++
 doc/board/armltd/vexpress64.rst         | 16 ++++++++++++++++
 4 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 configs/vexpress_fvp_bloblist_defconfig

diff --git a/board/armltd/vexpress64/Makefile b/board/armltd/vexpress64/Makefile
index 1878fbed4e..4729787c5e 100644
--- a/board/armltd/vexpress64/Makefile
+++ b/board/armltd/vexpress64/Makefile
@@ -3,5 +3,6 @@
 # (C) Copyright 2000-2004
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.

-obj-y	:= vexpress64.o lowlevel_init.o
+obj-y	:= vexpress64.o
+obj-$(CONFIG_OF_HAS_PRIOR_STAGE)	:= lowlevel_init.o
 obj-$(CONFIG_TARGET_VEXPRESS64_JUNO)	+= pcie.o
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index 0119f54f0d..f8bd5fbcf8 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -100,7 +100,9 @@ int dram_init_banksize(void)
  * Push the variable into the .data section so that it
  * does not get cleared later.
  */
+#ifdef CONFIG_OF_HAS_PRIOR_STAGE
 unsigned long __section(".data") prior_stage_fdt_address[2];
+#endif

 #ifdef CONFIG_OF_BOARD

@@ -151,6 +153,7 @@ static phys_addr_t find_dtb_in_nor_flash(const char *partname)
 }
 #endif

+#ifdef CONFIG_OF_HAS_PRIOR_STAGE
 /*
  * Filter for a valid DTB, as TF-A happens to provide a pointer to some
  * data structure using the DTB format, which we cannot use.
@@ -206,6 +209,7 @@ void *board_fdt_blob_setup(int *err)
 	return NULL;
 }
 #endif
+#endif

 /* Actual reset is done via PSCI. */
 void reset_cpu(void)
diff --git a/configs/vexpress_fvp_bloblist_defconfig b/configs/vexpress_fvp_bloblist_defconfig
new file mode 100644
index 0000000000..dcc87db872
--- /dev/null
+++ b/configs/vexpress_fvp_bloblist_defconfig
@@ -0,0 +1,5 @@
+#include <configs/vexpress_fvp_defconfig>
+
+CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_PASSAGE=y
+CONFIG_BLOBLIST_SIZE_RELOC=0x10000
diff --git a/doc/board/armltd/vexpress64.rst b/doc/board/armltd/vexpress64.rst
index a7f771d266..4dadadb53d 100644
--- a/doc/board/armltd/vexpress64.rst
+++ b/doc/board/armltd/vexpress64.rst
@@ -43,6 +43,22 @@ Juno is an Arm development board with the following features:

 More details can be found in the board documentation [3]_.

+Bloblist Support
+----------------
+
+The ``vexpress_fvp_bloblist_defconfig`` configures U-Boot to be compiled for
+Vexpress64 with Bloblist as the primary method for information handoff between
+boot stages. U-Boot offers three methods to set up a bloblist: using a
+predefined bloblist at a specified address, dynamically allocating memory for a
+bloblist, or utilizing a standard passage-provided bloblist with automatic size
+detection.
+
+By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method
+(CONFIG_BLOBLIST_PASSAGE) because TF-A provides a Transfer List in non-secure
+memory that U-Boot can utilise. This Bloblist, which is referred to as a Transfer List in
+TF-A, contains all necessary data for the handoff process, including DT and ACPI
+tables.
+
 References
 ----------

--
2.46.2


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

* Re: [PATCH 1/4] bloblist: fix typo in code comments
  2024-12-18 15:39 ` [PATCH 1/4] bloblist: fix typo in code comments Harrison Mutai
@ 2024-12-18 15:48   ` Tom Rini
  2024-12-18 17:23     ` Harrison Mutai
  0 siblings, 1 reply; 13+ messages in thread
From: Tom Rini @ 2024-12-18 15:48 UTC (permalink / raw)
  To: Harrison Mutai; +Cc: nd, andre.przywara, manish.pandey2, u-boot

[-- Attachment #1: Type: text/plain, Size: 393 bytes --]

On Wed, Dec 18, 2024 at 03:39:28PM +0000, Harrison Mutai wrote:

> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
> ---
>  common/Kconfig     | 2 +-
>  include/bloblist.h | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)

Please add a short commit message body "Fix the two typos in ...",
thanks. With that:

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

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

* Re: [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE
  2024-12-18 15:39 ` [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE Harrison Mutai
@ 2024-12-18 16:21   ` Tom Rini
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2024-12-18 16:21 UTC (permalink / raw)
  To: Harrison Mutai; +Cc: nd, andre.przywara, manish.pandey2, u-boot

[-- Attachment #1: Type: text/plain, Size: 466 bytes --]

On Wed, Dec 18, 2024 at 03:39:30PM +0000, Harrison Mutai wrote:


> When the configuration option CONFIG_BLOBLIST_PASSAGE is selected, the
> bloblist present in the incoming standard passage is utilised in-place.
> There is no need to specify the size of the bloblist as the system
> automatically detects it using the header information.
> 
> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

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

* Re: [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff
  2024-12-18 15:39 ` [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff Harrison Mutai
@ 2024-12-18 16:31   ` Tom Rini
  2024-12-19 16:04     ` Harrison Mutai
  0 siblings, 1 reply; 13+ messages in thread
From: Tom Rini @ 2024-12-18 16:31 UTC (permalink / raw)
  To: Harrison Mutai
  Cc: David Feng, Linus Walleij, Peter Hoyes, Liviu Dudau, nd,
	andre.przywara, manish.pandey2, u-boot

[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]

On Wed, Dec 18, 2024 at 03:39:31PM +0000, Harrison Mutai wrote:

> Enable bloblist on vexpress64 platforms to facilitate information
> passing from TF-A using the firmware handoff framework.
> 
> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
[snip]
> diff --git a/configs/vexpress_fvp_bloblist_defconfig b/configs/vexpress_fvp_bloblist_defconfig
> new file mode 100644
> index 0000000000..dcc87db872
> --- /dev/null
> +++ b/configs/vexpress_fvp_bloblist_defconfig
> @@ -0,0 +1,5 @@
> +#include <configs/vexpress_fvp_defconfig>
> +
> +CONFIG_BLOBLIST=y
> +CONFIG_BLOBLIST_PASSAGE=y
> +CONFIG_BLOBLIST_SIZE_RELOC=0x10000

I wonder if this means we should also do:

diff --git a/common/Kconfig b/common/Kconfig
index 11066ec64315..cca33ed28f32 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1087,7 +1087,6 @@ config BLOBLIST_SIZE
 config BLOBLIST_SIZE_RELOC
 	hex "Size of bloblist after relocation"
 	default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
-	default 0x0 if BLOBLIST_PASSAGE
 	default 0x20000 if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
 	help
 	  Sets the size of the bloblist in bytes after relocation. Since U-Boot

Because in this case we do need to set the size of the bloblist we use
internally to non-zero?

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

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

* Re: [PATCH 1/4] bloblist: fix typo in code comments
  2024-12-18 15:48   ` Tom Rini
@ 2024-12-18 17:23     ` Harrison Mutai
  2024-12-18 17:30       ` Tom Rini
  0 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-18 17:23 UTC (permalink / raw)
  To: Tom Rini; +Cc: nd, andre.przywara, manish.pandey2, u-boot

Hi Tom,

Thanks for reviewing.

On 18/12/2024 15:48, Tom Rini wrote:
> On Wed, Dec 18, 2024 at 03:39:28PM +0000, Harrison Mutai wrote:
> 
>> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
>> ---
>>   common/Kconfig     | 2 +-
>>   include/bloblist.h | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> Please add a short commit message body "Fix the two typos in ...",
> thanks. With that:
> 
Ack - will add in next revision.

> Reviewed-by: Tom Rini <trini@konsulko.com>
> 

I realized I made an error when posting the series and accidentally left 
out the cover letter. Would it be best to send an updated version (v2) 
to the mailing list to include the missing cover letter?

All the best,
Harrison

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

* Re: [PATCH 1/4] bloblist: fix typo in code comments
  2024-12-18 17:23     ` Harrison Mutai
@ 2024-12-18 17:30       ` Tom Rini
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2024-12-18 17:30 UTC (permalink / raw)
  To: Harrison Mutai; +Cc: nd, andre.przywara, manish.pandey2, u-boot

[-- Attachment #1: Type: text/plain, Size: 943 bytes --]

On Wed, Dec 18, 2024 at 05:23:48PM +0000, Harrison Mutai wrote:
> Hi Tom,
> 
> Thanks for reviewing.
> 
> On 18/12/2024 15:48, Tom Rini wrote:
> > On Wed, Dec 18, 2024 at 03:39:28PM +0000, Harrison Mutai wrote:
> > 
> > > Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
> > > ---
> > >   common/Kconfig     | 2 +-
> > >   include/bloblist.h | 2 +-
> > >   2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > Please add a short commit message body "Fix the two typos in ...",
> > thanks. With that:
> > 
> Ack - will add in next revision.
> 
> > Reviewed-by: Tom Rini <trini@konsulko.com>
> > 
> 
> I realized I made an error when posting the series and accidentally left out
> the cover letter. Would it be best to send an updated version (v2) to the
> mailing list to include the missing cover letter?

Please wait a bit before re-posting, the cover letter is easy enough to
find, thanks.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

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

* Re: [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff
  2024-12-18 16:31   ` Tom Rini
@ 2024-12-19 16:04     ` Harrison Mutai
  2024-12-27 16:19       ` Tom Rini
  0 siblings, 1 reply; 13+ messages in thread
From: Harrison Mutai @ 2024-12-19 16:04 UTC (permalink / raw)
  To: Tom Rini
  Cc: David Feng, Linus Walleij, Peter Hoyes, Liviu Dudau, nd,
	andre.przywara, manish.pandey2, u-boot

On 18/12/2024 16:31, Tom Rini wrote:
> On Wed, Dec 18, 2024 at 03:39:31PM +0000, Harrison Mutai wrote:
> 
>> Enable bloblist on vexpress64 platforms to facilitate information
>> passing from TF-A using the firmware handoff framework.
>>
>> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
> [snip]
>> diff --git a/configs/vexpress_fvp_bloblist_defconfig b/configs/vexpress_fvp_bloblist_defconfig
>> new file mode 100644
>> index 0000000000..dcc87db872
>> --- /dev/null
>> +++ b/configs/vexpress_fvp_bloblist_defconfig
>> @@ -0,0 +1,5 @@
>> +#include <configs/vexpress_fvp_defconfig>
>> +
>> +CONFIG_BLOBLIST=y
>> +CONFIG_BLOBLIST_PASSAGE=y
>> +CONFIG_BLOBLIST_SIZE_RELOC=0x10000
> 
> I wonder if this means we should also do:
> 
> diff --git a/common/Kconfig b/common/Kconfig
> index 11066ec64315..cca33ed28f32 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -1087,7 +1087,6 @@ config BLOBLIST_SIZE
>   config BLOBLIST_SIZE_RELOC
>   	hex "Size of bloblist after relocation"
>   	default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
> -	default 0x0 if BLOBLIST_PASSAGE
>   	default 0x20000 if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
>   	help
>   	  Sets the size of the bloblist in bytes after relocation. Since U-Boot
> 
> Because in this case we do need to set the size of the bloblist we use
> internally to non-zero?
> 
That makes sense. The relocation in board_f will fail, as 
reserve_bloblist relies on this value being non-zero. However, if 
CONFIG_BLOBLIST_PASSAGE implies GD_FLG_SKIP_RELOC, then the relocation 
may not be necessary?

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

* Re: [PATCH 2/4] board: vexpress64: default to hardware device tree
  2024-12-18 15:39 ` [PATCH 2/4] board: vexpress64: default to hardware device tree Harrison Mutai
@ 2024-12-27  8:25   ` Linus Walleij
  0 siblings, 0 replies; 13+ messages in thread
From: Linus Walleij @ 2024-12-27  8:25 UTC (permalink / raw)
  To: Harrison Mutai
  Cc: David Feng, Peter Hoyes, Liviu Dudau, Tom Rini, nd,
	andre.przywara, manish.pandey2, u-boot

On Wed, Dec 18, 2024 at 4:40 PM Harrison Mutai <harrison.mutai@arm.com> wrote:

> When booting into the Linux kernel with semi-hosting, use the device
> tree provided by hardware unless one is provided in the current
> directory.
>
> Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>

This looks helpful to me!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

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

* Re: [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff
  2024-12-19 16:04     ` Harrison Mutai
@ 2024-12-27 16:19       ` Tom Rini
  0 siblings, 0 replies; 13+ messages in thread
From: Tom Rini @ 2024-12-27 16:19 UTC (permalink / raw)
  To: Harrison Mutai
  Cc: David Feng, Linus Walleij, Peter Hoyes, Liviu Dudau, nd,
	andre.przywara, manish.pandey2, u-boot

[-- Attachment #1: Type: text/plain, Size: 2070 bytes --]

On Thu, Dec 19, 2024 at 04:04:04PM +0000, Harrison Mutai wrote:
> On 18/12/2024 16:31, Tom Rini wrote:
> > On Wed, Dec 18, 2024 at 03:39:31PM +0000, Harrison Mutai wrote:
> > 
> > > Enable bloblist on vexpress64 platforms to facilitate information
> > > passing from TF-A using the firmware handoff framework.
> > > 
> > > Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
> > [snip]
> > > diff --git a/configs/vexpress_fvp_bloblist_defconfig b/configs/vexpress_fvp_bloblist_defconfig
> > > new file mode 100644
> > > index 0000000000..dcc87db872
> > > --- /dev/null
> > > +++ b/configs/vexpress_fvp_bloblist_defconfig
> > > @@ -0,0 +1,5 @@
> > > +#include <configs/vexpress_fvp_defconfig>
> > > +
> > > +CONFIG_BLOBLIST=y
> > > +CONFIG_BLOBLIST_PASSAGE=y
> > > +CONFIG_BLOBLIST_SIZE_RELOC=0x10000
> > 
> > I wonder if this means we should also do:
> > 
> > diff --git a/common/Kconfig b/common/Kconfig
> > index 11066ec64315..cca33ed28f32 100644
> > --- a/common/Kconfig
> > +++ b/common/Kconfig
> > @@ -1087,7 +1087,6 @@ config BLOBLIST_SIZE
> >   config BLOBLIST_SIZE_RELOC
> >   	hex "Size of bloblist after relocation"
> >   	default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
> > -	default 0x0 if BLOBLIST_PASSAGE
> >   	default 0x20000 if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
> >   	help
> >   	  Sets the size of the bloblist in bytes after relocation. Since U-Boot
> > 
> > Because in this case we do need to set the size of the bloblist we use
> > internally to non-zero?
> > 
> That makes sense. The relocation in board_f will fail, as reserve_bloblist
> relies on this value being non-zero. However, if CONFIG_BLOBLIST_PASSAGE
> implies GD_FLG_SKIP_RELOC, then the relocation may not be necessary?

We don't need to worry about the GD_FLG_SKIP_RELOC case really, it's a
corner case of the ARC architecture and nothing else. We do want to
however copy the bloblist from where it was passed to us (possibly in
the middle of memory for example) and move it to an area we can reserve.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

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

* [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff
  2025-02-04 17:58 [PATCH v3 0/4] Enable bloblist support on Vexpress64 Harrison Mutai
@ 2025-02-04 17:58 ` Harrison Mutai
  0 siblings, 0 replies; 13+ messages in thread
From: Harrison Mutai @ 2025-02-04 17:58 UTC (permalink / raw)
  To: Liviu Dudau, Tom Rini
  Cc: nd, andre.przywara, manish.pandey2, Harrison Mutai, u-boot

Enable bloblist on vexpress64 platforms to facilitate information
passing from TF-A using the firmware handoff framework.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
---
 board/armltd/vexpress64/Kconfig         |  2 +-
 board/armltd/vexpress64/Makefile        |  5 ++++-
 board/armltd/vexpress64/vexpress64.c    |  4 ++++
 configs/vexpress_fvp_bloblist_defconfig |  5 +++++
 doc/board/armltd/vexpress64.rst         | 16 ++++++++++++++++
 5 files changed, 30 insertions(+), 2 deletions(-)
 create mode 100644 configs/vexpress_fvp_bloblist_defconfig

diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
index 584b5455e9..7e8709444f 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
@@ -28,7 +28,7 @@ choice
 config TARGET_VEXPRESS64_BASE_FVP
 	bool "Support Versatile Express ARMv8a FVP BASE model"
 	select VEXPRESS64_BASE_MODEL
-	imply OF_HAS_PRIOR_STAGE
+	imply OF_HAS_PRIOR_STAGE if !BLOBLIST
 
 config TARGET_VEXPRESS64_BASER_FVP
 	bool "Support Versatile Express ARMv8r64 FVP BASE model"
diff --git a/board/armltd/vexpress64/Makefile b/board/armltd/vexpress64/Makefile
index 1878fbed4e..b0dd1d0af8 100644
--- a/board/armltd/vexpress64/Makefile
+++ b/board/armltd/vexpress64/Makefile
@@ -3,5 +3,8 @@
 # (C) Copyright 2000-2004
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 
-obj-y	:= vexpress64.o lowlevel_init.o
+obj-y	:= vexpress64.o
+
+obj-$(CONFIG_OF_HAS_PRIOR_STAGE)	+= lowlevel_init.o
+
 obj-$(CONFIG_TARGET_VEXPRESS64_JUNO)	+= pcie.o
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index b5ede58757..0b75c1358f 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -100,7 +100,9 @@ int dram_init_banksize(void)
  * Push the variable into the .data section so that it
  * does not get cleared later.
  */
+#ifdef CONFIG_OF_HAS_PRIOR_STAGE
 unsigned long __section(".data") prior_stage_fdt_address[2];
+#endif
 
 #ifdef CONFIG_OF_BOARD
 
@@ -151,6 +153,7 @@ static phys_addr_t find_dtb_in_nor_flash(const char *partname)
 }
 #endif
 
+#ifdef CONFIG_OF_HAS_PRIOR_STAGE
 /*
  * Filter for a valid DTB, as TF-A happens to provide a pointer to some
  * data structure using the DTB format, which we cannot use.
@@ -201,6 +204,7 @@ int board_fdt_blob_setup(void **fdtp)
 	return -ENXIO;
 }
 #endif
+#endif
 
 /* Actual reset is done via PSCI. */
 void reset_cpu(void)
diff --git a/configs/vexpress_fvp_bloblist_defconfig b/configs/vexpress_fvp_bloblist_defconfig
new file mode 100644
index 0000000000..dcc87db872
--- /dev/null
+++ b/configs/vexpress_fvp_bloblist_defconfig
@@ -0,0 +1,5 @@
+#include <configs/vexpress_fvp_defconfig>
+
+CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_PASSAGE=y
+CONFIG_BLOBLIST_SIZE_RELOC=0x10000
diff --git a/doc/board/armltd/vexpress64.rst b/doc/board/armltd/vexpress64.rst
index a7f771d266..4dadadb53d 100644
--- a/doc/board/armltd/vexpress64.rst
+++ b/doc/board/armltd/vexpress64.rst
@@ -43,6 +43,22 @@ Juno is an Arm development board with the following features:
 
 More details can be found in the board documentation [3]_.
 
+Bloblist Support
+----------------
+
+The ``vexpress_fvp_bloblist_defconfig`` configures U-Boot to be compiled for
+Vexpress64 with Bloblist as the primary method for information handoff between
+boot stages. U-Boot offers three methods to set up a bloblist: using a
+predefined bloblist at a specified address, dynamically allocating memory for a
+bloblist, or utilizing a standard passage-provided bloblist with automatic size
+detection.
+
+By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method
+(CONFIG_BLOBLIST_PASSAGE) because TF-A provides a Transfer List in non-secure
+memory that U-Boot can utilise. This Bloblist, which is referred to as a Transfer List in
+TF-A, contains all necessary data for the handoff process, including DT and ACPI
+tables.
+
 References
 ----------
 
-- 
2.46.2


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

end of thread, other threads:[~2025-02-04 17:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20241218153933.37649-1-harrison.mutai@arm.com>
2024-12-18 15:39 ` [PATCH 1/4] bloblist: fix typo in code comments Harrison Mutai
2024-12-18 15:48   ` Tom Rini
2024-12-18 17:23     ` Harrison Mutai
2024-12-18 17:30       ` Tom Rini
2024-12-18 15:39 ` [PATCH 2/4] board: vexpress64: default to hardware device tree Harrison Mutai
2024-12-27  8:25   ` Linus Walleij
2024-12-18 15:39 ` [PATCH 3/4] bloblist: add support for CONFIG_BLOBLIST_PASSAGE Harrison Mutai
2024-12-18 16:21   ` Tom Rini
2024-12-18 15:39 ` [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff Harrison Mutai
2024-12-18 16:31   ` Tom Rini
2024-12-19 16:04     ` Harrison Mutai
2024-12-27 16:19       ` Tom Rini
2025-02-04 17:58 [PATCH v3 0/4] Enable bloblist support on Vexpress64 Harrison Mutai
2025-02-04 17:58 ` [PATCH 4/4] board: vexpress64: enable bloblist for SPL handoff Harrison Mutai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox