From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 37549C61DA3 for ; Tue, 21 Feb 2023 20:26:35 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C29A985A5A; Tue, 21 Feb 2023 21:23:18 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="pJLwtDg/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2722D85A79; Tue, 21 Feb 2023 21:22:50 +0100 (CET) Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B89A085A87 for ; Tue, 21 Feb 2023 21:22:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=kernel.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=pali@kernel.org Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 600BCB81020; Tue, 21 Feb 2023 20:22:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9D95C433A4; Tue, 21 Feb 2023 20:22:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1677010950; bh=xSX/rlfRJBejuh8d7G2S1BndO2lZwjjzKseYY5GFMb0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pJLwtDg/ES2SLDxn7nuI6XRQFnkBWwncnJkRRRScwESyAppuQxokyOg+lprMa9as4 Gv0o1SU2ZJMU1zm7yCy4Kw0tBPD88VCU4uv9Kx8QUBjZjts/fwndA4mp8nWeC9LNRf bj0kjnfTv/NY1KRUYMoAD+gF11D6w3uNZYIshnQW0QDN/aPXz+VrUDHNvWhELIwX72 AWizfEdG/e20KS6QsjYt0+QfSInXyAlM/nqGTqp7ypmAGF3qRm7ClvLnMRIgEHyzF+ siOYTP2sVkCKozdKchgGsWMpXhBKmXAeDOrqZBhFCVc8DS9+LmjQvYPmdhtbrExalh lo5Q9zT7qer3Q== Received: by pali.im (Postfix) id 741E4ADB; Tue, 21 Feb 2023 21:22:28 +0100 (CET) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: u-boot@lists.denx.de Cc: Stefan Roese , Tony Dinh , Josua Mayer Subject: [PATCH RFC u-boot-mvebu 06/59] tools: kwboot: Fix parsing SATA kwbimage Date: Tue, 21 Feb 2023 21:18:32 +0100 Message-Id: <20230221201925.9644-7-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 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.103.6 at phobos.denx.de X-Virus-Status: Clean Despite the official specification, Marvell BootROM does not interpret srcaddr from SATA image as number of sectors the beginning of the hard drive, but as number of sectors relative to the main header. To parse SATA kwbimage in the same way as Marvell BootROM, it is needed to interpret srcaddr as relative offset to the main header. This change fixes loading of SATA images via kwboot over UART. Fixes: 792e42355083 ("tools: kwboot: Patch source address in image header") Signed-off-by: Pali Rohár --- tools/kwboot.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/kwboot.c b/tools/kwboot.c index 188f944263fa..bf410520de63 100644 --- a/tools/kwboot.c +++ b/tools/kwboot.c @@ -1888,10 +1888,7 @@ kwboot_img_patch(void *img, size_t *size, int baudrate) switch (hdr->blockid) { case IBR_HDR_SATA_ID: - if (srcaddr < 1) - goto err; - - hdr->srcaddr = cpu_to_le32((srcaddr - 1) * 512); + hdr->srcaddr = cpu_to_le32(srcaddr * 512); break; case IBR_HDR_PEX_ID: -- 2.20.1