From: LABBE Corentin <clabbe@baylibre.com>
To: yogeshs@ti.com, lokeshvutla@ti.com, sjg@chromium.org,
trini@konsulko.com, u-boot@lists.denx.de
Subject: Boot regression on am335x-hs-evm
Date: Fri, 10 Jun 2022 11:59:23 +0200 [thread overview]
Message-ID: <YqMV+0qQmA6nc8N7@Red> (raw)
Hello
I hit a boot regression on am335x-hs-evm.
On current uboot, the board does not boot at all.
This board uses both MLO and u-boot.img and only MLO was the problem.
After a bisect, I found that e41651fffda7 ("dm: Support parent devices with of-platdata") was the problem.
Reverting this patch lead to a success boot.
I cutdown the revert to a minimal fix:
--- a/drivers/core/lists.c
+++ b/drivers/core/lists.c
@@ -120,6 +120,7 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only)
int ret;
ret = bind_drivers_pass(parent, pre_reloc_only);
+ return ret;
if (!ret)
break;
if (ret != -EAGAIN && !result)
I cannot debug further since printf() is not working at this stage.
Since I wanted to know which error was badly handled, I tried to do this:
--- a/arch/arm/mach-omap2/sec-common.c
+++ b/arch/arm/mach-omap2/sec-common.c
@@ -111,6 +111,8 @@ static u32 find_sig_start(char *image, size_t size)
return 0;
}
+extern int errorcount;
+
int secure_boot_verify_image(void **image, size_t *size)
{
int result = 1;
@@ -178,6 +180,7 @@ auth_exit:
* via YMODEM. This is done to avoid disturbing the YMODEM serial
* protocol transactions.
*/
+ printf("ERRORCOUNT %d\n", errorcount);
if (!(IS_ENABLED(CONFIG_SPL_BUILD) &&
IS_ENABLED(CONFIG_SPL_YMODEM_SUPPORT) &&
spl_boot_device() == BOOT_DEVICE_UART))
--- 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().
Any idea on how to debug further ?
Thanks
Regards
next reply other threads:[~2022-06-10 9:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-10 9:59 LABBE Corentin [this message]
2022-06-10 11:01 ` [SPAM] Boot regression on am335x-hs-evm Xavier Drudis Ferran
2022-06-10 12:16 ` Tom Rini
2022-06-10 14:51 ` LABBE Corentin
2022-06-10 15:01 ` Tom Rini
2022-06-10 15:45 ` LABBE Corentin
2022-06-10 15:48 ` Tom Rini
2022-06-13 12:51 ` LABBE Corentin
2022-06-13 14:20 ` Tom Rini
2022-06-13 14:56 ` Andrew Davis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YqMV+0qQmA6nc8N7@Red \
--to=clabbe@baylibre.com \
--cc=lokeshvutla@ti.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=yogeshs@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.