[U-Boot] [PATCH 21/25] fastboot: sunxi: Update fastboot mmc default device

Maxime Ripard maxime.ripard at bootlin.com
Tue Jul 17 11:57:54 UTC 2018


On Mon, Jul 16, 2018 at 12:11:59PM +0100, Alex Kiernan wrote:
> On Mon, Jul 16, 2018 at 11:13 AM Jagan Teki <jagannadh.teki at gmail.com> wrote:
> >
> > On Mon, Jul 16, 2018 at 3:16 PM, Maxime Ripard
> > <maxime.ripard at bootlin.com> wrote:
> > > On Mon, Jul 16, 2018 at 01:49:52PM +0530, Jagan Teki wrote:
> > >> Usually eMMC is default env fat device for environment,
> > >> if MMC_SUNXI_SLOT_EXTRA != 1 Sunxi always probed emmc
> > >> device as 1. but with DM_MMC it can be more possible to
> > >> probe eMMC as device 2 since for most of the sunxi platforms
> > >> eMMC is configured mmc2.
> > >>
> > >> So update the fastboot mmc default device as 2 if DM_MMC and
> > >> MMC_SUNXI_SLOT_EXTRA != 1 slot is 2 defined but some boards
> > >> may not use all possible mmc devices or partly disabled in DT,
> > >> for those update the device in board specific defconfig.
> > >>
> > >> Cc: Olliver Schinagl <oliver at schinagl.nl>
> > >> Cc: Chen-Yu Tsai <wens at csie.org>
> > >> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
> > >> ---
> > >>  configs/A20-OLinuXino-Lime2-eMMC_defconfig | 1 +
> > >>  configs/Sinlinx_SinA33_defconfig           | 1 +
> > >>  configs/amarula_a64_relic_defconfig        | 1 +
> > >>  drivers/fastboot/Kconfig                   | 3 ++-
> > >>  4 files changed, 5 insertions(+), 1 deletion(-)
> > >>
> > >> diff --git a/configs/A20-OLinuXino-Lime2-eMMC_defconfig b/configs/A20-OLinuXino-Lime2-eMMC_defconfig
> > >> index 5657fc2594..20ea254191 100644
> > >> --- a/configs/A20-OLinuXino-Lime2-eMMC_defconfig
> > >> +++ b/configs/A20-OLinuXino-Lime2-eMMC_defconfig
> > >> @@ -29,4 +29,5 @@ CONFIG_AXP_ALDO4_VOLT=2800
> > >>  CONFIG_SCSI=y
> > >>  CONFIG_USB_EHCI_HCD=y
> > >>  CONFIG_USB_MUSB_GADGET=y
> > >> +CONFIG_FASTBOOT_FLASH_MMC_DEV=1
> > >>  CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
> > >> diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig
> > >> index 394534b8b5..7841219a65 100644
> > >> --- a/configs/Sinlinx_SinA33_defconfig
> > >> +++ b/configs/Sinlinx_SinA33_defconfig
> > >> @@ -21,5 +21,6 @@ CONFIG_DFU_RAM=y
> > >>  CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
> > >>  CONFIG_USB_EHCI_HCD=y
> > >>  CONFIG_USB_MUSB_GADGET=y
> > >> +CONFIG_FASTBOOT_FLASH_MMC_DEV=1
> > >
> > > Your commit doesn't make any sense: the SinaA33 and the Lime2 both
> > > have the eMMC on MMC2, and you claim you want to update the default to
> > > point to MMC2, but you're changing both these boards to point to MMC1
> > > instead?
> >
> > If DM_MMC and SLOT != 1 => default device 2 which is updated by
> > kconfig, this is with all relevant mmc nodes are enabled
> > but these two boards mmc1 is not enabled so emmc will detected in device 1
> >
> > >
> > >>  CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
> > >>  CONFIG_USB_FUNCTION_MASS_STORAGE=y
> > >> diff --git a/configs/amarula_a64_relic_defconfig b/configs/amarula_a64_relic_defconfig
> > >> index b72cbfabc6..caeb3f6008 100644
> > >> --- a/configs/amarula_a64_relic_defconfig
> > >> +++ b/configs/amarula_a64_relic_defconfig
> > >> @@ -12,4 +12,5 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-amarula-relic"
> > >>  # CONFIG_SPL_DOS_PARTITION is not set
> > >>  # CONFIG_SPL_EFI_PARTITION is not set
> > >>  CONFIG_USB_MUSB_GADGET=y
> > >> +CONFIG_FASTBOOT_FLASH_MMC_DEV=0
> > >>  CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
> > >> diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
> > >> index bc25ea1d9c..4a1bfd119c 100644
> > >> --- a/drivers/fastboot/Kconfig
> > >> +++ b/drivers/fastboot/Kconfig
> > >> @@ -88,7 +88,8 @@ config FASTBOOT_FLASH_MMC_DEV
> > >>       int "Define FASTBOOT MMC FLASH default device"
> > >>       depends on FASTBOOT_FLASH_MMC
> > >>       default 0 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1
> > >> -     default 1 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1
> > >> +     default 1 if ARCH_SUNXI && !DM_MMC && MMC_SUNXI_SLOT_EXTRA != -1
> > >> +     default 2 if ARCH_SUNXI && DM_MMC && MMC_SUNXI_SLOT_EXTRA != -1
> > >
> > > It'd be better to be fixed properly, instead of just relying on a
> > > broken index.
> >
> > I don't think we can't do anything with this now, since this INDEX
> > more rely on SPL for pinctrl enablement. if you have any suggestion
> > please share.
> 
> Would another answer (at least for this specific case) to change the
> fastboot code so it doesn't need the device number in advance? Given
> we get device names along the lines of 'mmcsda1', we could parse out
> the 'a' to figure out the device number (and then use the alias code
> so your board can expose a portable name).

That sounds like a pretty good solution. I guess we would have some
corner cases when we have a NAND and an MMC card for example that can
be flashed using fastboot, but I'm not sure we have boards in that
setup at the moment (for Allwinner SoCs at least).

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180717/3f36de85/attachment.sig>


More information about the U-Boot mailing list