u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: "Pali Rohár" <pali@kernel.org>, u-boot@lists.denx.de
Cc: Tony Dinh <mibodhi@gmail.com>, Josua Mayer <josua@solid-run.com>
Subject: Re: [PATCH RFC u-boot-mvebu 20/59] cmd: mvebu/bubt: Add support for selecting eMMC HW partition
Date: Wed, 22 Feb 2023 10:55:54 +0100	[thread overview]
Message-ID: <48c07c08-5b73-1586-ee51-1969bffb5e92@denx.de> (raw)
In-Reply-To: <20230221201925.9644-21-pali@kernel.org>

Hi Pali,

On 2/21/23 21:18, Pali Rohár wrote:
> Support for burning into the correct eMMC HW boot partition was broken and
> removed in commit 96be2f072768 ("mvebu: bubt: Drop dead code"). Reimplement
> this functionality and bring it back again.
> 
> Fixes: 96be2f072768 ("mvebu: bubt: Drop dead code")
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>   cmd/mvebu/bubt.c       | 53 ++++++++++++++++++++++++++++++++++++++----
>   doc/mvebu/cmd/bubt.txt | 21 ++++++++++++-----
>   2 files changed, 63 insertions(+), 11 deletions(-)
> 
> diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
> index 2bcdf145f64a..4bad9a69527c 100644
> --- a/cmd/mvebu/bubt.c
> +++ b/cmd/mvebu/bubt.c
> @@ -189,6 +189,11 @@ static int mmc_burn_image(size_t image_size)
>   #ifdef CONFIG_BLK
>   	struct blk_desc *blk_desc;
>   #endif
> +#ifdef CONFIG_SUPPORT_EMMC_BOOT
> +	u8		part;
> +	u8		orig_part;
> +#endif
> +
>   	mmc = find_mmc_device(mmc_dev_num);
>   	if (!mmc) {
>   		printf("No SD/MMC/eMMC card found\n");
> @@ -202,6 +207,38 @@ static int mmc_burn_image(size_t image_size)
>   		return err;
>   	}
>   
> +#ifdef CONFIG_BLK
> +	blk_desc = mmc_get_blk_desc(mmc);
> +	if (!blk_desc) {
> +		printf("Error - failed to obtain block descriptor\n");
> +		return -ENODEV;
> +	}
> +#endif

This #ifdef usage really gets out of hand IMHO. Yes I know, you did not
introduce it here. Still, perhaps some of this can be moved to using
IS_ENABLED or CONFIG_IS_ENABLED instead?

And I just checked that "bubt" is not compiled for CONFIG_BLK not
defined. So please depend this file on CONFIG_BLK in Kconfig and remove
the non CONFIG_BLK code here.

Thanks,
Stefan

> +
> +#ifdef CONFIG_SUPPORT_EMMC_BOOT
> +#ifdef CONFIG_BLK
> +	orig_part = blk_desc->hwpart;
> +#else
> +	orig_part = mmc->block_dev.hwpart;
> +#endif
> +
> +	part = (mmc->part_config >> 3) & PART_ACCESS_MASK;
> +
> +	if (part == 7)
> +		part = 0;
> +
> +#ifdef CONFIG_BLK
> +	err = blk_dselect_hwpart(blk_desc, part);
> +#else
> +	err = mmc_switch_part(mmc, part);
> +#endif
> +
> +	if (err) {
> +		printf("Error - MMC partition switch failed\n");
> +		return err;
> +	}
> +#endif
> +
>   	/* SD reserves LBA-0 for MBR and boots from LBA-1,
>   	 * MMC/eMMC boots from LBA-0
>   	 */
> @@ -211,11 +248,6 @@ static int mmc_burn_image(size_t image_size)
>   	if (image_size % mmc->write_bl_len)
>   		blk_count += 1;
>   
> -	blk_desc = mmc_get_blk_desc(mmc);
> -	if (!blk_desc) {
> -		printf("Error - failed to obtain block descriptor\n");
> -		return -ENODEV;
> -	}
>   	blk_written = blk_dwrite(blk_desc, start_lba, blk_count,
>   				 (void *)get_load_addr());
>   #else
> @@ -227,6 +259,17 @@ static int mmc_burn_image(size_t image_size)
>   						 start_lba, blk_count,
>   						 (void *)get_load_addr());
>   #endif /* CONFIG_BLK */
> +
> +#ifdef CONFIG_SUPPORT_EMMC_BOOT
> +#ifdef CONFIG_BLK
> +	err = blk_dselect_hwpart(blk_desc, orig_part);
> +#else
> +	err = mmc_switch_part(mmc, orig_part);
> +#endif
> +	if (err)
> +		printf("Error - MMC failed to switch back to original partition\n");
> +#endif
> +
>   	if (blk_written != blk_count) {
>   		printf("Error - written %#lx blocks\n", blk_written);
>   		return -ENOSPC;
> diff --git a/doc/mvebu/cmd/bubt.txt b/doc/mvebu/cmd/bubt.txt
> index 6051243f1165..1fe1f07dd187 100644
> --- a/doc/mvebu/cmd/bubt.txt
> +++ b/doc/mvebu/cmd/bubt.txt
> @@ -14,8 +14,7 @@ Examples:
>   
>   Notes:
>   - For the TFTP interface set serverip and ipaddr.
> -- To burn image to SD/eMMC device, the target is defined
> -  by parameters CONFIG_SYS_MMC_ENV_DEV and CONFIG_SYS_MMC_ENV_PART.
> +- To burn image to SD/eMMC device, the target is defined by HW partition.
>   
>   Bubt command details (burn image step by-step)
>   ----------------------------------------------
> @@ -40,10 +39,20 @@ Notes:
>     Number 0 is used for user data partition and should not be utilized for storing
>     boot images and U-Boot environment in RAW mode since it will break file system
>     structures usually located here.
> -  The default boot partition is BOOT0. It is selected by the following parameter:
> -  CONFIG_SYS_MMC_ENV_PART=1
> -  Valid values for this parameter are 1 for BOOT0 and 2 for BOOT1.
> -  Please never use partition number 0 here!
> +
> +  Currently configured boot partition can be printed by command:
> +  # mmc partconf 0
> +  (search for BOOT_PARTITION_ACCESS output, number 7 is user data)
> +
> +  Change it to BOOT0:
> +  # mmc partconf 0 0 1 1
> +
> +  Change it to BOOT1:
> +  # mmc partconf 0 0 2 2
> +
> +  Change it to user data:
> +  # mmc partconf 0 0 7 0
> +
>   - The partition number is ignored if the target device is SD card.
>   - The boot image offset starts at block 0 for eMMC and block 1 for SD devices.
>     The block 0 on SD devices is left for MBR storage.

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

  reply	other threads:[~2023-02-22  9:56 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-21 20:18 [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 01/59] tools: kwbimage: Fix generating, verifying and extracting SDIO kwbimage Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 02/59] tools: kwboot: Fix parsing " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 03/59] arm: mvebu: spl: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 04/59] cmd: mvebu/bubt: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 05/59] tools: kwbimage: Fix generating, verifying and extracting SATA kwbimage Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 06/59] tools: kwboot: Fix parsing " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 07/59] arm: mvebu: spl: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 08/59] cmd: mvebu/bubt: " Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 09/59] arm: mvebu: spl: Remove checks for BOOT_DEVICE_MMC2 and BOOT_DEVICE_MMC2_2 Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 10/59] arm: mvebu: spl: Load proper U-Boot from selected eMMC boot partition Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 11/59] spl: mmc: Allow to disable SYS_MMCSD_FS_BOOT_PARTITION Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 12/59] arm: mvebu: spl: Fix support for loading U-Boot proper from SD card Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 13/59] tools: kwboot: Add more documentation references Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 14/59] tools: kwboot: Add image type documentation Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 15/59] tools: kwboot: Fix parsing UART image without data checksum Pali Rohár
2023-02-23  5:23   ` Tony Dinh
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 16/59] tools: kwboot: Validate optional kwbimage v1 headers Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 17/59] tools: kwboot: Add check that kwbimage contains DDR init code Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 18/59] tools: kwboot: Fix patching of SPI/NOR XIP images Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 19/59] tools: kwboot: Show image type and error parsing reasons Pali Rohár
2023-02-22  5:51   ` Tony Dinh
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 20/59] cmd: mvebu/bubt: Add support for selecting eMMC HW partition Pali Rohár
2023-02-22  9:55   ` Stefan Roese [this message]
2023-02-22 18:06     ` Pali Rohár
2023-02-23  6:17       ` Stefan Roese
2023-02-23  7:55         ` Pali Rohár
2023-02-23  8:15           ` Stefan Roese
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 21/59] cmd: mvebu/bubt: Add support for writing image to SATA disk Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 22/59] cmd: mvebu/bubt: Add support for reading image from the SATA disk partition Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 23/59] cmd: mvebu/bubt: Rename variable image_size to hdr_size Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 24/59] cmd: mvebu/bubt: Mark all local symbols as static Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 25/59] cmd: mvebu/bubt: Do not modify image in A8K check_image_header() Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 26/59] cmd: mvebu/bubt: Check also A8K boot image checksum Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 27/59] cmd: mvebu/bubt: Set correct default image name for 32-bit Armada SoCs Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 28/59] cmd: mvebu/bubt: Better guess default MVEBU_*_BOOT option Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 29/59] cmd: mvebu/bubt: Fix warnings: unused variable 'secure_mode' and 'fuse_read_u64' defined but not used Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 30/59] cmd: mvebu/bubt: Enable command by default Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 31/59] tools: kwbimage: Fix dumping register set / DATA commands Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 32/59] tools: kwbimage: Fix endianity when dumping NAND_PAGE_SIZE Pali Rohár
2023-02-21 20:18 ` [PATCH RFC u-boot-mvebu 33/59] tools: kwbimage: Fix dumping NAND_BADBLK_LOCATION Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 34/59] tools: kwbimage: Fix dumping NAND_BLKSZ Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 35/59] tools: kwbimage: Fix generating of kwbimage v0 header checksum Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 36/59] tools: kwbimage: Fix endianity when printing kwbimage header Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 37/59] tools: kwbimage: Reject mkimage -F option Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 38/59] tools: kwbimage: Add support for dumping NAND_BLKSZ for v0 images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 39/59] tools: kwbimage: Print binary image offset as size Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 40/59] tools: kwbimage: Print image data offset when printing kwbimage header Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 41/59] tools: kwbimage: Simplify add_secure_header_v1() Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 42/59] tools: kwbimage: Rename imagesz to dataoff Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 43/59] tools: kwbimage: Fix generating secure boot data image signature Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 44/59] tools: kwbimage: Fix invalid secure boot header signature Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 45/59] tools: mkimage: Do not fill legacy_img_hdr for non-legacy XIP images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 46/59] tools: kwbimage: Add support for XIP SPI/NOR images Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 47/59] tools: mkimage: Print human readable error when -d is not specified Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 48/59] tools: mkimage: Do not try to open datafile when it is skipped Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 49/59] tools: kwbimage: Add support for creating an image with no data Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 50/59] arm: mvebu: Add support for generating NAND kwbimage Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 51/59] arm: mvebu: Add support for generating PEX kwbimage Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 52/59] arm: mvebu: Fix description of MVEBU_SPL_BOOT_DEVICE_(SPI|MMC) options Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 53/59] arm: mvebu: db-88f6820-amc: Add defconfig for NAND booting Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 54/59] arm: mvebu: clearfog: Add defconfig for SATA booting Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 55/59] arm: mvebu: Remove A39x relicts Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 56/59] arm: mvebu: Fix comment about CPU_ATTR_BOOTROM mapping Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 57/59] arm: mvebu: Define env_sf_get_env_addr() also for Proper U-Boot Pali Rohár
2023-02-25  3:58   ` Tony Dinh
2023-02-25 21:13     ` Pali Rohár
2023-02-25 22:37       ` Tony Dinh
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 58/59] arm: mvebu: Define SPL memory maps Pali Rohár
2023-02-21 20:19 ` [PATCH RFC u-boot-mvebu 59/59] doc/kwboot.1: Update example description Pali Rohár
2023-02-21 23:06 ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Tony Dinh
2023-02-21 23:14   ` Pali Rohár
2023-02-22  5:45     ` Tony Dinh
2023-02-22  7:58       ` Pali Rohár
2023-02-22 11:59         ` Martin Rowe
2023-02-22 18:03           ` Pali Rohár
2023-02-22 21:20             ` Martin Rowe
2023-02-22 21:23               ` Pali Rohár
2023-02-23 12:11                 ` Martin Rowe
2023-02-23 18:02                   ` Pali Rohár
2023-02-24  6:27                     ` Martin Rowe
2023-02-24 15:07                       ` Martin Rowe
2023-02-24 22:34                         ` Pali Rohár
2023-02-25  1:18                           ` Martin Rowe
2023-02-25 21:16                             ` Pali Rohár
2023-02-26  1:56                               ` Martin Rowe
2023-02-26  8:14                                 ` Pali Rohár
2023-03-08 20:36                             ` kwbimage config file documentation (Was: Re: [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes) Pali Rohár
2023-02-24 22:33                       ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-24 15:07                 ` Martin Rowe
2023-02-24 15:22                   ` Stefan Roese
2023-02-24 15:41                     ` Martin Rowe
2023-02-23  7:56           ` Pali Rohár
2023-02-22 22:16         ` Tony Dinh
2023-02-22 23:06           ` Pali Rohár
2023-02-22 23:16             ` Tony Dinh
2023-02-22 23:39               ` Pali Rohár
2023-02-23  0:17                 ` Tony Dinh
2023-02-23  7:46                   ` Pali Rohár
2023-02-25  1:42 ` [PATCH 0/2] arm: mvebu: clearfog: defconfig updates Martin Rowe
2023-02-25  1:42   ` [PATCH 1/2] arm: mvebu: clearfog: Fix MMC detection Martin Rowe
2023-02-25 21:49     ` Pali Rohár
2023-02-25 22:14       ` Pali Rohár
2023-02-26  1:45         ` Martin Rowe
2023-02-26 11:18           ` Pali Rohár
2023-02-26 11:28             ` Martin Rowe
2023-02-25  1:42   ` [PATCH 2/2] arm: mvebu: clearfog: Add defconfig for SPI booting Martin Rowe
2023-02-25  7:41     ` Pali Rohár
2023-02-25  9:48       ` Martin Rowe
2023-02-25 10:51         ` Josua Mayer
2023-02-25 11:47           ` Martin Rowe
2023-02-25 13:41             ` Pali Rohár
2023-02-25 22:46               ` Tony Dinh
2023-02-26  2:17                 ` Martin Rowe
2023-02-26  4:56                   ` Tony Dinh
2023-02-26 10:52                     ` Pali Rohár
2023-02-27  0:11                       ` Tony Dinh
2023-02-27  7:40                         ` Stefan Roese
2023-02-27 21:57                           ` Tony Dinh
2023-02-27 23:41                             ` Tony Dinh
2023-02-28  0:42                               ` Tony Dinh
2023-02-28  1:17                                 ` Tony Dinh
2023-02-28  9:48                                   ` Pali Rohár
2023-02-28 18:51                                     ` Pali Rohár
2023-02-28 21:51                                       ` Tony Dinh
2023-02-28 22:19                                         ` Pali Rohár
2023-03-01  1:32                                           ` Tony Dinh
2023-03-03  1:28                             ` Tony Dinh
2023-02-25 21:55           ` Pali Rohár
2023-02-25 22:00 ` [PATCH RFC u-boot-mvebu 00/59] arm: mvebu: Various fixes Pali Rohár
2023-02-27  7:44   ` Stefan Roese
2023-02-27  8:04     ` Pali Rohár
2023-02-27 11:29       ` Martin Rowe
2023-02-28  7:03         ` Stefan Roese
2023-02-28  9:16           ` Stefan Roese
2023-02-28  9:54           ` Pali Rohár
2023-02-28 10:01             ` Stefan Roese
2023-02-28 10:10               ` Pali Rohár
2023-02-28 10:16                 ` Stefan Roese
2023-02-28 22:41                   ` Pali Rohár
2023-03-01  6:01                     ` Stefan Roese
2023-02-28 10:22                 ` Pali Rohár
2023-03-01 15:48 ` Stefan Roese

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48c07c08-5b73-1586-ee51-1969bffb5e92@denx.de \
    --to=sr@denx.de \
    --cc=josua@solid-run.com \
    --cc=mibodhi@gmail.com \
    --cc=pali@kernel.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).