Hi Raymond, On Wed, Dec 27, 2023 at 4:06 PM Raymond Mao <raymond....@linaro.org> wrote: > > Hi Simon, > > On Tue, 26 Dec 2023 at 04:48, Simon Glass <s...@chromium.org> wrote: >> >> Hi Raymond, >> >> On Fri, Dec 22, 2023 at 9:31 PM Raymond Mao <raymond....@linaro.org> wrote: >> > >> > Add bloblist_check_reg_conv() to check whether the bloblist is compliant >> > to the register conventions defined in Firmware Handoff specification. >> > This API can be used for all Arm platforms. >> > >> > Signed-off-by: Raymond Mao <raymond....@linaro.org> >> > --- >> > Changes in v2 >> > - Refactor of bloblist_check_reg_conv(). >> > Changes in v3 >> > - bloblist_check_reg_conv() returns -ENOENT if OF_BOARD is disabled. >> > >> > common/bloblist.c | 13 +++++++++++++ >> > include/bloblist.h | 12 ++++++++++++ >> > 2 files changed, 25 insertions(+) >> > >> > diff --git a/common/bloblist.c b/common/bloblist.c >> > index 625e480f6b..ba17dd851a 100644 >> > --- a/common/bloblist.c >> > +++ b/common/bloblist.c >> > @@ -542,3 +542,16 @@ int bloblist_maybe_init(void) >> > >> > return 0; >> > } >> > + >> > +int bloblist_check_reg_conv(ulong rfdt, ulong rzero) >> > +{ >> > + if (!IS_ENABLED(CONFIG_OF_BOARD)) >> > + return -ENOENT; >> > + >> > + if (rzero || rfdt != (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, >> > 0)) { >> > + gd->bloblist = NULL; /* Reset the gd bloblist pointer */ >> > + return -EIO; >> > + } >> >> Where does the magic 4a0fb10b value get checked? >> > The magic and version of register conventions cannot be checked now since > there is > a bug in the spec. PSB: > ``` > X1[23:0]: set to the TL signature (4a0f_b10b)
That should say 0f_b10b > X1[31:24]: version of the register convention used. Set to 1 for the AArch64 > convention specified in this document. > ``` > Signature (4a0f_b10b) takes all [31:0] and no space for version of the > register convention. > This needs to be updated on TF-A and OP-TEE as well after the spec is updated. > For now I will just skip the checking. We should fix the spec instead. Regards, Simon