From patchwork Mon Jul 29 07:12:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baruch Siach X-Patchwork-Id: 1138204 X-Patchwork-Delegate: sr@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=tkos.co.il Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45xrXD41tDz9sBt for ; Mon, 29 Jul 2019 17:14:04 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 411E9C21D83; Mon, 29 Jul 2019 07:13:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id E2486C21D4A; Mon, 29 Jul 2019 07:13:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 8884BC21D72; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from mx.tkos.co.il (guitar.tcltek.co.il [192.115.133.116]) by lists.denx.de (Postfix) with ESMTPS id 17D30C21D56 for ; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from sapphire.lan (unknown [192.168.100.188]) by mx.tkos.co.il (Postfix) with ESMTP id 0A39E4405B9; Mon, 29 Jul 2019 10:13:50 +0300 (IDT) From: Baruch Siach To: u-boot@lists.denx.de, Stefan Roese , Peng Fan Date: Mon, 29 Jul 2019 10:12:23 +0300 Message-Id: <660b7a6df3d1bbc198105dde866dc9506511838e.1564384345.git.baruch@tkos.co.il> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Cc: Gauthier Provost , Baruch Siach , Dennis Gilmore , Aditya Prayoga , Chris Packham Subject: [U-Boot] [PATCH v2 1/3] spl: mmc: support uboot image offset on main partition X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" On Armada 38x platforms the ROM code loads SPL from offset 0 of eMMC hardware boot partitions. When there are no boot partitions (i.e. SD card) the ROM skips the first sector that usually contains the (logical) partition table. Since the generated .kwb image contains the main U-Boot image in a fixed location (0x140 sectors by default), we end up with the main U-Boot image in offset of 1 sector. The current workaround is to manually set CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR to 0x141 to compensate for that. This patch uses the run-time detected boot partition to determine the right offset of the main U-Boot partition. The generated .kwb image is now compatible with both eMMC boot partition, and SD card main data partition. Signed-off-by: Baruch Siach --- v2: Rebase on top of current master --- common/spl/Kconfig | 12 ++++++++++++ common/spl/spl_mmc.c | 15 +++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 5d6da5db89bc..e43eefe046bc 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -293,6 +293,18 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR Address on the MMC to load U-Boot from, when the MMC is being used in raw mode. Units: MMC sectors (1 sector = 512 bytes). +config SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET + hex "U-Boot main hardware partition image offset" + depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR + default 0x0 + help + On some platforms SPL location depends on hardware partition. The ROM + code skips the MBR sector when loading SPL from main hardware data + partition. This adds offset to the main U-Boot image. Set this symbol + to the number of skipped sectors. + + If unsure, leave the default. + config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION bool "MMC Raw mode: by partition" help diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index b3619889f794..72439c029f4a 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -49,6 +49,16 @@ static ulong h_spl_load_read(struct spl_load_info *load, ulong sector, return blk_dread(mmc_get_blk_desc(mmc), sector, count, buf); } +static __maybe_unused unsigned long spl_mmc_raw_uboot_offset(int part) +{ +#if IS_ENABLED(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR) + if (part == 0) + return CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET; +#endif + + return 0; +} + static __maybe_unused int mmc_load_image_raw_sector(struct spl_image_info *spl_image, struct mmc *mmc, unsigned long sector) @@ -312,7 +322,7 @@ int spl_mmc_load(struct spl_image_info *spl_image, static struct mmc *mmc; u32 boot_mode; int err = 0; - __maybe_unused int part; + __maybe_unused int part = 0; /* Perform peripheral init only once */ if (!mmc) { @@ -371,7 +381,8 @@ int spl_mmc_load(struct spl_image_info *spl_image, return err; #endif #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR - err = mmc_load_image_raw_sector(spl_image, mmc, raw_sect); + err = mmc_load_image_raw_sector(spl_image, mmc, + raw_sect + spl_mmc_raw_uboot_offset(part)); if (!err) return err; #endif From patchwork Mon Jul 29 07:12:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baruch Siach X-Patchwork-Id: 1138205 X-Patchwork-Delegate: sr@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=tkos.co.il Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45xrXp0FRYz9sMQ for ; Mon, 29 Jul 2019 17:14:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9DC5CC21E1B; Mon, 29 Jul 2019 07:14:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 65251C21DA2; Mon, 29 Jul 2019 07:13:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 98797C21D4A; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from mx.tkos.co.il (guitar.tcltek.co.il [192.115.133.116]) by lists.denx.de (Postfix) with ESMTPS id 0A58EC21D4A for ; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from sapphire.lan (unknown [192.168.100.188]) by mx.tkos.co.il (Postfix) with ESMTP id 456A24405F1; Mon, 29 Jul 2019 10:13:50 +0300 (IDT) From: Baruch Siach To: u-boot@lists.denx.de, Stefan Roese , Peng Fan Date: Mon, 29 Jul 2019 10:12:24 +0300 Message-Id: <966a64a6f70b21d0732543dee0ffb2f5c0aa253a.1564384345.git.baruch@tkos.co.il> X-Mailer: git-send-email 2.20.1 In-Reply-To: <660b7a6df3d1bbc198105dde866dc9506511838e.1564384345.git.baruch@tkos.co.il> References: <660b7a6df3d1bbc198105dde866dc9506511838e.1564384345.git.baruch@tkos.co.il> MIME-Version: 1.0 Cc: Gauthier Provost , Baruch Siach , Dennis Gilmore , Aditya Prayoga , Chris Packham Subject: [U-Boot] [PATCH v2 2/3] arm: mvebu: clearfog: set uboot image SD card offset X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Armada 38x ROM skips the first SD card offset when loading SPL. This affects the location of the main U-Boot image. SPL MMC code now supports U-Boot image offset based on run-time detection of the boot partition. Use this feature to make the same generated image support both SD card and eMMC boot partition. Signed-off-by: Baruch Siach --- configs/clearfog_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig index b7b886be4f7a..3609445c1e95 100644 --- a/configs/clearfog_defconfig +++ b/configs/clearfog_defconfig @@ -22,7 +22,7 @@ CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_SPL_TEXT_BASE=0x40000030 -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x141 +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x1 CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set CONFIG_CMD_GPIO=y From patchwork Mon Jul 29 07:12:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baruch Siach X-Patchwork-Id: 1138206 X-Patchwork-Delegate: sr@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=tkos.co.il Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45xrY12hgCz9sML for ; Mon, 29 Jul 2019 17:14:45 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id CB858C21DAF; Mon, 29 Jul 2019 07:14:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 04819C21DB6; Mon, 29 Jul 2019 07:13:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A717CC21D56; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from mx.tkos.co.il (guitar.tcltek.co.il [192.115.133.116]) by lists.denx.de (Postfix) with ESMTPS id 545D0C21D65 for ; Mon, 29 Jul 2019 07:13:51 +0000 (UTC) Received: from sapphire.lan (unknown [192.168.100.188]) by mx.tkos.co.il (Postfix) with ESMTP id 7D6D444060D; Mon, 29 Jul 2019 10:13:50 +0300 (IDT) From: Baruch Siach To: u-boot@lists.denx.de, Stefan Roese , Peng Fan Date: Mon, 29 Jul 2019 10:12:25 +0300 Message-Id: X-Mailer: git-send-email 2.20.1 In-Reply-To: <660b7a6df3d1bbc198105dde866dc9506511838e.1564384345.git.baruch@tkos.co.il> References: <660b7a6df3d1bbc198105dde866dc9506511838e.1564384345.git.baruch@tkos.co.il> MIME-Version: 1.0 Cc: Gauthier Provost , Baruch Siach , Dennis Gilmore , Aditya Prayoga , Chris Packham Subject: [U-Boot] [PATCH v2 3/3] arm: mvebu: clearfog: update eMMC documentation X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" SPL now automatically selects the correct U-Boot image offset for both eMMC and SD card. No need to tweak CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR anymore. Signed-off-by: Baruch Siach Reviewed-by: Stefan Roese --- board/solidrun/clearfog/README | 6 ------ 1 file changed, 6 deletions(-) diff --git a/board/solidrun/clearfog/README b/board/solidrun/clearfog/README index 6171ce66f4f8..9375be84957a 100644 --- a/board/solidrun/clearfog/README +++ b/board/solidrun/clearfog/README @@ -20,12 +20,6 @@ of "/dev/sdX" here! Install U-Boot on eMMC: ----------------------- -The ROM loads the bootloader from eMMC first boot partition at offset 0. This -is unlike load from SD card that is at offset 512. As a result, the offset of -the main U-Boot image on the eMMC boot partition changes. Set -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR to 0x140 for SPL to load U-Boot from -the correct location. - To make SPL load the main U-Boot image from the eMMC boot partition enable eMMC boot acknowledgement and boot partition with the following U-Boot command: