public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
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

             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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox