From patchwork Wed Jul 22 15:46:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1333962 X-Patchwork-Delegate: lukma@denx.de 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=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=koNwcrRy; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BBfvd2L6Kz9sPB for ; Thu, 23 Jul 2020 01:46:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D0E9B819F0; Wed, 22 Jul 2020 17:46:13 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="koNwcrRy"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6D31181B96; Wed, 22 Jul 2020 17:46:12 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E118B819EA for ; Wed, 22 Jul 2020 17:46:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1595432769; bh=QCXKoSLGcs7M95ZAY2LlBkLL5gQkOC42U0LNKIGB/4Q=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=koNwcrRyxXMHtdz/T0zTWtct2P+2h8S9uwZqWPDV9JlGQtvPTP6+cSmBxXl98Xanv O4yKecJFTCxgAPhYmxUNuuUH08Ts2Zj3tnKI7CzE6lsP0N1kLLI7zAMo7iQThKMfJ7 zMjOh/Wt18P4EnWC8DB1erB42gqJkwhunVlCiqHo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from workstation4.fritz.box ([88.152.145.75]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MSt8Q-1kO4TO3pBG-00UNrN; Wed, 22 Jul 2020 17:46:09 +0200 From: Heinrich Schuchardt To: Lukasz Majewski Cc: u-boot@lists.denx.de, AKASHI Takahiro , Heinrich Schuchardt Subject: [PATCH 1/1] dfu: fix dfu tftp on sandbox Date: Wed, 22 Jul 2020 17:46:02 +0200 Message-Id: <20200722154602.115567-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:0QRvdv+Fsi1nz5TVpIDdL+LIRuiA0pPwL8nBjWTEzBUCJAG3lBN WboUs69cOAvCxEeFxulawLHP4Zbkcl0Wxh+FJQAVOL0zTQLv3XqSuuBi4aFxd4w8aSjxRbC AcBSBIlOA2B9uoGLs1vXTN49q0447CBiFo0JavRAyCWE5lbfjReiXLsNiYw/fvHFv07hU/3 0hKmee/RFfn3VUftFEk4w== X-UI-Out-Filterresults: notjunk:1;V03:K0:5NWVL7G0bWg=:mgLAeQ0NMZohkPizs+GRfj DyiX7zT1G7wvkeo7ehufMmyOKqMyd/couXohcbxdPVWK0ZxpzNS6rA6cajyioy6YiFDePLh7N 6l5Wu6juQBUvwy9nQxuqtJtsvg5QZYs0yA9cDq5uBZTHxg6ZCG+5OvSYfP7ksP3diJl+saXA2 Onj1r8AdnJuITaGj9myVN4TRXH5eCy+Ccw8PKG3A+ml8QGQTQcuOd7S7PsmQVJ+Y4peKdu9Zt VvrEdkm49A49cGzdSJY8NOQBHHoj5/6TokVqu5FtFA5Ihtg2psVx3Jg8DQ4+9vlZHzu6C+IET qdRk7QrBBGkPJOujQ5DIgorgafqhRnhO8/doKZZ9fKcPCWADnGlQlyXfr8VDUNhemGPDRLYAO hFZItLIJb4RYgELP8yBgVct+30LSR2oearPmq7j8V1Wc3jp9jSEotdqdfSQscmT5L6bpl1vFM bn9dmDO+LrK6vTTz5O5JMhKPyBLP3v/W/OYzVNK3ani2XVt7PquMGiiIDgzwq8Y2VED7k9sBR kY9ea4A/WwKkZirqI/MlltThlk4jQ4KkjlBBAQ9SiulpKLJ7DUfkJy84Z2mz6VxFZYTJzuG+G VFPsHDxelyD3K3MQSa5GH3MM/vaZemKRJtrK5cgPJgneXmrQ+qfPvl7HZL/cfhwblV5AxVA9d CMDlWsF4BcSC6bLNAAWY+vBgZV61zbDF7pxIb9Dvb0LuRAmSak1tJi3H2ulAb+u2gsYL7qA+d 4ZJOJIMjb6OOmIA85pPlZUJ4V30xbZ2OStsT4xqHtTDIRvnVHwUj1OxnOb328yo0akkjOYd2I K9hKk1cdx0L5fcv2MAwKbMaoBLR4APSXjQofianx+4u55t92tSkQmsx72d7pLIrJoP+3lPgll Ux41IQPNEXmTGdyiDG0E21keUOWOCoreBQhPWqJ2MKerBRmbW50xUkRAr+DwHHvlN6Vx74X6d yV4s/Cnae6IVWarrsDFnbAwWLuKSYl/5inFDUjEHWclTDWNKedk9WoifpNlOMObQOaVVZcOS4 in6mko2KoiKMzWbb8DnKko8H8QkuzuBfR0/9Zv2NMg4jpxXC31IyluZCL7gM9vquS95o2i/on Exj95OPmOYQC+Osf2+jqIb5EkEp1l9WRgKdHWPYrXVwAYNbhN9VyUAc0ALcYLNOx2O9DrNOd4 2yvZI7X+rnOfgIKi2imVqQXa1JFwR3dTMxo90R/Ts6WtT2nYKhoEz6qN4fG1/7eIxfM9VVdsq TtHdxJ9ithM2XIjtIQ8ZvceOprq/LuAOgkGj/bw== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean The environment variable loadaddr is in the virtual address space of the sandbox. To get the actual memory address where the FIT image has been loaded we have to convert this address according to the memory mapping of the sandbox. Equally the addresses in the *.its file have to be converted when used in the dfu_ram driver. Signed-off-by: Heinrich Schuchardt --- common/update.c | 3 ++- drivers/dfu/dfu_ram.c | 7 ++++--- include/dfu.h | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) -- 2.27.0 diff --git a/common/update.c b/common/update.c index 8abc7bc02e..5811fac269 100644 --- a/common/update.c +++ b/common/update.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -141,7 +142,7 @@ int update_tftp(ulong addr, char *interface, char *devstring) } got_update_file: - fit = (void *)addr; + fit = map_sysmem(addr, 0); if (!fit_check_format((void *)fit)) { printf("Bad FIT format of the update file, aborting " diff --git a/drivers/dfu/dfu_ram.c b/drivers/dfu/dfu_ram.c index cc98668e7a..ab0ce9e6fa 100644 --- a/drivers/dfu/dfu_ram.c +++ b/drivers/dfu/dfu_ram.c @@ -10,6 +10,7 @@ #include #include +#include #include #include @@ -27,9 +28,9 @@ static int dfu_transfer_medium_ram(enum dfu_op op, struct dfu_entity *dfu, } if (op == DFU_OP_WRITE) - memcpy(dfu->data.ram.start + offset, buf, *len); + memcpy(map_sysmem(dfu->data.ram.start + offset, 0), buf, *len); else - memcpy(buf, dfu->data.ram.start + offset, *len); + memcpy(buf, map_sysmem(dfu->data.ram.start + offset, 0), *len); return 0; } @@ -73,7 +74,7 @@ int dfu_fill_entity_ram(struct dfu_entity *dfu, char *devstr, char *s) } dfu->layout = DFU_RAM_ADDR; - dfu->data.ram.start = (void *)simple_strtoul(argv[1], NULL, 16); + dfu->data.ram.start = simple_strtoul(argv[1], NULL, 16); dfu->data.ram.size = simple_strtoul(argv[2], NULL, 16); dfu->write_medium = dfu_write_medium_ram; diff --git a/include/dfu.h b/include/dfu.h index 6fa4505936..84abdc79ac 100644 --- a/include/dfu.h +++ b/include/dfu.h @@ -79,7 +79,7 @@ struct nand_internal_data { }; struct ram_internal_data { - void *start; + unsigned long start; unsigned int size; };