[SPAM] Boot regression on am335x-hs-evm
Xavier Drudis Ferran
xdrudis at tinet.cat
Fri Jun 10 13:01:40 CEST 2022
El Fri, Jun 10, 2022 at 11:59:23AM +0200, LABBE Corentin deia:
> --- a/drivers/core/lists.c
> +++ b/drivers/core/lists.c
> @@ -20,6 +20,10 @@
> #include <fdtdec.h>
> #include <linux/compiler.h>
>
> +static int _errorcount;
> +int errorlist[1024];
> +int errorcount;
> +
> struct driver *lists_driver_lookup_name(const char *name)
> {
> struct driver *drv =
> @@ -120,8 +124,9 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only)
> int ret;
>
> ret = bind_drivers_pass(parent, pre_reloc_only);
> - if (!ret)
> - break;
> + errorlist[_errorcount] = ret;
> + _errorcount++;
> + errorcount = _errorcount;
> if (ret != -EAGAIN && !result)
> result = ret;
> }
>
> But errorcount is always 0 which is puzzling me since according to my think, lists_bind_drivers() is ran before secure_boot_verify_image().
>
I'm not sure at which point your code is called, but do you have working BSS?
README:
[...]
lowlevel_init():
- no global_data or BSS
[...]
board_init_f():
[...]
- global_data is available
- stack is in SRAM
- BSS is not available, so you cannot use global/static variables,
only stack variables and global_data
> Any idea on how to debug further ?
>
maybe you can add a field to global_data ?
More information about the U-Boot
mailing list