Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1745894/?format=api
{ "id": 1745894, "url": "http://patchwork.ozlabs.org/api/patches/1745894/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20230221201925.9644-50-pali@kernel.org/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20230221201925.9644-50-pali@kernel.org>", "list_archive_url": null, "date": "2023-02-21T20:19:15", "name": "[RFC,u-boot-mvebu,49/59] tools: kwbimage: Add support for creating an image with no data", "commit_ref": "3a521f08677914821479647008d488bb4f15b17a", "pull_url": null, "state": "accepted", "archived": false, "hash": "8386a7d2339b0d2330b503f0ab41a415eebbf5ef", "submitter": { "id": 78810, "url": "http://patchwork.ozlabs.org/api/people/78810/?format=api", "name": "Pali Rohár", "email": "pali@kernel.org" }, "delegate": { "id": 1696, "url": "http://patchwork.ozlabs.org/api/users/1696/?format=api", "username": "stroese", "first_name": "Stefan", "last_name": "Roese", "email": "sr@denx.de" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20230221201925.9644-50-pali@kernel.org/mbox/", "series": [ { "id": 343058, "url": "http://patchwork.ozlabs.org/api/series/343058/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=343058", "date": "2023-02-21T20:18:27", "name": "arm: mvebu: Various fixes", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/343058/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1745894/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1745894/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=<UNKNOWN>)", "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=E4QO1NxS;\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=kernel.org", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.b=\"E4QO1NxS\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=kernel.org", "phobos.denx.de; spf=pass smtp.mailfrom=pali@kernel.org" ], "Received": [ "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature ECDSA (P-384))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4PLrXs5JWVz23j7\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Feb 2023 07:31:25 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 8BEA985AA2;\n\tTue, 21 Feb 2023 21:24:13 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 60C6985B18; Tue, 21 Feb 2023 21:23:44 +0100 (CET)", "from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n bits)) (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 9502C85ADD\n for <u-boot@lists.denx.de>; Tue, 21 Feb 2023 21:22:44 +0100 (CET)", "from smtp.kernel.org (relay.kernel.org [52.25.139.140])\n (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n (No client certificate requested)\n by dfw.source.kernel.org (Postfix) with ESMTPS id 8BA84611FB;\n Tue, 21 Feb 2023 20:22:36 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPSA id D5A9CC4339C;\n Tue, 21 Feb 2023 20:22:35 +0000 (UTC)", "by pali.im (Postfix)\n id 925319E0; Tue, 21 Feb 2023 21:22:35 +0100 (CET)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,\n SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n s=k20201202; t=1677010956;\n bh=CiN3c38fPjZTl6BQhPLlr6ML2LRri8rciAF2pmqcRpo=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=E4QO1NxSyxkvAUVLWBQHzNlJeaQdtsmycXrJ6rJbjHCyVUntRfo0hvcsbDvMosM7F\n s3KsvO8ERyd+9cEnI4rNh1uvxfDVXz1J+Z3C8l4nAcF61V1PXDy4z1rt1iIN0HSz4x\n 0KgLdOzIx+dg0XNI9NQcSKP/hywIv03G56TuVmnZRGUTZMQER7gfkcm55rLhp4zUfT\n 74mTZYV6GApko9LtE6bySEYuvB55rFujRgbchhbwfnj4yrCSQ6x40P6gvApcYB6udB\n XqLTwMy3tJ6r4dyK17DQSJegdcvSLZqngxUA3zuoN8hy+4IqifeUav3Qv0/86hrR7L\n u8JdsRB/DVq8w==", "From": "=?utf-8?q?Pali_Roh=C3=A1r?= <pali@kernel.org>", "To": "u-boot@lists.denx.de", "Cc": "Stefan Roese <sr@denx.de>, Tony Dinh <mibodhi@gmail.com>,\n Josua Mayer <josua@solid-run.com>", "Subject": "[PATCH RFC u-boot-mvebu 49/59] tools: kwbimage: Add support for\n creating an image with no data", "Date": "Tue, 21 Feb 2023 21:19:15 +0100", "Message-Id": "<20230221201925.9644-50-pali@kernel.org>", "X-Mailer": "git-send-email 2.20.1", "In-Reply-To": "<20230221201925.9644-1-pali@kernel.org>", "References": "<20230221201925.9644-1-pali@kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.6 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "This change add support for mkimage's -s option to kwbimage format. It will\ncreate an kwbimage with empty data part of image (data part would contain\nonly required 32-bit checksum). mkimage's -s option is indicated by skipcpy\nflag and it is basically in conflict with mkimage's -d (datafile) option.\n\n\"Empty\" kwbimage with no data can still contain headers. For example it can\ncontain binary executable header which is copied by BootROM into L2SRAM.\nThis is useful for example for small images which can do not require DDR\nRAM and can be run in L2SRAM (which do not require any initialization).\n\nSigned-off-by: Pali Rohár <pali@kernel.org>\n---\n tools/kwbimage.c | 28 +++++++++++++++++++++++++---\n 1 file changed, 25 insertions(+), 3 deletions(-)", "diff": "diff --git a/tools/kwbimage.c b/tools/kwbimage.c\nindex 7ebb625d03b9..309657a5637b 100644\n--- a/tools/kwbimage.c\n+++ b/tools/kwbimage.c\n@@ -1887,7 +1887,9 @@ static void kwbimage_set_header(void *ptr, struct stat *sbuf, int ifd,\n \t * Do not use sbuf->st_size as it contains size with padding.\n \t * We need original image data size, so stat original file.\n \t */\n-\tif (stat(params->datafile, &s)) {\n+\tif (params->skipcpy) {\n+\t\ts.st_size = 0;\n+\t} else if (stat(params->datafile, &s)) {\n \t\tfprintf(stderr, \"Could not stat data file %s: %s\\n\",\n \t\t\tparams->datafile, strerror(errno));\n \t\texit(EXIT_FAILURE);\n@@ -2106,6 +2108,8 @@ static int kwbimage_verify_header(unsigned char *ptr, int image_size,\n \treturn 0;\n }\n \n+static int kwbimage_align_size(int bootfrom, int alloc_len, struct stat s);\n+\n static int kwbimage_generate(struct image_tool_params *params,\n \t\t\t struct image_type_params *tparams)\n {\n@@ -2124,7 +2128,9 @@ static int kwbimage_generate(struct image_tool_params *params,\n \t\texit(EXIT_FAILURE);\n \t}\n \n-\tif (stat(params->datafile, &s)) {\n+\tif (params->skipcpy) {\n+\t\ts.st_size = 0;\n+\t} else if (stat(params->datafile, &s)) {\n \t\tfprintf(stderr, \"Could not stat data file %s: %s\\n\",\n \t\t\tparams->datafile, strerror(errno));\n \t\texit(EXIT_FAILURE);\n@@ -2195,6 +2201,22 @@ static int kwbimage_generate(struct image_tool_params *params,\n \ttparams->header_size = alloc_len;\n \ttparams->hdr = hdr;\n \n+\t/*\n+\t * This function should return aligned size of the datafile.\n+\t * When skipcpy is set (datafile is skipped) then return value of this\n+\t * function is ignored, so we have to put required kwbimage aligning\n+\t * into the preallocated header size.\n+\t */\n+\tif (params->skipcpy) {\n+\t\ttparams->header_size += kwbimage_align_size(bootfrom, alloc_len, s);\n+\t\treturn 0;\n+\t} else {\n+\t\treturn kwbimage_align_size(bootfrom, alloc_len, s);\n+\t}\n+}\n+\n+static int kwbimage_align_size(int bootfrom, int alloc_len, struct stat s)\n+{\n \t/*\n \t * The resulting image needs to be 4-byte aligned. At least\n \t * the Marvell hdrparser tool complains if its unaligned.\n@@ -2510,7 +2532,7 @@ static int kwbimage_check_params(struct image_tool_params *params)\n \t\treturn 1;\n \t}\n \n-\treturn (params->dflag && (params->fflag || params->lflag)) ||\n+\treturn (params->dflag && (params->fflag || params->lflag || params->skipcpy)) ||\n \t\t(params->fflag) ||\n \t\t(params->lflag && (params->dflag || params->fflag));\n }\n", "prefixes": [ "RFC", "u-boot-mvebu", "49/59" ] }