From patchwork Mon Jan 20 12:43:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1225922 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::239; helo=mail-lj1-x239.google.com; envelope-from=swupdate+bncbc6ynavgsakrb7gas3yqkgqedfkhz2a@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=TOa9ITBQ; dkim-atps=neutral Received: from mail-lj1-x239.google.com (mail-lj1-x239.google.com [IPv6:2a00:1450:4864:20::239]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 481WYs0hwqz9sRf for ; Mon, 20 Jan 2020 23:43:44 +1100 (AEDT) Received: by mail-lj1-x239.google.com with SMTP id y24sf7515875ljc.19 for ; Mon, 20 Jan 2020 04:43:44 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579524221; cv=pass; d=google.com; s=arc-20160816; b=ld/EnD1Kt+Y6tVLo+wPQPWmyMLqVsFml9Dbv3zJrpkOk0lztijbF1IpKNssuLxeYdK y2a6orlBl591zNYfNGEiEfS9bNP/7muSz/JS+cy/g1/Bi7rAPbNJncNrjm+RiE3oMDwI KjQXPdP2KoKN6JNh9YsQqT4zAPfkqp/4oo0Gj6ruHEIMmFepQKbCIcxm8UugoFBjghE9 mr3lqhyi5j47Tk30JeEQ/gL9JhCFR24xI0Gz56VAi51czYCJkSfEh3iaIGzFXpHZZ+OW xEOFNP1zllOx6Y1b2n/6IwIchqtH5yyXYF5RwWoJKZk6UKGYxOfDiOosMmgemuwXJyl7 KgJQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=6q0aZoXaGOvkYORAi7krqXlBrwnBqpXsFzXWwM4SB3s=; b=jSqlo+K+QhbJPsv6BM1zKWiNZ/eYtayRaneZvzieWM77FY1auPo1gZ1hzEmljoT1bk fmXMKTgLLlOGx9W05EFmN0kTYz4u1i2+qrqSmMg0xFoPiseGQ14nLzrD1M5d5umph/If 6lKmQ84yHsXlVElDh2P3QnM5FRm//WhxpMVG4qNtM4mn5/V0+9sCywIRv7g66nM+39dB UpMn8qY1bcijlZ/kyV8JJa9zpFOeaE+frVNJ95XSH/67gO3PldB4higjDcy9Lb96RZg6 yeTz1vt++0aXL6Y6OJF0WZwap2TAT5j1Sgky4hzmFvkx06annoulOXM+b0ggBQv3Rj3K NlHA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b="Dq/t+S9g"; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=6q0aZoXaGOvkYORAi7krqXlBrwnBqpXsFzXWwM4SB3s=; b=TOa9ITBQvOC8VB1ECxJ9WnRO65OXzjaJPkqpBcVbAYAPrwCFEZiVhXDKph+gTqF/En Nko4jF8rLd71Rd7bR9OSf7od0DNaM76+2Zzc/aq27fcGyeuPgA79B21tZqsPFN6TvgYY PvEf9qpDlOE7QHl4JLoRAhYEJm848wy23V0LOXcjrx5y1qQCVH5ICyMTGuNaRAL4ddRX 5rY8wkpgy7qxR7/Hz2jkL6t7l5xdUpyepi2M8Fn6A7M0UnQjawiZOW++6w7rPuW934oh WQ59gRCXi1K4WlxoiiKu0H4EuNEGuIqgDKRdkM7EHY/E9loqLqy6yav0gSSjgOw5OF/m Kk3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=6q0aZoXaGOvkYORAi7krqXlBrwnBqpXsFzXWwM4SB3s=; b=j6iVmiLY2A37+sfmjMnyXhGFPvUwri+CTbp80ktCX5V14Np35CdANQaBeOM7cHwVMP pi96ynA6aJK7/UGm4aV5WwwbbCCxqWWl22rJgUIvIvzlzkZp31cOm+9LttVy58iLY6LO EovP89+cctm5l0jD2swBC7rf8jDoPhaIcy8EjEiyU3CqfGl4kbf0+yGVqxU9pTcgE6xW 8RQQxr8p8IW+QOSakJHmBkJFN43zfy2zsK/ODTV4r9f10K5/qAah+S2WqLjjYQItXYIq ptUR5waxHd1cgAlqA9JjqUGuXayPJ4zpbxOMaIMbDTj5N9Sy7axGbT6D0Q6hNEEj2vIn 4gRA== X-Gm-Message-State: APjAAAXgjp4Eq/SgsBvDmMYTpsvCylpbfutOI+gpw3sMH5UC1cachjxo uKSsidZy6tlWjfM5E1ajec4= X-Google-Smtp-Source: APXvYqzHnF3yl2aTD2+VduvlTuAZQ+5w8Fy680Y3xowP6WLFWo2PoKXkmVIqXh+pM8qeZw+8swqYDQ== X-Received: by 2002:ac2:54b4:: with SMTP id w20mr12984519lfk.67.1579524221273; Mon, 20 Jan 2020 04:43:41 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:ac2:5086:: with SMTP id f6ls313715lfm.9.gmail; Mon, 20 Jan 2020 04:43:40 -0800 (PST) X-Received: by 2002:a19:cb97:: with SMTP id b145mr7252024lfg.161.1579524220383; Mon, 20 Jan 2020 04:43:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579524220; cv=none; d=google.com; s=arc-20160816; b=tm92KgLfc7ksxPRYHYYnrhgIY+Bo6r7pfOv8WE335Y1qVkxUJtld92oIFZJk7FBXAf DnuAWRa21s5YomHIET60HJfEFYpnFv1Q0Xn1nXR4X9tGZM4b4U+RzHpIEZrRQWc0CDVY t/2nDffQHvzwhmhy10Fgq3Cvm8SaRIZX6FLCMsqADuqG/QAunY3vkzpspugRHrKQ0y6r urGM+aDGEh2pZskpqwC1+9eVjxUJ44fh40dms+5+ZnmBJkskSnmi+yHuH1hwAhHT5iWw QA5+iv7vPCRZBKJT9rY7OFwJbd40iJALju2EXyW7GLTGIL3t9Hk7Uri2a9E2ZLCAI1dz a9lA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=d+dYq8WlTykZvJmjFD//vRGGjL0BZz+hi4QFfknlPTc=; b=B7I7JjLVY6NpySSl7yOCGvFJSLAukVBi71CP8fNccu+/Dnqlsi1WXEt1ILzNjVIoZF grZLeUMkDgrETL8Gvt/GWzIj+m8ZCv0ox7hXK4+wVBHYgo5GIgHZtx5Sch/XQ3Pipv/l TLTSIVMvweK7/vTZ2khsjpRqdZfdVGutD22a6CwLdcYg093A8/TerYDzhzZ4f3vLdIDb zrfIOI2DDBcHApcgf/xR6OT4HaR4HoFocdWVNzK+usEQzeiuxphu6wEB7Mul9HIiZ3LH OLWMlW04fxV0jMAh2KBKT8irVhdrGWt8q1HJEy5l/GPU5OYqKnG8xtbJNW6z7jlPrtqS 6zZQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b="Dq/t+S9g"; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id p20si1699851lji.1.2020.01.20.04.43.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Jan 2020 04:43:40 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from fe0vm1650.rbesz01.com (unknown [139.15.230.188]) by si0vms0217.rbdmz01.com (Postfix) with ESMTPS id 481WYl5K55z4f3lwb; Mon, 20 Jan 2020 13:43:39 +0100 (CET) Received: from si0vm4642.rbesz01.com (unknown [10.58.172.176]) by fe0vm1650.rbesz01.com (Postfix) with ESMTPS id 481WYl4zWWz2gc; Mon, 20 Jan 2020 13:43:39 +0100 (CET) X-AuditID: 0a3aad12-e6bff700000045d7-cf-5e25a07bfe25 Received: from fe0vm1652.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by si0vm4642.rbesz01.com (SMG Outbound) with SMTP id 66.91.17879.B70A52E5; Mon, 20 Jan 2020 13:43:39 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by fe0vm1652.rbesz01.com (Postfix) with ESMTPS id 481WYl2ntVzB0v; Mon, 20 Jan 2020 13:43:39 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Mon, 20 Jan 2020 13:43:39 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , , Mark Jonas Subject: [swupdate] [PATCH v2 1/3] handlers: add readback handler Date: Mon, 20 Jan 2020 13:43:10 +0100 Message-ID: <20200120124312.15129-2-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200120124312.15129-1-mark.jonas@de.bosch.com> References: <20200120124312.15129-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA22SX0wTWRjFuTNDe6kMHQaQz2p1HUM0KFgQFV00xgejcY0kvhijrFMZaJUW MlMIqAm4EVhRUFECVi3Vdf2zsqkSlwAikequ1P8YV1gTjRo0FUUTqpFGojtDwfbBt3O/c3/3 3HtyMcnuVuuw2WoTRCufx6k0lGbxn/qkHc6ELMPbp/r0yps/pde3DYcvI1Y67N3Uyo6DHlUm sUGTkS3kmYsEce7SzRrTrgPDZEHbnOKR6hVlqHNGFcIYmDRw1W+rQhrMMvUEfHXsVwUWlxFc PvyYCCz+QtB06Fl4FYrAKiYR/utuJRUdy6RA7zs/oWiS2QlO+65RHcMsgK7Xn1WKppgEeF97 l1I0zWRA/62+URaYaXD+wtVRHcEsgYeV5eHKjVh5T+O1ZYHt0eA50k8Fjgfo8nrJA0hrD7Hs IZYTEX+gOMlsKLKkLUhLTRaNgrTdkJK8Jd/SjAKNsa3o4qMcNyIwcqP5mODiaPVWLouNMuZn l5h4yfSzWJgnSJyOLn27ZxMb820sFRotZkky51vdCDDJxdLOXxKyWDqbL9kuiPkBzI0mY4qL p3Px2o0sk8vbhG2CUCCI4+6PGHNAVzTKYLQo5ArFOeY827jN6WkUFhbGTgx1QmMJHOFG83Ck nH3UoWRLBbxFMueO4ZMCODs+DaI30UJdPJ2+WGYYxTUVWr+l6qbQibVyAXEhRpAcQH0IIy6G FpXASPn7BfOALlMqih4bBqHUUzLDtAJ8PT8TfO2DCBytHxF4hz8hOOXzI/AP1hHg6xkioKN/ hABX5wAFH47XhYO3uVwFl8orVdDd266CB+12NTw6c0wNr4+8wdDnPDwBLp5xTQDvhRORcP1k LQ1/N32iwfOhLgra9pzUgv9KjxYcX3q1UHNsWAv7fv8nGnyPh1jY7zkUA031B2OhvPp+LHRW VMcNyF0Scpf/LuSULm287Ttdjk2Dj9OVobSue5oZrsyc6aYbXmNbf8fZpCSqaVHG81clkUvU NctN5x6qH/za7FlttJb+cCO+cc3umqGo2WTx3tJzq5JOv0kufjJPP7VhFrV+YPoKi++3ohd7 76xuIN8/bbkymLOh4uWtV3zN2p6pW1o8Uuq15+0Gw0jhpRbN8kl6f4XLn9lzu3EdR0kmPiWR FCX+f5GP+pUXBAAA X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b="Dq/t+S9g"; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Kevin Zhang To verify that an image was written properly, this readback handler calculates the sha256 hash of a partition (or part of it) and compares it against a given hash value. Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas --- handlers/Config.in | 14 +++- handlers/Makefile | 1 + handlers/readback_handler.c | 124 ++++++++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 handlers/readback_handler.c diff --git a/handlers/Config.in b/handlers/Config.in index 41eac1c..be1c7a0 100644 --- a/handlers/Config.in +++ b/handlers/Config.in @@ -48,7 +48,7 @@ config UBIWHITELIST help Define a list of MTD devices that are planned to have always UBI. If first attach fails, the device is erased - and tried again. + and tried again. The list can be set as a string with the mtd numbers. Examples: "0 1 2" This sets mtd0-mtd1-mtd2 to be used as UBI volumes. @@ -106,6 +106,18 @@ config RDIFFHANDLER Add support for applying librsync's rdiff patches, see http://librsync.sourcefrog.net/ +config READBACKHANDLER + bool "readback" + depends on HASH_VERIFY + default n + help + To verify that an image was written properly, this readback handler + calculates the sha256 hash of a partition (or part of it) and compares + it against a given hash value. + + This is a post-install handler running at the same time as + post-install scripts. + config LUASCRIPTHANDLER bool "Lua Script" depends on LUA diff --git a/handlers/Makefile b/handlers/Makefile index 61e4f76..b756f31 100644 --- a/handlers/Makefile +++ b/handlers/Makefile @@ -15,6 +15,7 @@ obj-$(CONFIG_CFIHAMMING1)+= flash_hamming1_handler.o obj-$(CONFIG_LUASCRIPTHANDLER) += lua_scripthandler.o obj-$(CONFIG_RAW) += raw_handler.o obj-$(CONFIG_RDIFFHANDLER) += rdiff_handler.o +obj-$(CONFIG_READBACKHANDLER) += readback_handler.o obj-$(CONFIG_REMOTE_HANDLER) += remote_handler.o obj-$(CONFIG_SHELLSCRIPTHANDLER) += shell_scripthandler.o obj-$(CONFIG_SSBLSWITCH) += ssbl_handler.o diff --git a/handlers/readback_handler.c b/handlers/readback_handler.c new file mode 100644 index 0000000..d99a574 --- /dev/null +++ b/handlers/readback_handler.c @@ -0,0 +1,124 @@ +/* + * SPDX-FileCopyrightText: 2020 Bosch Sicherheitssysteme GmbH + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "swupdate.h" +#include "handler.h" +#include "sslapi.h" +#include "util.h" + +void readback_handler(void); +static int readback_postinst(struct img_type *img); + +static int readback(struct img_type *img, void *data) +{ + if (!data) + return -1; + + script_fn scriptfn = *(script_fn *)data; + switch (scriptfn) { + case POSTINSTALL: + return readback_postinst(img); + case PREINSTALL: + default: + return 0; + } +} + +static int readback_postinst(struct img_type *img) +{ + /* Get property: partition hash */ + unsigned char hash[SHA256_HASH_LENGTH]; + char *ascii_hash = dict_get_value(&img->properties, "sha256"); + if (!ascii_hash || ascii_to_hash(hash, ascii_hash) < 0 || !IsValidHash(hash)) { + ERROR("Invalid hash"); + return -EINVAL; + } + + /* Get property: partition size */ + unsigned int size = 0; + char *value = dict_get_value(&img->properties, "size"); + if (value) { + size = strtoul(value, NULL, 10); + } else { + TRACE("Property size not found, use partition size"); + } + + /* Get property: offset */ + unsigned long offset = 0; + value = dict_get_value(&img->properties, "offset"); + if (value) { + offset = strtoul(value, NULL, 10); + } else { + TRACE("Property offset not found, use default 0"); + } + + /* Open the device (partition) */ + int fdin = open(img->device, O_RDONLY); + if (fdin < 0) { + ERROR("Failed to open %s: %s", img->device, strerror(errno)); + } + + /* Get the real size of the partition, if size is not set. */ + if (size == 0) { + if (ioctl(fdin, BLKGETSIZE64, &size) < 0) { + ERROR("Cannot get size of %s", img->device); + close(fdin); + return -EFAULT; + } + TRACE("Partition size: %u", size); + } + + /* + * Seek the file descriptor before passing it to copyfile(). + * This is necessary because copyfile() only accepts streams, + * so the file descriptor shall be already at the right position. + */ + if (lseek(fdin, offset, SEEK_SET) < 0) { + ERROR("Seek %lu bytes failed: %s", offset, strerror(errno)); + close(fdin); + return -EFAULT; + } + + /* + * Perform hash verification. We do not need to pass an output device to + * the copyfile() function, because we only want it to verify the hash of + * the input device. + */ + unsigned long offset_out = 0; + int status = copyfile(fdin, + NULL, /* no output */ + size, + &offset_out, + 0, /* no output seek */ + 1, /* skip file, do not write to the output */ + 0, /* no compressed */ + NULL, /* no checksum */ + hash, + 0, /* no encrypted */ + NULL); /* no callback */ + if (status == 0) { + INFO("Readback verification success"); + } else { + ERROR("Readback verification failed, status=%d", status); + } + + close(fdin); + return status; +} + +__attribute__((constructor)) +void readback_handler(void) +{ + register_handler("readback", readback, SCRIPT_HANDLER | NO_DATA_HANDLER, NULL); +} From patchwork Mon Jan 20 12:43:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1225928 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::439; helo=mail-wr1-x439.google.com; envelope-from=swupdate+bncbc6ynavgsakrbegbs3yqkgqeohjr36a@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=scPrDw7W; dkim-atps=neutral Received: from mail-wr1-x439.google.com (mail-wr1-x439.google.com [IPv6:2a00:1450:4864:20::439]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 481WZC5y30z9sRl for ; Mon, 20 Jan 2020 23:44:03 +1100 (AEDT) Received: by mail-wr1-x439.google.com with SMTP id c6sf14015047wrm.18 for ; Mon, 20 Jan 2020 04:44:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579524240; cv=pass; d=google.com; s=arc-20160816; b=xTTBIFoBuIx8cknY6Vk5tBMAgbdfjbUxI/asWRBnwe5GcYRrQVfYL2zosNRECgZlJn rz2HyJsMzhGYc8nejzl3lqTaB9o3+spZFwy7MU93ORH3Oc0BSX217fFNCcg1+NWVfSlU p1pgzy/PvXH99UzZ8rFwfKP7MnOvn69c0ZcNA1euldqRe0suNfqJantepo1BEf/NDpAe 49eC643Ddf91nOl4WF9SGB7Plv1XJQ8dSrqUlbodMLZqaVZAnyrd+o5BBU7TurINW5j5 mPADJazO1go/b3zYxLH85iRGAakbGc2Zx5t/vbyo9KRS7lyisoHL/jIB4CUPOd9tsEAx 8RLw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=nB/LiL/JwWnnczxieBJzBnU1ic3QgPci90ft46Tt5L8=; b=ygiwN7DIGwGSCk+HFNvyENNC9+ejltEwhRYlA/dKuvrKQbX/XfcBVsPHvaQ9uNvi2+ 6SGgs8T9FSeiG5f6rw+oYW/k2AvRNA13NBYaJDu8izG6GWjy9201dwfFml+dPTlf1Oju eqm4THEVtANXehZe4Hwz0iF/kV4I79ruUjL5zW0nLmgFQPhX7ZdZl5CoZfMvE0s9CM0a 2D8Iq+SMRtgAVvDjIZ2J/MHWxuQvuxqF97CrJZtSzSwyXFNbpesepb87IZUUOP7IczDJ gJ2VsrVHkQKnGC/nWPs07UepOlDPakUzT7+mw284VNVTncf69kb752HOkz8UWEmWSgb0 YMeQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ZL2avRiX; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=nB/LiL/JwWnnczxieBJzBnU1ic3QgPci90ft46Tt5L8=; b=scPrDw7WZr1R/CnshvlDI9lr/84FVRk+gK/U0bnXJ+MXc2mLOtJIXZInXuxwC+p9B4 zAb2KwzmGCUnXIJbXVGUEIb3j/dqxT5RjM0pplGdl6OWQMCcqT7dDCNs33uBjv6knfnm JqccDKry4LYDu/o8/3tTbWoRkadF3tZJoTNpQN85LsDCe8P+OyrhydWLfh3FgfZMEfhz DsVFJpFUe0Fd9oAD0oX9McwuwuOG/CQf9y7lAjY6hskFPxXG3u/BYvG/oD+54ZzJmarW p/aqMoITYWxa527kUFiurjHfyDWmJwj4imT81Gnf6pV8MpiO7CktaFy9uZdlcz0Ht732 9lkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=nB/LiL/JwWnnczxieBJzBnU1ic3QgPci90ft46Tt5L8=; b=LOL4wAVQmeUeYy3GkI1dHNf+aG4mY2XqambaFYKgAiSr4OYPgYJ4btvo8HXczvy+fE kpWpdm2DkpY5wK8F0+A060UDs9SvnvShLsg0pkuxMwV4nUAK9+YEFMs/+u686JqGibrr EhyuxmZ83gAqrZIKvwkAjZLBlRcU0Sj51hhjCpBMmx40u6Jrohyppt6aev1cSfPc+A6P JIC8tjyx1n84L5J3fD7+e0HuMQIswj4s5Np07UmCMgWrRFBfnu26iREO0UpMSkayL2i+ 87aqcJTe2ypMb5mmuEHQ4LLpnA/DDrldVuchganXKGOMmmUgG8hw3x4xhjHhJTdMZdpZ aM7g== X-Gm-Message-State: APjAAAXaFBGdtRVeRZrxPfFF3Bl38sb6r/Kx8dzFYq6rBqdfKb5qTUnW BnbX8iTeEdGGvuMjxBoU8Gw= X-Google-Smtp-Source: APXvYqzOI2GZmLu2KKcLYTiAU9l5EFlL4/jNiTdmFQ39Xrp9h+p7KBHwpOfX8pktTJDq8SNlcZKRbg== X-Received: by 2002:a05:6000:11c9:: with SMTP id i9mr18661763wrx.164.1579524240582; Mon, 20 Jan 2020 04:44:00 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a1c:e913:: with SMTP id q19ls24020wmc.3.canary-gmail; Mon, 20 Jan 2020 04:43:59 -0800 (PST) X-Received: by 2002:a7b:cb0a:: with SMTP id u10mr19278021wmj.165.1579524239684; Mon, 20 Jan 2020 04:43:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579524239; cv=none; d=google.com; s=arc-20160816; b=DoVauaZcCtsSn9W2sghpDE1Vsgoap5Ov+acuYvQS+9URlsB6m9620+HtaKkDYB57it pTYId4zTdKJ8MKQYlQrtc5YotuVTfpf8d66zJn+Q95opUMaikE/RjOPHbBubiLJNSxAV wfhuMoWtuCFj8li9hsV7h2WZ9g4gJMPqx38iGoO9rUN2PnAPFxIe59/zScELJdbJh1Bo gvaaW5041437Qzm2uN62UXcOQzBWFI0R3FVB9fHmN9ua1qYpjXmN7H2DRQloQe7/EtAb vVPZkzWR8DF9x1nVjeA7PvFJhkn8K5i35Gkz0FNuk1eGDFriOs5pf5jCqKsW1RiSPjb5 MVSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=MydMJqOcwsMwXsYJylm1YL0OfpX4e8qdjMuTKVNwlo0=; b=k8ktDdIeR7LB7+Y1xmRCQJft8TbymE3abgyceNn1XZk84XBn0JYgwB94kmuJtNIsQG a0us4YtF+CmV8osQ0NkICY7epURMraVhORiIA5SWsoCTa56qx/v+k0/bM2maWMHbfnTS qbMlwcwv+t4QGIqO0wjyLuoYqr1mGy+jO3I01XGcCopqgxBCX+UPDZnAsTmjWSYepOWS C1y3n08qJVxdlIqNH/LRM6437UsSIVlVg9XKXg6KsjgdWkE/caUGBkmJFYm6XqHJMsxw zkoL+mEAYkMVJ2MxoyUwBCoHXK5lIH5ehGQJk9Gl0tG1NVAa23gW2kTyJKF6/mZXiUyE q3nw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ZL2avRiX; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id p23si700968wma.1.2020.01.20.04.43.59 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Jan 2020 04:43:59 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from si0vm1947.rbesz01.com (unknown [139.15.230.188]) by si0vms0217.rbdmz01.com (Postfix) with ESMTPS id 481WZ72LSZz4f3lwN; Mon, 20 Jan 2020 13:43:59 +0100 (CET) Received: from si0vm2082.rbesz01.com (unknown [10.58.172.176]) by si0vm1947.rbesz01.com (Postfix) with ESMTPS id 481WZ728Tbz6CjRqB; Mon, 20 Jan 2020 13:43:59 +0100 (CET) X-AuditID: 0a3aad16-083ff70000004782-16-5e25a08f078b Received: from si0vm1949.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by si0vm2082.rbesz01.com (SMG Outbound) with SMTP id E0.3C.18306.F80A52E5; Mon, 20 Jan 2020 13:43:59 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by si0vm1949.rbesz01.com (Postfix) with ESMTPS id 481WZ70Hxfz6CjZNl; Mon, 20 Jan 2020 13:43:59 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Mon, 20 Jan 2020 13:43:43 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , , Kevin Zhang , Mark Jonas Subject: [swupdate] [PATCH v2 2/3] doc: handlers: add readback handler documentation Date: Mon, 20 Jan 2020 13:43:11 +0100 Message-ID: <20200120124312.15129-3-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200120124312.15129-1-mark.jonas@de.bosch.com> References: <20200120124312.15129-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjl+LIzCtJLcpLzFFi42Lhslorq9u/QDXOoPMxm0X7KR+L6Tt/sDow ecybdYLFY8/Ek2wBTFFcNimpOZllqUX6dglcGRf2r2csuCla8Xr6H5YGxlP8XYycHBICJhIr Fy9h6WLk4hASmM4k8f7Vd2aQhJDAPkaJv81hEImtjBLXly5hA0mwCWhJ3DyxA6xIRMBQ4vq7 n0wgRcwCyxkl1uz/ApYQFvCUONT0CKyBRUBVYufjfSwgNq+AjcTiNbtZIFbLS6zecACsnlPA VuJKeytrFyMH0DYbifmHHSDKBSVOznwCVs4sICFx8MUL5gmM/LOQpGYhSS1gZFrFKFqcaVCW a2RgYaRXlJRaXGVgqJecn7uJERJmYjsYl55KO8TIxMF4iNGUg0lJlJc9SylOiC8pP6UyI7E4 I76oNCe1WEmKt/5NZ6yQMFy4uDQpN7O4ODM/7xCjBAezkgjvgibVOCHelMTKqtSifIi2Q4zS HCxK4rzpHP4xQgLpiSWp2ampBalFMFlrDg4lCd62+UCNgkWp6akVaZk5JTBpJVleRgYGBiEx ZBlka5k4OA8xGnPwAO2ePQ9kd3FBYm5xZjpUuyREuxBMFKH1FKO5lDivhRVQjwBINqM0D26r lAyv1iRgAIgiSSB0vmK8wcjBqCTM+xHkZh5gAkTYJ8HbAAoiQaggQpPREqAegYXsEv9Xq0vM 2/GVUeLFj++MEp8vfmKSOLJ7GqvEltZ2NomOlp88ElfWv+GV+P35OJ9E35wf/BI9S48JSuxr 6xWVuNc2WUzi86z7EhITlm2Ukvg35aGcxNb9G+QlFq3qU5doXb9KU+Jyx00diRVzGnUlzp9d aSQxY8cVI4nPK/cYS0z6vsZW4s71k7YSP3pW2Uk8edjiILG5abuTxIzZR1wk3h1e4iFx5+42 31fAsGQChuVVcyVQWJYklmAJS6gownNSDYyceRwPSlpF9F1N9a13BizlXS+c9ICjfZHyJGuL uZru+1NLuXjmR3Ctnsni6PPaL6c68pbOYYcHAQ82fSs596fK7YUV55S7MUsmKC5UDLoempLE yBd30izMN2vits78F0WT0xL6cvTDAnQqevlVsqLfVcwK+XD7ZcCE89KL1i48vTbLc9GF50os xRmJhlrMRcWJAHEHz18ZBAAA X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=ZL2avRiX; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Kevin Zhang Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas Reviewed-by: Stefano Babic --- doc/source/handlers.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/doc/source/handlers.rst b/doc/source/handlers.rst index 6b694af..a55292b 100644 --- a/doc/source/handlers.rst +++ b/doc/source/handlers.rst @@ -642,4 +642,45 @@ of the two SSBL administration. | | | when this SSBL is set. | +-------------+----------+----------------------------------------------------+ +Readback Handler +---------------- +To verify that an image was written properly, this readback handler calculates +the sha256 hash of a partition (or part of it) and compares it against a given +hash value. + +The following example explains how to use this handler: + +:: + scripts: ( + { + device = "/dev/mmcblk2p1"; + type = "readback"; + properties: { + sha256 = "e7afc9bd98afd4eb7d8325196d21f1ecc0c8864d6342bfc6b6b6c84eac86eb42"; + size = "184728576"; + offset = "0"; + }; + } + ); + +Properties ``size`` and ``offset`` are optional, all the other properties are mandatory. + +.. table:: Properties for readback handler + + +-------------+----------+----------------------------------------------------+ + | Name | Type | Description | + +=============+==========+====================================================+ + | device | string | The partition which shall be verified. | + +-------------+----------+----------------------------------------------------+ + | type | string | Identifier for the handler. | + +-------------+----------+----------------------------------------------------+ + | sha256 | string | Expected sha256 hash of the partition. | + +-------------+----------+----------------------------------------------------+ + | size | string | Data size (in bytes) to be verified. | + | | | If 0 or not set, the handler will get the | + | | | partition size from the device. | + +-------------+----------+----------------------------------------------------+ + | offset | string | Offset (in bytes) to the start of the partition. | + | | | If not set, default value 0 will be used. | + +-------------+----------+----------------------------------------------------+ From patchwork Mon Jan 20 12:43:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: 'Darko Komljenovic' via swupdate X-Patchwork-Id: 1225929 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::23f; helo=mail-lj1-x23f.google.com; envelope-from=swupdate+bncbc6ynavgsakrbe6bs3yqkgqedcwz7ya@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=googlegroups.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=AryKhnVD; dkim-atps=neutral Received: from mail-lj1-x23f.google.com (mail-lj1-x23f.google.com [IPv6:2a00:1450:4864:20::23f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 481WZH2HXPz9sRf for ; Mon, 20 Jan 2020 23:44:07 +1100 (AEDT) Received: by mail-lj1-x23f.google.com with SMTP id m1sf7507723lji.5 for ; Mon, 20 Jan 2020 04:44:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579524244; cv=pass; d=google.com; s=arc-20160816; b=flAEXbvCTMndYHb5ULvkqfDBe2vts+4339uLU5vCm9B97CN3042Bp+CfOuplsLDZLF 3uqxLgVP7lkkKti2Idoek6rVWDR4NSHOJ5DzbGMbabw4/5ObSlrGhtl8oYerqzadCQdV wKP7/8SY+QnDaQJVJdkHkcRJZtDWp/Uwu6biCPZA+MdFy49eWpmASPwjkWE0gSoaLRI/ Wt+IThKPH5HcQIps3pXUrejaMHkHmZEU+FJ49Wj2R/0rWbsgDkfOJLlrJoHAkzPXXEuV ZYvaG5UgcT0glXL3cujBx3g5l5xsI5HXUHsj4KISrnYfU961TfqlWvgeeJNSRPQzfjcE VnTQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=SaFwk1VnTAVDPptOcD86AHm7mTopmoGUViYKUAD7v/w=; b=lYS2VVj+Z7UKhsszFkYG/a6/JlQ8N+x7bxKyvXzz9pI+hIbkbGVxodVFHBSX8tS5l/ mgOMi5leX49gjT6HppVg4KfRjl9v0b+cEdmcDRh53SNenk78BaVgiQi8dMkPp6xKWmQu dFTFrAl3Y8ryPYbEcrgAWKxyBdtvFcDkAST1Y/X3O9gcrMIXxdh/Jn/oKicIxVATMR7U R1iiFkFTYWUclylOKKHhLwAx7va7HZFfyJHDSPxDPUKaGZ66hYOhyPu3llXljegTG2hT +NPBWAHOve1SX58Es/AilYs/r3tGagxrYSNVuKlPc80hKcEyrBzwaw1jew7pXblG0xJq BFKQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=p0GnFwK+; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=SaFwk1VnTAVDPptOcD86AHm7mTopmoGUViYKUAD7v/w=; b=AryKhnVDbxaO+KpzVrmtdlMj4jklH1JGX5RFJIZd7YZnd5t09m0luLTm8wAJVuDt0k nvK4oqUvMysF9KLboIZLa9vgey7syj49V02+EhrCWm8CXOz5axw76dR+b3akpoEciMdg hUNnCBHZR6ksTAZRBhAQLljrWcuBp/AoHA48T868uXDVGu6/whZcaCc2q8ZWaMHQWXOv SwRT98b9ktJt6G4MZ8Qi7X6+XOAU3K64HJBd756L7U7LCGHKVuk8PUJ8ecTbv9+KwOQk 78i9pTk3ehelroRBDvrZBBaVsdN02chxCY8G6h4N29XrXgEL4WCUMPuQie7i38mcvjOQ nSbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=SaFwk1VnTAVDPptOcD86AHm7mTopmoGUViYKUAD7v/w=; b=XbClh1H3D/Urozdo0oNGpaTwgpfmUOpfgLFx6A8/MF4lurvc63aFWX2BplnLL9ZTUU EoZCCX1FQ4p3KN8hnjzOe20ZxlaKfmwfLcMnTTJ0Zztouw6HFE4fVgpzCDWhAee0Wi8i 1jtncgzviSKYZoyaBYcApzt6Ttr6ffpT+iDout6sqRZOlfr2KxKhrVVp/PovtnsIiFHr EGba2KgHuUkmR9VsmN0mvY6aXSgZQi3aGLbj19a+71j16lJzjNin9UpSa0sic73v+49d jyc6lmb1DXEG4SVpr2KYdYxlbl7PgSYvDN09BUQLIg8XRuT8/Hkil5w77Qd7rT5PjTCI ZPCg== X-Gm-Message-State: APjAAAW3wULTnScJXA+wGF/wytlsRx3JPZLEu646hj244YYLOqDCOQbw 0zabMRAdM/8MabAkNTSWmmI= X-Google-Smtp-Source: APXvYqwih0Pi71aGbDO3FjqK5zmHbGPXl5AfKneIjbCOfRCLTIy7uhqWowDCLsX0LMeLdIqLrhRL2g== X-Received: by 2002:ac2:531b:: with SMTP id c27mr13328040lfh.91.1579524244037; Mon, 20 Jan 2020 04:44:04 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a19:3f0b:: with SMTP id m11ls3066009lfa.0.gmail; Mon, 20 Jan 2020 04:44:03 -0800 (PST) X-Received: by 2002:ac2:52a3:: with SMTP id r3mr13116752lfm.189.1579524243394; Mon, 20 Jan 2020 04:44:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579524243; cv=none; d=google.com; s=arc-20160816; b=oGogcBouD7YZ/h9K/GoxIeAw1jZRLJ1tKSEt1i7HIrGqutjSFTs0rzrGIJenq9jNKp FcrbyspV1/O3dMkb+lPRsH4zR/Bo1BlNDVQk1Pfnlgnd6rRbtreCeXBaR3I4iGuatant OHMX2sS3a5nQXVJ+p75L3Nt4iF7iU+j2RbEMMuTpjLYa63VzkGmkjEvUHUop0BbbUc6I XET7t8/gMaTrs+PIdLmVjmACjGyEjDEEp45RAv3+6ON1PXOmhtHXKCTw4MFMOJGvYVOB 45avaBDETRQfTVi4z2bqwy2LB2RyT9ACed2o3yjt504jE5M93QJE6DWFoXtUKkngzEGu Ck8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Fe8hrUfr2fvmesinyz6vsYHvHVhH7bLv3af+L/4aMow=; b=RMxb2dutMDFVGrpWe9GOSukAc+91P8qFcO0UkXKLRMLa4TJWix6b1C9I4hgY51wJKn /6OHLaaMFpYTIPoXLUcqhKBLceB5oxB1TNp6EmO8Bgk9uES1H12KZz8C44/xb9NKK/G+ Zojr0IJo7ozMGCIq5xXWyCgC8j+Vl2lHePJbgeZxNxN/chhEJp07QNk8ZLB846GsPx8V ICdFT1JJ4YvDvRGPcTdI8WJAjU794V1A37di+xzTpqrCVI3a5dR3owKXDdvPyqlzFGLW uHaMFtX79Q6X7VJYe55iomwK/LzHDO6SyJ9UU7tNk48TvP8yUlNA+8YDNgz7Q8wtX9wT ILJg== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=p0GnFwK+; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com Received: from de-out1.bosch-org.com (de-out1.bosch-org.com. [139.15.230.186]) by gmr-mx.google.com with ESMTPS id 68si1508876lfi.3.2020.01.20.04.44.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Jan 2020 04:44:03 -0800 (PST) Received-SPF: pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) client-ip=139.15.230.186; Received: from fe0vm1649.rbesz01.com (unknown [139.15.230.188]) by fe0vms0187.rbdmz01.com (Postfix) with ESMTPS id 481WZB4nYJz1XLDR5; Mon, 20 Jan 2020 13:44:02 +0100 (CET) Received: from fe0vm1741.rbesz01.com (unknown [10.58.172.176]) by fe0vm1649.rbesz01.com (Postfix) with ESMTPS id 481WZB4JCZz29g; Mon, 20 Jan 2020 13:44:02 +0100 (CET) X-AuditID: 0a3aad15-12fff70000004734-1f-5e25a092430f Received: from si0vm1949.rbesz01.com ( [10.58.173.29]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by fe0vm1741.rbesz01.com (SMG Outbound) with SMTP id F9.79.18228.290A52E5; Mon, 20 Jan 2020 13:44:02 +0100 (CET) Received: from SI-HUB2000.de.bosch.com (si-hub2000.de.bosch.com [10.4.103.108]) by si0vm1949.rbesz01.com (Postfix) with ESMTPS id 481WZB2CZJz6CjZNV; Mon, 20 Jan 2020 13:44:02 +0100 (CET) Received: from ninja.grb-fir.grb.de.bosch.com (10.19.187.97) by SI-HUB2000.de.bosch.com (10.4.103.108) with Microsoft SMTP Server id 15.1.1847.3; Mon, 20 Jan 2020 13:44:02 +0100 X-Patchwork-Original-From: "'Mark Jonas' via swupdate" From: 'Darko Komljenovic' via swupdate To: , CC: , , , Mark Jonas Subject: [swupdate] [PATCH v2 3/3] doc: handlers: trim trailing whitespaces Date: Mon, 20 Jan 2020 13:43:12 +0100 Message-ID: <20200120124312.15129-4-mark.jonas@de.bosch.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200120124312.15129-1-mark.jonas@de.bosch.com> References: <20200120124312.15129-1-mark.jonas@de.bosch.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA22Sa1BMYRzGe89uu6edTs6e2vpbxTgmRm67LlNIGj5oGjPS6IshNp29sJfs 2QyNGZEubg2NRRu1ohFGUTLlEhYzbcYIu9Jq5D4kBsuMJJzTlt0Pvj3zf97f+/zfZ15cQBWK 5bjOaGHMRpWeFkmEknnnYqaV2WMzFZ5aSChuX5pwuOVHcDKWUmlrE6ZcPeAUpWErJYnZjF63 iTHPSFor0Za97RTnfJRvPnXntigfFcl2oxAcyNlQXnUe7UYSnCIPY2DdcUXEGxTZiqByr8Sn mxAUNQKvRWQcdLU1C3gdQSqh81M/xmsBuRXstu1DOpxMhj91NUNaSMbCq/JPwbwmyER42vxN 7AseB2fP3xi6J4RcAK7iQu4MzmUlQtWtZN9xKTjLXwt91wPcfPdOsB+NsgVYtgDLjrAzSKZm FJsMyvjZyunmLIbNUyinrzMZGpCvMVkz+vxe7UAYjhxoDo7RMkK8ns6kwrJM2Vu0Kla7xpyr Z1haTmzr27WaCv83ZnOzDDqW1ZmMDgS4gI4g7DtiMykiW7UljzGbfJgDjcGFdBShwZetokiN ysJsYJgcxjzizsdxGoiiKg6UmhkNs1mt01tGbDqGQEFBQVRkoBMYi+EhDjQLD+WyKyr5bDZH ZWB1mmF8tA+nRqZ+tB3Fy6OIhHkcQ/KuNtf4L1UeTcSVcQXIAgw/2Yu6EI7ocOILv3Mo9/38 eUDk8xVJh4d+aGYNx5BPQqGy+TuCIycaMfA++IrBxcJiETy8bBNDS+0NMfQVWEPA27AzFH4/ KSDAVd9HgPObNQxcA3tGQUV/aQSUXN0jg9aifTK43vkhCqx3jwF4bT0A++s80WCr/xIDvw++ GAuu055xcPJBy3hoabXT0O0tmQDV1tJYqD5TOgnq6l5PhotvXHHwqKRrKrfGrhnQe92t6OXK xLgy3fE0X6ZFZflPmcNT/+vk+cjZ8bO/LYztzn28fFWqOmlJzC+Ly5Beu1EfubRWnep9tGCx tyMy+vh7mzhxotvD/ny8qLUgb8XCCyU92wbZ8CntUUu2Ng10X6uaZt0oTRrI8ESvf/nsaMXX TNlkizHDGdyx5r47vb7ptuL+oDTFhLW5Fz3PT5s7mK7pOXDpUMG9pz9oIatVKeMEZlb1Fzl6 4qQYBAAA X-Original-Sender: mark.jonas@de.bosch.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@de.bosch.com header.s=key2-intmail header.b=p0GnFwK+; spf=pass (google.com: domain of mark.jonas@de.bosch.com designates 139.15.230.186 as permitted sender) smtp.mailfrom=Mark.Jonas@de.bosch.com; dmarc=pass (p=REJECT sp=NONE dis=NONE) header.from=de.bosch.com X-Original-From: Mark Jonas Reply-To: Mark Jonas Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , From: Kevin Zhang Signed-off-by: Kevin Zhang Signed-off-by: Mark Jonas Reviewed-by: Stefano Babic Reviewed-by: Stefano Babic --- doc/source/handlers.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/source/handlers.rst b/doc/source/handlers.rst index a55292b..e4b1619 100644 --- a/doc/source/handlers.rst +++ b/doc/source/handlers.rst @@ -227,7 +227,7 @@ In analogy to C handlers, the prototype for a Lua handler is where ``image`` is a Lua table (with attributes according to :ref:`sw-description's attribute reference `) -that describes a single artifact to be processed by the handler. +that describes a single artifact to be processed by the handler. Note that dashes in the attributes' names are replaced with underscores for the Lua domain to make them idiomatic, e.g., @@ -275,7 +275,7 @@ a different type of artifact than the Lua handler is registered for, the ``image`` table's values must satisfy the called C handler's expectations: Consider the above Lua handler being registered for "images" (``swupdate.HANDLER_MASK.IMAGE_HANDLER``) -via the ``swupdate.register_handler()`` call shown above. As per the +via the ``swupdate.register_handler()`` call shown above. As per the :ref:`sw-description's attribute reference `, the "images" artifact type doesn't have the ``path`` attribute but the "file" artifact type does. So, for calling the ``rawfile`` @@ -328,10 +328,10 @@ Using the ``image:read()`` method, an artifact's contents may be on preexisting C handlers for the purpose intended. -Just as C handlers, a Lua handler must consume the artifact -described in its ``image`` parameter so that SWUpdate can +Just as C handlers, a Lua handler must consume the artifact +described in its ``image`` parameter so that SWUpdate can continue with the next artifact in the stream after the Lua handler -returns. Chaining handlers, calling ``image:copy2file()``, or using +returns. Chaining handlers, calling ``image:copy2file()``, or using ``image:read()`` satisfies this requirement. @@ -381,7 +381,7 @@ format: :: - + INIT: The external installer is informed about the size of the image to be @@ -631,9 +631,9 @@ of the two SSBL administration. +-------------+----------+----------------------------------------------------+ | Name | Type | Description | +=============+==========+====================================================+ - | device | string | MTD device where the SSBL Admin Header is stored | + | device | string | MTD device where the SSBL Admin Header is stored | +-------------+----------+----------------------------------------------------+ - | offset | hex | Offset of SSBL header inside the MTD device | + | offset | hex | Offset of SSBL header inside the MTD device | +-------------+----------+----------------------------------------------------+ | imageoffset | hex | Offset of the image to be loaded by a bootloader | | | | when this SSBL is set. |