diff mbox series

[v1,2/2,WIP] arm: mvebu: Enable helios4 opt-out of SPL GPIO

Message ID 20200417071906.1098043-2-mrjoel@lixil.net
State New
Headers show
Series [v1,1/2] arm: mvebu: correct SPL boot configs for SPI/MMC | expand

Commit Message

Joel Johnson April 17, 2020, 7:19 a.m. UTC
Change the SPL boot selection of MMC from a hard selection of GPIO to
a softer imply and opt-out of GPIO support for helios4. This preserves
the previous GPIO-less configuration.

Signed-off-by: Joel Johnson <mrjoel at lixil.net>

---


Aditya Prayoga - if you object to the addition of GPIO to the helios4
                 SPL, I'd be interested in your thoughts on this option

This is an exploratory commit of a viable approach to retain the
identical current helios4 current configuration. I think it's not worth
it and shouldn't be applied since helios4 uses default MMC boot and
there is sufficient space for the SPL image, but is a viable option
depending on the opinion of helios4 interested maintainers.

---
 arch/arm/mach-mvebu/Kconfig | 6 +++---
 configs/helios4_defconfig   | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

Comments

Stefan Roese April 17, 2020, 8:12 a.m. UTC | #1
On 17.04.20 09:19, Joel Johnson wrote:
> Change the SPL boot selection of MMC from a hard selection of GPIO to
> a softer imply and opt-out of GPIO support for helios4. This preserves
> the previous GPIO-less configuration.
> 
> Signed-off-by: Joel Johnson <mrjoel at lixil.net>

Doesn't patch 1/2 generate a compile error (at least warning) on
helios4? If yes, then please squash both patches together to preserve
git bisect-ablility.

Thanks,
Stefan

> ---
> 
> 
> Aditya Prayoga - if you object to the addition of GPIO to the helios4
>                   SPL, I'd be interested in your thoughts on this option
> 
> This is an exploratory commit of a viable approach to retain the
> identical current helios4 current configuration. I think it's not worth
> it and shouldn't be applied since helios4 uses default MMC boot and
> there is sufficient space for the SPL image, but is a viable option
> depending on the opinion of helios4 interested maintainers.
> 
> ---
>   arch/arm/mach-mvebu/Kconfig | 6 +++---
>   configs/helios4_defconfig   | 1 +
>   2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 645990b3ef..af30d71cc6 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -245,12 +245,12 @@ config MVEBU_SPL_BOOT_DEVICE_SPI
>   config MVEBU_SPL_BOOT_DEVICE_MMC
>   	bool "SDIO/MMC card"
>   	imply ENV_IS_IN_MMC
> -	# GPIO needed for eMMC/SD card presence detection
> -	select SPL_DM_GPIO
>   	select SPL_DM_MMC
> -	select SPL_GPIO_SUPPORT
>   	select SPL_LIBDISK_SUPPORT
>   	select SPL_MMC_SUPPORT
> +	# GPIO often needed for eMMC/SD card presence detection
> +	imply SPL_DM_GPIO
> +	imply SPL_GPIO_SUPPORT
>   
>   config MVEBU_SPL_BOOT_DEVICE_SATA
>   	bool "SATA"
> diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
> index 0fe8559507..3630a004bd 100644
> --- a/configs/helios4_defconfig
> +++ b/configs/helios4_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
>   CONFIG_ARCH_CPU_INIT=y
>   CONFIG_ARCH_MVEBU=y
>   CONFIG_SYS_TEXT_BASE=0x00800000
> +# CONFIG_SPL_GPIO_SUPPORT is not set
>   CONFIG_SPL_LIBCOMMON_SUPPORT=y
>   CONFIG_SPL_LIBGENERIC_SUPPORT=y
>   CONFIG_SYS_MALLOC_F_LEN=0x2000
> 


Viele Gr??e,
Stefan
Joel Johnson April 17, 2020, 1:56 p.m. UTC | #2
On 2020-04-17 02:12, Stefan Roese wrote:
> On 17.04.20 09:19, Joel Johnson wrote:
>> Change the SPL boot selection of MMC from a hard selection of GPIO to
>> a softer imply and opt-out of GPIO support for helios4. This preserves
>> the previous GPIO-less configuration.
>> 
>> Signed-off-by: Joel Johnson <mrjoel at lixil.net>
> 
> Doesn't patch 1/2 generate a compile error (at least warning) on
> helios4? If yes, then please squash both patches together to preserve
> git bisect-ablility.
> 
> Thanks,
> Stefan

No, all mvebu targets build cleanly with just the first commit. My goal 
is to drop the second patch entirely and only have the first patch 
merged unless someone strongly objects.

The difference with helios4 is that it actually specifies 
MVEBU_SPL_BOOT_DEVICE_MMC explicitly and so takes that config path with 
the newly selected options. It is the only board besides ClearFog to do 
so, but I can only personally test with ClearFog hardware.

The only meaningful difference for helios4 is that the GPIO support is 
added where it wasn't included before, resulting in an increase of 2678 
bytes in the SPL image. I don't see any way including GPIO support would 
or could cause harm, especially since the device tree includes the same 
gpio line for sdhci detection as ClearFog. I am however, open to and 
inviting clarification if helios4 has a problem with that. As far as I 
could tell, Aditya Prayoga is the most recent and most active helios4 
contributor.

Concretely, the following is the buildman -sK -sS report for the series 
on helios4, showing config and resulting binary size differences.

01: Merge tag 'arc-fixes-for-2020.07-rc1' of 
https://gitlab.denx.de/u-boot/custodians/u-boot-arc
        arm:  w+   helios4
02: arm: mvebu: correct SPL boot configs for SPI/MMC
        arm: (for 1/1 boards) spl/u-boot-spl:all +2678.0 
spl/u-boot-spl:data +144.0 spl/u-boot-spl:rodata +214.0 
spl/u-boot-spl:text +2320.0
             helios4        : spl/u-boot-spl:all +2678 
spl/u-boot-spl:data +144 spl/u-boot-spl:rodata +214 spl/u-boot-spl:text 
+2320
                spl-u-boot-spl: add: 26/0, grow: 2/0 bytes: 2464/0 (2464)
                  function                                   old     new  
  delta
                  fdtdec_parse_phandle_with_args               -     332  
   +332
                  static.gpio_request_tail                     -     200  
   +200
                  dm_gpio_request                              -     148  
   +148
                  dm_gpio_set_dir_flags                        -     136  
   +136
                  gpio_renumber                                -     132  
   +132
                  check_reserved                               -     116  
   +116
                  gpio_request_by_name                         -     112  
   +112
                  fdt_get_phandle                              -     112  
   +112
                  uclass_find_device_by_ofnode                 -     108  
   +108
                  ofnode_parse_phandle_with_args               -     108  
   +108
                  fdt_node_offset_by_phandle                   -      96  
    +96
                  mvebu_gpio_probe                             -      76  
    +76
                  _u_boot_list_2_uclass_2_gpio                 -      76  
    +76
                  mvebu_gpio_direction_output                  -      72  
    +72
                  dm_gpio_get_value                            -      72  
    +72
                  gpio_xlate_offs_flags                        -      68  
    +68
                  _u_boot_list_2_driver_2_gpio_mvebu           -      68  
    +68
                  mvebu_gpio_set_value                         -      56  
    +56
                  gpio_post_probe                              -      56  
    +56
                  fdtdec_get_int                               -      52  
    +52
                  uclass_get_device_by_ofnode                  -      48  
    +48
                  mvebu_gpio_get_function                      -      44  
    +44
                  mvebu_gpio_direction_input                   -      40  
    +40
                  sdhci_probe                                336     372  
    +36
                  mvebu_gpio_get_value                         -      36  
    +36
                  sdhci_get_cd                                96     128  
    +32
                  gpio_pre_remove                              -      24  
    +24
                  gpio_post_bind                               -       8  
     +8
arm:
    + u-boot.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    + u-boot-spl.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    + all: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
helios4 :
    + u-boot.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    + u-boot-spl.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    + all: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
03: [WIP] arm: mvebu: Enable helios4 opt-out of SPL GPIO
        arm: (for 1/1 boards) spl/u-boot-spl:all -2678.0 
spl/u-boot-spl:data -144.0 spl/u-boot-spl:rodata -214.0 
spl/u-boot-spl:text -2320.0
             helios4        : spl/u-boot-spl:all -2678 
spl/u-boot-spl:data -144 spl/u-boot-spl:rodata -214 spl/u-boot-spl:text 
-2320
arm:
    - u-boot.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    - u-boot-spl.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    - all: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
helios4 :
    - u-boot.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    - u-boot-spl.cfg: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
    - all: CONFIG_SPL_DM_GPIO=1 CONFIG_SPL_GPIO_SUPPORT=1
Joel

>> 
>> Aditya Prayoga - if you object to the addition of GPIO to the helios4
>>                   SPL, I'd be interested in your thoughts on this 
>> option
>> 
>> This is an exploratory commit of a viable approach to retain the
>> identical current helios4 current configuration. I think it's not 
>> worth
>> it and shouldn't be applied since helios4 uses default MMC boot and
>> there is sufficient space for the SPL image, but is a viable option
>> depending on the opinion of helios4 interested maintainers.
diff mbox series

Patch

diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 645990b3ef..af30d71cc6 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -245,12 +245,12 @@  config MVEBU_SPL_BOOT_DEVICE_SPI
 config MVEBU_SPL_BOOT_DEVICE_MMC
 	bool "SDIO/MMC card"
 	imply ENV_IS_IN_MMC
-	# GPIO needed for eMMC/SD card presence detection
-	select SPL_DM_GPIO
 	select SPL_DM_MMC
-	select SPL_GPIO_SUPPORT
 	select SPL_LIBDISK_SUPPORT
 	select SPL_MMC_SUPPORT
+	# GPIO often needed for eMMC/SD card presence detection
+	imply SPL_DM_GPIO
+	imply SPL_GPIO_SUPPORT
 
 config MVEBU_SPL_BOOT_DEVICE_SATA
 	bool "SATA"
diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
index 0fe8559507..3630a004bd 100644
--- a/configs/helios4_defconfig
+++ b/configs/helios4_defconfig
@@ -2,6 +2,7 @@  CONFIG_ARM=y
 CONFIG_ARCH_CPU_INIT=y
 CONFIG_ARCH_MVEBU=y
 CONFIG_SYS_TEXT_BASE=0x00800000
+# CONFIG_SPL_GPIO_SUPPORT is not set
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000