Message ID | 20211125030859.2896352-1-art@khadas.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | [v2] image-board: fix wrong implementation ram disk address setup from cmdline | expand |
On Wed, 24 Nov 2021 at 20:09, Artem Lapkin <email2tema@gmail.com> wrote: > > Problem > > Wrong implementation logic: ramdisk cmdline image address always ignored! > Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. > > We have unbootable raw initrd images because, select_ramdisk for raw > initrd images ignore submited select addr and setup rd_datap value to 0 > > Signed-off-by: Artem Lapkin <art@khadas.com> > --- > V2 changes > _ rebase to master > _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ > --- > boot/image-board.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Fixes: f33a2c1bd0f ("image: Remove #ifdefs from select_ramdisk()") Reviewed-by: Simon Glass <sjg@chromium.org>
On Thu, Nov 25, 2021 at 11:08:59AM +0800, Artem Lapkin wrote: > Problem > > Wrong implementation logic: ramdisk cmdline image address always ignored! > Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. > > We have unbootable raw initrd images because, select_ramdisk for raw > initrd images ignore submited select addr and setup rd_datap value to 0 > > Signed-off-by: Artem Lapkin <art@khadas.com> > Reviewed-by: Simon Glass <sjg@chromium.org> > --- > V2 changes > _ rebase to master > _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ > --- > boot/image-board.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/boot/image-board.c b/boot/image-board.c > index bf8817165c..87a8f07432 100644 > --- a/boot/image-board.c > +++ b/boot/image-board.c > @@ -334,7 +334,7 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > > if (select) { > ulong default_addr; > - bool done = true; > + bool done = false; > > if (CONFIG_IS_ENABLED(FIT)) { > /* > @@ -352,13 +352,13 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > &fit_uname_config)) { > debug("* ramdisk: config '%s' from image at 0x%08lx\n", > fit_uname_config, rd_addr); > + done = true; > } else if (fit_parse_subimage(select, default_addr, > &rd_addr, > &fit_uname_ramdisk)) { > debug("* ramdisk: subimage '%s' from image at 0x%08lx\n", > fit_uname_ramdisk, rd_addr); > - } else { > - done = false; > + done = true; > } > } > if (!done) { I think we still need this? Can you please confirm and if so rebase to master again, sorry, thanks!
On Tue, Jan 18, 2022 at 3:47 AM Tom Rini <trini@konsulko.com> wrote: > > On Thu, Nov 25, 2021 at 11:08:59AM +0800, Artem Lapkin wrote: > > > Problem > > > > Wrong implementation logic: ramdisk cmdline image address always ignored! > > Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. > > > > We have unbootable raw initrd images because, select_ramdisk for raw > > initrd images ignore submited select addr and setup rd_datap value to 0 > > > > Signed-off-by: Artem Lapkin <art@khadas.com> > > Reviewed-by: Simon Glass <sjg@chromium.org> > > --- > > V2 changes > > _ rebase to master > > _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ > > --- > > boot/image-board.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/boot/image-board.c b/boot/image-board.c > > index bf8817165c..87a8f07432 100644 > > --- a/boot/image-board.c > > +++ b/boot/image-board.c > > @@ -334,7 +334,7 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > > > > if (select) { > > ulong default_addr; > > - bool done = true; > > + bool done = false; > > > > if (CONFIG_IS_ENABLED(FIT)) { > > /* > > @@ -352,13 +352,13 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > > &fit_uname_config)) { > > debug("* ramdisk: config '%s' from image at 0x%08lx\n", > > fit_uname_config, rd_addr); > > + done = true; > > } else if (fit_parse_subimage(select, default_addr, > > &rd_addr, > > &fit_uname_ramdisk)) { > > debug("* ramdisk: subimage '%s' from image at 0x%08lx\n", > > fit_uname_ramdisk, rd_addr); > > - } else { > > - done = false; > > + done = true; > > } > > } > > if (!done) { > > I think we still need this? Can you please confirm and if so rebase to > master again, sorry, thanks! i need to check master and test it again - i'll replay soon tnx > > -- > Tom
On Tue, Jan 18, 2022 at 3:47 AM Tom Rini <trini@konsulko.com> wrote: > > On Thu, Nov 25, 2021 at 11:08:59AM +0800, Artem Lapkin wrote: > > > Problem > > > > Wrong implementation logic: ramdisk cmdline image address always ignored! > > Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. > > > > We have unbootable raw initrd images because, select_ramdisk for raw > > initrd images ignore submited select addr and setup rd_datap value to 0 > > > > Signed-off-by: Artem Lapkin <art@khadas.com> > > Reviewed-by: Simon Glass <sjg@chromium.org> > > --- > > V2 changes > > _ rebase to master > > _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ > > --- > > boot/image-board.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/boot/image-board.c b/boot/image-board.c > > index bf8817165c..87a8f07432 100644 > > --- a/boot/image-board.c > > +++ b/boot/image-board.c > > @@ -334,7 +334,7 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > > > > if (select) { > > ulong default_addr; > > - bool done = true; > > + bool done = false; > > > > if (CONFIG_IS_ENABLED(FIT)) { > > /* > > @@ -352,13 +352,13 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, > > &fit_uname_config)) { > > debug("* ramdisk: config '%s' from image at 0x%08lx\n", > > fit_uname_config, rd_addr); > > + done = true; > > } else if (fit_parse_subimage(select, default_addr, > > &rd_addr, > > &fit_uname_ramdisk)) { > > debug("* ramdisk: subimage '%s' from image at 0x%08lx\n", > > fit_uname_ramdisk, rd_addr); > > - } else { > > - done = false; > > + done = true; > > } > > } > > if (!done) { > > I think we still need this? Can you please confirm and if so rebase to > master again, sorry, thanks! i have check master which have new commit 621158d106fe53fbb2d786d9d19dff44ad1baf91 no need for this state !! Author: Tom Rini <trini@konsulko.com> Date: Mon Dec 20 09:36:32 2021 -0500 Revert "image: Remove #ifdefs from select_ramdisk()" This reverts commit f33a2c1bd0fb371511a485cac1f182ba50db51be. This causes a crash on some platforms as seen here: https://lore.kernel.org/r/f153017b-c41a-0d32-67b9-f288e695f900@baylibre.com/ Reported-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Tom Rini <trini@konsulko.com> PS: about crash problem maybe its same reason may be need try apply my patch and no need reverts commit f33a2c1bd0fb371511a485cac1f182ba50db51be. > > -- > Tom
Hi, On 23/01/2022 04:32, Art Nikpal wrote: > On Tue, Jan 18, 2022 at 3:47 AM Tom Rini <trini@konsulko.com> wrote: >> >> On Thu, Nov 25, 2021 at 11:08:59AM +0800, Artem Lapkin wrote: >> >>> Problem >>> >>> Wrong implementation logic: ramdisk cmdline image address always ignored! >>> Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. >>> >>> We have unbootable raw initrd images because, select_ramdisk for raw >>> initrd images ignore submited select addr and setup rd_datap value to 0 >>> >>> Signed-off-by: Artem Lapkin <art@khadas.com> >>> Reviewed-by: Simon Glass <sjg@chromium.org> >>> --- >>> V2 changes >>> _ rebase to master >>> _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ >>> --- >>> boot/image-board.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/boot/image-board.c b/boot/image-board.c >>> index bf8817165c..87a8f07432 100644 >>> --- a/boot/image-board.c >>> +++ b/boot/image-board.c >>> @@ -334,7 +334,7 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, >>> >>> if (select) { >>> ulong default_addr; >>> - bool done = true; >>> + bool done = false; >>> >>> if (CONFIG_IS_ENABLED(FIT)) { >>> /* >>> @@ -352,13 +352,13 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, >>> &fit_uname_config)) { >>> debug("* ramdisk: config '%s' from image at 0x%08lx\n", >>> fit_uname_config, rd_addr); >>> + done = true; >>> } else if (fit_parse_subimage(select, default_addr, >>> &rd_addr, >>> &fit_uname_ramdisk)) { >>> debug("* ramdisk: subimage '%s' from image at 0x%08lx\n", >>> fit_uname_ramdisk, rd_addr); >>> - } else { >>> - done = false; >>> + done = true; >>> } >>> } >>> if (!done) { >> >> I think we still need this? Can you please confirm and if so rebase to >> master again, sorry, thanks! > > i have check master which have new commit > 621158d106fe53fbb2d786d9d19dff44ad1baf91 > > no need for this state !! > > Author: Tom Rini <trini@konsulko.com> > Date: Mon Dec 20 09:36:32 2021 -0500 > > Revert "image: Remove #ifdefs from select_ramdisk()" > > This reverts commit f33a2c1bd0fb371511a485cac1f182ba50db51be. > > This causes a crash on some platforms as seen here: > https://lore.kernel.org/r/f153017b-c41a-0d32-67b9-f288e695f900@baylibre.com/ > > Reported-by: Neil Armstrong <narmstrong@baylibre.com> > Signed-off-by: Tom Rini <trini@konsulko.com> > > PS: about crash problem maybe its same reason may be need try apply my > patch and no need reverts commit > f33a2c1bd0fb371511a485cac1f182ba50db51be. Indeed, I missed this fix completely... anyway having a functional release was the most important at that time. Re-sending "image: Remove #ifdefs from select_ramdisk()" with this fix squashed would be the time now. Neil >> >> -- >> Tom
diff --git a/boot/image-board.c b/boot/image-board.c index bf8817165c..87a8f07432 100644 --- a/boot/image-board.c +++ b/boot/image-board.c @@ -334,7 +334,7 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, if (select) { ulong default_addr; - bool done = true; + bool done = false; if (CONFIG_IS_ENABLED(FIT)) { /* @@ -352,13 +352,13 @@ static int select_ramdisk(bootm_headers_t *images, const char *select, u8 arch, &fit_uname_config)) { debug("* ramdisk: config '%s' from image at 0x%08lx\n", fit_uname_config, rd_addr); + done = true; } else if (fit_parse_subimage(select, default_addr, &rd_addr, &fit_uname_ramdisk)) { debug("* ramdisk: subimage '%s' from image at 0x%08lx\n", fit_uname_ramdisk, rd_addr); - } else { - done = false; + done = true; } } if (!done) {
Problem Wrong implementation logic: ramdisk cmdline image address always ignored! Next block { rd_addr = hextoul(select, NULL) } unusable for raw initrd. We have unbootable raw initrd images because, select_ramdisk for raw initrd images ignore submited select addr and setup rd_datap value to 0 Signed-off-by: Artem Lapkin <art@khadas.com> --- V2 changes _ rebase to master _ from https://patchwork.ozlabs.org/project/uboot/patch/20211016051915.4157293-1-art@khadas.com/ --- boot/image-board.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)