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 X-Spam-Level: X-Spam-Status: No, score=-19.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03D50C07E96 for ; Thu, 8 Jul 2021 17:31:49 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 703AF61879 for ; Thu, 8 Jul 2021 17:31:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 703AF61879 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nic.cz Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BEDEF83237; Thu, 8 Jul 2021 19:31:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nic.cz 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=nic.cz header.i=@nic.cz header.b="jqmfayoN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 963B2831DF; Thu, 8 Jul 2021 19:30:51 +0200 (CEST) Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (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 AF279831E0 for ; Thu, 8 Jul 2021 19:30:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nic.cz Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=marek.behun@nic.cz Received: from dellmb.labs.office.nic.cz (unknown [IPv6:2001:1488:fffe:6:8747:7254:5571:3010]) by mail.nic.cz (Postfix) with ESMTPSA id 451761427D7; Thu, 8 Jul 2021 19:30:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1625765438; bh=g1gpXWF7DfXmpiXGr3Piv6ptA2VNqvZomCga2q2cqUo=; h=From:To:Date; b=jqmfayoNDEE2rx5uVXBAnDGUbKktZ3ufU5qLkI2jGhUvMntZV3f+q/CNI53lhB0GX PrXQde6BBQGJt71uFUNrQnno6++RA9eZtfSS31NE17SyiuHOOZ0Dkf+vxUG1n+bVaW Ea0jvRaWEnzUQxQDVcuT1CKGyA55MuwkNWBEhXjw= From: =?UTF-8?q?Marek=20Beh=C3=BAn?= To: u-boot@lists.denx.de, Chris Packham , Stefan Roese , Baruch Siach , Dirk Eibach , Chris Packham Cc: Dennis Gilmore , Mario Six , Jon Nettleton , =?UTF-8?q?Pali=20Roh=C3=A1r?= , =?UTF-8?q?Marek=20Beh=C3=BAn?= Subject: [PATCH u-boot-mvebu 05/31] tools: kwbimage: Fix generation of SATA, SDIO and PCIe images Date: Thu, 8 Jul 2021 19:30:06 +0200 Message-Id: <20210708173032.27999-6-marek.behun@nic.cz> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210708173032.27999-1-marek.behun@nic.cz> References: <20210708173032.27999-1-marek.behun@nic.cz> 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.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.103.2 at phobos.denx.de X-Virus-Status: Clean From: Pali Rohár SATA and SDIO images must be aligned to sector size (which in most cases is 512 bytes) and Source Address in main header is stored in number of sectors from the beginning of the drive. SATA image must be stored at sector 1 and SDIO image at sector 0. Source Address for PCIe image is not used and must be set to 0xFFFFFFFF. Signed-off-by: Pali Rohár Reviewed-by: Marek Behún --- tools/kwbimage.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/kwbimage.c b/tools/kwbimage.c index f40ba0994d..44bf5ee026 100644 --- a/tools/kwbimage.c +++ b/tools/kwbimage.c @@ -1281,6 +1281,26 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params, main_hdr->destaddr = cpu_to_le32(params->addr); } + /* + * For SATA srcaddr is specified in number of sectors starting from + * sector 0. The main header is stored at sector number 1. + * This expects the sector size to be 512 bytes. + */ + if (main_hdr->blockid == IBR_HDR_SATA_ID) + main_hdr->srcaddr = cpu_to_le32((headersz + 511) / 512 + 1); + + /* + * For SDIO srcaddr is specified in number of sectors starting from + * sector 0. The main header is stored at sector number 0. + * This expects sector size to be 512 bytes. + */ + if (main_hdr->blockid == IBR_HDR_SDIO_ID) + main_hdr->srcaddr = cpu_to_le32((headersz + 511) / 512); + + /* For PCIe srcaddr is not used and must be set to 0xFFFFFFFF. */ + if (main_hdr->blockid == IBR_HDR_PEX_ID) + main_hdr->srcaddr = cpu_to_le32(0xFFFFFFFF); + #if defined(CONFIG_KWB_SECURE) if (image_get_csk_index() >= 0) { /* @@ -1734,6 +1754,8 @@ static int kwbimage_generate(struct image_tool_params *params, */ if (bootfrom == IBR_HDR_SPI_ID || bootfrom == IBR_HDR_NAND_ID) return 4 + (256 - (alloc_len + s.st_size + 4) % 256) % 256; + else if (bootfrom == IBR_HDR_SDIO_ID || bootfrom == IBR_HDR_PEX_ID) + return 4 + (512 - (alloc_len + s.st_size + 4) % 512) % 512; else return 4 + (4 - s.st_size % 4) % 4; } -- 2.31.1