mail archive of the rauc mailing list
 help / color / mirror / Atom feed
From: Enrico Joerns <ejo@pengutronix.de>
To: Ladislav Michl <ladis@linux-mips.org>
Cc: rauc@pengutronix.de
Subject: Re: [RAUC] [PATCH] Add suport for bare flash
Date: Fri, 6 Dec 2019 16:01:40 +0100	[thread overview]
Message-ID: <e35147e1-c76e-eb27-6772-ae94bf91a32f@pengutronix.de> (raw)
In-Reply-To: <20191206144357.GA3580578@lenoch>

Hi ladis,

Mind if I play the GitHub bridge?

On 12/6/19 3:43 PM, Ladislav Michl wrote:
> Add handler to write images using flashcp. Used to update barebox on at91
> based board with dataflash.
> 
> Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

There we have all the checking and testing infrastructure. Patches via mailing 
list are not officially supported as you know.

Or did you take the chance of creating an account already?

Regards, Enrico

> ---
>   src/update_handler.c | 72 ++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 72 insertions(+)
> 
> diff --git a/src/update_handler.c b/src/update_handler.c
> index 0415c92..8385096 100644
> --- a/src/update_handler.c
> +++ b/src/update_handler.c
> @@ -497,6 +497,42 @@ out:
>   	return res;
>   }
>   
> +static gboolean flash_write_slot(const gchar *image, const gchar *device, GError **error)
> +{
> +	g_autoptr(GSubprocess) sproc = NULL;
> +	GError *ierror = NULL;
> +	gboolean res = FALSE;
> +	g_autoptr(GPtrArray) args = g_ptr_array_new_full(5, g_free);
> +
> +	g_ptr_array_add(args, g_strdup("flashcp"));
> +	g_ptr_array_add(args, g_strdup(image));
> +	g_ptr_array_add(args, g_strdup(device));
> +	g_ptr_array_add(args, NULL);
> +
> +	r_debug_subprocess(args);
> +	sproc = g_subprocess_newv((const gchar * const *)args->pdata,
> +			G_SUBPROCESS_FLAGS_NONE, &ierror);
> +	if (sproc == NULL) {
> +		g_propagate_prefixed_error(
> +				error,
> +				ierror,
> +				"failed to start flashcp: ");
> +		goto out;
> +	}
> +
> +	res = g_subprocess_wait_check(sproc, NULL, &ierror);
> +	if (!res) {
> +		g_propagate_prefixed_error(
> +				error,
> +				ierror,
> +				"failed to run flashcp: ");
> +		goto out;
> +	}
> +
> +out:
> +	return res;
> +}
> +
>   static gboolean nand_format_slot(const gchar *device, GError **error)
>   {
>   	g_autoptr(GSubprocess) sproc = NULL;
> @@ -1046,6 +1082,41 @@ out:
>   	return res;
>   }
>   
> +static gboolean img_to_flash_handler(RaucImage *image, RaucSlot *dest_slot, const gchar *hook_name, GError **error)
> +{
> +	GError *ierror = NULL;
> +	gboolean res = FALSE;
> +
> +	/* run slot pre install hook if enabled */
> +	if (hook_name && image->hooks.pre_install) {
> +		res = run_slot_hook(hook_name, R_SLOT_HOOK_PRE_INSTALL, NULL, dest_slot, &ierror);
> +		if (!res) {
> +			g_propagate_error(error, ierror);
> +			goto out;
> +		}
> +	}
> +
> +	/* write */
> +	g_message("writing slot device %s", dest_slot->device);
> +	res = flash_write_slot(image->filename, dest_slot->device, &ierror);
> +	if (!res) {
> +		g_propagate_error(error, ierror);
> +		goto out;
> +	}
> +
> +	/* run slot post install hook if enabled */
> +	if (hook_name && image->hooks.post_install) {
> +		res = run_slot_hook(hook_name, R_SLOT_HOOK_POST_INSTALL, NULL, dest_slot, &ierror);
> +		if (!res) {
> +			g_propagate_error(error, ierror);
> +			goto out;
> +		}
> +	}
> +
> +out:
> +	return res;
> +}
> +
>   static gboolean img_to_nand_handler(RaucImage *image, RaucSlot *dest_slot, const gchar *hook_name, GError **error)
>   {
>   	GError *ierror = NULL;
> @@ -1496,6 +1567,7 @@ RaucUpdatePair updatepairs[] = {
>   	{"*.ubifs", "ubivol", img_to_ubivol_handler},
>   	{"*.ubifs", "ubifs", img_to_ubifs_handler},
>   	{"*.img", "ext4", img_to_fs_handler},
> +	{"*.img", "flash", img_to_flash_handler},
>   	{"*.img", "nand", img_to_nand_handler},
>   	{"*.img", "ubifs", img_to_ubifs_handler},
>   	{"*.img", "ubivol", img_to_ubivol_handler},
> 

-- 
Pengutronix e.K.                    | Enrico Jörns                |
Embedded Linux Consulting & Support | Teamleiter Integration      |
Steuerwalder Str. 21                | http://www.pengutronix.de/  |
31137 Hildesheim, Germany           | Phone: +49-5121-206917-5080 |
Amtsgericht Hildesheim, HRA 2686    | Fax:   +49-5121-206917-5555 |


_______________________________________________
RAUC mailing list

  reply	other threads:[~2019-12-06 15:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-06 14:43 Ladislav Michl
2019-12-06 15:01 ` Enrico Joerns [this message]
2019-12-06 17:25   ` Ladislav Michl

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=e35147e1-c76e-eb27-6772-ae94bf91a32f@pengutronix.de \
    --to=ejo@pengutronix.de \
    --cc=ladis@linux-mips.org \
    --cc=rauc@pengutronix.de \
    /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