arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> --- arch/arm/mach-omap/xload.c | 72 ++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c index 6d3704b8cf..78b2221304 100644 --- a/arch/arm/mach-omap/xload.c +++ b/arch/arm/mach-omap/xload.c @@ -53,46 +53,44 @@ static void *read_mtd_barebox(const char *part, unsigned int start, unsigned int struct mtd_info *mtd; unsigned int ps, pe; - if (!IS_ENABLED(CONFIG_MTD)) { - printf("Cannot load from nand/nor: MTD support is disabled\n"); - return NULL; - } + if (IS_ENABLED(CONFIG_MTD)) { + cdev = cdev_open_by_name(part, O_RDONLY); + if (!cdev) { + printf("failed to open partition\n"); + return NULL; + } - cdev = cdev_open_by_name(part, O_RDONLY); - if (!cdev) { - printf("failed to open partition\n"); - return NULL; - } + mtd = cdev->mtd; + if (!mtd) + return NULL; - mtd = cdev->mtd; - if (!mtd) - return NULL; + if (mtd_mod_by_eb(start, mtd) != 0) { + printf("Start must be eraseblock aligned\n"); + return NULL; + } - if (mtd_mod_by_eb(start, mtd) != 0) { - printf("Start must be eraseblock aligned\n"); - return NULL; - } + to = xmalloc(size); - to = xmalloc(size); + ps = mtd_div_by_eb(start, mtd); + pe = mtd_div_by_eb(start + size, mtd); + ret = mtd_peb_read_file(mtd, ps, pe, to, size); + if (ret) { + printf("Can't read image from %s: %d\n", part, ret); + goto err; + } - ps = mtd_div_by_eb(start, mtd); - pe = mtd_div_by_eb(start + size, mtd); - ret = mtd_peb_read_file(mtd, ps, pe, to, size); - if (ret) { - printf("Can't read image from %s: %d\n", part, ret); - goto err; - } + size = get_image_size(to); + if (!size) { + printf("failed to get image size\n"); + goto err; + } - size = get_image_size(to); - if (!size) { - printf("failed to get image size\n"); - goto err; - } + return to; - return to; + err: + free(to); + } -err: - free(to); return NULL; } @@ -292,7 +290,7 @@ static void *am33xx_net_boot(void) */ static __noreturn int omap_xload(void) { - void *func; + void *func = NULL; if (!barebox_part) barebox_part = &default_part; @@ -310,10 +308,8 @@ static __noreturn int omap_xload(void) } else if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { printf("booting from USB\n"); func = omap4_xload_boot_usb(); - } else { + } else printf("booting from USB not enabled\n"); - func = NULL; - } break; case BOOTSOURCE_NAND: printf("booting from NAND\n"); @@ -327,16 +323,16 @@ static __noreturn int omap_xload(void) if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) { printf("booting from serial\n"); func = omap_serial_boot(); - break; } + break; case BOOTSOURCE_NET: if (IS_ENABLED(CONFIG_AM33XX_NET_BOOT)) { printf("booting from NET\n"); func = am33xx_net_boot(); - break; } else { printf("booting from network not enabled\n"); } + break; default: printf("unknown boot source. Fall back to nand\n"); func = omap_xload_boot_nand(barebox_part); -- 2.32.0 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
On Wed, Jun 01, 2022 at 10:14:52AM +0300, Alexander Shiyan wrote: > arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': > /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' > > Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> > --- > arch/arm/mach-omap/xload.c | 72 ++++++++++++++++++-------------------- > 1 file changed, 34 insertions(+), 38 deletions(-) Applied, thanks Sascha > > diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c > index 6d3704b8cf..78b2221304 100644 > --- a/arch/arm/mach-omap/xload.c > +++ b/arch/arm/mach-omap/xload.c > @@ -53,46 +53,44 @@ static void *read_mtd_barebox(const char *part, unsigned int start, unsigned int > struct mtd_info *mtd; > unsigned int ps, pe; > > - if (!IS_ENABLED(CONFIG_MTD)) { > - printf("Cannot load from nand/nor: MTD support is disabled\n"); > - return NULL; > - } > + if (IS_ENABLED(CONFIG_MTD)) { > + cdev = cdev_open_by_name(part, O_RDONLY); > + if (!cdev) { > + printf("failed to open partition\n"); > + return NULL; > + } > > - cdev = cdev_open_by_name(part, O_RDONLY); > - if (!cdev) { > - printf("failed to open partition\n"); > - return NULL; > - } > + mtd = cdev->mtd; > + if (!mtd) > + return NULL; > > - mtd = cdev->mtd; > - if (!mtd) > - return NULL; > + if (mtd_mod_by_eb(start, mtd) != 0) { > + printf("Start must be eraseblock aligned\n"); > + return NULL; > + } > > - if (mtd_mod_by_eb(start, mtd) != 0) { > - printf("Start must be eraseblock aligned\n"); > - return NULL; > - } > + to = xmalloc(size); > > - to = xmalloc(size); > + ps = mtd_div_by_eb(start, mtd); > + pe = mtd_div_by_eb(start + size, mtd); > + ret = mtd_peb_read_file(mtd, ps, pe, to, size); > + if (ret) { > + printf("Can't read image from %s: %d\n", part, ret); > + goto err; > + } > > - ps = mtd_div_by_eb(start, mtd); > - pe = mtd_div_by_eb(start + size, mtd); > - ret = mtd_peb_read_file(mtd, ps, pe, to, size); > - if (ret) { > - printf("Can't read image from %s: %d\n", part, ret); > - goto err; > - } > + size = get_image_size(to); > + if (!size) { > + printf("failed to get image size\n"); > + goto err; > + } > > - size = get_image_size(to); > - if (!size) { > - printf("failed to get image size\n"); > - goto err; > - } > + return to; > > - return to; > + err: > + free(to); > + } > > -err: > - free(to); > return NULL; > } > > @@ -292,7 +290,7 @@ static void *am33xx_net_boot(void) > */ > static __noreturn int omap_xload(void) > { > - void *func; > + void *func = NULL; > > if (!barebox_part) > barebox_part = &default_part; > @@ -310,10 +308,8 @@ static __noreturn int omap_xload(void) > } else if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { > printf("booting from USB\n"); > func = omap4_xload_boot_usb(); > - } else { > + } else > printf("booting from USB not enabled\n"); > - func = NULL; > - } > break; > case BOOTSOURCE_NAND: > printf("booting from NAND\n"); > @@ -327,16 +323,16 @@ static __noreturn int omap_xload(void) > if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) { > printf("booting from serial\n"); > func = omap_serial_boot(); > - break; > } > + break; > case BOOTSOURCE_NET: > if (IS_ENABLED(CONFIG_AM33XX_NET_BOOT)) { > printf("booting from NET\n"); > func = am33xx_net_boot(); > - break; > } else { > printf("booting from network not enabled\n"); > } > + break; > default: > printf("unknown boot source. Fall back to nand\n"); > func = omap_xload_boot_nand(barebox_part); > -- > 2.32.0 > > > _______________________________________________ > barebox mailing list > barebox@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/barebox > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
On 01.06.22 09:14, Alexander Shiyan wrote: > arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': > /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' Am I missing something or does this patch just change if (0) { return NULL; } /* something */; return to; into if (0) { /* something */ return to; } return NULL; This shouldn't really make a difference. How old is your GCC? Cheers, Ahmad > > Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> > --- > arch/arm/mach-omap/xload.c | 72 ++++++++++++++++++-------------------- > 1 file changed, 34 insertions(+), 38 deletions(-) > > diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c > index 6d3704b8cf..78b2221304 100644 > --- a/arch/arm/mach-omap/xload.c > +++ b/arch/arm/mach-omap/xload.c > @@ -53,46 +53,44 @@ static void *read_mtd_barebox(const char *part, unsigned int start, unsigned int > struct mtd_info *mtd; > unsigned int ps, pe; > > - if (!IS_ENABLED(CONFIG_MTD)) { > - printf("Cannot load from nand/nor: MTD support is disabled\n"); > - return NULL; > - } > + if (IS_ENABLED(CONFIG_MTD)) { > + cdev = cdev_open_by_name(part, O_RDONLY); > + if (!cdev) { > + printf("failed to open partition\n"); > + return NULL; > + } > > - cdev = cdev_open_by_name(part, O_RDONLY); > - if (!cdev) { > - printf("failed to open partition\n"); > - return NULL; > - } > + mtd = cdev->mtd; > + if (!mtd) > + return NULL; > > - mtd = cdev->mtd; > - if (!mtd) > - return NULL; > + if (mtd_mod_by_eb(start, mtd) != 0) { > + printf("Start must be eraseblock aligned\n"); > + return NULL; > + } > > - if (mtd_mod_by_eb(start, mtd) != 0) { > - printf("Start must be eraseblock aligned\n"); > - return NULL; > - } > + to = xmalloc(size); > > - to = xmalloc(size); > + ps = mtd_div_by_eb(start, mtd); > + pe = mtd_div_by_eb(start + size, mtd); > + ret = mtd_peb_read_file(mtd, ps, pe, to, size); > + if (ret) { > + printf("Can't read image from %s: %d\n", part, ret); > + goto err; > + } > > - ps = mtd_div_by_eb(start, mtd); > - pe = mtd_div_by_eb(start + size, mtd); > - ret = mtd_peb_read_file(mtd, ps, pe, to, size); > - if (ret) { > - printf("Can't read image from %s: %d\n", part, ret); > - goto err; > - } > + size = get_image_size(to); > + if (!size) { > + printf("failed to get image size\n"); > + goto err; > + } > > - size = get_image_size(to); > - if (!size) { > - printf("failed to get image size\n"); > - goto err; > - } > + return to; > > - return to; > + err: > + free(to); > + } > > -err: > - free(to); > return NULL; > } > > @@ -292,7 +290,7 @@ static void *am33xx_net_boot(void) > */ > static __noreturn int omap_xload(void) > { > - void *func; > + void *func = NULL; > > if (!barebox_part) > barebox_part = &default_part; > @@ -310,10 +308,8 @@ static __noreturn int omap_xload(void) > } else if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { > printf("booting from USB\n"); > func = omap4_xload_boot_usb(); > - } else { > + } else > printf("booting from USB not enabled\n"); > - func = NULL; > - } > break; > case BOOTSOURCE_NAND: > printf("booting from NAND\n"); > @@ -327,16 +323,16 @@ static __noreturn int omap_xload(void) > if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) { > printf("booting from serial\n"); > func = omap_serial_boot(); > - break; > } > + break; > case BOOTSOURCE_NET: > if (IS_ENABLED(CONFIG_AM33XX_NET_BOOT)) { > printf("booting from NET\n"); > func = am33xx_net_boot(); > - break; > } else { > printf("booting from network not enabled\n"); > } > + break; > default: > printf("unknown boot source. Fall back to nand\n"); > func = omap_xload_boot_nand(barebox_part); -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Hello. It's just the result of the my master branch not being updated from remote before I made the changes... Sorry :) чт, 2 июн. 2022 г. в 11:07, Ahmad Fatoum <a.fatoum@pengutronix.de>: > On 01.06.22 09:14, Alexander Shiyan wrote: > > arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': > > /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' > > Am I missing something or does this patch just change > > if (0) { > return NULL; > } > > /* something */; > return to; > > into > > if (0) { > /* something */ > return to; > } > return NULL; > > > This shouldn't really make a difference. How old is your GCC? _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
On 02.06.22 10:59, Alexander Shiyan wrote: > Hello. > > It's just the result of the my master branch not being updated > from remote before I made the changes... Sorry :) > > чт, 2 июн. 2022 г. в 11:07, Ahmad Fatoum <a.fatoum@pengutronix.de>: >> On 01.06.22 09:14, Alexander Shiyan wrote: >>> arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': >>> /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' >> >> Am I missing something or does this patch just change >> >> if (0) { Typo: if (1) >> return NULL; >> } >> >> /* something */; >> return to; >> >> into >> >> if (0) { >> /* something */ >> return to; >> } >> return NULL; >> >> >> This shouldn't really make a difference. How old is your GCC? i.e. this patch can be dropped again? > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
чт, 2 июн. 2022 г. в 12:01, Ahmad Fatoum <a.fatoum@pengutronix.de>: > On 02.06.22 10:59, Alexander Shiyan wrote: > > Hello. > > > > It's just the result of the my master branch not being updated > > from remote before I made the changes... Sorry :) ... > i.e. this patch can be dropped again? The logic doesn't change with or without a patch, but yes, we can drop it. _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
On Wed, Jun 01, 2022 at 10:14:52AM +0300, Alexander Shiyan wrote: > arm-linux-ld: arch/arm/mach-omap/xload.o: in function read_mtd_barebox': > /home/ARM/barebox/arch/arm/mach-omap/xload.c:75: undefined reference to mtd_peb_read_file' > > Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> > --- > arch/arm/mach-omap/xload.c | 72 ++++++++++++++++++-------------------- > 1 file changed, 34 insertions(+), 38 deletions(-) > > static __noreturn int omap_xload(void) > { > - void *func; > + void *func = NULL; > > if (!barebox_part) > barebox_part = &default_part; > @@ -310,10 +308,8 @@ static __noreturn int omap_xload(void) > } else if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { > printf("booting from USB\n"); > func = omap4_xload_boot_usb(); > - } else { > + } else > printf("booting from USB not enabled\n"); > - func = NULL; > - } > break; > case BOOTSOURCE_NAND: > printf("booting from NAND\n"); > @@ -327,16 +323,16 @@ static __noreturn int omap_xload(void) > if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) { > printf("booting from serial\n"); > func = omap_serial_boot(); > - break; > } > + break; > case BOOTSOURCE_NET: > if (IS_ENABLED(CONFIG_AM33XX_NET_BOOT)) { > printf("booting from NET\n"); > func = am33xx_net_boot(); > - break; > } else { > printf("booting from network not enabled\n"); > } > + break; Despite being the first hunk a no-op, these ones look quite useful. Should we make a separate patch from it? Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox