* [PATCH 0/4] bloblist: fdt: Clean up the code
@ 2025-03-28 15:43 Simon Glass
2025-03-28 15:43 ` [PATCH 1/4] bloblist: Simplify bloblist init Simon Glass
` (5 more replies)
0 siblings, 6 replies; 58+ messages in thread
From: Simon Glass @ 2025-03-28 15:43 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Simon Glass, Andrew Goodbody, Caleb Connolly, Evgeny Bachinin,
Harrison Mutai, Jan Kiszka, Jerry Van Baren, Lad Prabhakar,
Levi Yun, Marek Behún, Marek Vasut, Marek Vasut,
Matthias Brugger, Neil Armstrong, Patrick Rudolph, Quentin Schulz,
Raymond Mao, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
The bloblist code took what I consider to be a wrong turn a year or so
ago. As discussed with Tom, this series proposes a way to arrange things
so that it is simpler to understand and manage.
- Unwind some of the nesting in bloblist_init()
- Avoid needing to init the bloblist just to get the FDT
- Create a deterministic OF_BLOBLIST option rather than using guesswork
It is to be hoped that we can get a platform which uses OF_BLOBLIST into
CI at some point. In the meantime, the standard passage series[1] could
be resurrected to give some coverage.
[1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
Simon Glass (4):
bloblist: Simplify bloblist init
fdt: Introduce OF_BLOBLIST
bloblist: Provide access to the FDT address
fdt: Obtain the FDT from bloblist without parsing it
arch/arm/lib/xferlist.c | 6 +-
common/bloblist.c | 102 ++++++++++++++++++-----------
doc/develop/devicetree/control.rst | 3 +
dts/Kconfig | 8 +++
include/bloblist.h | 16 ++++-
lib/fdtdec.c | 65 +++++++-----------
6 files changed, 116 insertions(+), 84 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 58+ messages in thread
* [PATCH 1/4] bloblist: Simplify bloblist init
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
@ 2025-03-28 15:43 ` Simon Glass
2025-03-28 15:43 ` [PATCH 2/4] fdt: Introduce OF_BLOBLIST Simon Glass
` (4 subsequent siblings)
5 siblings, 0 replies; 58+ messages in thread
From: Simon Glass @ 2025-03-28 15:43 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Simon Glass, Andrew Goodbody, Harrison Mutai, Levi Yun,
Patrick Rudolph, Raymond Mao, Tom Rini
This has become quite complicated now, with much of the code indented,
gd->bloblist set in multiple places, multiple error paths and ret set to
different things in different places.
Make an attempt to simplify it, without changing functionality.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
common/bloblist.c | 67 ++++++++++++++++++++++-------------------------
1 file changed, 31 insertions(+), 36 deletions(-)
diff --git a/common/bloblist.c b/common/bloblist.c
index 6e4f020d7c4..135fb149626 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -513,48 +513,43 @@ int __weak xferlist_from_boot_arg(ulong __always_unused *addr)
int bloblist_init(void)
{
bool fixed = IS_ENABLED(CONFIG_BLOBLIST_FIXED);
- int ret = 0;
+ int ret = -ENOENT;
ulong addr = 0, size;
- /* Check if a valid transfer list passed in */
- if (!xferlist_from_boot_arg(&addr)) {
- size = bloblist_get_total_size();
- } else {
- /*
- * If U-Boot is not in the first phase, an existing bloblist must
- * be at a fixed address.
- */
- bool from_addr = fixed && !xpl_is_first_phase();
+ /*
+ * If U-Boot is not in the first phase, an existing bloblist must be
+ * at a fixed address.
+ */
+ bool from_addr = fixed && !xpl_is_first_phase();
+ /*
+ * If U-Boot is in the first phase then an arch custom routine should
+ * install the bloblist passed from previous loader to this fixed
+ * address.
+ */
+ bool from_boot_arg = fixed && xpl_is_first_phase();
+ if (xpl_prev_phase() == PHASE_TPL && !IS_ENABLED(CONFIG_TPL_BLOBLIST))
+ from_addr = false;
+ if (fixed)
+ addr = IF_ENABLED_INT(CONFIG_BLOBLIST_FIXED,
+ CONFIG_BLOBLIST_ADDR);
+ size = CONFIG_BLOBLIST_SIZE;
+
+ if (from_boot_arg) {
+ ret = xferlist_from_boot_arg(&addr);
/*
* If Firmware Handoff is mandatory but no transfer list is
* observed, report it as an error.
*/
- if (IS_ENABLED(CONFIG_BLOBLIST_PASSAGE_MANDATORY))
+ if (ret && IS_ENABLED(CONFIG_BLOBLIST_PASSAGE_MANDATORY))
return -ENOENT;
-
- ret = -ENOENT;
-
- if (xpl_prev_phase() == PHASE_TPL &&
- !IS_ENABLED(CONFIG_TPL_BLOBLIST))
- from_addr = false;
- if (fixed)
- addr = IF_ENABLED_INT(CONFIG_BLOBLIST_FIXED,
- CONFIG_BLOBLIST_ADDR);
- size = CONFIG_BLOBLIST_SIZE;
-
- if (from_addr)
- ret = bloblist_check(addr, size);
-
- if (ret)
- log_warning("Bloblist at %lx not found (err=%d)\n",
- addr, ret);
- else
- /* Get the real size */
- size = gd->bloblist->total_size;
+ } else if (from_addr) {
+ ret = bloblist_check(addr, size);
}
if (ret) {
+ log_warning("Bloblist at %lx not found (err=%d)\n", addr, ret);
+
/*
* If we don't have a bloblist from a fixed address, or the one
* in the fixed address is not valid. we must allocate the
@@ -573,13 +568,15 @@ int bloblist_init(void)
log_debug("Creating new bloblist size %lx at %lx\n", size,
addr);
ret = bloblist_new(addr, size, 0, 0);
+ if (ret)
+ return log_msg_ret("ini", ret);
} else {
+ /* Get the real size */
+ size = gd->bloblist->total_size;
log_debug("Found existing bloblist size %lx at %lx\n", size,
addr);
}
- if (ret)
- return log_msg_ret("ini", ret);
gd->flags |= GD_FLG_BLOBLIST_READY;
#ifdef DEBUG
@@ -620,10 +617,8 @@ int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist)
if (ret)
return ret;
- if (rfdt != (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, 0)) {
- gd->bloblist = NULL; /* Reset the gd bloblist pointer */
+ if (rfdt != (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, 0))
return -EIO;
- }
return 0;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 2/4] fdt: Introduce OF_BLOBLIST
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
2025-03-28 15:43 ` [PATCH 1/4] bloblist: Simplify bloblist init Simon Glass
@ 2025-03-28 15:43 ` Simon Glass
2025-04-03 15:34 ` Raymond Mao
2025-03-28 15:43 ` [PATCH 3/4] bloblist: Provide access to the FDT address Simon Glass
` (3 subsequent siblings)
5 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-03-28 15:43 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Simon Glass, Caleb Connolly, Evgeny Bachinin, Jan Kiszka,
Jerry Van Baren, Lad Prabhakar, Marek Behún, Marek Vasut,
Matthias Brugger, Neil Armstrong, Quentin Schulz, Raymond Mao,
Sumit Garg, This contributor prefers not to receive mails,
Tom Rini, mason1920
Add an option which indicates that the devicetree comes from the
bloblist.
After discussions with Tom, it seems we are comfortable with introducing
this option, ensuring of course that the transfer list is properly
supported.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
doc/develop/devicetree/control.rst | 3 ++
dts/Kconfig | 8 ++++
lib/fdtdec.c | 66 ++++++++++++------------------
3 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/doc/develop/devicetree/control.rst b/doc/develop/devicetree/control.rst
index 0233945f8b6..d80f4d420a9 100644
--- a/doc/develop/devicetree/control.rst
+++ b/doc/develop/devicetree/control.rst
@@ -137,6 +137,9 @@ If `OF_BOARD` is selected by Kconfig, a board-specific routine will provide the
devicetree at runtime, for example if an earlier bootloader stage creates
it and passes it to U-Boot.
+If `OF_BLOBLIST` is defined, the devicetree comes from a bloblist passed
+from a previous stage.
+
If `BLOBLIST` is selected by Kconfig, the devicetree may come from a bloblist
passed from a previous stage, if present.
diff --git a/dts/Kconfig b/dts/Kconfig
index 6a5141b56e9..04359a4d7b2 100644
--- a/dts/Kconfig
+++ b/dts/Kconfig
@@ -167,6 +167,14 @@ config OF_INITIAL_DTB_READONLY
If initial DTB for DT control is read-only (e.g. points to
memory-mapped flash memory), then set this option.
+config OF_BLOBLIST
+ bool "DTB is provided by a bloblist"
+ help
+ Select this to read the devicetree from the bloblist. This allows
+ using a bloblist to transfer the devicetree between U-Boot phases.
+ The devicetree is stored in the bloblist by an earlier phase so that
+ U-Boot can read it.
+
config OF_BOARD
bool "Provided by the board (e.g a previous loader) at runtime"
default y if SANDBOX || OF_HAS_PRIOR_STAGE
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index f09c9926a7a..833f8aca3ce 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1689,55 +1689,43 @@ void fdtdec_setup_embed(void)
int fdtdec_setup(void)
{
- int ret = -ENOENT;
+ int ret;
- /*
- * If allowing a bloblist, check that first. There was discussion about
- * adding an OF_BLOBLIST Kconfig, but this was rejected.
- *
- * The necessary test is whether the previous phase passed a bloblist,
- * not whether this phase creates one.
- */
- if (CONFIG_IS_ENABLED(BLOBLIST) &&
- (xpl_prev_phase() != PHASE_TPL ||
- IS_ENABLED(CONFIG_TPL_BLOBLIST))) {
+ if (CONFIG_IS_ENABLED(OF_BLOBLIST)) {
ret = bloblist_maybe_init();
- if (!ret) {
- gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
- if (gd->fdt_blob) {
- gd->fdt_src = FDTSRC_BLOBLIST;
- log_debug("Devicetree is in bloblist at %p\n",
- gd->fdt_blob);
- ret = 0;
- } else {
- log_debug("No FDT found in bloblist\n");
- ret = -ENOENT;
- }
+ if (ret)
+ return ret;
+ gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
+ if (!gd->fdt_blob) {
+ printf("Not FDT found in bloblist\n");
+ bloblist_show_list();
+ return -ENOENT;
}
- }
-
- /* Otherwise, the devicetree is typically appended to U-Boot */
- if (ret) {
+ gd->fdt_src = FDTSRC_BLOBLIST;
+ bloblist_show_list();
+ log_debug("Devicetree is in bloblist at %p\n", gd->fdt_blob);
+ } else {
if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
gd->fdt_blob = fdt_find_separate();
gd->fdt_src = FDTSRC_SEPARATE;
} else { /* embed dtb in ELF file for testing / development */
- fdtdec_setup_embed();
+ gd->fdt_blob = dtb_dt_embedded();
+ gd->fdt_src = FDTSRC_EMBED;
}
- }
- /* Allow the board to override the fdt address. */
- if (IS_ENABLED(CONFIG_OF_BOARD)) {
- void *blob;
+ /* Allow the board to override the fdt address. */
+ if (IS_ENABLED(CONFIG_OF_BOARD)) {
+ void *blob;
- blob = (void *)gd->fdt_blob;
- ret = board_fdt_blob_setup(&blob);
- if (ret) {
- if (ret != -EEXIST)
- return ret;
- } else {
- gd->fdt_src = FDTSRC_BOARD;
- gd->fdt_blob = blob;
+ blob = (void *)gd->fdt_blob;
+ ret = board_fdt_blob_setup(&blob);
+ if (ret) {
+ if (ret != -EEXIST)
+ return ret;
+ } else {
+ gd->fdt_src = FDTSRC_BOARD;
+ gd->fdt_blob = blob;
+ }
}
}
--
2.43.0
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 3/4] bloblist: Provide access to the FDT address
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
2025-03-28 15:43 ` [PATCH 1/4] bloblist: Simplify bloblist init Simon Glass
2025-03-28 15:43 ` [PATCH 2/4] fdt: Introduce OF_BLOBLIST Simon Glass
@ 2025-03-28 15:43 ` Simon Glass
2025-03-28 15:43 ` [PATCH 4/4] fdt: Obtain the FDT from bloblist without parsing it Simon Glass
` (2 subsequent siblings)
5 siblings, 0 replies; 58+ messages in thread
From: Simon Glass @ 2025-03-28 15:43 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Simon Glass, Andrew Goodbody, Evgeny Bachinin, Harrison Mutai,
Levi Yun, Patrick Rudolph, Raymond Mao, Tom Rini
The firmware handoff specification provides for a devicetree pointer in
a register. Provide access to that so we don't have to parse the
bloblist to get it.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
arch/arm/lib/xferlist.c | 6 ++++--
common/bloblist.c | 5 +++--
include/bloblist.h | 5 +++--
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/arch/arm/lib/xferlist.c b/arch/arm/lib/xferlist.c
index 6425936d354..16c28e34604 100644
--- a/arch/arm/lib/xferlist.c
+++ b/arch/arm/lib/xferlist.c
@@ -8,7 +8,7 @@
#include <bloblist.h>
#include "xferlist.h"
-int xferlist_from_boot_arg(ulong *addr)
+int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
{
int ret;
@@ -17,7 +17,9 @@ int xferlist_from_boot_arg(ulong *addr)
if (ret)
return ret;
- *addr = bloblist_get_base();
+ *addrp = saved_args[3];
+ if (fdtp)
+ *fdtp = saved_args[0];
return 0;
}
diff --git a/common/bloblist.c b/common/bloblist.c
index 135fb149626..83d9de2749e 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -505,7 +505,8 @@ int bloblist_reloc(void *to, uint to_size)
/*
* Weak default function for getting bloblist from boot args.
*/
-int __weak xferlist_from_boot_arg(ulong __always_unused *addr)
+int __weak xferlist_from_boot_arg(ulong __always_unused *addrp,
+ ulong __always_unused *fdtp)
{
return -ENOENT;
}
@@ -536,7 +537,7 @@ int bloblist_init(void)
size = CONFIG_BLOBLIST_SIZE;
if (from_boot_arg) {
- ret = xferlist_from_boot_arg(&addr);
+ ret = xferlist_from_boot_arg(&addr, NULL);
/*
* If Firmware Handoff is mandatory but no transfer list is
* observed, report it as an error.
diff --git a/include/bloblist.h b/include/bloblist.h
index f32faf78560..7ff70e9554c 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -509,9 +509,10 @@ int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist);
/**
* xferlist_from_boot_arg() - Get bloblist from the boot args.
*
- * @addr: Address of the bloblist
+ * @addrp: Returns address of the bloblist
+ * @fdtp: If non-NULL, returns address of the FDT
* Return: 0 if OK, else on error
*/
-int xferlist_from_boot_arg(ulong *addr);
+int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp);
#endif /* __BLOBLIST_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 58+ messages in thread
* [PATCH 4/4] fdt: Obtain the FDT from bloblist without parsing it
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
` (2 preceding siblings ...)
2025-03-28 15:43 ` [PATCH 3/4] bloblist: Provide access to the FDT address Simon Glass
@ 2025-03-28 15:43 ` Simon Glass
2025-03-28 16:18 ` [PATCH 0/4] bloblist: fdt: Clean up the code Tom Rini
2025-04-03 14:09 ` Raymond Mao
5 siblings, 0 replies; 58+ messages in thread
From: Simon Glass @ 2025-03-28 15:43 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Simon Glass, Andrew Goodbody, Evgeny Bachinin, Harrison Mutai,
Jerry Van Baren, Lad Prabhakar, Levi Yun, Marek Vasut,
Matthias Brugger, Patrick Rudolph, Raymond Mao, Tom Rini
We don't need or want to parse the bloblist to obtain the FDT. Use the
feature in the transfer list that was designed for this situation.
This avoids the complexity of trying to init the bloblist twice before
relocation.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
common/bloblist.c | 32 +++++++++++++++++++++++++++++---
include/bloblist.h | 11 +++++++++++
lib/fdtdec.c | 11 ++++-------
3 files changed, 44 insertions(+), 10 deletions(-)
diff --git a/common/bloblist.c b/common/bloblist.c
index 83d9de2749e..6bef1ab1895 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -596,11 +596,17 @@ int bloblist_maybe_init(void)
return 0;
}
-int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist)
+/**
+ * has_signature() - Check if the bloblist signature is in the registers
+ *
+ * @rzero: Register which should be zero
+ * @rsig: Register which should have the bloblist signature
+ * Return: true if signature found, false if not
+ */
+static bool has_signature(ulong rzero, ulong rsig)
{
u64 version = BLOBLIST_REGCONV_VER;
ulong sigval;
- int ret;
if ((IS_ENABLED(CONFIG_64BIT) && !IS_ENABLED(CONFIG_SPL_BUILD)) ||
(IS_ENABLED(CONFIG_SPL_64BIT) && IS_ENABLED(CONFIG_SPL_BUILD))) {
@@ -612,7 +618,17 @@ int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist)
}
if (rzero || rsig != sigval)
- return -EIO;
+ return false;
+
+ return true;
+}
+
+int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist)
+{
+ int ret;
+
+ if (!has_signature(rzero, rsig))
+ return -ENOENT;
ret = bloblist_check(xlist, 0);
if (ret)
@@ -623,3 +639,13 @@ int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist)
return 0;
}
+
+void *bloblist_early_get_fdt(void)
+{
+ ulong addr, fdt;
+
+ if (xferlist_from_boot_arg(&addr, &fdt))
+ return NULL;
+
+ return map_sysmem(fdt, 0);
+}
diff --git a/include/bloblist.h b/include/bloblist.h
index 7ff70e9554c..8be871f2d98 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -515,4 +515,15 @@ int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig, ulong xlist);
*/
int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp);
+/**
+ * bloblist_early_get_fdt() - Get the FDT from a bloblist before it is set up
+ *
+ * The transfer list calling convention specifies that the FDT can be obtained
+ * without parsing the bloblist. Check for the presence of a bloblist and return
+ * the FDT indicated
+ *
+ * Return: Pointer to FDT or NULL if no bloblist is present
+ */
+void *bloblist_early_get_fdt(void);
+
#endif /* __BLOBLIST_H */
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 833f8aca3ce..afa51f34867 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1692,17 +1692,14 @@ int fdtdec_setup(void)
int ret;
if (CONFIG_IS_ENABLED(OF_BLOBLIST)) {
- ret = bloblist_maybe_init();
- if (ret)
- return ret;
- gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
- if (!gd->fdt_blob) {
+ const void *blob;
+
+ blob = bloblist_early_get_fdt();
+ if (!blob) {
printf("Not FDT found in bloblist\n");
- bloblist_show_list();
return -ENOENT;
}
gd->fdt_src = FDTSRC_BLOBLIST;
- bloblist_show_list();
log_debug("Devicetree is in bloblist at %p\n", gd->fdt_blob);
} else {
if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
--
2.43.0
^ permalink raw reply related [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
` (3 preceding siblings ...)
2025-03-28 15:43 ` [PATCH 4/4] fdt: Obtain the FDT from bloblist without parsing it Simon Glass
@ 2025-03-28 16:18 ` Tom Rini
2025-03-28 23:38 ` Simon Glass
2025-04-03 14:09 ` Raymond Mao
5 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-03-28 16:18 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Raymond Mao, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 913 bytes --]
On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> The bloblist code took what I consider to be a wrong turn a year or so
> ago. As discussed with Tom, this series proposes a way to arrange things
> so that it is simpler to understand and manage.
>
> - Unwind some of the nesting in bloblist_init()
> - Avoid needing to init the bloblist just to get the FDT
> - Create a deterministic OF_BLOBLIST option rather than using guesswork
>
> It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> CI at some point. In the meantime, the standard passage series[1] could
> be resurrected to give some coverage.
>
> [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
Based on how it's documented to be run in
doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
that platforms using the handoff spec still work?
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-28 16:18 ` [PATCH 0/4] bloblist: fdt: Clean up the code Tom Rini
@ 2025-03-28 23:38 ` Simon Glass
2025-03-29 0:02 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-03-28 23:38 UTC (permalink / raw)
To: Tom Rini
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Raymond Mao, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
>
> > The bloblist code took what I consider to be a wrong turn a year or so
> > ago. As discussed with Tom, this series proposes a way to arrange things
> > so that it is simpler to understand and manage.
> >
> > - Unwind some of the nesting in bloblist_init()
> > - Avoid needing to init the bloblist just to get the FDT
> > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> >
> > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > CI at some point. In the meantime, the standard passage series[1] could
> > be resurrected to give some coverage.
> >
> > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
>
> Based on how it's documented to be run in
> doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> that platforms using the handoff spec still work?
I believe so, yes. I don't have that board to test it though. Raymond
may be able to test this series on QEMU?
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-28 23:38 ` Simon Glass
@ 2025-03-29 0:02 ` Tom Rini
2025-03-29 1:00 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-03-29 0:02 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Raymond Mao, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 1384 bytes --]
On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> Hi Tom,
>
> On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> >
> > > The bloblist code took what I consider to be a wrong turn a year or so
> > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > so that it is simpler to understand and manage.
> > >
> > > - Unwind some of the nesting in bloblist_init()
> > > - Avoid needing to init the bloblist just to get the FDT
> > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > >
> > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > CI at some point. In the meantime, the standard passage series[1] could
> > > be resurrected to give some coverage.
> > >
> > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> >
> > Based on how it's documented to be run in
> > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > that platforms using the handoff spec still work?
>
> I believe so, yes. I don't have that board to test it though. Raymond
> may be able to test this series on QEMU?
I was pointing you at the docs so that you would have access to testing
it. That's part of the docs, running the emulator.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-29 0:02 ` Tom Rini
@ 2025-03-29 1:00 ` Raymond Mao
2025-04-04 14:48 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-03-29 1:00 UTC (permalink / raw)
To: Tom Rini
Cc: Simon Glass, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom and Simon,
On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > Hi Tom,
> >
> > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > >
> > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > so that it is simpler to understand and manage.
> > > >
> > > > - Unwind some of the nesting in bloblist_init()
> > > > - Avoid needing to init the bloblist just to get the FDT
> > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > >
> > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > be resurrected to give some coverage.
> > > >
> > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > >
> > > Based on how it's documented to be run in
> > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > that platforms using the handoff spec still work?
> >
> > I believe so, yes. I don't have that board to test it though. Raymond
> > may be able to test this series on QEMU?
>
> I was pointing you at the docs so that you would have access to testing
> it. That's part of the docs, running the emulator.
>
I can help to test the firmware handoff on qemu.
I have all the necessary changes and unit tests for the OP-TEE repo
qemu v8 build to test this.
I will try to find some time early next week to review and test this
series before turning back to you.
Regards,
Raymond
> --
> Tom
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
` (4 preceding siblings ...)
2025-03-28 16:18 ` [PATCH 0/4] bloblist: fdt: Clean up the code Tom Rini
@ 2025-04-03 14:09 ` Raymond Mao
2025-04-03 17:57 ` Simon Glass
5 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-03 14:09 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Simon,
On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
>
> The bloblist code took what I consider to be a wrong turn a year or so
> ago. As discussed with Tom, this series proposes a way to arrange things
> so that it is simpler to understand and manage.
>
> - Unwind some of the nesting in bloblist_init()
> - Avoid needing to init the bloblist just to get the FDT
> - Create a deterministic OF_BLOBLIST option rather than using guesswork
>
We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
mandatorily use bloblist to hand over everything between boot stages
including fdt, creating OF_BLOBLIST is not necessary.
> It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> CI at some point. In the meantime, the standard passage series[1] could
> be resurrected to give some coverage.
>
> [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
>
>
> Simon Glass (4):
> bloblist: Simplify bloblist init
> fdt: Introduce OF_BLOBLIST
> bloblist: Provide access to the FDT address
> fdt: Obtain the FDT from bloblist without parsing it
>
> arch/arm/lib/xferlist.c | 6 +-
> common/bloblist.c | 102 ++++++++++++++++++-----------
> doc/develop/devicetree/control.rst | 3 +
> dts/Kconfig | 8 +++
> include/bloblist.h | 16 ++++-
> lib/fdtdec.c | 65 +++++++-----------
> 6 files changed, 116 insertions(+), 84 deletions(-)
>
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 2/4] fdt: Introduce OF_BLOBLIST
2025-03-28 15:43 ` [PATCH 2/4] fdt: Introduce OF_BLOBLIST Simon Glass
@ 2025-04-03 15:34 ` Raymond Mao
2025-04-03 17:57 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-03 15:34 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Caleb Connolly, Evgeny Bachinin, Jan Kiszka,
Jerry Van Baren, Lad Prabhakar, Marek Behún, Marek Vasut,
Matthias Brugger, Neil Armstrong, Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Simon,
On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
>
> Add an option which indicates that the devicetree comes from the
> bloblist.
>
> After discussions with Tom, it seems we are comfortable with introducing
> this option, ensuring of course that the transfer list is properly
> supported.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> doc/develop/devicetree/control.rst | 3 ++
> dts/Kconfig | 8 ++++
> lib/fdtdec.c | 66 ++++++++++++------------------
> 3 files changed, 38 insertions(+), 39 deletions(-)
>
> diff --git a/doc/develop/devicetree/control.rst b/doc/develop/devicetree/control.rst
> index 0233945f8b6..d80f4d420a9 100644
> --- a/doc/develop/devicetree/control.rst
> +++ b/doc/develop/devicetree/control.rst
> @@ -137,6 +137,9 @@ If `OF_BOARD` is selected by Kconfig, a board-specific routine will provide the
> devicetree at runtime, for example if an earlier bootloader stage creates
> it and passes it to U-Boot.
>
> +If `OF_BLOBLIST` is defined, the devicetree comes from a bloblist passed
> +from a previous stage.
> +
> If `BLOBLIST` is selected by Kconfig, the devicetree may come from a bloblist
> passed from a previous stage, if present.
>
> diff --git a/dts/Kconfig b/dts/Kconfig
> index 6a5141b56e9..04359a4d7b2 100644
> --- a/dts/Kconfig
> +++ b/dts/Kconfig
> @@ -167,6 +167,14 @@ config OF_INITIAL_DTB_READONLY
> If initial DTB for DT control is read-only (e.g. points to
> memory-mapped flash memory), then set this option.
>
> +config OF_BLOBLIST
> + bool "DTB is provided by a bloblist"
> + help
> + Select this to read the devicetree from the bloblist. This allows
> + using a bloblist to transfer the devicetree between U-Boot phases.
> + The devicetree is stored in the bloblist by an earlier phase so that
> + U-Boot can read it.
> +
> config OF_BOARD
> bool "Provided by the board (e.g a previous loader) at runtime"
> default y if SANDBOX || OF_HAS_PRIOR_STAGE
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index f09c9926a7a..833f8aca3ce 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -1689,55 +1689,43 @@ void fdtdec_setup_embed(void)
>
> int fdtdec_setup(void)
I think a better idea is to use BLOBLIST_PASSAGE_MANDATORY, see below
pseudo code:
```
if (IS_ENABLED(CONFIG_OF_BOARD)) {
/* get fdt from board */
}
/* allow fdtcontroladdr to override it */
if (CONFIG_IS_ENABLED(BLOBLIST) && ... ) {
/* try to find fdt from bloblist */
if (CONFIG_IS_ENABLED(BLOBLIST_PASSAGE_MANDATORY) {
if (no_fdt_in_bloblist)
return ERROR;
/* override fdt with the one from bloblist */
}
}
```
Regards,
Raymond
> {
> - int ret = -ENOENT;
> + int ret;
>
> - /*
> - * If allowing a bloblist, check that first. There was discussion about
> - * adding an OF_BLOBLIST Kconfig, but this was rejected.
> - *
> - * The necessary test is whether the previous phase passed a bloblist,
> - * not whether this phase creates one.
> - */
> - if (CONFIG_IS_ENABLED(BLOBLIST) &&
> - (xpl_prev_phase() != PHASE_TPL ||
> - IS_ENABLED(CONFIG_TPL_BLOBLIST))) {
> + if (CONFIG_IS_ENABLED(OF_BLOBLIST)) {
> ret = bloblist_maybe_init();
> - if (!ret) {
> - gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
> - if (gd->fdt_blob) {
> - gd->fdt_src = FDTSRC_BLOBLIST;
> - log_debug("Devicetree is in bloblist at %p\n",
> - gd->fdt_blob);
> - ret = 0;
> - } else {
> - log_debug("No FDT found in bloblist\n");
> - ret = -ENOENT;
> - }
> + if (ret)
> + return ret;
> + gd->fdt_blob = bloblist_find(BLOBLISTT_CONTROL_FDT, 0);
> + if (!gd->fdt_blob) {
> + printf("Not FDT found in bloblist\n");
> + bloblist_show_list();
> + return -ENOENT;
> }
> - }
> -
> - /* Otherwise, the devicetree is typically appended to U-Boot */
> - if (ret) {
> + gd->fdt_src = FDTSRC_BLOBLIST;
> + bloblist_show_list();
> + log_debug("Devicetree is in bloblist at %p\n", gd->fdt_blob);
> + } else {
> if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
> gd->fdt_blob = fdt_find_separate();
> gd->fdt_src = FDTSRC_SEPARATE;
> } else { /* embed dtb in ELF file for testing / development */
> - fdtdec_setup_embed();
> + gd->fdt_blob = dtb_dt_embedded();
> + gd->fdt_src = FDTSRC_EMBED;
> }
> - }
>
> - /* Allow the board to override the fdt address. */
> - if (IS_ENABLED(CONFIG_OF_BOARD)) {
> - void *blob;
> + /* Allow the board to override the fdt address. */
> + if (IS_ENABLED(CONFIG_OF_BOARD)) {
> + void *blob;
>
> - blob = (void *)gd->fdt_blob;
> - ret = board_fdt_blob_setup(&blob);
> - if (ret) {
> - if (ret != -EEXIST)
> - return ret;
> - } else {
> - gd->fdt_src = FDTSRC_BOARD;
> - gd->fdt_blob = blob;
> + blob = (void *)gd->fdt_blob;
> + ret = board_fdt_blob_setup(&blob);
> + if (ret) {
> + if (ret != -EEXIST)
> + return ret;
> + } else {
> + gd->fdt_src = FDTSRC_BOARD;
> + gd->fdt_blob = blob;
> + }
> }
> }
>
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 14:09 ` Raymond Mao
@ 2025-04-03 17:57 ` Simon Glass
2025-04-03 18:12 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-03 17:57 UTC (permalink / raw)
To: Raymond Mao
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Raymond,
On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> >
> > The bloblist code took what I consider to be a wrong turn a year or so
> > ago. As discussed with Tom, this series proposes a way to arrange things
> > so that it is simpler to understand and manage.
> >
> > - Unwind some of the nesting in bloblist_init()
> > - Avoid needing to init the bloblist just to get the FDT
> > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> >
> We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> mandatorily use bloblist to hand over everything between boot stages
> including fdt, creating OF_BLOBLIST is not necessary.
Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
there must be a bloblist, not that it must contain a devicetree. So I
wasn't sure about removing it.
But actually, thinking about it just now, we can remove
BLOBLIST_PASSAGE_MANDATORY, since U-Boot won't make it that far if
there is no bloblist. It will die in fdtdec_setup(). Take a look and
see if you agree.
>
> > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > CI at some point. In the meantime, the standard passage series[1] could
> > be resurrected to give some coverage.
> >
> > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> >
> >
> > Simon Glass (4):
> > bloblist: Simplify bloblist init
> > fdt: Introduce OF_BLOBLIST
> > bloblist: Provide access to the FDT address
> > fdt: Obtain the FDT from bloblist without parsing it
> >
> > arch/arm/lib/xferlist.c | 6 +-
> > common/bloblist.c | 102 ++++++++++++++++++-----------
> > doc/develop/devicetree/control.rst | 3 +
> > dts/Kconfig | 8 +++
> > include/bloblist.h | 16 ++++-
> > lib/fdtdec.c | 65 +++++++-----------
> > 6 files changed, 116 insertions(+), 84 deletions(-)
> >
> > --
> > 2.43.0
> >
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 2/4] fdt: Introduce OF_BLOBLIST
2025-04-03 15:34 ` Raymond Mao
@ 2025-04-03 17:57 ` Simon Glass
0 siblings, 0 replies; 58+ messages in thread
From: Simon Glass @ 2025-04-03 17:57 UTC (permalink / raw)
To: Raymond Mao
Cc: U-Boot Mailing List, Caleb Connolly, Evgeny Bachinin, Jan Kiszka,
Jerry Van Baren, Lad Prabhakar, Marek Behún, Marek Vasut,
Matthias Brugger, Neil Armstrong, Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Raymond,
On Fri, 4 Apr 2025 at 04:34, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> >
> > Add an option which indicates that the devicetree comes from the
> > bloblist.
> >
> > After discussions with Tom, it seems we are comfortable with introducing
> > this option, ensuring of course that the transfer list is properly
> > supported.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> > doc/develop/devicetree/control.rst | 3 ++
> > dts/Kconfig | 8 ++++
> > lib/fdtdec.c | 66 ++++++++++++------------------
> > 3 files changed, 38 insertions(+), 39 deletions(-)
> >
> > diff --git a/doc/develop/devicetree/control.rst b/doc/develop/devicetree/control.rst
> > index 0233945f8b6..d80f4d420a9 100644
> > --- a/doc/develop/devicetree/control.rst
> > +++ b/doc/develop/devicetree/control.rst
> > @@ -137,6 +137,9 @@ If `OF_BOARD` is selected by Kconfig, a board-specific routine will provide the
> > devicetree at runtime, for example if an earlier bootloader stage creates
> > it and passes it to U-Boot.
> >
> > +If `OF_BLOBLIST` is defined, the devicetree comes from a bloblist passed
> > +from a previous stage.
> > +
> > If `BLOBLIST` is selected by Kconfig, the devicetree may come from a bloblist
> > passed from a previous stage, if present.
> >
> > diff --git a/dts/Kconfig b/dts/Kconfig
> > index 6a5141b56e9..04359a4d7b2 100644
> > --- a/dts/Kconfig
> > +++ b/dts/Kconfig
> > @@ -167,6 +167,14 @@ config OF_INITIAL_DTB_READONLY
> > If initial DTB for DT control is read-only (e.g. points to
> > memory-mapped flash memory), then set this option.
> >
> > +config OF_BLOBLIST
> > + bool "DTB is provided by a bloblist"
> > + help
> > + Select this to read the devicetree from the bloblist. This allows
> > + using a bloblist to transfer the devicetree between U-Boot phases.
> > + The devicetree is stored in the bloblist by an earlier phase so that
> > + U-Boot can read it.
> > +
> > config OF_BOARD
> > bool "Provided by the board (e.g a previous loader) at runtime"
> > default y if SANDBOX || OF_HAS_PRIOR_STAGE
> > diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> > index f09c9926a7a..833f8aca3ce 100644
> > --- a/lib/fdtdec.c
> > +++ b/lib/fdtdec.c
> > @@ -1689,55 +1689,43 @@ void fdtdec_setup_embed(void)
> >
> > int fdtdec_setup(void)
>
> I think a better idea is to use BLOBLIST_PASSAGE_MANDATORY, see below
> pseudo code:
>
> ```
> if (IS_ENABLED(CONFIG_OF_BOARD)) {
> /* get fdt from board */
> }
>
> /* allow fdtcontroladdr to override it */
>
> if (CONFIG_IS_ENABLED(BLOBLIST) && ... ) {
> /* try to find fdt from bloblist */
>
> if (CONFIG_IS_ENABLED(BLOBLIST_PASSAGE_MANDATORY) {
> if (no_fdt_in_bloblist)
> return ERROR;
>
> /* override fdt with the one from bloblist */
> }
> }
> ```
See my other email on this. With OF_BLOBLIST we actually don't need
BLOBLIST_PASSAGE_MANDATORY so we can drop it.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 17:57 ` Simon Glass
@ 2025-04-03 18:12 ` Raymond Mao
2025-04-03 18:18 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-03 18:12 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Simon,
On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > The bloblist code took what I consider to be a wrong turn a year or so
> > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > so that it is simpler to understand and manage.
> > >
> > > - Unwind some of the nesting in bloblist_init()
> > > - Avoid needing to init the bloblist just to get the FDT
> > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > >
> > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > mandatorily use bloblist to hand over everything between boot stages
> > including fdt, creating OF_BLOBLIST is not necessary.
>
> Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> there must be a bloblist, not that it must contain a devicetree. So I
> wasn't sure about removing it.
>
See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
selected, we can override any fdt from board or env with the one from
the bloblist.
Moreover, it is not just for fdt, but for everything that is being
handed over from the previous boot stage using bloblist, but
OF_BLOBLIST is for fdt only.
I don't think it is a good idea to replace BLOBLIST_PASSAGE_MANDATORY
with OF_BLOBLIST.
Regards,
Raymond
> But actually, thinking about it just now, we can remove
> BLOBLIST_PASSAGE_MANDATORY, since U-Boot won't make it that far if
> there is no bloblist. It will die in fdtdec_setup(). Take a look and
> see if you agree.
>
> >
> > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > CI at some point. In the meantime, the standard passage series[1] could
> > > be resurrected to give some coverage.
> > >
> > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > >
> > >
> > > Simon Glass (4):
> > > bloblist: Simplify bloblist init
> > > fdt: Introduce OF_BLOBLIST
> > > bloblist: Provide access to the FDT address
> > > fdt: Obtain the FDT from bloblist without parsing it
> > >
> > > arch/arm/lib/xferlist.c | 6 +-
> > > common/bloblist.c | 102 ++++++++++++++++++-----------
> > > doc/develop/devicetree/control.rst | 3 +
> > > dts/Kconfig | 8 +++
> > > include/bloblist.h | 16 ++++-
> > > lib/fdtdec.c | 65 +++++++-----------
> > > 6 files changed, 116 insertions(+), 84 deletions(-)
> > >
> > > --
> > > 2.43.0
> > >
>
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 18:12 ` Raymond Mao
@ 2025-04-03 18:18 ` Simon Glass
2025-04-03 19:54 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-03 18:18 UTC (permalink / raw)
To: Raymond Mao
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Raymond,
On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > so that it is simpler to understand and manage.
> > > >
> > > > - Unwind some of the nesting in bloblist_init()
> > > > - Avoid needing to init the bloblist just to get the FDT
> > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > >
> > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > mandatorily use bloblist to hand over everything between boot stages
> > > including fdt, creating OF_BLOBLIST is not necessary.
> >
> > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > there must be a bloblist, not that it must contain a devicetree. So I
> > wasn't sure about removing it.
> >
>
> See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> selected, we can override any fdt from board or env with the one from
> the bloblist.
Yes, but we should be explicit about what is going on here. With
OF_BLOBLIST we indicate that the devicetree is coming from the
bloblist. It becomes one of the sources for devicetree, like
OF_SEPARATE and OF_EMBED
> Moreover, it is not just for fdt, but for everything that is being
> handed over from the previous boot stage using bloblist, but
> OF_BLOBLIST is for fdt only.
What other things are there?
> I don't think it is a good idea to replace BLOBLIST_PASSAGE_MANDATORY
> with OF_BLOBLIST.
I am OK with keeping BLOBLIST_PASSAGE_MANDATORY for now. This series
does not remove it.
>
> > But actually, thinking about it just now, we can remove
> > BLOBLIST_PASSAGE_MANDATORY, since U-Boot won't make it that far if
> > there is no bloblist. It will die in fdtdec_setup(). Take a look and
> > see if you agree.
Regards,
SImon
> >
> > >
> > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > be resurrected to give some coverage.
> > > >
> > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > >
> > > >
> > > > Simon Glass (4):
> > > > bloblist: Simplify bloblist init
> > > > fdt: Introduce OF_BLOBLIST
> > > > bloblist: Provide access to the FDT address
> > > > fdt: Obtain the FDT from bloblist without parsing it
> > > >
> > > > arch/arm/lib/xferlist.c | 6 +-
> > > > common/bloblist.c | 102 ++++++++++++++++++-----------
> > > > doc/develop/devicetree/control.rst | 3 +
> > > > dts/Kconfig | 8 +++
> > > > include/bloblist.h | 16 ++++-
> > > > lib/fdtdec.c | 65 +++++++-----------
> > > > 6 files changed, 116 insertions(+), 84 deletions(-)
> > > >
> > > > --
> > > > 2.43.0
> > > >
> >
> > Regards,
> > Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 18:18 ` Simon Glass
@ 2025-04-03 19:54 ` Raymond Mao
2025-04-03 20:40 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-03 19:54 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Simon,
On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > so that it is simpler to understand and manage.
> > > > >
> > > > > - Unwind some of the nesting in bloblist_init()
> > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > >
> > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > mandatorily use bloblist to hand over everything between boot stages
> > > > including fdt, creating OF_BLOBLIST is not necessary.
> > >
> > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > there must be a bloblist, not that it must contain a devicetree. So I
> > > wasn't sure about removing it.
> > >
> >
> > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > selected, we can override any fdt from board or env with the one from
> > the bloblist.
>
> Yes, but we should be explicit about what is going on here. With
> OF_BLOBLIST we indicate that the devicetree is coming from the
> bloblist. It becomes one of the sources for devicetree, like
> OF_SEPARATE and OF_EMBED
>
BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
mandatorily used and override other fdt sources like from the board or
env variables.
> > Moreover, it is not just for fdt, but for everything that is being
> > handed over from the previous boot stage using bloblist, but
> > OF_BLOBLIST is for fdt only.
>
> What other things are there?
All transfer entries defined in the Firmware Handoff spec should be
handed over via bloblist, for example, TPM event logs.
Regards,
Raymond
>
> > I don't think it is a good idea to replace BLOBLIST_PASSAGE_MANDATORY
> > with OF_BLOBLIST.
>
> I am OK with keeping BLOBLIST_PASSAGE_MANDATORY for now. This series
> does not remove it.
>
> >
> > > But actually, thinking about it just now, we can remove
> > > BLOBLIST_PASSAGE_MANDATORY, since U-Boot won't make it that far if
> > > there is no bloblist. It will die in fdtdec_setup(). Take a look and
> > > see if you agree.
>
> Regards,
> SImon
>
> > >
> > > >
> > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > be resurrected to give some coverage.
> > > > >
> > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > >
> > > > >
> > > > > Simon Glass (4):
> > > > > bloblist: Simplify bloblist init
> > > > > fdt: Introduce OF_BLOBLIST
> > > > > bloblist: Provide access to the FDT address
> > > > > fdt: Obtain the FDT from bloblist without parsing it
> > > > >
> > > > > arch/arm/lib/xferlist.c | 6 +-
> > > > > common/bloblist.c | 102 ++++++++++++++++++-----------
> > > > > doc/develop/devicetree/control.rst | 3 +
> > > > > dts/Kconfig | 8 +++
> > > > > include/bloblist.h | 16 ++++-
> > > > > lib/fdtdec.c | 65 +++++++-----------
> > > > > 6 files changed, 116 insertions(+), 84 deletions(-)
> > > > >
> > > > > --
> > > > > 2.43.0
> > > > >
> > >
> > > Regards,
> > > Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 19:54 ` Raymond Mao
@ 2025-04-03 20:40 ` Simon Glass
2025-04-03 21:52 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-03 20:40 UTC (permalink / raw)
To: Raymond Mao
Cc: U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, Tom Rini,
mason1920
Hi Raymond,
On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > so that it is simpler to understand and manage.
> > > > > >
> > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > >
> > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > >
> > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > wasn't sure about removing it.
> > > >
> > >
> > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > selected, we can override any fdt from board or env with the one from
> > > the bloblist.
> >
> > Yes, but we should be explicit about what is going on here. With
> > OF_BLOBLIST we indicate that the devicetree is coming from the
> > bloblist. It becomes one of the sources for devicetree, like
> > OF_SEPARATE and OF_EMBED
> >
>
> BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> mandatorily used and override other fdt sources like from the board or
> env variables.
So long as you are OK with OF_BLOBLIST as well, I have no objection to
keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
very much. But I can see why it is called that as my standard passage
series was actually never applied. So I suppose I'll need to have
another try at that.
So to be clear, I want a separate option for devicetree, called
OF_BLOBLIST, which I can enable/disable as needed, without affecting
your option.
>
> > > Moreover, it is not just for fdt, but for everything that is being
> > > handed over from the previous boot stage using bloblist, but
> > > OF_BLOBLIST is for fdt only.
> >
> > What other things are there?
>
> All transfer entries defined in the Firmware Handoff spec should be
> handed over via bloblist, for example, TPM event logs.
OK, again no objection. I don't see any code for that though.
Regards,
SImon
>
> Regards,
> Raymond
>
> >
> > > I don't think it is a good idea to replace BLOBLIST_PASSAGE_MANDATORY
> > > with OF_BLOBLIST.
> >
> > I am OK with keeping BLOBLIST_PASSAGE_MANDATORY for now. This series
> > does not remove it.
> >
> > >
> > > > But actually, thinking about it just now, we can remove
> > > > BLOBLIST_PASSAGE_MANDATORY, since U-Boot won't make it that far if
> > > > there is no bloblist. It will die in fdtdec_setup(). Take a look and
> > > > see if you agree.
> >
> > Regards,
> > SImon
> >
> > > >
> > > > >
> > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > be resurrected to give some coverage.
> > > > > >
> > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > >
> > > > > >
> > > > > > Simon Glass (4):
> > > > > > bloblist: Simplify bloblist init
> > > > > > fdt: Introduce OF_BLOBLIST
> > > > > > bloblist: Provide access to the FDT address
> > > > > > fdt: Obtain the FDT from bloblist without parsing it
> > > > > >
> > > > > > arch/arm/lib/xferlist.c | 6 +-
> > > > > > common/bloblist.c | 102 ++++++++++++++++++-----------
> > > > > > doc/develop/devicetree/control.rst | 3 +
> > > > > > dts/Kconfig | 8 +++
> > > > > > include/bloblist.h | 16 ++++-
> > > > > > lib/fdtdec.c | 65 +++++++-----------
> > > > > > 6 files changed, 116 insertions(+), 84 deletions(-)
> > > > > >
> > > > > > --
> > > > > > 2.43.0
> > > > > >
> > > >
> > > > Regards,
> > > > Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 20:40 ` Simon Glass
@ 2025-04-03 21:52 ` Tom Rini
2025-04-03 22:41 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-03 21:52 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 2915 bytes --]
On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> Hi Raymond,
>
> On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > so that it is simpler to understand and manage.
> > > > > > >
> > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > >
> > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > >
> > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > wasn't sure about removing it.
> > > > >
> > > >
> > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > selected, we can override any fdt from board or env with the one from
> > > > the bloblist.
> > >
> > > Yes, but we should be explicit about what is going on here. With
> > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > bloblist. It becomes one of the sources for devicetree, like
> > > OF_SEPARATE and OF_EMBED
> > >
> >
> > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > mandatorily used and override other fdt sources like from the board or
> > env variables.
>
> So long as you are OK with OF_BLOBLIST as well, I have no objection to
> keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> very much. But I can see why it is called that as my standard passage
> series was actually never applied. So I suppose I'll need to have
> another try at that.
>
> So to be clear, I want a separate option for devicetree, called
> OF_BLOBLIST, which I can enable/disable as needed, without affecting
> your option.
Sigh. Can I ask what the use case for this will be? And we are going to
get rid of BLOBLIST_FIXED at some point, yes?
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 21:52 ` Tom Rini
@ 2025-04-03 22:41 ` Simon Glass
2025-04-03 22:50 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-03 22:41 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > Hi Raymond,
> >
> > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > so that it is simpler to understand and manage.
> > > > > > > >
> > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > >
> > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > >
> > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > wasn't sure about removing it.
> > > > > >
> > > > >
> > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > selected, we can override any fdt from board or env with the one from
> > > > > the bloblist.
> > > >
> > > > Yes, but we should be explicit about what is going on here. With
> > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > bloblist. It becomes one of the sources for devicetree, like
> > > > OF_SEPARATE and OF_EMBED
> > > >
> > >
> > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > mandatorily used and override other fdt sources like from the board or
> > > env variables.
> >
> > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > very much. But I can see why it is called that as my standard passage
> > series was actually never applied. So I suppose I'll need to have
> > another try at that.
> >
> > So to be clear, I want a separate option for devicetree, called
> > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > your option.
>
> Sigh. Can I ask what the use case for this will be? And we are going to
> get rid of BLOBLIST_FIXED at some point, yes?
I thought we agreed that this was acceptable. We argued the toss for
months on this point and I would rather not revisit it.
Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
pretty sure it can be done. The only tricky bit is coming up with a
bloblist protocol for x86.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 22:41 ` Simon Glass
@ 2025-04-03 22:50 ` Tom Rini
2025-04-04 17:39 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-03 22:50 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 4332 bytes --]
On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> Hi Tom,
>
> On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > Hi Raymond,
> > >
> > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > >
> > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > >
> > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > >
> > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > wasn't sure about removing it.
> > > > > > >
> > > > > >
> > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > the bloblist.
> > > > >
> > > > > Yes, but we should be explicit about what is going on here. With
> > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > OF_SEPARATE and OF_EMBED
> > > > >
> > > >
> > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > mandatorily used and override other fdt sources like from the board or
> > > > env variables.
> > >
> > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > very much. But I can see why it is called that as my standard passage
> > > series was actually never applied. So I suppose I'll need to have
> > > another try at that.
> > >
> > > So to be clear, I want a separate option for devicetree, called
> > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > your option.
> >
> > Sigh. Can I ask what the use case for this will be? And we are going to
> > get rid of BLOBLIST_FIXED at some point, yes?
>
> I thought we agreed that this was acceptable. We argued the toss for
> months on this point and I would rather not revisit it.
>
> Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> pretty sure it can be done. The only tricky bit is coming up with a
> bloblist protocol for x86.
Yes, I'm stuck between being "flexible and saying yes" and how long we
have to live with what I also think are bad designs.
So maybe the pre-requisite here is that with "bloblist" and "standard
passage" being divorced, what is the requirement for bloblist again?
Because in practice, all of the problems we've had come down to looking
in fixed address locations before they're valid. You want to handle this
by saying "Ah, we won't look before it's valid with other CONFIG flags"
and I say we should handle this by not using a fixed address to start
with.
If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
OK. But it shouldn't need to exist long term.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-03-29 1:00 ` Raymond Mao
@ 2025-04-04 14:48 ` Raymond Mao
2025-04-04 14:53 ` Raymond Mao
2025-04-04 17:40 ` Simon Glass
0 siblings, 2 replies; 58+ messages in thread
From: Raymond Mao @ 2025-04-04 14:48 UTC (permalink / raw)
To: Tom Rini
Cc: Simon Glass, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom and Simon,
On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Tom and Simon,
>
> On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > >
> > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > so that it is simpler to understand and manage.
> > > > >
> > > > > - Unwind some of the nesting in bloblist_init()
> > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > >
> > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > be resurrected to give some coverage.
> > > > >
> > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > >
> > > > Based on how it's documented to be run in
> > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > that platforms using the handoff spec still work?
> > >
> > > I believe so, yes. I don't have that board to test it though. Raymond
> > > may be able to test this series on QEMU?
> >
> > I was pointing you at the docs so that you would have access to testing
> > it. That's part of the docs, running the emulator.
> >
>
> I can help to test the firmware handoff on qemu.
> I have all the necessary changes and unit tests for the OP-TEE repo
> qemu v8 build to test this.
> I will try to find some time early next week to review and test this
> series before turning back to you.
>
Just a follow-up on the testing with TF-A and OP-TEE.
Unfortunately, the patch series breaks the transfer list handoff to
U-Boot completely and just end up with below error when U-Boot boots:
```
No valid device tree binary found at 0000000000000000
initcall failed at call 0000000060097bcc (err=-2)
### ERROR ### Please RESET the board ###
```
U-Boot test version:
'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
[1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
Regards,
Raymond
> Regards,
> Raymond
>
> > --
> > Tom
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 14:48 ` Raymond Mao
@ 2025-04-04 14:53 ` Raymond Mao
2025-04-04 17:40 ` Simon Glass
1 sibling, 0 replies; 58+ messages in thread
From: Raymond Mao @ 2025-04-04 14:53 UTC (permalink / raw)
To: Tom Rini
Cc: Simon Glass, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom and Simon,
On Fri, 4 Apr 2025 at 10:48, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Tom and Simon,
>
> On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Tom and Simon,
> >
> > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > >
> > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > so that it is simpler to understand and manage.
> > > > > >
> > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > >
> > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > be resurrected to give some coverage.
> > > > > >
> > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > >
> > > > > Based on how it's documented to be run in
> > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > that platforms using the handoff spec still work?
> > > >
> > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > may be able to test this series on QEMU?
> > >
> > > I was pointing you at the docs so that you would have access to testing
> > > it. That's part of the docs, running the emulator.
> > >
> >
> > I can help to test the firmware handoff on qemu.
> > I have all the necessary changes and unit tests for the OP-TEE repo
> > qemu v8 build to test this.
> > I will try to find some time early next week to review and test this
> > series before turning back to you.
> >
>
> Just a follow-up on the testing with TF-A and OP-TEE.
> Unfortunately, the patch series breaks the transfer list handoff to
> U-Boot completely and just end up with below error when U-Boot boots:
> ```
> No valid device tree binary found at 0000000000000000
> initcall failed at call 0000000060097bcc (err=-2)
> ### ERROR ### Please RESET the board ###
> ```
>
> U-Boot test version:
> 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
>
Forgot to mention: with OF_BLOBLIST selected.
> [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
>
> Regards,
> Raymond
>
> > Regards,
> > Raymond
> >
> > > --
> > > Tom
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-03 22:50 ` Tom Rini
@ 2025-04-04 17:39 ` Simon Glass
2025-04-04 17:57 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-04 17:39 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > Hi Tom,
> >
> > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > Hi Raymond,
> > > >
> > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Simon,
> > > > > > > > >
> > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > >
> > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > >
> > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > >
> > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > >
> > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > wasn't sure about removing it.
> > > > > > > >
> > > > > > >
> > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > the bloblist.
> > > > > >
> > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > OF_SEPARATE and OF_EMBED
> > > > > >
> > > > >
> > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > mandatorily used and override other fdt sources like from the board or
> > > > > env variables.
> > > >
> > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > very much. But I can see why it is called that as my standard passage
> > > > series was actually never applied. So I suppose I'll need to have
> > > > another try at that.
> > > >
> > > > So to be clear, I want a separate option for devicetree, called
> > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > your option.
> > >
> > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > get rid of BLOBLIST_FIXED at some point, yes?
> >
> > I thought we agreed that this was acceptable. We argued the toss for
> > months on this point and I would rather not revisit it.
> >
> > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > pretty sure it can be done. The only tricky bit is coming up with a
> > bloblist protocol for x86.
>
> Yes, I'm stuck between being "flexible and saying yes" and how long we
> have to live with what I also think are bad designs.
>
> So maybe the pre-requisite here is that with "bloblist" and "standard
> passage" being divorced, what is the requirement for bloblist again?
> Because in practice, all of the problems we've had come down to looking
> in fixed address locations before they're valid. You want to handle this
> by saying "Ah, we won't look before it's valid with other CONFIG flags"
> and I say we should handle this by not using a fixed address to start
> with.
>
> If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> OK. But it shouldn't need to exist long term.
For me, OF_BLOBLIST is needed for x86 devices which don't pass the
devicetree in the bloblist.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 14:48 ` Raymond Mao
2025-04-04 14:53 ` Raymond Mao
@ 2025-04-04 17:40 ` Simon Glass
2025-04-04 17:55 ` Tom Rini
2025-04-04 18:09 ` Raymond Mao
1 sibling, 2 replies; 58+ messages in thread
From: Simon Glass @ 2025-04-04 17:40 UTC (permalink / raw)
To: Raymond Mao
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Raymond,
On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Tom and Simon,
>
> On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Tom and Simon,
> >
> > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > >
> > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > so that it is simpler to understand and manage.
> > > > > >
> > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > >
> > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > be resurrected to give some coverage.
> > > > > >
> > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > >
> > > > > Based on how it's documented to be run in
> > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > that platforms using the handoff spec still work?
> > > >
> > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > may be able to test this series on QEMU?
> > >
> > > I was pointing you at the docs so that you would have access to testing
> > > it. That's part of the docs, running the emulator.
> > >
> >
> > I can help to test the firmware handoff on qemu.
> > I have all the necessary changes and unit tests for the OP-TEE repo
> > qemu v8 build to test this.
> > I will try to find some time early next week to review and test this
> > series before turning back to you.
> >
>
> Just a follow-up on the testing with TF-A and OP-TEE.
> Unfortunately, the patch series breaks the transfer list handoff to
> U-Boot completely and just end up with below error when U-Boot boots:
> ```
> No valid device tree binary found at 0000000000000000
> initcall failed at call 0000000060097bcc (err=-2)
> ### ERROR ### Please RESET the board ###
> ```
>
> U-Boot test version:
> 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
>
> [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
I suppose the FDT address in the register is not being read correctly.
Do you have a test case for this, e.g. in QEMU? Even if it is just
binary blobs for now, not suitable for CI, I'd like to get it in my
lab.
I did create a test back when I did standard passage, but that series
seems to have not been applied. I'll see if I can resurrect it.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 17:40 ` Simon Glass
@ 2025-04-04 17:55 ` Tom Rini
2025-04-04 18:09 ` Raymond Mao
1 sibling, 0 replies; 58+ messages in thread
From: Tom Rini @ 2025-04-04 17:55 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 3530 bytes --]
On Sat, Apr 05, 2025 at 06:40:08AM +1300, Simon Glass wrote:
> Hi Raymond,
>
> On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Tom and Simon,
> >
> > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Tom and Simon,
> > >
> > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > >
> > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > so that it is simpler to understand and manage.
> > > > > > >
> > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > >
> > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > be resurrected to give some coverage.
> > > > > > >
> > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > >
> > > > > > Based on how it's documented to be run in
> > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > that platforms using the handoff spec still work?
> > > > >
> > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > may be able to test this series on QEMU?
> > > >
> > > > I was pointing you at the docs so that you would have access to testing
> > > > it. That's part of the docs, running the emulator.
> > > >
> > >
> > > I can help to test the firmware handoff on qemu.
> > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > qemu v8 build to test this.
> > > I will try to find some time early next week to review and test this
> > > series before turning back to you.
> > >
> >
> > Just a follow-up on the testing with TF-A and OP-TEE.
> > Unfortunately, the patch series breaks the transfer list handoff to
> > U-Boot completely and just end up with below error when U-Boot boots:
> > ```
> > No valid device tree binary found at 0000000000000000
> > initcall failed at call 0000000060097bcc (err=-2)
> > ### ERROR ### Please RESET the board ###
> > ```
> >
> > U-Boot test version:
> > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> >
> > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
>
> I suppose the FDT address in the register is not being read correctly.
>
> Do you have a test case for this, e.g. in QEMU? Even if it is just
> binary blobs for now, not suitable for CI, I'd like to get it in my
> lab.
>
> I did create a test back when I did standard passage, but that series
> seems to have not been applied. I'll see if I can resurrect it.
This problem should also be visible with running vexpress64 as
documented in doc/board/armltd/vexpress64.rst which is not yet in CI
(it's straight forward but non-trivial), which is why I was asking about
it earlier in the thread.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 17:39 ` Simon Glass
@ 2025-04-04 17:57 ` Tom Rini
2025-04-06 22:06 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-04 17:57 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 5038 bytes --]
On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> Hi Tom,
>
> On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > Hi Raymond,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > >
> > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > >
> > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > >
> > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > wasn't sure about removing it.
> > > > > > > > >
> > > > > > > >
> > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > the bloblist.
> > > > > > >
> > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > >
> > > > > >
> > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > env variables.
> > > > >
> > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > very much. But I can see why it is called that as my standard passage
> > > > > series was actually never applied. So I suppose I'll need to have
> > > > > another try at that.
> > > > >
> > > > > So to be clear, I want a separate option for devicetree, called
> > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > your option.
> > > >
> > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > get rid of BLOBLIST_FIXED at some point, yes?
> > >
> > > I thought we agreed that this was acceptable. We argued the toss for
> > > months on this point and I would rather not revisit it.
> > >
> > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > pretty sure it can be done. The only tricky bit is coming up with a
> > > bloblist protocol for x86.
> >
> > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > have to live with what I also think are bad designs.
> >
> > So maybe the pre-requisite here is that with "bloblist" and "standard
> > passage" being divorced, what is the requirement for bloblist again?
> > Because in practice, all of the problems we've had come down to looking
> > in fixed address locations before they're valid. You want to handle this
> > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > and I say we should handle this by not using a fixed address to start
> > with.
> >
> > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > OK. But it shouldn't need to exist long term.
>
> For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> devicetree in the bloblist.
I don't understand why that would become the case when it's not true
today.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 17:40 ` Simon Glass
2025-04-04 17:55 ` Tom Rini
@ 2025-04-04 18:09 ` Raymond Mao
2025-04-06 22:06 ` Simon Glass
1 sibling, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-04 18:09 UTC (permalink / raw)
To: Simon Glass
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Simon,
On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Tom and Simon,
> >
> > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Tom and Simon,
> > >
> > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > >
> > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > so that it is simpler to understand and manage.
> > > > > > >
> > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > >
> > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > be resurrected to give some coverage.
> > > > > > >
> > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > >
> > > > > > Based on how it's documented to be run in
> > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > that platforms using the handoff spec still work?
> > > > >
> > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > may be able to test this series on QEMU?
> > > >
> > > > I was pointing you at the docs so that you would have access to testing
> > > > it. That's part of the docs, running the emulator.
> > > >
> > >
> > > I can help to test the firmware handoff on qemu.
> > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > qemu v8 build to test this.
> > > I will try to find some time early next week to review and test this
> > > series before turning back to you.
> > >
> >
> > Just a follow-up on the testing with TF-A and OP-TEE.
> > Unfortunately, the patch series breaks the transfer list handoff to
> > U-Boot completely and just end up with below error when U-Boot boots:
> > ```
> > No valid device tree binary found at 0000000000000000
> > initcall failed at call 0000000060097bcc (err=-2)
> > ### ERROR ### Please RESET the board ###
> > ```
> >
> > U-Boot test version:
> > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> >
> > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
>
> I suppose the FDT address in the register is not being read correctly.
>
> Do you have a test case for this, e.g. in QEMU? Even if it is just
> binary blobs for now, not suitable for CI, I'd like to get it in my
> lab.
>
> I did create a test back when I did standard passage, but that series
> seems to have not been applied. I'll see if I can resurrect it.
>
I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
need my patch [2] for enabling transfer_ist in all components.
[1] https://github.com/OP-TEE
[2] https://github.com/OP-TEE/build/pull/821
Regards,
Raymond
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 18:09 ` Raymond Mao
@ 2025-04-06 22:06 ` Simon Glass
2025-04-06 22:35 ` Tom Rini
2025-04-07 14:07 ` Raymond Mao
0 siblings, 2 replies; 58+ messages in thread
From: Simon Glass @ 2025-04-06 22:06 UTC (permalink / raw)
To: Raymond Mao
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Raymond,
On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Tom and Simon,
> > >
> > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Tom and Simon,
> > > >
> > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > >
> > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > so that it is simpler to understand and manage.
> > > > > > > >
> > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > >
> > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > be resurrected to give some coverage.
> > > > > > > >
> > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > >
> > > > > > > Based on how it's documented to be run in
> > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > that platforms using the handoff spec still work?
> > > > > >
> > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > may be able to test this series on QEMU?
> > > > >
> > > > > I was pointing you at the docs so that you would have access to testing
> > > > > it. That's part of the docs, running the emulator.
> > > > >
> > > >
> > > > I can help to test the firmware handoff on qemu.
> > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > qemu v8 build to test this.
> > > > I will try to find some time early next week to review and test this
> > > > series before turning back to you.
> > > >
> > >
> > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > Unfortunately, the patch series breaks the transfer list handoff to
> > > U-Boot completely and just end up with below error when U-Boot boots:
> > > ```
> > > No valid device tree binary found at 0000000000000000
> > > initcall failed at call 0000000060097bcc (err=-2)
> > > ### ERROR ### Please RESET the board ###
> > > ```
> > >
> > > U-Boot test version:
> > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > >
> > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> >
> > I suppose the FDT address in the register is not being read correctly.
> >
> > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > binary blobs for now, not suitable for CI, I'd like to get it in my
> > lab.
> >
> > I did create a test back when I did standard passage, but that series
> > seems to have not been applied. I'll see if I can resurrect it.
> >
>
> I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> need my patch [2] for enabling transfer_ist in all components.
>
> [1] https://github.com/OP-TEE
> [2] https://github.com/OP-TEE/build/pull/821
>
Tom's email seems easier to follow. I got as far as building:
build/fvp/release/fip.bin
But I'm not sure how to run that in QEMU. The docs mention some sort
of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
to have.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-04 17:57 ` Tom Rini
@ 2025-04-06 22:06 ` Simon Glass
2025-04-06 22:38 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-06 22:06 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
>
> On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > Hi Tom,
> >
> > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Simon,
> > > > > > > > >
> > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > >
> > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > >
> > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > >
> > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > the bloblist.
> > > > > > > >
> > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > >
> > > > > > >
> > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > env variables.
> > > > > >
> > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > another try at that.
> > > > > >
> > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > your option.
> > > > >
> > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > >
> > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > months on this point and I would rather not revisit it.
> > > >
> > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > bloblist protocol for x86.
> > >
> > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > have to live with what I also think are bad designs.
> > >
> > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > passage" being divorced, what is the requirement for bloblist again?
> > > Because in practice, all of the problems we've had come down to looking
> > > in fixed address locations before they're valid. You want to handle this
> > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > and I say we should handle this by not using a fixed address to start
> > > with.
> > >
> > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > OK. But it shouldn't need to exist long term.
> >
> > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > devicetree in the bloblist.
>
> I don't understand why that would become the case when it's not true
> today.
If you look at the top of fdtdec_setup() in your tree you can see the
special-case code related to TPL, that I'm wanting to get rid of.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-06 22:06 ` Simon Glass
@ 2025-04-06 22:35 ` Tom Rini
2025-04-07 14:07 ` Raymond Mao
1 sibling, 0 replies; 58+ messages in thread
From: Tom Rini @ 2025-04-06 22:35 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 4355 bytes --]
On Mon, Apr 07, 2025 at 10:06:04AM +1200, Simon Glass wrote:
> Hi Raymond,
>
> On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Tom and Simon,
> > > >
> > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Tom and Simon,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > >
> > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > >
> > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > >
> > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > be resurrected to give some coverage.
> > > > > > > > >
> > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > >
> > > > > > > > Based on how it's documented to be run in
> > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > that platforms using the handoff spec still work?
> > > > > > >
> > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > may be able to test this series on QEMU?
> > > > > >
> > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > it. That's part of the docs, running the emulator.
> > > > > >
> > > > >
> > > > > I can help to test the firmware handoff on qemu.
> > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > qemu v8 build to test this.
> > > > > I will try to find some time early next week to review and test this
> > > > > series before turning back to you.
> > > > >
> > > >
> > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > ```
> > > > No valid device tree binary found at 0000000000000000
> > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > ### ERROR ### Please RESET the board ###
> > > > ```
> > > >
> > > > U-Boot test version:
> > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > >
> > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > >
> > > I suppose the FDT address in the register is not being read correctly.
> > >
> > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > lab.
> > >
> > > I did create a test back when I did standard passage, but that series
> > > seems to have not been applied. I'll see if I can resurrect it.
> > >
> >
> > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > need my patch [2] for enabling transfer_ist in all components.
> >
> > [1] https://github.com/OP-TEE
> > [2] https://github.com/OP-TEE/build/pull/821
> >
>
> Tom's email seems easier to follow. I got as far as building:
>
> build/fvp/release/fip.bin
>
> But I'm not sure how to run that in QEMU. The docs mention some sort
> of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> to have.
Yes, you need to download the linked emulator, it's not QEMU.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-06 22:06 ` Simon Glass
@ 2025-04-06 22:38 ` Tom Rini
2025-04-07 0:35 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-06 22:38 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 6030 bytes --]
On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> Hi Tom,
>
> On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > >
> > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > >
> > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > >
> > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > the bloblist.
> > > > > > > > >
> > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > >
> > > > > > > >
> > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > env variables.
> > > > > > >
> > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > another try at that.
> > > > > > >
> > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > your option.
> > > > > >
> > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > >
> > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > months on this point and I would rather not revisit it.
> > > > >
> > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > bloblist protocol for x86.
> > > >
> > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > have to live with what I also think are bad designs.
> > > >
> > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > passage" being divorced, what is the requirement for bloblist again?
> > > > Because in practice, all of the problems we've had come down to looking
> > > > in fixed address locations before they're valid. You want to handle this
> > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > and I say we should handle this by not using a fixed address to start
> > > > with.
> > > >
> > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > OK. But it shouldn't need to exist long term.
> > >
> > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > devicetree in the bloblist.
> >
> > I don't understand why that would become the case when it's not true
> > today.
>
> If you look at the top of fdtdec_setup() in your tree you can see the
> special-case code related to TPL, that I'm wanting to get rid of.
OK, but all of that too is for the case of a fixed bloblist being in
uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
to see passing of the bloblist from xPL -> PPL be implemented and so xPL
can allocate a bloblist (or grow a passed one if needed).
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-06 22:38 ` Tom Rini
@ 2025-04-07 0:35 ` Simon Glass
2025-04-07 14:30 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-07 0:35 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > Hi Tom,
> >
> > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Simon,
> > > > > > > > >
> > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > >
> > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > >
> > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > the bloblist.
> > > > > > > > > >
> > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > env variables.
> > > > > > > >
> > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > another try at that.
> > > > > > > >
> > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > your option.
> > > > > > >
> > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > >
> > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > months on this point and I would rather not revisit it.
> > > > > >
> > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > bloblist protocol for x86.
> > > > >
> > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > have to live with what I also think are bad designs.
> > > > >
> > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > Because in practice, all of the problems we've had come down to looking
> > > > > in fixed address locations before they're valid. You want to handle this
> > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > and I say we should handle this by not using a fixed address to start
> > > > > with.
> > > > >
> > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > OK. But it shouldn't need to exist long term.
> > > >
> > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > devicetree in the bloblist.
> > >
> > > I don't understand why that would become the case when it's not true
> > > today.
> >
> > If you look at the top of fdtdec_setup() in your tree you can see the
> > special-case code related to TPL, that I'm wanting to get rid of.
>
> OK, but all of that too is for the case of a fixed bloblist being in
> uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> can allocate a bloblist (or grow a passed one if needed).
We are going around in circles though. Having it is registers doesn't
help with the problem that there isn't an FDT in the bloblist.
Also, I thought you decided that I could maintain bloblist. Have you
changed your mind?
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-06 22:06 ` Simon Glass
2025-04-06 22:35 ` Tom Rini
@ 2025-04-07 14:07 ` Raymond Mao
2025-04-13 21:13 ` Simon Glass
1 sibling, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-07 14:07 UTC (permalink / raw)
To: Simon Glass
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Simon,
On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Tom and Simon,
> > > >
> > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Tom and Simon,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > >
> > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > >
> > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > >
> > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > be resurrected to give some coverage.
> > > > > > > > >
> > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > >
> > > > > > > > Based on how it's documented to be run in
> > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > that platforms using the handoff spec still work?
> > > > > > >
> > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > may be able to test this series on QEMU?
> > > > > >
> > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > it. That's part of the docs, running the emulator.
> > > > > >
> > > > >
> > > > > I can help to test the firmware handoff on qemu.
> > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > qemu v8 build to test this.
> > > > > I will try to find some time early next week to review and test this
> > > > > series before turning back to you.
> > > > >
> > > >
> > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > ```
> > > > No valid device tree binary found at 0000000000000000
> > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > ### ERROR ### Please RESET the board ###
> > > > ```
> > > >
> > > > U-Boot test version:
> > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > >
> > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > >
> > > I suppose the FDT address in the register is not being read correctly.
> > >
> > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > lab.
> > >
> > > I did create a test back when I did standard passage, but that series
> > > seems to have not been applied. I'll see if I can resurrect it.
> > >
> >
> > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > need my patch [2] for enabling transfer_ist in all components.
> >
> > [1] https://github.com/OP-TEE
> > [2] https://github.com/OP-TEE/build/pull/821
> >
>
> Tom's email seems easier to follow. I got as far as building:
>
> build/fvp/release/fip.bin
>
> But I'm not sure how to run that in QEMU. The docs mention some sort
> of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> to have.
>
If you want to test with QEMU v8, just simply:
$ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
$ repo sync
$ cd build
Apply my patch https://github.com/OP-TEE/build/pull/821
In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
'OF_BLOBLIST=y'
$ make toolchains
$ make run
Regards,
Raymond
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 0:35 ` Simon Glass
@ 2025-04-07 14:30 ` Tom Rini
2025-04-07 15:24 ` Simon Glass
2025-04-14 19:34 ` Simon Glass
0 siblings, 2 replies; 58+ messages in thread
From: Tom Rini @ 2025-04-07 14:30 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 7223 bytes --]
On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> Hi Tom,
>
> On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > the bloblist.
> > > > > > > > > > >
> > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > env variables.
> > > > > > > > >
> > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > another try at that.
> > > > > > > > >
> > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > your option.
> > > > > > > >
> > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > >
> > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > months on this point and I would rather not revisit it.
> > > > > > >
> > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > bloblist protocol for x86.
> > > > > >
> > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > have to live with what I also think are bad designs.
> > > > > >
> > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > with.
> > > > > >
> > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > OK. But it shouldn't need to exist long term.
> > > > >
> > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > devicetree in the bloblist.
> > > >
> > > > I don't understand why that would become the case when it's not true
> > > > today.
> > >
> > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > special-case code related to TPL, that I'm wanting to get rid of.
> >
> > OK, but all of that too is for the case of a fixed bloblist being in
> > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > can allocate a bloblist (or grow a passed one if needed).
>
> We are going around in circles though. Having it is registers doesn't
> help with the problem that there isn't an FDT in the bloblist.
Sure it does. If we're passed a bloblist in a register we can then see
if it has a DT (and use it) or not (and move to the next DT location).
> Also, I thought you decided that I could maintain bloblist. Have you
> changed your mind?
You just mis-understood me. Yes, you can maintain bloblist. But also,
Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
problems is that no one understood you.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 14:30 ` Tom Rini
@ 2025-04-07 15:24 ` Simon Glass
2025-04-07 18:22 ` Tom Rini
2025-04-14 19:34 ` Simon Glass
1 sibling, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-07 15:24 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > Hi Tom,
> >
> > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > >
> > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > env variables.
> > > > > > > > > >
> > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > another try at that.
> > > > > > > > > >
> > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > your option.
> > > > > > > > >
> > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > >
> > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > >
> > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > bloblist protocol for x86.
> > > > > > >
> > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > have to live with what I also think are bad designs.
> > > > > > >
> > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > with.
> > > > > > >
> > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > OK. But it shouldn't need to exist long term.
> > > > > >
> > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > devicetree in the bloblist.
> > > > >
> > > > > I don't understand why that would become the case when it's not true
> > > > > today.
> > > >
> > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > special-case code related to TPL, that I'm wanting to get rid of.
> > >
> > > OK, but all of that too is for the case of a fixed bloblist being in
> > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > can allocate a bloblist (or grow a passed one if needed).
> >
> > We are going around in circles though. Having it is registers doesn't
> > help with the problem that there isn't an FDT in the bloblist.
>
> Sure it does. If we're passed a bloblist in a register we can then see
> if it has a DT (and use it) or not (and move to the next DT location).
>
> > Also, I thought you decided that I could maintain bloblist. Have you
> > changed your mind?
>
> You just mis-understood me. Yes, you can maintain bloblist. But also,
> Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> problems is that no one understood you.
Is there a call tomorrow, or is it next week?
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 15:24 ` Simon Glass
@ 2025-04-07 18:22 ` Tom Rini
2025-04-07 20:17 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-07 18:22 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 7979 bytes --]
On Mon, Apr 07, 2025 at 09:24:16AM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > env variables.
> > > > > > > > > > >
> > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > another try at that.
> > > > > > > > > > >
> > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > your option.
> > > > > > > > > >
> > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > >
> > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > >
> > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > bloblist protocol for x86.
> > > > > > > >
> > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > have to live with what I also think are bad designs.
> > > > > > > >
> > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > with.
> > > > > > > >
> > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > >
> > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > devicetree in the bloblist.
> > > > > >
> > > > > > I don't understand why that would become the case when it's not true
> > > > > > today.
> > > > >
> > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > >
> > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > can allocate a bloblist (or grow a passed one if needed).
> > >
> > > We are going around in circles though. Having it is registers doesn't
> > > help with the problem that there isn't an FDT in the bloblist.
> >
> > Sure it does. If we're passed a bloblist in a register we can then see
> > if it has a DT (and use it) or not (and move to the next DT location).
> >
> > > Also, I thought you decided that I could maintain bloblist. Have you
> > > changed your mind?
> >
> > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > problems is that no one understood you.
>
> Is there a call tomorrow, or is it next week?
Tomorrow.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 18:22 ` Tom Rini
@ 2025-04-07 20:17 ` Simon Glass
2025-04-07 20:34 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-07 20:17 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Mon, 7 Apr 2025 at 12:22, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Apr 07, 2025 at 09:24:16AM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > env variables.
> > > > > > > > > > > >
> > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > another try at that.
> > > > > > > > > > > >
> > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > your option.
> > > > > > > > > > >
> > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > >
> > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > >
> > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > bloblist protocol for x86.
> > > > > > > > >
> > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > >
> > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > with.
> > > > > > > > >
> > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > >
> > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > devicetree in the bloblist.
> > > > > > >
> > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > today.
> > > > > >
> > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > >
> > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > can allocate a bloblist (or grow a passed one if needed).
> > > >
> > > > We are going around in circles though. Having it is registers doesn't
> > > > help with the problem that there isn't an FDT in the bloblist.
> > >
> > > Sure it does. If we're passed a bloblist in a register we can then see
> > > if it has a DT (and use it) or not (and move to the next DT location).
> > >
> > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > changed your mind?
> > >
> > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > problems is that no one understood you.
> >
> > Is there a call tomorrow, or is it next week?
>
> Tomorrow.
OK, do we have somewhere to add things to the agenda? I'd like to
spend some time answering your bloblist questions here.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 20:17 ` Simon Glass
@ 2025-04-07 20:34 ` Tom Rini
0 siblings, 0 replies; 58+ messages in thread
From: Tom Rini @ 2025-04-07 20:34 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 8919 bytes --]
On Mon, Apr 07, 2025 at 02:17:46PM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Mon, 7 Apr 2025 at 12:22, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Apr 07, 2025 at 09:24:16AM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > your option.
> > > > > > > > > > > >
> > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > >
> > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > >
> > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > >
> > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > >
> > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > with.
> > > > > > > > > >
> > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > >
> > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > devicetree in the bloblist.
> > > > > > > >
> > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > today.
> > > > > > >
> > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > >
> > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > >
> > > > > We are going around in circles though. Having it is registers doesn't
> > > > > help with the problem that there isn't an FDT in the bloblist.
> > > >
> > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > >
> > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > changed your mind?
> > > >
> > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > problems is that no one understood you.
> > >
> > > Is there a call tomorrow, or is it next week?
> >
> > Tomorrow.
>
> OK, do we have somewhere to add things to the agenda? I'd like to
> spend some time answering your bloblist questions here.
There's not a written agenda, no. But yes, if you're on, we can talk
there.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 14:07 ` Raymond Mao
@ 2025-04-13 21:13 ` Simon Glass
2025-04-14 13:07 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-13 21:13 UTC (permalink / raw)
To: Raymond Mao
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Raymond,
On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Tom and Simon,
> > > > >
> > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Tom and Simon,
> > > > > >
> > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > >
> > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > >
> > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > >
> > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > >
> > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > >
> > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > >
> > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > may be able to test this series on QEMU?
> > > > > > >
> > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > it. That's part of the docs, running the emulator.
> > > > > > >
> > > > > >
> > > > > > I can help to test the firmware handoff on qemu.
> > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > qemu v8 build to test this.
> > > > > > I will try to find some time early next week to review and test this
> > > > > > series before turning back to you.
> > > > > >
> > > > >
> > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > ```
> > > > > No valid device tree binary found at 0000000000000000
> > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > ### ERROR ### Please RESET the board ###
> > > > > ```
> > > > >
> > > > > U-Boot test version:
> > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > >
> > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > >
> > > > I suppose the FDT address in the register is not being read correctly.
> > > >
> > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > lab.
> > > >
> > > > I did create a test back when I did standard passage, but that series
> > > > seems to have not been applied. I'll see if I can resurrect it.
> > > >
> > >
> > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > need my patch [2] for enabling transfer_ist in all components.
> > >
> > > [1] https://github.com/OP-TEE
> > > [2] https://github.com/OP-TEE/build/pull/821
> > >
> >
> > Tom's email seems easier to follow. I got as far as building:
> >
> > build/fvp/release/fip.bin
> >
> > But I'm not sure how to run that in QEMU. The docs mention some sort
> > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > to have.
> >
>
> If you want to test with QEMU v8, just simply:
> $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> $ repo sync
> $ cd build
> Apply my patch https://github.com/OP-TEE/build/pull/821
> In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> 'OF_BLOBLIST=y'
> $ make toolchains
> $ make run
Thanks for the steps. It seemed to complete OK. I also found this:
https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
But I'm not sure how to actually run it, or even what was actually
built. Do you have the QEMU cmdline I should use to make it start,
please?
Regards,
SImon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-13 21:13 ` Simon Glass
@ 2025-04-14 13:07 ` Raymond Mao
2025-04-14 19:34 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-14 13:07 UTC (permalink / raw)
To: Simon Glass
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Simon,
On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Tom and Simon,
> > > > > >
> > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Tom and Simon,
> > > > > > >
> > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > >
> > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > >
> > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > >
> > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > >
> > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > >
> > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > >
> > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > may be able to test this series on QEMU?
> > > > > > > >
> > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > >
> > > > > > >
> > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > qemu v8 build to test this.
> > > > > > > I will try to find some time early next week to review and test this
> > > > > > > series before turning back to you.
> > > > > > >
> > > > > >
> > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > ```
> > > > > > No valid device tree binary found at 0000000000000000
> > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > ### ERROR ### Please RESET the board ###
> > > > > > ```
> > > > > >
> > > > > > U-Boot test version:
> > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > >
> > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > >
> > > > > I suppose the FDT address in the register is not being read correctly.
> > > > >
> > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > lab.
> > > > >
> > > > > I did create a test back when I did standard passage, but that series
> > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > >
> > > >
> > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > need my patch [2] for enabling transfer_ist in all components.
> > > >
> > > > [1] https://github.com/OP-TEE
> > > > [2] https://github.com/OP-TEE/build/pull/821
> > > >
> > >
> > > Tom's email seems easier to follow. I got as far as building:
> > >
> > > build/fvp/release/fip.bin
> > >
> > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > to have.
> > >
> >
> > If you want to test with QEMU v8, just simply:
> > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > $ repo sync
> > $ cd build
> > Apply my patch https://github.com/OP-TEE/build/pull/821
> > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > 'OF_BLOBLIST=y'
> > $ make toolchains
> > $ make run
>
> Thanks for the steps. It seemed to complete OK. I also found this:
>
> https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
>
> But I'm not sure how to actually run it, or even what was actually
> built. Do you have the QEMU cmdline I should use to make it start,
> please?
>
Besides the steps I mentioned in the previous reply, you will need to
checkout your U-Boot test branch after "repo sync", since by default
the manifest is pointing to an old release.
"make run" will start the QEMU automatically.
If you are not sure it is built properly or not, you can use "make
all" to build and "make run-only" for running.
Regards,
Raymond
> Regards,
> SImon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-07 14:30 ` Tom Rini
2025-04-07 15:24 ` Simon Glass
@ 2025-04-14 19:34 ` Simon Glass
2025-04-14 20:34 ` Tom Rini
1 sibling, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-14 19:34 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > Hi Tom,
> >
> > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > >
> > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > env variables.
> > > > > > > > > >
> > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > another try at that.
> > > > > > > > > >
> > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > your option.
> > > > > > > > >
> > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > >
> > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > >
> > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > bloblist protocol for x86.
> > > > > > >
> > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > have to live with what I also think are bad designs.
> > > > > > >
> > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > with.
> > > > > > >
> > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > OK. But it shouldn't need to exist long term.
> > > > > >
> > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > devicetree in the bloblist.
> > > > >
> > > > > I don't understand why that would become the case when it's not true
> > > > > today.
> > > >
> > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > special-case code related to TPL, that I'm wanting to get rid of.
> > >
> > > OK, but all of that too is for the case of a fixed bloblist being in
> > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > can allocate a bloblist (or grow a passed one if needed).
> >
> > We are going around in circles though. Having it is registers doesn't
> > help with the problem that there isn't an FDT in the bloblist.
>
> Sure it does. If we're passed a bloblist in a register we can then see
> if it has a DT (and use it) or not (and move to the next DT location).
>
> > Also, I thought you decided that I could maintain bloblist. Have you
> > changed your mind?
>
> You just mis-understood me. Yes, you can maintain bloblist. But also,
> Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> problems is that no one understood you.
No, that's not actually true. The problem is that no one would listen
and everyone was sure I was wrong.
I sent the series on the basis that you were open to my maintaining
bloblist in your tree. I didn't know there were extra conditions. So
please let me know which way you want to go on this.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 13:07 ` Raymond Mao
@ 2025-04-14 19:34 ` Simon Glass
2025-04-14 19:43 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-14 19:34 UTC (permalink / raw)
To: Raymond Mao
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Raymond,
On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Tom and Simon,
> > > > > > >
> > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Tom and Simon,
> > > > > > > >
> > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > >
> > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > >
> > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > >
> > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > >
> > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > >
> > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > >
> > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > >
> > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > >
> > > > > > > >
> > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > qemu v8 build to test this.
> > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > series before turning back to you.
> > > > > > > >
> > > > > > >
> > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > ```
> > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > ```
> > > > > > >
> > > > > > > U-Boot test version:
> > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > >
> > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > >
> > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > >
> > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > lab.
> > > > > >
> > > > > > I did create a test back when I did standard passage, but that series
> > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > >
> > > > >
> > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > >
> > > > > [1] https://github.com/OP-TEE
> > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > >
> > > >
> > > > Tom's email seems easier to follow. I got as far as building:
> > > >
> > > > build/fvp/release/fip.bin
> > > >
> > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > to have.
> > > >
> > >
> > > If you want to test with QEMU v8, just simply:
> > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > $ repo sync
> > > $ cd build
> > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > 'OF_BLOBLIST=y'
> > > $ make toolchains
> > > $ make run
> >
> > Thanks for the steps. It seemed to complete OK. I also found this:
> >
> > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> >
> > But I'm not sure how to actually run it, or even what was actually
> > built. Do you have the QEMU cmdline I should use to make it start,
> > please?
> >
>
> Besides the steps I mentioned in the previous reply, you will need to
> checkout your U-Boot test branch after "repo sync", since by default
> the manifest is pointing to an old release.
> "make run" will start the QEMU automatically.
> If you are not sure it is built properly or not, you can use "make
> all" to build and "make run-only" for running.
Well it turns out that it wasn't really building, but the build
produced so many MB of output that this fact was lost in the noise! It
turned out to be some LD_LIBRARY issue.
My ideal build would look like this:
$ make [-s]
<actionable warnings and errors here>
$
Anyway, now that I have it running, it's a nice environment, thank you. I see:
NOTICE: BL31: Built : 15:06:52, Apr 13 2025
from_boot_arg 1
regs 0 0 0 0
Bloblist at 0 not found (err=-2)
U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
DRAM: 1 GiB
Core: 51 devices, 14 uclasses, devicetree: board
...
My code is this:
int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
{
int ret;
printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
saved_args[1], saved_args[3]);
ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
saved_args[1], saved_args[3]);
if (ret)
return ret;
*addrp = saved_args[3];
if (fdtp)
*fdtp = saved_args[0];
return 0;
}
on this tree:
37802ca2381 (HEAD) wip
cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
4494e4adae0 bloblist: Provide access to the FDT address
ef7193a9f07 fdt: Introduce OF_BLOBLIST
9e6b2e9c53b bloblist: Simplify bloblist init
4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
https://source.denx.de/u-boot/custodians/u-boot-tegra into next
which I have pushed to:
source.denx.de:u-boot/custodians/u-boot-dm.git
in branch 'blob'
and the build/kconfigs/u-boot_tl.conf file contains:
CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
CONFIG_OF_BLOBLIST=y
I don't expect those registers to all be zero. I suppose I am missing
a config somewhere?
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 19:34 ` Simon Glass
@ 2025-04-14 19:43 ` Raymond Mao
2025-04-14 20:05 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-14 19:43 UTC (permalink / raw)
To: Simon Glass
Cc: Tom Rini, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Simon,
On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Tom and Simon,
> > > > > > > >
> > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Tom and Simon,
> > > > > > > > >
> > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > >
> > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > >
> > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > >
> > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > >
> > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > >
> > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > >
> > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > qemu v8 build to test this.
> > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > series before turning back to you.
> > > > > > > > >
> > > > > > > >
> > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > ```
> > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > ```
> > > > > > > >
> > > > > > > > U-Boot test version:
> > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > >
> > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > >
> > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > >
> > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > lab.
> > > > > > >
> > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > >
> > > > > >
> > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > >
> > > > > > [1] https://github.com/OP-TEE
> > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > >
> > > > >
> > > > > Tom's email seems easier to follow. I got as far as building:
> > > > >
> > > > > build/fvp/release/fip.bin
> > > > >
> > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > to have.
> > > > >
> > > >
> > > > If you want to test with QEMU v8, just simply:
> > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > $ repo sync
> > > > $ cd build
> > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > 'OF_BLOBLIST=y'
> > > > $ make toolchains
> > > > $ make run
> > >
> > > Thanks for the steps. It seemed to complete OK. I also found this:
> > >
> > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > >
> > > But I'm not sure how to actually run it, or even what was actually
> > > built. Do you have the QEMU cmdline I should use to make it start,
> > > please?
> > >
> >
> > Besides the steps I mentioned in the previous reply, you will need to
> > checkout your U-Boot test branch after "repo sync", since by default
> > the manifest is pointing to an old release.
> > "make run" will start the QEMU automatically.
> > If you are not sure it is built properly or not, you can use "make
> > all" to build and "make run-only" for running.
>
> Well it turns out that it wasn't really building, but the build
> produced so many MB of output that this fact was lost in the noise! It
> turned out to be some LD_LIBRARY issue.
>
> My ideal build would look like this:
>
> $ make [-s]
> <actionable warnings and errors here>
> $
>
> Anyway, now that I have it running, it's a nice environment, thank you. I see:
>
> NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> from_boot_arg 1
> regs 0 0 0 0
> Bloblist at 0 not found (err=-2)
>
>
> U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
>
> DRAM: 1 GiB
> Core: 51 devices, 14 uclasses, devicetree: board
> ...
>
> My code is this:
>
> int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> {
> int ret;
>
> printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> saved_args[1], saved_args[3]);
> ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> saved_args[1], saved_args[3]);
> if (ret)
> return ret;
>
> *addrp = saved_args[3];
> if (fdtp)
> *fdtp = saved_args[0];
>
> return 0;
> }
>
> on this tree:
>
> 37802ca2381 (HEAD) wip
> cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> 4494e4adae0 bloblist: Provide access to the FDT address
> ef7193a9f07 fdt: Introduce OF_BLOBLIST
> 9e6b2e9c53b bloblist: Simplify bloblist init
> 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> https://source.denx.de/u-boot/custodians/u-boot-tegra into next
>
> which I have pushed to:
> source.denx.de:u-boot/custodians/u-boot-dm.git
>
> in branch 'blob'
>
> and the build/kconfigs/u-boot_tl.conf file contains:
>
> CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> CONFIG_OF_BLOBLIST=y
>
> I don't expect those registers to all be zero. I suppose I am missing
> a config somewhere?
>
If you already got my changes at:
https://github.com/OP-TEE/build/pull/821, and make changes on
u-boot_tl.conf on top of it, the only missing thing might be to change
"ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
build/qemu_v8.mk.
Raymond
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 19:43 ` Raymond Mao
@ 2025-04-14 20:05 ` Simon Glass
2025-04-14 20:16 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-14 20:05 UTC (permalink / raw)
To: Raymond Mao; +Cc: U-Boot Mailing List
(trimming cc)
Hi Raymond,
On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Tom and Simon,
> > > > > > > > >
> > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > >
> > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > >
> > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > >
> > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > >
> > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > series before turning back to you.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > ```
> > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > ```
> > > > > > > > >
> > > > > > > > > U-Boot test version:
> > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > >
> > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > >
> > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > >
> > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > lab.
> > > > > > > >
> > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > >
> > > > > > >
> > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > >
> > > > > > > [1] https://github.com/OP-TEE
> > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > >
> > > > > >
> > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > >
> > > > > > build/fvp/release/fip.bin
> > > > > >
> > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > to have.
> > > > > >
> > > > >
> > > > > If you want to test with QEMU v8, just simply:
> > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > $ repo sync
> > > > > $ cd build
> > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > 'OF_BLOBLIST=y'
> > > > > $ make toolchains
> > > > > $ make run
> > > >
> > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > >
> > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > >
> > > > But I'm not sure how to actually run it, or even what was actually
> > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > please?
> > > >
> > >
> > > Besides the steps I mentioned in the previous reply, you will need to
> > > checkout your U-Boot test branch after "repo sync", since by default
> > > the manifest is pointing to an old release.
> > > "make run" will start the QEMU automatically.
> > > If you are not sure it is built properly or not, you can use "make
> > > all" to build and "make run-only" for running.
> >
> > Well it turns out that it wasn't really building, but the build
> > produced so many MB of output that this fact was lost in the noise! It
> > turned out to be some LD_LIBRARY issue.
> >
> > My ideal build would look like this:
> >
> > $ make [-s]
> > <actionable warnings and errors here>
> > $
> >
> > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> >
> > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > from_boot_arg 1
> > regs 0 0 0 0
> > Bloblist at 0 not found (err=-2)
> >
> >
> > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> >
> > DRAM: 1 GiB
> > Core: 51 devices, 14 uclasses, devicetree: board
> > ...
> >
> > My code is this:
> >
> > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > {
> > int ret;
> >
> > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > saved_args[1], saved_args[3]);
> > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > saved_args[1], saved_args[3]);
> > if (ret)
> > return ret;
> >
> > *addrp = saved_args[3];
> > if (fdtp)
> > *fdtp = saved_args[0];
> >
> > return 0;
> > }
> >
> > on this tree:
> >
> > 37802ca2381 (HEAD) wip
> > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > 4494e4adae0 bloblist: Provide access to the FDT address
> > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > 9e6b2e9c53b bloblist: Simplify bloblist init
> > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> >
> > which I have pushed to:
> > source.denx.de:u-boot/custodians/u-boot-dm.git
> >
> > in branch 'blob'
> >
> > and the build/kconfigs/u-boot_tl.conf file contains:
> >
> > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > CONFIG_OF_BLOBLIST=y
> >
> > I don't expect those registers to all be zero. I suppose I am missing
> > a config somewhere?
> >
>
> If you already got my changes at:
> https://github.com/OP-TEE/build/pull/821, and make changes on
> u-boot_tl.conf on top of it, the only missing thing might be to change
> "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> build/qemu_v8.mk.
OK thanks. But when I do that:
$ make run -j30 -s
mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
but its value must be 'y'. Stop.
make: *** [common.mk:590: optee-os-devkit] Error 2
I can see that value in the same build/qemu_v8.mk file.
OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 20:05 ` Simon Glass
@ 2025-04-14 20:16 ` Raymond Mao
2025-04-14 20:41 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-14 20:16 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List
Hi Simon,
On Mon, 14 Apr 2025 at 16:06, Simon Glass <sjg@chromium.org> wrote:
>
> (trimming cc)
>
> Hi Raymond,
>
> On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > >
> > > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > > >
> > > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > > >
> > > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > > series before turning back to you.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > > ```
> > > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > > ```
> > > > > > > > > >
> > > > > > > > > > U-Boot test version:
> > > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > > >
> > > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > > >
> > > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > > >
> > > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > > lab.
> > > > > > > > >
> > > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > > >
> > > > > > > >
> > > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > > >
> > > > > > > > [1] https://github.com/OP-TEE
> > > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > > >
> > > > > > >
> > > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > > >
> > > > > > > build/fvp/release/fip.bin
> > > > > > >
> > > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > > to have.
> > > > > > >
> > > > > >
> > > > > > If you want to test with QEMU v8, just simply:
> > > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > > $ repo sync
> > > > > > $ cd build
> > > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > > 'OF_BLOBLIST=y'
> > > > > > $ make toolchains
> > > > > > $ make run
> > > > >
> > > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > > >
> > > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > > >
> > > > > But I'm not sure how to actually run it, or even what was actually
> > > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > > please?
> > > > >
> > > >
> > > > Besides the steps I mentioned in the previous reply, you will need to
> > > > checkout your U-Boot test branch after "repo sync", since by default
> > > > the manifest is pointing to an old release.
> > > > "make run" will start the QEMU automatically.
> > > > If you are not sure it is built properly or not, you can use "make
> > > > all" to build and "make run-only" for running.
> > >
> > > Well it turns out that it wasn't really building, but the build
> > > produced so many MB of output that this fact was lost in the noise! It
> > > turned out to be some LD_LIBRARY issue.
> > >
> > > My ideal build would look like this:
> > >
> > > $ make [-s]
> > > <actionable warnings and errors here>
> > > $
> > >
> > > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> > >
> > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > from_boot_arg 1
> > > regs 0 0 0 0
> > > Bloblist at 0 not found (err=-2)
> > >
> > >
> > > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> > >
> > > DRAM: 1 GiB
> > > Core: 51 devices, 14 uclasses, devicetree: board
> > > ...
> > >
> > > My code is this:
> > >
> > > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > > {
> > > int ret;
> > >
> > > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > > saved_args[1], saved_args[3]);
> > > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > > saved_args[1], saved_args[3]);
> > > if (ret)
> > > return ret;
> > >
> > > *addrp = saved_args[3];
> > > if (fdtp)
> > > *fdtp = saved_args[0];
> > >
> > > return 0;
> > > }
> > >
> > > on this tree:
> > >
> > > 37802ca2381 (HEAD) wip
> > > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > > 4494e4adae0 bloblist: Provide access to the FDT address
> > > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > > 9e6b2e9c53b bloblist: Simplify bloblist init
> > > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> > >
> > > which I have pushed to:
> > > source.denx.de:u-boot/custodians/u-boot-dm.git
> > >
> > > in branch 'blob'
> > >
> > > and the build/kconfigs/u-boot_tl.conf file contains:
> > >
> > > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > > CONFIG_OF_BLOBLIST=y
> > >
> > > I don't expect those registers to all be zero. I suppose I am missing
> > > a config somewhere?
> > >
> >
> > If you already got my changes at:
> > https://github.com/OP-TEE/build/pull/821, and make changes on
> > u-boot_tl.conf on top of it, the only missing thing might be to change
> > "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> > build/qemu_v8.mk.
>
> OK thanks. But when I do that:
>
> $ make run -j30 -s
> mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
> but its value must be 'y'. Stop.
> make: *** [common.mk:590: optee-os-devkit] Error 2
>
> I can see that value in the same build/qemu_v8.mk file.
>
> OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
>
One dependence is at here:
https://github.com/OP-TEE/optee_os/pull/7352/files#diff-6301a2703b709daa4d84ead1c30bf67cdaf088abed68753a8f9c740f1e58b54a
Raymond
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 19:34 ` Simon Glass
@ 2025-04-14 20:34 ` Tom Rini
2025-04-17 13:14 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-14 20:34 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 9195 bytes --]
On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > env variables.
> > > > > > > > > > >
> > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > another try at that.
> > > > > > > > > > >
> > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > your option.
> > > > > > > > > >
> > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > >
> > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > >
> > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > bloblist protocol for x86.
> > > > > > > >
> > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > have to live with what I also think are bad designs.
> > > > > > > >
> > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > with.
> > > > > > > >
> > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > >
> > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > devicetree in the bloblist.
> > > > > >
> > > > > > I don't understand why that would become the case when it's not true
> > > > > > today.
> > > > >
> > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > >
> > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > can allocate a bloblist (or grow a passed one if needed).
> > >
> > > We are going around in circles though. Having it is registers doesn't
> > > help with the problem that there isn't an FDT in the bloblist.
> >
> > Sure it does. If we're passed a bloblist in a register we can then see
> > if it has a DT (and use it) or not (and move to the next DT location).
> >
> > > Also, I thought you decided that I could maintain bloblist. Have you
> > > changed your mind?
> >
> > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > problems is that no one understood you.
>
> No, that's not actually true. The problem is that no one would listen
> and everyone was sure I was wrong.
That's another way of saying "no one understood you", IMO.
> I sent the series on the basis that you were open to my maintaining
> bloblist in your tree. I didn't know there were extra conditions. So
> please let me know which way you want to go on this.
I thought we had made progress on the community call, but now you're
sending this so I don't know?
You need to:
- Not break handoff spec. Raymond is telling you how to get a QEMU that
uses that now, and I'm actively waiting on Harrison Mutai to answer
one last question I had before adding vexpress_fvp to our CI. So this
should be a reasonable requirement.
- You were going to add register passing of bloblist location for x86,
and then add register passing of bloblist between U-Boot phases
without relying on BLOBLIST_FiXED.
- Some amount of un-tangling "do we have a bloblist" from "did we get a
bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 20:16 ` Raymond Mao
@ 2025-04-14 20:41 ` Simon Glass
2025-04-14 20:47 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-14 20:41 UTC (permalink / raw)
To: Raymond Mao; +Cc: U-Boot Mailing List
Hi Raymond,
On Mon, 14 Apr 2025 at 14:16, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Mon, 14 Apr 2025 at 16:06, Simon Glass <sjg@chromium.org> wrote:
> >
> > (trimming cc)
> >
> > Hi Raymond,
> >
> > On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Simon,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > > > >
> > > > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > > > series before turning back to you.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > > > ```
> > > > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > > > ```
> > > > > > > > > > >
> > > > > > > > > > > U-Boot test version:
> > > > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > > > >
> > > > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > > > >
> > > > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > > > >
> > > > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > > > lab.
> > > > > > > > > >
> > > > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > > > >
> > > > > > > > > [1] https://github.com/OP-TEE
> > > > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > > > >
> > > > > > > >
> > > > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > > > >
> > > > > > > > build/fvp/release/fip.bin
> > > > > > > >
> > > > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > > > to have.
> > > > > > > >
> > > > > > >
> > > > > > > If you want to test with QEMU v8, just simply:
> > > > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > > > $ repo sync
> > > > > > > $ cd build
> > > > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > > > 'OF_BLOBLIST=y'
> > > > > > > $ make toolchains
> > > > > > > $ make run
> > > > > >
> > > > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > > > >
> > > > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > > > >
> > > > > > But I'm not sure how to actually run it, or even what was actually
> > > > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > > > please?
> > > > > >
> > > > >
> > > > > Besides the steps I mentioned in the previous reply, you will need to
> > > > > checkout your U-Boot test branch after "repo sync", since by default
> > > > > the manifest is pointing to an old release.
> > > > > "make run" will start the QEMU automatically.
> > > > > If you are not sure it is built properly or not, you can use "make
> > > > > all" to build and "make run-only" for running.
> > > >
> > > > Well it turns out that it wasn't really building, but the build
> > > > produced so many MB of output that this fact was lost in the noise! It
> > > > turned out to be some LD_LIBRARY issue.
> > > >
> > > > My ideal build would look like this:
> > > >
> > > > $ make [-s]
> > > > <actionable warnings and errors here>
> > > > $
> > > >
> > > > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> > > >
> > > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > > from_boot_arg 1
> > > > regs 0 0 0 0
> > > > Bloblist at 0 not found (err=-2)
> > > >
> > > >
> > > > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> > > >
> > > > DRAM: 1 GiB
> > > > Core: 51 devices, 14 uclasses, devicetree: board
> > > > ...
> > > >
> > > > My code is this:
> > > >
> > > > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > > > {
> > > > int ret;
> > > >
> > > > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > > > saved_args[1], saved_args[3]);
> > > > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > > > saved_args[1], saved_args[3]);
> > > > if (ret)
> > > > return ret;
> > > >
> > > > *addrp = saved_args[3];
> > > > if (fdtp)
> > > > *fdtp = saved_args[0];
> > > >
> > > > return 0;
> > > > }
> > > >
> > > > on this tree:
> > > >
> > > > 37802ca2381 (HEAD) wip
> > > > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > > > 4494e4adae0 bloblist: Provide access to the FDT address
> > > > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > > > 9e6b2e9c53b bloblist: Simplify bloblist init
> > > > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > > > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> > > >
> > > > which I have pushed to:
> > > > source.denx.de:u-boot/custodians/u-boot-dm.git
> > > >
> > > > in branch 'blob'
> > > >
> > > > and the build/kconfigs/u-boot_tl.conf file contains:
> > > >
> > > > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > > > CONFIG_OF_BLOBLIST=y
> > > >
> > > > I don't expect those registers to all be zero. I suppose I am missing
> > > > a config somewhere?
> > > >
> > >
> > > If you already got my changes at:
> > > https://github.com/OP-TEE/build/pull/821, and make changes on
> > > u-boot_tl.conf on top of it, the only missing thing might be to change
> > > "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> > > build/qemu_v8.mk.
> >
> > OK thanks. But when I do that:
> >
> > $ make run -j30 -s
> > mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
> > but its value must be 'y'. Stop.
> > make: *** [common.mk:590: optee-os-devkit] Error 2
> >
> > I can see that value in the same build/qemu_v8.mk file.
> >
> > OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
> >
>
> One dependence is at here:
> https://github.com/OP-TEE/optee_os/pull/7352/files#diff-6301a2703b709daa4d84ead1c30bf67cdaf088abed68753a8f9c740f1e58b54a
Thanks, I changed it to n but I still don't see anything in the registers:
NOTICE: BL31: Built : 15:06:52, Apr 13 2025
from_boot_arg 1
regs 0 0 0 0
Bloblist at 0 not found (err=-2)
U-Boot 2025.04-rc5-00663-g37802ca2381a (Apr 14 2025 - 14:37:38 -0600)
I think I need to rebuild BL31. So I'm doing 'make clean' and we'll see.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 20:41 ` Simon Glass
@ 2025-04-14 20:47 ` Simon Glass
2025-04-15 0:32 ` Raymond Mao
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-14 20:47 UTC (permalink / raw)
To: Raymond Mao; +Cc: U-Boot Mailing List
Hi again Raymond,
On Mon, 14 Apr 2025 at 14:41, Simon Glass <sjg@chromium.org> wrote:
>
> Hi Raymond,
>
> On Mon, 14 Apr 2025 at 14:16, Raymond Mao <raymond.mao@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Mon, 14 Apr 2025 at 16:06, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > (trimming cc)
> > >
> > > Hi Raymond,
> > >
> > > On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > > > > series before turning back to you.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > > > > ```
> > > > > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > > > > ```
> > > > > > > > > > > >
> > > > > > > > > > > > U-Boot test version:
> > > > > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > > > > >
> > > > > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > > > > >
> > > > > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > > > > >
> > > > > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > > > > lab.
> > > > > > > > > > >
> > > > > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > > > > >
> > > > > > > > > > [1] https://github.com/OP-TEE
> > > > > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > > > > >
> > > > > > > > > build/fvp/release/fip.bin
> > > > > > > > >
> > > > > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > > > > to have.
> > > > > > > > >
> > > > > > > >
> > > > > > > > If you want to test with QEMU v8, just simply:
> > > > > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > > > > $ repo sync
> > > > > > > > $ cd build
> > > > > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > > > > 'OF_BLOBLIST=y'
> > > > > > > > $ make toolchains
> > > > > > > > $ make run
> > > > > > >
> > > > > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > > > > >
> > > > > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > > > > >
> > > > > > > But I'm not sure how to actually run it, or even what was actually
> > > > > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > > > > please?
> > > > > > >
> > > > > >
> > > > > > Besides the steps I mentioned in the previous reply, you will need to
> > > > > > checkout your U-Boot test branch after "repo sync", since by default
> > > > > > the manifest is pointing to an old release.
> > > > > > "make run" will start the QEMU automatically.
> > > > > > If you are not sure it is built properly or not, you can use "make
> > > > > > all" to build and "make run-only" for running.
> > > > >
> > > > > Well it turns out that it wasn't really building, but the build
> > > > > produced so many MB of output that this fact was lost in the noise! It
> > > > > turned out to be some LD_LIBRARY issue.
> > > > >
> > > > > My ideal build would look like this:
> > > > >
> > > > > $ make [-s]
> > > > > <actionable warnings and errors here>
> > > > > $
> > > > >
> > > > > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> > > > >
> > > > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > > > from_boot_arg 1
> > > > > regs 0 0 0 0
> > > > > Bloblist at 0 not found (err=-2)
> > > > >
> > > > >
> > > > > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> > > > >
> > > > > DRAM: 1 GiB
> > > > > Core: 51 devices, 14 uclasses, devicetree: board
> > > > > ...
> > > > >
> > > > > My code is this:
> > > > >
> > > > > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > > > > {
> > > > > int ret;
> > > > >
> > > > > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > > > > saved_args[1], saved_args[3]);
> > > > > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > > > > saved_args[1], saved_args[3]);
> > > > > if (ret)
> > > > > return ret;
> > > > >
> > > > > *addrp = saved_args[3];
> > > > > if (fdtp)
> > > > > *fdtp = saved_args[0];
> > > > >
> > > > > return 0;
> > > > > }
> > > > >
> > > > > on this tree:
> > > > >
> > > > > 37802ca2381 (HEAD) wip
> > > > > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > > > > 4494e4adae0 bloblist: Provide access to the FDT address
> > > > > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > > > > 9e6b2e9c53b bloblist: Simplify bloblist init
> > > > > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > > > > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> > > > >
> > > > > which I have pushed to:
> > > > > source.denx.de:u-boot/custodians/u-boot-dm.git
> > > > >
> > > > > in branch 'blob'
> > > > >
> > > > > and the build/kconfigs/u-boot_tl.conf file contains:
> > > > >
> > > > > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > > > > CONFIG_OF_BLOBLIST=y
> > > > >
> > > > > I don't expect those registers to all be zero. I suppose I am missing
> > > > > a config somewhere?
> > > > >
> > > >
> > > > If you already got my changes at:
> > > > https://github.com/OP-TEE/build/pull/821, and make changes on
> > > > u-boot_tl.conf on top of it, the only missing thing might be to change
> > > > "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> > > > build/qemu_v8.mk.
> > >
> > > OK thanks. But when I do that:
> > >
> > > $ make run -j30 -s
> > > mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
> > > but its value must be 'y'. Stop.
> > > make: *** [common.mk:590: optee-os-devkit] Error 2
> > >
> > > I can see that value in the same build/qemu_v8.mk file.
> > >
> > > OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
> > >
> >
> > One dependence is at here:
> > https://github.com/OP-TEE/optee_os/pull/7352/files#diff-6301a2703b709daa4d84ead1c30bf67cdaf088abed68753a8f9c740f1e58b54a
>
> Thanks, I changed it to n but I still don't see anything in the registers:
>
> NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> from_boot_arg 1
> regs 0 0 0 0
> Bloblist at 0 not found (err=-2)
>
>
> U-Boot 2025.04-rc5-00663-g37802ca2381a (Apr 14 2025 - 14:37:38 -0600)
>
> I think I need to rebuild BL31. So I'm doing 'make clean' and we'll see.
OK that fixed it. So I'll be able to take a look one of these
mornings. Thanks for your help. Please get this into CI soon.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 20:47 ` Simon Glass
@ 2025-04-15 0:32 ` Raymond Mao
2025-04-17 13:14 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Raymond Mao @ 2025-04-15 0:32 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List
Hi Simon,
On Mon, 14 Apr 2025 at 16:47, Simon Glass <sjg@chromium.org> wrote:
>
> Hi again Raymond,
>
> On Mon, 14 Apr 2025 at 14:41, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi Raymond,
> >
> > On Mon, 14 Apr 2025 at 14:16, Raymond Mao <raymond.mao@linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Mon, 14 Apr 2025 at 16:06, Simon Glass <sjg@chromium.org> wrote:
> > > >
> > > > (trimming cc)
> > > >
> > > > Hi Raymond,
> > > >
> > > > On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > >
> > > > > Hi Simon,
> > > > >
> > > > > On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> > > > > >
> > > > > > Hi Raymond,
> > > > > >
> > > > > > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > >
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > >
> > > > > > > > Hi Raymond,
> > > > > > > >
> > > > > > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Simon,
> > > > > > > > >
> > > > > > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Raymond,
> > > > > > > > > >
> > > > > > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > > > > > series before turning back to you.
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > > > > > ```
> > > > > > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > > > > > ```
> > > > > > > > > > > > >
> > > > > > > > > > > > > U-Boot test version:
> > > > > > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > > > > > >
> > > > > > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > > > > > >
> > > > > > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > > > > > >
> > > > > > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > > > > > lab.
> > > > > > > > > > > >
> > > > > > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > > > > > >
> > > > > > > > > > > [1] https://github.com/OP-TEE
> > > > > > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > > > > > >
> > > > > > > > > > build/fvp/release/fip.bin
> > > > > > > > > >
> > > > > > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > > > > > to have.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > If you want to test with QEMU v8, just simply:
> > > > > > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > > > > > $ repo sync
> > > > > > > > > $ cd build
> > > > > > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > > > > > 'OF_BLOBLIST=y'
> > > > > > > > > $ make toolchains
> > > > > > > > > $ make run
> > > > > > > >
> > > > > > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > > > > > >
> > > > > > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > > > > > >
> > > > > > > > But I'm not sure how to actually run it, or even what was actually
> > > > > > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > > > > > please?
> > > > > > > >
> > > > > > >
> > > > > > > Besides the steps I mentioned in the previous reply, you will need to
> > > > > > > checkout your U-Boot test branch after "repo sync", since by default
> > > > > > > the manifest is pointing to an old release.
> > > > > > > "make run" will start the QEMU automatically.
> > > > > > > If you are not sure it is built properly or not, you can use "make
> > > > > > > all" to build and "make run-only" for running.
> > > > > >
> > > > > > Well it turns out that it wasn't really building, but the build
> > > > > > produced so many MB of output that this fact was lost in the noise! It
> > > > > > turned out to be some LD_LIBRARY issue.
> > > > > >
> > > > > > My ideal build would look like this:
> > > > > >
> > > > > > $ make [-s]
> > > > > > <actionable warnings and errors here>
> > > > > > $
> > > > > >
> > > > > > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> > > > > >
> > > > > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > > > > from_boot_arg 1
> > > > > > regs 0 0 0 0
> > > > > > Bloblist at 0 not found (err=-2)
> > > > > >
> > > > > >
> > > > > > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> > > > > >
> > > > > > DRAM: 1 GiB
> > > > > > Core: 51 devices, 14 uclasses, devicetree: board
> > > > > > ...
> > > > > >
> > > > > > My code is this:
> > > > > >
> > > > > > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > > > > > {
> > > > > > int ret;
> > > > > >
> > > > > > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > > > > > saved_args[1], saved_args[3]);
> > > > > > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > > > > > saved_args[1], saved_args[3]);
> > > > > > if (ret)
> > > > > > return ret;
> > > > > >
> > > > > > *addrp = saved_args[3];
> > > > > > if (fdtp)
> > > > > > *fdtp = saved_args[0];
> > > > > >
> > > > > > return 0;
> > > > > > }
> > > > > >
> > > > > > on this tree:
> > > > > >
> > > > > > 37802ca2381 (HEAD) wip
> > > > > > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > > > > > 4494e4adae0 bloblist: Provide access to the FDT address
> > > > > > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > > > > > 9e6b2e9c53b bloblist: Simplify bloblist init
> > > > > > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > > > > > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> > > > > >
> > > > > > which I have pushed to:
> > > > > > source.denx.de:u-boot/custodians/u-boot-dm.git
> > > > > >
> > > > > > in branch 'blob'
> > > > > >
> > > > > > and the build/kconfigs/u-boot_tl.conf file contains:
> > > > > >
> > > > > > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > > > > > CONFIG_OF_BLOBLIST=y
> > > > > >
> > > > > > I don't expect those registers to all be zero. I suppose I am missing
> > > > > > a config somewhere?
> > > > > >
> > > > >
> > > > > If you already got my changes at:
> > > > > https://github.com/OP-TEE/build/pull/821, and make changes on
> > > > > u-boot_tl.conf on top of it, the only missing thing might be to change
> > > > > "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> > > > > build/qemu_v8.mk.
> > > >
> > > > OK thanks. But when I do that:
> > > >
> > > > $ make run -j30 -s
> > > > mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
> > > > but its value must be 'y'. Stop.
> > > > make: *** [common.mk:590: optee-os-devkit] Error 2
> > > >
> > > > I can see that value in the same build/qemu_v8.mk file.
> > > >
> > > > OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
> > > >
> > >
> > > One dependence is at here:
> > > https://github.com/OP-TEE/optee_os/pull/7352/files#diff-6301a2703b709daa4d84ead1c30bf67cdaf088abed68753a8f9c740f1e58b54a
> >
> > Thanks, I changed it to n but I still don't see anything in the registers:
> >
> > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > from_boot_arg 1
> > regs 0 0 0 0
> > Bloblist at 0 not found (err=-2)
> >
> >
> > U-Boot 2025.04-rc5-00663-g37802ca2381a (Apr 14 2025 - 14:37:38 -0600)
> >
> > I think I need to rebuild BL31. So I'm doing 'make clean' and we'll see.
>
> OK that fixed it. So I'll be able to take a look one of these
> mornings. Thanks for your help. Please get this into CI soon.
>
No worries, please take your time and feel free to let me know if
there are any questions.
Raymond
> Regards,
> Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-15 0:32 ` Raymond Mao
@ 2025-04-17 13:14 ` Simon Glass
0 siblings, 0 replies; 58+ messages in thread
From: Simon Glass @ 2025-04-17 13:14 UTC (permalink / raw)
To: Raymond Mao; +Cc: U-Boot Mailing List
Hi Raymond,
On Mon, 14 Apr 2025 at 18:33, Raymond Mao <raymond.mao@linaro.org> wrote:
>
> Hi Simon,
>
> On Mon, 14 Apr 2025 at 16:47, Simon Glass <sjg@chromium.org> wrote:
> >
> > Hi again Raymond,
> >
> > On Mon, 14 Apr 2025 at 14:41, Simon Glass <sjg@chromium.org> wrote:
> > >
> > > Hi Raymond,
> > >
> > > On Mon, 14 Apr 2025 at 14:16, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > >
> > > > Hi Simon,
> > > >
> > > > On Mon, 14 Apr 2025 at 16:06, Simon Glass <sjg@chromium.org> wrote:
> > > > >
> > > > > (trimming cc)
> > > > >
> > > > > Hi Raymond,
> > > > >
> > > > > On Mon, 14 Apr 2025 at 13:43, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > On Mon, 14 Apr 2025 at 15:35, Simon Glass <sjg@chromium.org> wrote:
> > > > > > >
> > > > > > > Hi Raymond,
> > > > > > >
> > > > > > > On Mon, 14 Apr 2025 at 07:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > On Sun, 13 Apr 2025 at 17:13, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > >
> > > > > > > > > Hi Raymond,
> > > > > > > > >
> > > > > > > > > On Mon, 7 Apr 2025 at 08:08, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > On Sun, 6 Apr 2025 at 18:06, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Raymond,
> > > > > > > > > > >
> > > > > > > > > > > On Sat, 5 Apr 2025 at 07:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 13:40, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Sat, 5 Apr 2025 at 03:49, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 21:00, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Tom and Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 20:02, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 11:38:14PM +0000, Simon Glass wrote:
> > > > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 10:18, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, Mar 28, 2025 at 09:43:54AM -0600, Simon Glass wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > It is to be hoped that we can get a platform which uses OF_BLOBLIST into
> > > > > > > > > > > > > > > > > > > CI at some point. In the meantime, the standard passage series[1] could
> > > > > > > > > > > > > > > > > > > be resurrected to give some coverage.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > [1] https://patchwork.ozlabs.org/project/uboot/list/?series=281465&state=*
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Based on how it's documented to be run in
> > > > > > > > > > > > > > > > > > doc/board/armltd/vexpress64.rst in the next branch, have you confirmed
> > > > > > > > > > > > > > > > > > that platforms using the handoff spec still work?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > I believe so, yes. I don't have that board to test it though. Raymond
> > > > > > > > > > > > > > > > > may be able to test this series on QEMU?
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > I was pointing you at the docs so that you would have access to testing
> > > > > > > > > > > > > > > > it. That's part of the docs, running the emulator.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I can help to test the firmware handoff on qemu.
> > > > > > > > > > > > > > > I have all the necessary changes and unit tests for the OP-TEE repo
> > > > > > > > > > > > > > > qemu v8 build to test this.
> > > > > > > > > > > > > > > I will try to find some time early next week to review and test this
> > > > > > > > > > > > > > > series before turning back to you.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Just a follow-up on the testing with TF-A and OP-TEE.
> > > > > > > > > > > > > > Unfortunately, the patch series breaks the transfer list handoff to
> > > > > > > > > > > > > > U-Boot completely and just end up with below error when U-Boot boots:
> > > > > > > > > > > > > > ```
> > > > > > > > > > > > > > No valid device tree binary found at 0000000000000000
> > > > > > > > > > > > > > initcall failed at call 0000000060097bcc (err=-2)
> > > > > > > > > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > > > > > > > > > ```
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > U-Boot test version:
> > > > > > > > > > > > > > 'next' branch + this series + my patch [1] to point fdt_addr to gd->fdt_blob.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > [1]: https://lore.kernel.org/u-boot/20250331224011.2734284-2-raymond.mao@linaro.org/
> > > > > > > > > > > > >
> > > > > > > > > > > > > I suppose the FDT address in the register is not being read correctly.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Do you have a test case for this, e.g. in QEMU? Even if it is just
> > > > > > > > > > > > > binary blobs for now, not suitable for CI, I'd like to get it in my
> > > > > > > > > > > > > lab.
> > > > > > > > > > > > >
> > > > > > > > > > > > > I did create a test back when I did standard passage, but that series
> > > > > > > > > > > > > seems to have not been applied. I'll see if I can resurrect it.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > I am using the OP-TEE repo [1] qemu_v8 build to test. You will also
> > > > > > > > > > > > need my patch [2] for enabling transfer_ist in all components.
> > > > > > > > > > > >
> > > > > > > > > > > > [1] https://github.com/OP-TEE
> > > > > > > > > > > > [2] https://github.com/OP-TEE/build/pull/821
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Tom's email seems easier to follow. I got as far as building:
> > > > > > > > > > >
> > > > > > > > > > > build/fvp/release/fip.bin
> > > > > > > > > > >
> > > > > > > > > > > But I'm not sure how to run that in QEMU. The docs mention some sort
> > > > > > > > > > > of FVP thing and running FVP_Base_RevC-2xAEMvA -C which I don't seem
> > > > > > > > > > > to have.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > If you want to test with QEMU v8, just simply:
> > > > > > > > > > $ repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml
> > > > > > > > > > $ repo sync
> > > > > > > > > > $ cd build
> > > > > > > > > > Apply my patch https://github.com/OP-TEE/build/pull/821
> > > > > > > > > > In kconfigs/u-boot_tl.conf, remove 'CONFIG_BLOBLIST_SIZE=0' and add
> > > > > > > > > > 'OF_BLOBLIST=y'
> > > > > > > > > > $ make toolchains
> > > > > > > > > > $ make run
> > > > > > > > >
> > > > > > > > > Thanks for the steps. It seemed to complete OK. I also found this:
> > > > > > > > >
> > > > > > > > > https://optee.readthedocs.io/en/latest/building/devices/qemu.html#qemu-v8
> > > > > > > > >
> > > > > > > > > But I'm not sure how to actually run it, or even what was actually
> > > > > > > > > built. Do you have the QEMU cmdline I should use to make it start,
> > > > > > > > > please?
> > > > > > > > >
> > > > > > > >
> > > > > > > > Besides the steps I mentioned in the previous reply, you will need to
> > > > > > > > checkout your U-Boot test branch after "repo sync", since by default
> > > > > > > > the manifest is pointing to an old release.
> > > > > > > > "make run" will start the QEMU automatically.
> > > > > > > > If you are not sure it is built properly or not, you can use "make
> > > > > > > > all" to build and "make run-only" for running.
> > > > > > >
> > > > > > > Well it turns out that it wasn't really building, but the build
> > > > > > > produced so many MB of output that this fact was lost in the noise! It
> > > > > > > turned out to be some LD_LIBRARY issue.
> > > > > > >
> > > > > > > My ideal build would look like this:
> > > > > > >
> > > > > > > $ make [-s]
> > > > > > > <actionable warnings and errors here>
> > > > > > > $
> > > > > > >
> > > > > > > Anyway, now that I have it running, it's a nice environment, thank you. I see:
> > > > > > >
> > > > > > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > > > > > from_boot_arg 1
> > > > > > > regs 0 0 0 0
> > > > > > > Bloblist at 0 not found (err=-2)
> > > > > > >
> > > > > > >
> > > > > > > U-Boot 2025.04-rc5-00662-gcc30c7943060-dirty (Apr 14 2025 - 13:25:06 -0600)
> > > > > > >
> > > > > > > DRAM: 1 GiB
> > > > > > > Core: 51 devices, 14 uclasses, devicetree: board
> > > > > > > ...
> > > > > > >
> > > > > > > My code is this:
> > > > > > >
> > > > > > > int xferlist_from_boot_arg(ulong *addrp, ulong *fdtp)
> > > > > > > {
> > > > > > > int ret;
> > > > > > >
> > > > > > > printf("regs %lx %lx %lx %lx\n", saved_args[0], saved_args[2],
> > > > > > > saved_args[1], saved_args[3]);
> > > > > > > ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
> > > > > > > saved_args[1], saved_args[3]);
> > > > > > > if (ret)
> > > > > > > return ret;
> > > > > > >
> > > > > > > *addrp = saved_args[3];
> > > > > > > if (fdtp)
> > > > > > > *fdtp = saved_args[0];
> > > > > > >
> > > > > > > return 0;
> > > > > > > }
> > > > > > >
> > > > > > > on this tree:
> > > > > > >
> > > > > > > 37802ca2381 (HEAD) wip
> > > > > > > cc30c794306 (el/blob) fdt: Obtain the FDT from bloblist without parsing it
> > > > > > > 4494e4adae0 bloblist: Provide access to the FDT address
> > > > > > > ef7193a9f07 fdt: Introduce OF_BLOBLIST
> > > > > > > 9e6b2e9c53b bloblist: Simplify bloblist init
> > > > > > > 4adbf64ff8d (tag: tmp-patman) Merge branch 'staging' of
> > > > > > > https://source.denx.de/u-boot/custodians/u-boot-tegra into next
> > > > > > >
> > > > > > > which I have pushed to:
> > > > > > > source.denx.de:u-boot/custodians/u-boot-dm.git
> > > > > > >
> > > > > > > in branch 'blob'
> > > > > > >
> > > > > > > and the build/kconfigs/u-boot_tl.conf file contains:
> > > > > > >
> > > > > > > CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
> > > > > > > CONFIG_OF_BLOBLIST=y
> > > > > > >
> > > > > > > I don't expect those registers to all be zero. I suppose I am missing
> > > > > > > a config somewhere?
> > > > > > >
> > > > > >
> > > > > > If you already got my changes at:
> > > > > > https://github.com/OP-TEE/build/pull/821, and make changes on
> > > > > > u-boot_tl.conf on top of it, the only missing thing might be to change
> > > > > > "ARM_FIRMWARE_HANDOFF ?= n" to "ARM_FIRMWARE_HANDOFF ?= y" in
> > > > > > build/qemu_v8.mk.
> > > > >
> > > > > OK thanks. But when I do that:
> > > > >
> > > > > $ make run -j30 -s
> > > > > mk/config.mk:520: *** CFG_MAP_EXT_DT_SECURE is set to 'n' (from file)
> > > > > but its value must be 'y'. Stop.
> > > > > make: *** [common.mk:590: optee-os-devkit] Error 2
> > > > >
> > > > > I can see that value in the same build/qemu_v8.mk file.
> > > > >
> > > > > OPTEE_OS_COMMON_EXTRA_FLAGS += CFG_DT=y CFG_MAP_EXT_DT_SECURE=y
> > > > >
> > > >
> > > > One dependence is at here:
> > > > https://github.com/OP-TEE/optee_os/pull/7352/files#diff-6301a2703b709daa4d84ead1c30bf67cdaf088abed68753a8f9c740f1e58b54a
> > >
> > > Thanks, I changed it to n but I still don't see anything in the registers:
> > >
> > > NOTICE: BL31: Built : 15:06:52, Apr 13 2025
> > > from_boot_arg 1
> > > regs 0 0 0 0
> > > Bloblist at 0 not found (err=-2)
> > >
> > >
> > > U-Boot 2025.04-rc5-00663-g37802ca2381a (Apr 14 2025 - 14:37:38 -0600)
> > >
> > > I think I need to rebuild BL31. So I'm doing 'make clean' and we'll see.
> >
> > OK that fixed it. So I'll be able to take a look one of these
> > mornings. Thanks for your help. Please get this into CI soon.
> >
>
> No worries, please take your time and feel free to let me know if
> there are any questions.
Unfortunately I've broken it again and I'm not sure what is going on.
I have burned quite a bit of time on this, unfortunately.
Really we need a proper test (within U-Boot) for this. I will send a
series which works for that. Once I've sent it, perhaps if you can
push a clean tree somewhere with all the optee stuff? Then we should
be able to figure out what is wrong.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-14 20:34 ` Tom Rini
@ 2025-04-17 13:14 ` Simon Glass
2025-04-17 14:14 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-17 13:14 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
>
> On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > env variables.
> > > > > > > > > > > >
> > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > another try at that.
> > > > > > > > > > > >
> > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > your option.
> > > > > > > > > > >
> > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > >
> > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > >
> > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > bloblist protocol for x86.
> > > > > > > > >
> > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > >
> > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > with.
> > > > > > > > >
> > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > >
> > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > devicetree in the bloblist.
> > > > > > >
> > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > today.
> > > > > >
> > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > >
> > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > can allocate a bloblist (or grow a passed one if needed).
> > > >
> > > > We are going around in circles though. Having it is registers doesn't
> > > > help with the problem that there isn't an FDT in the bloblist.
> > >
> > > Sure it does. If we're passed a bloblist in a register we can then see
> > > if it has a DT (and use it) or not (and move to the next DT location).
> > >
> > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > changed your mind?
> > >
> > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > problems is that no one understood you.
> >
> > No, that's not actually true. The problem is that no one would listen
> > and everyone was sure I was wrong.
>
> That's another way of saying "no one understood you", IMO.
>
> > I sent the series on the basis that you were open to my maintaining
> > bloblist in your tree. I didn't know there were extra conditions. So
> > please let me know which way you want to go on this.
>
> I thought we had made progress on the community call, but now you're
> sending this so I don't know?
>
> You need to:
> - Not break handoff spec. Raymond is telling you how to get a QEMU that
> uses that now, and I'm actively waiting on Harrison Mutai to answer
> one last question I had before adding vexpress_fvp to our CI. So this
> should be a reasonable requirement.
> - You were going to add register passing of bloblist location for x86,
> and then add register passing of bloblist between U-Boot phases
> without relying on BLOBLIST_FiXED.
> - Some amount of un-tangling "do we have a bloblist" from "did we get a
> bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
That seems very much like a list of instructions. So in fact you still
want to be the maintainer?
To be clear, I don't disagree with the list here but I am not willing
to argue with people anymore about how it should work. I designed it
and I know how it should work.
Also I think I now understand what you are saying about bloblist and
standard passage being split. It's because most of my standard passage
series from a few years back was never applied.
So I'd like to go back and revisit that and get it applied, including
the gitlab test for the new qemu_arm/64_spl
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 13:14 ` Simon Glass
@ 2025-04-17 14:14 ` Tom Rini
2025-04-17 21:24 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-17 14:14 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 10955 bytes --]
On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > your option.
> > > > > > > > > > > >
> > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > >
> > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > >
> > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > >
> > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > >
> > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > with.
> > > > > > > > > >
> > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > >
> > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > devicetree in the bloblist.
> > > > > > > >
> > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > today.
> > > > > > >
> > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > >
> > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > >
> > > > > We are going around in circles though. Having it is registers doesn't
> > > > > help with the problem that there isn't an FDT in the bloblist.
> > > >
> > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > >
> > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > changed your mind?
> > > >
> > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > problems is that no one understood you.
> > >
> > > No, that's not actually true. The problem is that no one would listen
> > > and everyone was sure I was wrong.
> >
> > That's another way of saying "no one understood you", IMO.
> >
> > > I sent the series on the basis that you were open to my maintaining
> > > bloblist in your tree. I didn't know there were extra conditions. So
> > > please let me know which way you want to go on this.
> >
> > I thought we had made progress on the community call, but now you're
> > sending this so I don't know?
> >
> > You need to:
> > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > one last question I had before adding vexpress_fvp to our CI. So this
> > should be a reasonable requirement.
> > - You were going to add register passing of bloblist location for x86,
> > and then add register passing of bloblist between U-Boot phases
> > without relying on BLOBLIST_FiXED.
> > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
>
> That seems very much like a list of instructions. So in fact you still
> want to be the maintainer?
I mean, I'm the project maintainer. No, I'm not going to sit over your
shoulder and tell you how to do that. But I am telling you what is and
isn't acceptable. I don't just blindly take patches from anyone. You are
not being singled out here.
> To be clear, I don't disagree with the list here but I am not willing
> to argue with people anymore about how it should work. I designed it
> and I know how it should work.
>
> Also I think I now understand what you are saying about bloblist and
> standard passage being split. It's because most of my standard passage
> series from a few years back was never applied.
>
> So I'd like to go back and revisit that and get it applied, including
> the gitlab test for the new qemu_arm/64_spl
I assume you'll be posting a v2 of something, which can be applied,
soon then?
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 14:14 ` Tom Rini
@ 2025-04-17 21:24 ` Simon Glass
2025-04-17 21:58 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-17 21:24 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
>
> On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > your option.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > >
> > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > >
> > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > >
> > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > >
> > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > with.
> > > > > > > > > > >
> > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > >
> > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > devicetree in the bloblist.
> > > > > > > > >
> > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > today.
> > > > > > > >
> > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > >
> > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > >
> > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > >
> > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > >
> > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > changed your mind?
> > > > >
> > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > problems is that no one understood you.
> > > >
> > > > No, that's not actually true. The problem is that no one would listen
> > > > and everyone was sure I was wrong.
> > >
> > > That's another way of saying "no one understood you", IMO.
> > >
> > > > I sent the series on the basis that you were open to my maintaining
> > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > please let me know which way you want to go on this.
> > >
> > > I thought we had made progress on the community call, but now you're
> > > sending this so I don't know?
> > >
> > > You need to:
> > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > one last question I had before adding vexpress_fvp to our CI. So this
> > > should be a reasonable requirement.
> > > - You were going to add register passing of bloblist location for x86,
> > > and then add register passing of bloblist between U-Boot phases
> > > without relying on BLOBLIST_FiXED.
> > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> >
> > That seems very much like a list of instructions. So in fact you still
> > want to be the maintainer?
>
> I mean, I'm the project maintainer. No, I'm not going to sit over your
> shoulder and tell you how to do that. But I am telling you what is and
> isn't acceptable. I don't just blindly take patches from anyone. You are
> not being singled out here.
Heaven forbid. Although I see that you reverted the PXE stuff rather
than taking my fix-up patch. That's different from what you did with
all the lmb breakage.
>
> > To be clear, I don't disagree with the list here but I am not willing
> > to argue with people anymore about how it should work. I designed it
> > and I know how it should work.
> >
> > Also I think I now understand what you are saying about bloblist and
> > standard passage being split. It's because most of my standard passage
> > series from a few years back was never applied.
> >
> > So I'd like to go back and revisit that and get it applied, including
> > the gitlab test for the new qemu_arm/64_spl
>
> I assume you'll be posting a v2 of something, which can be applied,
> soon then?
Yes, v3 is posted. It took a while as the original series was from 2021.
Regards,
SImon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 21:24 ` Simon Glass
@ 2025-04-17 21:58 ` Tom Rini
2025-04-17 22:02 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-17 21:58 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 12418 bytes --]
On Thu, Apr 17, 2025 at 03:24:17PM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > > your option.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > > >
> > > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > > >
> > > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > > >
> > > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > > with.
> > > > > > > > > > > >
> > > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > > >
> > > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > > devicetree in the bloblist.
> > > > > > > > > >
> > > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > > today.
> > > > > > > > >
> > > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > > >
> > > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > > >
> > > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > > >
> > > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > > >
> > > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > > changed your mind?
> > > > > >
> > > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > > problems is that no one understood you.
> > > > >
> > > > > No, that's not actually true. The problem is that no one would listen
> > > > > and everyone was sure I was wrong.
> > > >
> > > > That's another way of saying "no one understood you", IMO.
> > > >
> > > > > I sent the series on the basis that you were open to my maintaining
> > > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > > please let me know which way you want to go on this.
> > > >
> > > > I thought we had made progress on the community call, but now you're
> > > > sending this so I don't know?
> > > >
> > > > You need to:
> > > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > > one last question I had before adding vexpress_fvp to our CI. So this
> > > > should be a reasonable requirement.
> > > > - You were going to add register passing of bloblist location for x86,
> > > > and then add register passing of bloblist between U-Boot phases
> > > > without relying on BLOBLIST_FiXED.
> > > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> > >
> > > That seems very much like a list of instructions. So in fact you still
> > > want to be the maintainer?
> >
> > I mean, I'm the project maintainer. No, I'm not going to sit over your
> > shoulder and tell you how to do that. But I am telling you what is and
> > isn't acceptable. I don't just blindly take patches from anyone. You are
> > not being singled out here.
>
> Heaven forbid. Although I see that you reverted the PXE stuff rather
> than taking my fix-up patch. That's different from what you did with
> all the lmb breakage.
Because you said I should just revert it since I didn't "support" it.
And didn't look in to booti. So yes, that series needs a re-baking to
also fix booti as it has a similar set of handling things outside the
bootm state machine, and really re-checking nothing else got missed.
> > > To be clear, I don't disagree with the list here but I am not willing
> > > to argue with people anymore about how it should work. I designed it
> > > and I know how it should work.
> > >
> > > Also I think I now understand what you are saying about bloblist and
> > > standard passage being split. It's because most of my standard passage
> > > series from a few years back was never applied.
> > >
> > > So I'd like to go back and revisit that and get it applied, including
> > > the gitlab test for the new qemu_arm/64_spl
> >
> > I assume you'll be posting a v2 of something, which can be applied,
> > soon then?
>
> Yes, v3 is posted. It took a while as the original series was from 2021.
OK.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 21:58 ` Tom Rini
@ 2025-04-17 22:02 ` Simon Glass
2025-04-17 22:14 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-17 22:02 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Thu, 17 Apr 2025 at 15:58, Tom Rini <trini@konsulko.com> wrote:
>
> On Thu, Apr 17, 2025 at 03:24:17PM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > > > your option.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > > > >
> > > > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > > > with.
> > > > > > > > > > > > >
> > > > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > > > >
> > > > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > > > devicetree in the bloblist.
> > > > > > > > > > >
> > > > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > > > today.
> > > > > > > > > >
> > > > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > > > >
> > > > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > > > >
> > > > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > > > >
> > > > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > > > >
> > > > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > > > changed your mind?
> > > > > > >
> > > > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > > > problems is that no one understood you.
> > > > > >
> > > > > > No, that's not actually true. The problem is that no one would listen
> > > > > > and everyone was sure I was wrong.
> > > > >
> > > > > That's another way of saying "no one understood you", IMO.
> > > > >
> > > > > > I sent the series on the basis that you were open to my maintaining
> > > > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > > > please let me know which way you want to go on this.
> > > > >
> > > > > I thought we had made progress on the community call, but now you're
> > > > > sending this so I don't know?
> > > > >
> > > > > You need to:
> > > > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > > > one last question I had before adding vexpress_fvp to our CI. So this
> > > > > should be a reasonable requirement.
> > > > > - You were going to add register passing of bloblist location for x86,
> > > > > and then add register passing of bloblist between U-Boot phases
> > > > > without relying on BLOBLIST_FiXED.
> > > > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> > > >
> > > > That seems very much like a list of instructions. So in fact you still
> > > > want to be the maintainer?
> > >
> > > I mean, I'm the project maintainer. No, I'm not going to sit over your
> > > shoulder and tell you how to do that. But I am telling you what is and
> > > isn't acceptable. I don't just blindly take patches from anyone. You are
> > > not being singled out here.
> >
> > Heaven forbid. Although I see that you reverted the PXE stuff rather
> > than taking my fix-up patch. That's different from what you did with
> > all the lmb breakage.
>
> Because you said I should just revert it since I didn't "support" it.
> And didn't look in to booti. So yes, that series needs a re-baking to
> also fix booti as it has a similar set of handling things outside the
> bootm state machine, and really re-checking nothing else got missed.
If you want the series I'm happy to resend it with the fix integrated.
Yes I carefully checked that nothing else got missed. Still, I did
that the first time and still missed something.
Just let me know.
>
> > > > To be clear, I don't disagree with the list here but I am not willing
> > > > to argue with people anymore about how it should work. I designed it
> > > > and I know how it should work.
> > > >
> > > > Also I think I now understand what you are saying about bloblist and
> > > > standard passage being split. It's because most of my standard passage
> > > > series from a few years back was never applied.
> > > >
> > > > So I'd like to go back and revisit that and get it applied, including
> > > > the gitlab test for the new qemu_arm/64_spl
> > >
> > > I assume you'll be posting a v2 of something, which can be applied,
> > > soon then?
> >
> > Yes, v3 is posted. It took a while as the original series was from 2021.
>
> OK.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 22:02 ` Simon Glass
@ 2025-04-17 22:14 ` Tom Rini
2025-04-17 22:28 ` Simon Glass
0 siblings, 1 reply; 58+ messages in thread
From: Tom Rini @ 2025-04-17 22:14 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 12931 bytes --]
On Thu, Apr 17, 2025 at 04:02:20PM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Thu, 17 Apr 2025 at 15:58, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Thu, Apr 17, 2025 at 03:24:17PM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > > > > your option.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > > > > with.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > > > > >
> > > > > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > > > > devicetree in the bloblist.
> > > > > > > > > > > >
> > > > > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > > > > today.
> > > > > > > > > > >
> > > > > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > > > > >
> > > > > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > > > > >
> > > > > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > > > > >
> > > > > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > > > > >
> > > > > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > > > > changed your mind?
> > > > > > > >
> > > > > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > > > > problems is that no one understood you.
> > > > > > >
> > > > > > > No, that's not actually true. The problem is that no one would listen
> > > > > > > and everyone was sure I was wrong.
> > > > > >
> > > > > > That's another way of saying "no one understood you", IMO.
> > > > > >
> > > > > > > I sent the series on the basis that you were open to my maintaining
> > > > > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > > > > please let me know which way you want to go on this.
> > > > > >
> > > > > > I thought we had made progress on the community call, but now you're
> > > > > > sending this so I don't know?
> > > > > >
> > > > > > You need to:
> > > > > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > > > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > > > > one last question I had before adding vexpress_fvp to our CI. So this
> > > > > > should be a reasonable requirement.
> > > > > > - You were going to add register passing of bloblist location for x86,
> > > > > > and then add register passing of bloblist between U-Boot phases
> > > > > > without relying on BLOBLIST_FiXED.
> > > > > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > > > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > > > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > > > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > > > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> > > > >
> > > > > That seems very much like a list of instructions. So in fact you still
> > > > > want to be the maintainer?
> > > >
> > > > I mean, I'm the project maintainer. No, I'm not going to sit over your
> > > > shoulder and tell you how to do that. But I am telling you what is and
> > > > isn't acceptable. I don't just blindly take patches from anyone. You are
> > > > not being singled out here.
> > >
> > > Heaven forbid. Although I see that you reverted the PXE stuff rather
> > > than taking my fix-up patch. That's different from what you did with
> > > all the lmb breakage.
> >
> > Because you said I should just revert it since I didn't "support" it.
> > And didn't look in to booti. So yes, that series needs a re-baking to
> > also fix booti as it has a similar set of handling things outside the
> > bootm state machine, and really re-checking nothing else got missed.
>
> If you want the series I'm happy to resend it with the fix integrated.
> Yes I carefully checked that nothing else got missed. Still, I did
> that the first time and still missed something.
>
> Just let me know.
The "booti" code still needs to be fixed too, that was the first of the
bug reports.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 22:14 ` Tom Rini
@ 2025-04-17 22:28 ` Simon Glass
2025-04-17 22:37 ` Tom Rini
0 siblings, 1 reply; 58+ messages in thread
From: Simon Glass @ 2025-04-17 22:28 UTC (permalink / raw)
To: Tom Rini
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
Hi Tom,
On Thu, 17 Apr 2025 at 16:14, Tom Rini <trini@konsulko.com> wrote:
>
> On Thu, Apr 17, 2025 at 04:02:20PM -0600, Simon Glass wrote:
> > Hi Tom,
> >
> > On Thu, 17 Apr 2025 at 15:58, Tom Rini <trini@konsulko.com> wrote:
> > >
> > > On Thu, Apr 17, 2025 at 03:24:17PM -0600, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
> > > > >
> > > > > On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > > > > > Hi Tom,
> > > > > >
> > > > > > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > > > > > >
> > > > > > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > > > > > Hi Tom,
> > > > > > > >
> > > > > > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > >
> > > > > > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > > > > > Hi Tom,
> > > > > > > > > >
> > > > > > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > >
> > > > > > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > >
> > > > > > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > > > > > your option.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > > > > > with.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > > > > > devicetree in the bloblist.
> > > > > > > > > > > > >
> > > > > > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > > > > > today.
> > > > > > > > > > > >
> > > > > > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > > > > > >
> > > > > > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > > > > > >
> > > > > > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > > > > > >
> > > > > > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > > > > > >
> > > > > > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > > > > > changed your mind?
> > > > > > > > >
> > > > > > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > > > > > problems is that no one understood you.
> > > > > > > >
> > > > > > > > No, that's not actually true. The problem is that no one would listen
> > > > > > > > and everyone was sure I was wrong.
> > > > > > >
> > > > > > > That's another way of saying "no one understood you", IMO.
> > > > > > >
> > > > > > > > I sent the series on the basis that you were open to my maintaining
> > > > > > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > > > > > please let me know which way you want to go on this.
> > > > > > >
> > > > > > > I thought we had made progress on the community call, but now you're
> > > > > > > sending this so I don't know?
> > > > > > >
> > > > > > > You need to:
> > > > > > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > > > > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > > > > > one last question I had before adding vexpress_fvp to our CI. So this
> > > > > > > should be a reasonable requirement.
> > > > > > > - You were going to add register passing of bloblist location for x86,
> > > > > > > and then add register passing of bloblist between U-Boot phases
> > > > > > > without relying on BLOBLIST_FiXED.
> > > > > > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > > > > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > > > > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > > > > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > > > > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> > > > > >
> > > > > > That seems very much like a list of instructions. So in fact you still
> > > > > > want to be the maintainer?
> > > > >
> > > > > I mean, I'm the project maintainer. No, I'm not going to sit over your
> > > > > shoulder and tell you how to do that. But I am telling you what is and
> > > > > isn't acceptable. I don't just blindly take patches from anyone. You are
> > > > > not being singled out here.
> > > >
> > > > Heaven forbid. Although I see that you reverted the PXE stuff rather
> > > > than taking my fix-up patch. That's different from what you did with
> > > > all the lmb breakage.
> > >
> > > Because you said I should just revert it since I didn't "support" it.
> > > And didn't look in to booti. So yes, that series needs a re-baking to
> > > also fix booti as it has a similar set of handling things outside the
> > > bootm state machine, and really re-checking nothing else got missed.
> >
> > If you want the series I'm happy to resend it with the fix integrated.
> > Yes I carefully checked that nothing else got missed. Still, I did
> > that the first time and still missed something.
> >
> > Just let me know.
>
> The "booti" code still needs to be fixed too, that was the first of the
> bug reports.
Yes, I suggested plumbing through a setting to ignore SYS_BOOTM_LEN
and use 4x the compressed size instead. If you are OK with that then I
can incorporate it.
Regards,
Simon
^ permalink raw reply [flat|nested] 58+ messages in thread
* Re: [PATCH 0/4] bloblist: fdt: Clean up the code
2025-04-17 22:28 ` Simon Glass
@ 2025-04-17 22:37 ` Tom Rini
0 siblings, 0 replies; 58+ messages in thread
From: Tom Rini @ 2025-04-17 22:37 UTC (permalink / raw)
To: Simon Glass
Cc: Raymond Mao, U-Boot Mailing List, Andrew Goodbody, Caleb Connolly,
Evgeny Bachinin, Harrison Mutai, Jan Kiszka, Jerry Van Baren,
Lad Prabhakar, Levi Yun, Marek Behún, Marek Vasut,
Marek Vasut, Matthias Brugger, Neil Armstrong, Patrick Rudolph,
Quentin Schulz, Sumit Garg,
This contributor prefers not to receive mails, mason1920
[-- Attachment #1: Type: text/plain, Size: 14330 bytes --]
On Thu, Apr 17, 2025 at 04:28:42PM -0600, Simon Glass wrote:
> Hi Tom,
>
> On Thu, 17 Apr 2025 at 16:14, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Thu, Apr 17, 2025 at 04:02:20PM -0600, Simon Glass wrote:
> > > Hi Tom,
> > >
> > > On Thu, 17 Apr 2025 at 15:58, Tom Rini <trini@konsulko.com> wrote:
> > > >
> > > > On Thu, Apr 17, 2025 at 03:24:17PM -0600, Simon Glass wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Thu, 17 Apr 2025 at 08:14, Tom Rini <trini@konsulko.com> wrote:
> > > > > >
> > > > > > On Thu, Apr 17, 2025 at 07:14:35AM -0600, Simon Glass wrote:
> > > > > > > Hi Tom,
> > > > > > >
> > > > > > > On Mon, 14 Apr 2025 at 14:34, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > >
> > > > > > > > On Mon, Apr 14, 2025 at 01:34:10PM -0600, Simon Glass wrote:
> > > > > > > > > Hi Tom,
> > > > > > > > >
> > > > > > > > > On Mon, 7 Apr 2025 at 08:31, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > >
> > > > > > > > > > On Mon, Apr 07, 2025 at 12:35:15PM +1200, Simon Glass wrote:
> > > > > > > > > > > Hi Tom,
> > > > > > > > > > >
> > > > > > > > > > > On Mon, 7 Apr 2025 at 10:38, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > On Mon, Apr 07, 2025 at 10:06:07AM +1200, Simon Glass wrote:
> > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Sat, 5 Apr 2025 at 06:57, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On Sat, Apr 05, 2025 at 06:39:39AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 11:51, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 11:41:08AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > > Hi Tom,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 10:52, Tom Rini <trini@konsulko.com> wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Fri, Apr 04, 2025 at 09:40:29AM +1300, Simon Glass wrote:
> > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 08:54, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 14:18, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 07:13, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > On Thu, 3 Apr 2025 at 13:57, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Hi Raymond,
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > On Fri, 4 Apr 2025 at 03:09, Raymond Mao <raymond.mao@linaro.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > On Fri, 28 Mar 2025 at 11:44, Simon Glass <sjg@chromium.org> wrote:
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > The bloblist code took what I consider to be a wrong turn a year or so
> > > > > > > > > > > > > > > > > > > > > > > > > ago. As discussed with Tom, this series proposes a way to arrange things
> > > > > > > > > > > > > > > > > > > > > > > > > so that it is simpler to understand and manage.
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > - Unwind some of the nesting in bloblist_init()
> > > > > > > > > > > > > > > > > > > > > > > > > - Avoid needing to init the bloblist just to get the FDT
> > > > > > > > > > > > > > > > > > > > > > > > > - Create a deterministic OF_BLOBLIST option rather than using guesswork
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > We now have a kconfig BLOBLIST_PASSAGE_MANDATORY which means
> > > > > > > > > > > > > > > > > > > > > > > > mandatorily use bloblist to hand over everything between boot stages
> > > > > > > > > > > > > > > > > > > > > > > > including fdt, creating OF_BLOBLIST is not necessary.
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Yes, I noticed that, but BLOBLIST_PASSAGE_MANDATORY indicates that
> > > > > > > > > > > > > > > > > > > > > > > there must be a bloblist, not that it must contain a devicetree. So I
> > > > > > > > > > > > > > > > > > > > > > > wasn't sure about removing it.
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > See my comments to your [2/4] patch, if BLOBLIST_PASSAGE_MANDATORY is
> > > > > > > > > > > > > > > > > > > > > > selected, we can override any fdt from board or env with the one from
> > > > > > > > > > > > > > > > > > > > > > the bloblist.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Yes, but we should be explicit about what is going on here. With
> > > > > > > > > > > > > > > > > > > > > OF_BLOBLIST we indicate that the devicetree is coming from the
> > > > > > > > > > > > > > > > > > > > > bloblist. It becomes one of the sources for devicetree, like
> > > > > > > > > > > > > > > > > > > > > OF_SEPARATE and OF_EMBED
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > BLOBLIST_PASSAGE_MANDATORY indicates the fdt from bloblist will be
> > > > > > > > > > > > > > > > > > > > mandatorily used and override other fdt sources like from the board or
> > > > > > > > > > > > > > > > > > > > env variables.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > So long as you are OK with OF_BLOBLIST as well, I have no objection to
> > > > > > > > > > > > > > > > > > > keeping BLOBLIST_PASSAGE_MANDATORY, although I don't like the name
> > > > > > > > > > > > > > > > > > > very much. But I can see why it is called that as my standard passage
> > > > > > > > > > > > > > > > > > > series was actually never applied. So I suppose I'll need to have
> > > > > > > > > > > > > > > > > > > another try at that.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > So to be clear, I want a separate option for devicetree, called
> > > > > > > > > > > > > > > > > > > OF_BLOBLIST, which I can enable/disable as needed, without affecting
> > > > > > > > > > > > > > > > > > > your option.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Sigh. Can I ask what the use case for this will be? And we are going to
> > > > > > > > > > > > > > > > > > get rid of BLOBLIST_FIXED at some point, yes?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > I thought we agreed that this was acceptable. We argued the toss for
> > > > > > > > > > > > > > > > > months on this point and I would rather not revisit it.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Yes, I will look at removing BLOBLIST_FIXED once this is in. I'm
> > > > > > > > > > > > > > > > > pretty sure it can be done. The only tricky bit is coming up with a
> > > > > > > > > > > > > > > > > bloblist protocol for x86.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Yes, I'm stuck between being "flexible and saying yes" and how long we
> > > > > > > > > > > > > > > > have to live with what I also think are bad designs.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > So maybe the pre-requisite here is that with "bloblist" and "standard
> > > > > > > > > > > > > > > > passage" being divorced, what is the requirement for bloblist again?
> > > > > > > > > > > > > > > > Because in practice, all of the problems we've had come down to looking
> > > > > > > > > > > > > > > > in fixed address locations before they're valid. You want to handle this
> > > > > > > > > > > > > > > > by saying "Ah, we won't look before it's valid with other CONFIG flags"
> > > > > > > > > > > > > > > > and I say we should handle this by not using a fixed address to start
> > > > > > > > > > > > > > > > with.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > If we have to add OF_BLOBLIST now and delete it in a few months, sigh,
> > > > > > > > > > > > > > > > OK. But it shouldn't need to exist long term.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > For me, OF_BLOBLIST is needed for x86 devices which don't pass the
> > > > > > > > > > > > > > > devicetree in the bloblist.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I don't understand why that would become the case when it's not true
> > > > > > > > > > > > > > today.
> > > > > > > > > > > > >
> > > > > > > > > > > > > If you look at the top obbfdtdec_setup() in your tree you can see the
> > > > > > > > > > > > > special-case code related to TPL, that I'm wanting to get rid of.
> > > > > > > > > > > >
> > > > > > > > > > > > OK, but all of that too is for the case of a fixed bloblist being in
> > > > > > > > > > > > uninitialized memory. Which is why I don't like BLOBLIST_FIXED and want
> > > > > > > > > > > > to see passing of the bloblist from xPL -> PPL be implemented and so xPL
> > > > > > > > > > > > can allocate a bloblist (or grow a passed one if needed).
> > > > > > > > > > >
> > > > > > > > > > > We are going around in circles though. Having it is registers doesn't
> > > > > > > > > > > help with the problem that there isn't an FDT in the bloblist.
> > > > > > > > > >
> > > > > > > > > > Sure it does. If we're passed a bloblist in a register we can then see
> > > > > > > > > > if it has a DT (and use it) or not (and move to the next DT location).
> > > > > > > > > >
> > > > > > > > > > > Also, I thought you decided that I could maintain bloblist. Have you
> > > > > > > > > > > changed your mind?
> > > > > > > > > >
> > > > > > > > > > You just mis-understood me. Yes, you can maintain bloblist. But also,
> > > > > > > > > > Yes, I need to understand what you're doing. The root of the OF_BLOBLIST
> > > > > > > > > > problems is that no one understood you.
> > > > > > > > >
> > > > > > > > > No, that's not actually true. The problem is that no one would listen
> > > > > > > > > and everyone was sure I was wrong.
> > > > > > > >
> > > > > > > > That's another way of saying "no one understood you", IMO.
> > > > > > > >
> > > > > > > > > I sent the series on the basis that you were open to my maintaining
> > > > > > > > > bloblist in your tree. I didn't know there were extra conditions. So
> > > > > > > > > please let me know which way you want to go on this.
> > > > > > > >
> > > > > > > > I thought we had made progress on the community call, but now you're
> > > > > > > > sending this so I don't know?
> > > > > > > >
> > > > > > > > You need to:
> > > > > > > > - Not break handoff spec. Raymond is telling you how to get a QEMU that
> > > > > > > > uses that now, and I'm actively waiting on Harrison Mutai to answer
> > > > > > > > one last question I had before adding vexpress_fvp to our CI. So this
> > > > > > > > should be a reasonable requirement.
> > > > > > > > - You were going to add register passing of bloblist location for x86,
> > > > > > > > and then add register passing of bloblist between U-Boot phases
> > > > > > > > without relying on BLOBLIST_FiXED.
> > > > > > > > - Some amount of un-tangling "do we have a bloblist" from "did we get a
> > > > > > > > bloblist" is needed, so we can just check "Did we get a bloblist? Y/N"
> > > > > > > > in lib/fdtdec.c::fdtdec_setup(). With that, we can add OF_BLOBLIST as
> > > > > > > > a choice with OF_SEPARATE / OF_EMBEDED and we can remove a bunch of
> > > > > > > > the logic at the top of lib/fdtdec.c::fdtdec_setup() too.
> > > > > > >
> > > > > > > That seems very much like a list of instructions. So in fact you still
> > > > > > > want to be the maintainer?
> > > > > >
> > > > > > I mean, I'm the project maintainer. No, I'm not going to sit over your
> > > > > > shoulder and tell you how to do that. But I am telling you what is and
> > > > > > isn't acceptable. I don't just blindly take patches from anyone. You are
> > > > > > not being singled out here.
> > > > >
> > > > > Heaven forbid. Although I see that you reverted the PXE stuff rather
> > > > > than taking my fix-up patch. That's different from what you did with
> > > > > all the lmb breakage.
> > > >
> > > > Because you said I should just revert it since I didn't "support" it.
> > > > And didn't look in to booti. So yes, that series needs a re-baking to
> > > > also fix booti as it has a similar set of handling things outside the
> > > > bootm state machine, and really re-checking nothing else got missed.
> > >
> > > If you want the series I'm happy to resend it with the fix integrated.
> > > Yes I carefully checked that nothing else got missed. Still, I did
> > > that the first time and still missed something.
> > >
> > > Just let me know.
> >
> > The "booti" code still needs to be fixed too, that was the first of the
> > bug reports.
>
> Yes, I suggested plumbing through a setting to ignore SYS_BOOTM_LEN
> and use 4x the compressed size instead. If you are OK with that then I
> can incorporate it.
I'd prefer to take the existing code we have in cmd/booti.c and
migrate that similar to your patch for bootz, so that we don't change
expected behavior and can evaluate any later cleanups by themselves and
not related to fixing regressions.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 58+ messages in thread
end of thread, other threads:[~2025-04-17 22:37 UTC | newest]
Thread overview: 58+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-28 15:43 [PATCH 0/4] bloblist: fdt: Clean up the code Simon Glass
2025-03-28 15:43 ` [PATCH 1/4] bloblist: Simplify bloblist init Simon Glass
2025-03-28 15:43 ` [PATCH 2/4] fdt: Introduce OF_BLOBLIST Simon Glass
2025-04-03 15:34 ` Raymond Mao
2025-04-03 17:57 ` Simon Glass
2025-03-28 15:43 ` [PATCH 3/4] bloblist: Provide access to the FDT address Simon Glass
2025-03-28 15:43 ` [PATCH 4/4] fdt: Obtain the FDT from bloblist without parsing it Simon Glass
2025-03-28 16:18 ` [PATCH 0/4] bloblist: fdt: Clean up the code Tom Rini
2025-03-28 23:38 ` Simon Glass
2025-03-29 0:02 ` Tom Rini
2025-03-29 1:00 ` Raymond Mao
2025-04-04 14:48 ` Raymond Mao
2025-04-04 14:53 ` Raymond Mao
2025-04-04 17:40 ` Simon Glass
2025-04-04 17:55 ` Tom Rini
2025-04-04 18:09 ` Raymond Mao
2025-04-06 22:06 ` Simon Glass
2025-04-06 22:35 ` Tom Rini
2025-04-07 14:07 ` Raymond Mao
2025-04-13 21:13 ` Simon Glass
2025-04-14 13:07 ` Raymond Mao
2025-04-14 19:34 ` Simon Glass
2025-04-14 19:43 ` Raymond Mao
2025-04-14 20:05 ` Simon Glass
2025-04-14 20:16 ` Raymond Mao
2025-04-14 20:41 ` Simon Glass
2025-04-14 20:47 ` Simon Glass
2025-04-15 0:32 ` Raymond Mao
2025-04-17 13:14 ` Simon Glass
2025-04-03 14:09 ` Raymond Mao
2025-04-03 17:57 ` Simon Glass
2025-04-03 18:12 ` Raymond Mao
2025-04-03 18:18 ` Simon Glass
2025-04-03 19:54 ` Raymond Mao
2025-04-03 20:40 ` Simon Glass
2025-04-03 21:52 ` Tom Rini
2025-04-03 22:41 ` Simon Glass
2025-04-03 22:50 ` Tom Rini
2025-04-04 17:39 ` Simon Glass
2025-04-04 17:57 ` Tom Rini
2025-04-06 22:06 ` Simon Glass
2025-04-06 22:38 ` Tom Rini
2025-04-07 0:35 ` Simon Glass
2025-04-07 14:30 ` Tom Rini
2025-04-07 15:24 ` Simon Glass
2025-04-07 18:22 ` Tom Rini
2025-04-07 20:17 ` Simon Glass
2025-04-07 20:34 ` Tom Rini
2025-04-14 19:34 ` Simon Glass
2025-04-14 20:34 ` Tom Rini
2025-04-17 13:14 ` Simon Glass
2025-04-17 14:14 ` Tom Rini
2025-04-17 21:24 ` Simon Glass
2025-04-17 21:58 ` Tom Rini
2025-04-17 22:02 ` Simon Glass
2025-04-17 22:14 ` Tom Rini
2025-04-17 22:28 ` Simon Glass
2025-04-17 22:37 ` Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox