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

Alex Kiernan alex.kiernan at gmail.com
Mon Jul 16 11:11:59 UTC 2018


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).

-- 
Alex Kiernan


More information about the U-Boot mailing list