On Wed, Oct 18, 2017 at 03:41:16PM +0200, Uwe Kleine-König wrote: > From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > This handler updates the non-active MMC boot partition and after a > successful update makes the updated partition the active one. This way > the machine should continue to be bootable when the update fails. Adding something like this as a comment above imx6_bbu_internal_mmcboot_register_handler() would be nice. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > arch/arm/mach-imx/imx-bbu-internal.c | 71 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > > diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c > index 254ccb6369e6..c8a8b5b689fc 100644 > --- a/arch/arm/mach-imx/imx-bbu-internal.c > +++ b/arch/arm/mach-imx/imx-bbu-internal.c > @@ -29,6 +29,7 @@ > #include <linux/mtd/mtd-abi.h> > #include <linux/stat.h> > #include <ioctl.h> > +#include <environment.h> > #include <mach/bbu.h> > > #define FLASH_HEADER_OFFSET_MMC 0x400 > @@ -369,6 +370,63 @@ static int imx_bbu_internal_v2_update(struct bbu_handler *handler, struct bbu_da > return ret; > } > > +static int imx_bbu_internal_v2_mmcboot_update(struct bbu_handler *handler, > + struct bbu_data *data) > +{ > + struct imx_internal_bbu_handler *imx_handler = > + container_of(handler, struct imx_internal_bbu_handler, handler); > + int ret; > + uint32_t *barker; > + char *bootpartvar; > + const char *bootpart; > + char *devicefile; > + > + barker = data->image + imx_handler->flash_header_offset; > + > + if (*barker != IVT_BARKER) { > + printf("Board does not provide DCD data and this image is no imximage\n"); > + return -EINVAL; > + } > + > + ret = asprintf(&bootpartvar, "%s.boot", data->devicefile); > + if (ret < 0) { > + printf("Failed to allocate string for boot variable\n"); I think messages for failed memory allocations which eat more space than the actual allocation should be avoided. Just return -ENOMEM without a message. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox