[U-Boot] arm: socfpga: use imply instead of select for spi/mmc

Message ID 20180212145212.31720-1-sgoldschmidt@de.pepperl-fuchs.com
State New
Delegated to: Marek Vasut
Headers show
Series
  • [U-Boot] arm: socfpga: use imply instead of select for spi/mmc
Related show

Commit Message

Simon Goldschmidt Feb. 12, 2018, 2:52 p.m.
In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
thins for spi flash and mmc that are not required by the hw.

Give users more freedom of choice and use imply here instead
of select.

This should allow disabling spi support completely or using
sd/mmc boot in "raw mode" (no partitions).

Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
---

 arch/arm/Kconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Marek Vasut Feb. 12, 2018, 2:54 p.m. | #1
On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
> thins for spi flash and mmc that are not required by the hw.

things ?

what hw, all supported boards you mean ?

> Give users more freedom of choice and use imply here instead
> of select.
> 
> This should allow disabling spi support completely or using
> sd/mmc boot in "raw mode" (no partitions).

You can just turn them off in the defconfigs, but I get what you're
trying to say.

Just reword the commit message and do make savedefconfig for all the
socfpga platforms (in a separate patch) to sync the defconfigs up.

> 
> Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
> ---
> 
>  arch/arm/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 225f57e847..37bf3dd69f 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -699,13 +699,13 @@ config ARCH_SOCFPGA
>  	select OF_CONTROL
>  	select SPL_OF_CONTROL
>  	select DM
> -	select DM_SPI_FLASH
> -	select DM_SPI
>  	select ENABLE_ARM_SOC_BOOT0_HOOK
>  	select ARCH_EARLY_INIT_R
>  	select ARCH_MISC_INIT
> -	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>  	select SYS_THUMB_BUILD
> +	imply DM_SPI_FLASH
> +	imply DM_SPI
> +	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>  	imply CMD_MTDPARTS
>  	imply CRC32_VERIFY
>  	imply FAT_WRITE
>
Simon Goldschmidt Feb. 12, 2018, 3:16 p.m. | #2
On 12.02.2018 15:54, Marek Vasut wrote:
> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>> thins for spi flash and mmc that are not required by the hw.
> things ?
>
> what hw, all supported boards you mean ?
>
>> Give users more freedom of choice and use imply here instead
>> of select.
>>
>> This should allow disabling spi support completely or using
>> sd/mmc boot in "raw mode" (no partitions).
> You can just turn them off in the defconfigs, but I get what you're
> trying to say.
>
> Just reword the commit message and do make savedefconfig for all the
> socfpga platforms (in a separate patch) to sync the defconfigs up.

OK, thanks. Given that the same files are touched, should I wait for the 
CONFIG_HW_WATCHDOG patches from Lukasz to be applied first?

Simon

>
>> Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
>> ---
>>
>>   arch/arm/Kconfig | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 225f57e847..37bf3dd69f 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -699,13 +699,13 @@ config ARCH_SOCFPGA
>>   	select OF_CONTROL
>>   	select SPL_OF_CONTROL
>>   	select DM
>> -	select DM_SPI_FLASH
>> -	select DM_SPI
>>   	select ENABLE_ARM_SOC_BOOT0_HOOK
>>   	select ARCH_EARLY_INIT_R
>>   	select ARCH_MISC_INIT
>> -	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>>   	select SYS_THUMB_BUILD
>> +	imply DM_SPI_FLASH
>> +	imply DM_SPI
>> +	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>>   	imply CMD_MTDPARTS
>>   	imply CRC32_VERIFY
>>   	imply FAT_WRITE
>>
>
Marek Vasut Feb. 12, 2018, 3:23 p.m. | #3
On 02/12/2018 04:16 PM, Simon Goldschmidt wrote:
> On 12.02.2018 15:54, Marek Vasut wrote:
>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>> thins for spi flash and mmc that are not required by the hw.
>> things ?
>>
>> what hw, all supported boards you mean ?
>>
>>> Give users more freedom of choice and use imply here instead
>>> of select.
>>>
>>> This should allow disabling spi support completely or using
>>> sd/mmc boot in "raw mode" (no partitions).
>> You can just turn them off in the defconfigs, but I get what you're
>> trying to say.
>>
>> Just reword the commit message and do make savedefconfig for all the
>> socfpga platforms (in a separate patch) to sync the defconfigs up.
> 
> OK, thanks. Given that the same files are touched, should I wait for the
> CONFIG_HW_WATCHDOG patches from Lukasz to be applied first?

You two figure it out :)
Lukasz Majewski Feb. 12, 2018, 3:39 p.m. | #4
Hi Simon, Marek,

> On 02/12/2018 04:16 PM, Simon Goldschmidt wrote:
> > On 12.02.2018 15:54, Marek Vasut wrote:  
> >> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:  
> >>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
> >>> thins for spi flash and mmc that are not required by the hw.  
> >> things ?
> >>
> >> what hw, all supported boards you mean ?
> >>  
> >>> Give users more freedom of choice and use imply here instead
> >>> of select.
> >>>
> >>> This should allow disabling spi support completely or using
> >>> sd/mmc boot in "raw mode" (no partitions).  
> >> You can just turn them off in the defconfigs, but I get what you're
> >> trying to say.
> >>
> >> Just reword the commit message and do make savedefconfig for all
> >> the socfpga platforms (in a separate patch) to sync the defconfigs
> >> up.  
> > 
> > OK, thanks. Given that the same files are touched, should I wait
> > for the CONFIG_HW_WATCHDOG patches from Lukasz to be applied
> > first?  
> 
> You two figure it out :)

It is always better to ask socfpga veteran for his opinion :-)

> 

Simon, feel free to perform the clean up. I will have to look more
closely to the WDT move to Kconfig.

Even better, you are more than welcome to use/squash this patch to your
work:
http://patchwork.ozlabs.org/patch/871578/

It will simplify my WDT conversion work.

Thanks for help.


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Marek Vasut Feb. 12, 2018, 3:40 p.m. | #5
On 02/12/2018 04:39 PM, Lukasz Majewski wrote:
> Hi Simon, Marek,
> 
>> On 02/12/2018 04:16 PM, Simon Goldschmidt wrote:
>>> On 12.02.2018 15:54, Marek Vasut wrote:  
>>>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:  
>>>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>>>> thins for spi flash and mmc that are not required by the hw.  
>>>> things ?
>>>>
>>>> what hw, all supported boards you mean ?
>>>>  
>>>>> Give users more freedom of choice and use imply here instead
>>>>> of select.
>>>>>
>>>>> This should allow disabling spi support completely or using
>>>>> sd/mmc boot in "raw mode" (no partitions).  
>>>> You can just turn them off in the defconfigs, but I get what you're
>>>> trying to say.
>>>>
>>>> Just reword the commit message and do make savedefconfig for all
>>>> the socfpga platforms (in a separate patch) to sync the defconfigs
>>>> up.  
>>>
>>> OK, thanks. Given that the same files are touched, should I wait
>>> for the CONFIG_HW_WATCHDOG patches from Lukasz to be applied
>>> first?  
>>
>> You two figure it out :)
> 
> It is always better to ask socfpga veteran for his opinion :-)

SoCFPGA veteran is old and is delegating tasks ;-)

> Simon, feel free to perform the clean up. I will have to look more
> closely to the WDT move to Kconfig.
> 
> Even better, you are more than welcome to use/squash this patch to your
> work:
> http://patchwork.ozlabs.org/patch/871578/
> 
> It will simplify my WDT conversion work.

Good!
Tom Rini Feb. 12, 2018, 4:46 p.m. | #6
On Mon, Feb 12, 2018 at 03:54:13PM +0100, Marek Vasut wrote:
> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
> > In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
> > thins for spi flash and mmc that are not required by the hw.
> 
> things ?
> 
> what hw, all supported boards you mean ?
> 
> > Give users more freedom of choice and use imply here instead
> > of select.
> > 
> > This should allow disabling spi support completely or using
> > sd/mmc boot in "raw mode" (no partitions).
> 
> You can just turn them off in the defconfigs, but I get what you're
> trying to say.

Well, hold on.  If you have select FOO under ARCH_xxx then you
can't disable it.  You have to use imply FOO under ARCH_xxx so that it's
turned on by default but a board can disable it in their defconfig.
Thanks!
Marek Vasut Feb. 12, 2018, 4:51 p.m. | #7
On 02/12/2018 05:46 PM, Tom Rini wrote:
> On Mon, Feb 12, 2018 at 03:54:13PM +0100, Marek Vasut wrote:
>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>> thins for spi flash and mmc that are not required by the hw.
>>
>> things ?
>>
>> what hw, all supported boards you mean ?
>>
>>> Give users more freedom of choice and use imply here instead
>>> of select.
>>>
>>> This should allow disabling spi support completely or using
>>> sd/mmc boot in "raw mode" (no partitions).
>>
>> You can just turn them off in the defconfigs, but I get what you're
>> trying to say.
> 
> Well, hold on.  If you have select FOO under ARCH_xxx then you
> can't disable it.  You have to use imply FOO under ARCH_xxx so that it's
> turned on by default but a board can disable it in their defconfig.
> Thanks!

The patch is using imply already ...
Tom Rini Feb. 12, 2018, 4:53 p.m. | #8
On Mon, Feb 12, 2018 at 05:51:08PM +0100, Marek Vasut wrote:
> On 02/12/2018 05:46 PM, Tom Rini wrote:
> > On Mon, Feb 12, 2018 at 03:54:13PM +0100, Marek Vasut wrote:
> >> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
> >>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
> >>> thins for spi flash and mmc that are not required by the hw.
> >>
> >> things ?
> >>
> >> what hw, all supported boards you mean ?
> >>
> >>> Give users more freedom of choice and use imply here instead
> >>> of select.
> >>>
> >>> This should allow disabling spi support completely or using
> >>> sd/mmc boot in "raw mode" (no partitions).
> >>
> >> You can just turn them off in the defconfigs, but I get what you're
> >> trying to say.
> > 
> > Well, hold on.  If you have select FOO under ARCH_xxx then you
> > can't disable it.  You have to use imply FOO under ARCH_xxx so that it's
> > turned on by default but a board can disable it in their defconfig.
> > Thanks!
> 
> The patch is using imply already ...

Right.  I wasn't clear if you were saying it wasn't needed, or just to
re-word things a lot :)
Simon Goldschmidt Feb. 13, 2018, 12:33 p.m. | #9
On 12.02.2018 15:54, Marek Vasut wrote:
> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>> thins for spi flash and mmc that are not required by the hw.
> things ?
>
> what hw, all supported boards you mean ?
>
>> Give users more freedom of choice and use imply here instead
>> of select.
>>
>> This should allow disabling spi support completely or using
>> sd/mmc boot in "raw mode" (no partitions).
> You can just turn them off in the defconfigs, but I get what you're
> trying to say.
>
> Just reword the commit message and do make savedefconfig for all the
> socfpga platforms (in a separate patch) to sync the defconfigs up.

I've posted v2 today with reworded commit message. I also did make 
savedefconfig, but nothing changed.

Simon

>
>> Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
>> ---
>>
>>   arch/arm/Kconfig | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 225f57e847..37bf3dd69f 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -699,13 +699,13 @@ config ARCH_SOCFPGA
>>   	select OF_CONTROL
>>   	select SPL_OF_CONTROL
>>   	select DM
>> -	select DM_SPI_FLASH
>> -	select DM_SPI
>>   	select ENABLE_ARM_SOC_BOOT0_HOOK
>>   	select ARCH_EARLY_INIT_R
>>   	select ARCH_MISC_INIT
>> -	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>>   	select SYS_THUMB_BUILD
>> +	imply DM_SPI_FLASH
>> +	imply DM_SPI
>> +	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
>>   	imply CMD_MTDPARTS
>>   	imply CRC32_VERIFY
>>   	imply FAT_WRITE
>>
>
Marek Vasut Feb. 13, 2018, 12:37 p.m. | #10
On 02/13/2018 01:33 PM, Simon Goldschmidt wrote:
> On 12.02.2018 15:54, Marek Vasut wrote:
>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>> thins for spi flash and mmc that are not required by the hw.
>> things ?
>>
>> what hw, all supported boards you mean ?
>>
>>> Give users more freedom of choice and use imply here instead
>>> of select.
>>>
>>> This should allow disabling spi support completely or using
>>> sd/mmc boot in "raw mode" (no partitions).
>> You can just turn them off in the defconfigs, but I get what you're
>> trying to say.
>>
>> Just reword the commit message and do make savedefconfig for all the
>> socfpga platforms (in a separate patch) to sync the defconfigs up.
> 
> I've posted v2 today with reworded commit message. I also did make
> savedefconfig, but nothing changed.

make savedefconfig generates a defconfig file in the root of the source
tree, you need to move it to configs/socfpga_foo_defconfig . Maybe
that's why ?
Simon Goldschmidt Feb. 13, 2018, 12:41 p.m. | #11
On 13.02.2018 13:37, Marek Vasut wrote:
> On 02/13/2018 01:33 PM, Simon Goldschmidt wrote:
>> On 12.02.2018 15:54, Marek Vasut wrote:
>>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>>> thins for spi flash and mmc that are not required by the hw.
>>> things ?
>>>
>>> what hw, all supported boards you mean ?
>>>
>>>> Give users more freedom of choice and use imply here instead
>>>> of select.
>>>>
>>>> This should allow disabling spi support completely or using
>>>> sd/mmc boot in "raw mode" (no partitions).
>>> You can just turn them off in the defconfigs, but I get what you're
>>> trying to say.
>>>
>>> Just reword the commit message and do make savedefconfig for all the
>>> socfpga platforms (in a separate patch) to sync the defconfigs up.
>> I've posted v2 today with reworded commit message. I also did make
>> savedefconfig, but nothing changed.
> make savedefconfig generates a defconfig file in the root of the source
> tree, you need to move it to configs/socfpga_foo_defconfig . Maybe
> that's why ?

I know how savedefconfig works ;-)

What I wanted to say is nothing has changed. The defconfigs stay the 
same for me. I made mrproper, socfpga_xyz_defconfig, savedefconfig and 
copy defconfig configs/socfpga_xyz_defconfig, but all files staid the same.

After all, the default config remains the same, we only use imply 
instead of select...

Simon
Marek Vasut Feb. 13, 2018, 12:44 p.m. | #12
On 02/13/2018 01:41 PM, Simon Goldschmidt wrote:
> 
> On 13.02.2018 13:37, Marek Vasut wrote:
>> On 02/13/2018 01:33 PM, Simon Goldschmidt wrote:
>>> On 12.02.2018 15:54, Marek Vasut wrote:
>>>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>>>> thins for spi flash and mmc that are not required by the hw.
>>>> things ?
>>>>
>>>> what hw, all supported boards you mean ?
>>>>
>>>>> Give users more freedom of choice and use imply here instead
>>>>> of select.
>>>>>
>>>>> This should allow disabling spi support completely or using
>>>>> sd/mmc boot in "raw mode" (no partitions).
>>>> You can just turn them off in the defconfigs, but I get what you're
>>>> trying to say.
>>>>
>>>> Just reword the commit message and do make savedefconfig for all the
>>>> socfpga platforms (in a separate patch) to sync the defconfigs up.
>>> I've posted v2 today with reworded commit message. I also did make
>>> savedefconfig, but nothing changed.
>> make savedefconfig generates a defconfig file in the root of the source
>> tree, you need to move it to configs/socfpga_foo_defconfig . Maybe
>> that's why ?
> 
> I know how savedefconfig works ;-)

OK! :)

> What I wanted to say is nothing has changed. The defconfigs stay the
> same for me. I made mrproper, socfpga_xyz_defconfig, savedefconfig and
> copy defconfig configs/socfpga_xyz_defconfig, but all files staid the same.
> 
> After all, the default config remains the same, we only use imply
> instead of select...

Perfect, then let's do V2 and be done with it. I don't see it in my
mailbox yet ...

> Simon
>
Simon Goldschmidt Feb. 13, 2018, 12:46 p.m. | #13
On 13.02.2018 13:44, Marek Vasut wrote:
> On 02/13/2018 01:41 PM, Simon Goldschmidt wrote:
>> On 13.02.2018 13:37, Marek Vasut wrote:
>>> On 02/13/2018 01:33 PM, Simon Goldschmidt wrote:
>>>> On 12.02.2018 15:54, Marek Vasut wrote:
>>>>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>>>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>>>>> thins for spi flash and mmc that are not required by the hw.
>>>>> things ?
>>>>>
>>>>> what hw, all supported boards you mean ?
>>>>>
>>>>>> Give users more freedom of choice and use imply here instead
>>>>>> of select.
>>>>>>
>>>>>> This should allow disabling spi support completely or using
>>>>>> sd/mmc boot in "raw mode" (no partitions).
>>>>> You can just turn them off in the defconfigs, but I get what you're
>>>>> trying to say.
>>>>>
>>>>> Just reword the commit message and do make savedefconfig for all the
>>>>> socfpga platforms (in a separate patch) to sync the defconfigs up.
>>>> I've posted v2 today with reworded commit message. I also did make
>>>> savedefconfig, but nothing changed.
>>> make savedefconfig generates a defconfig file in the root of the source
>>> tree, you need to move it to configs/socfpga_foo_defconfig . Maybe
>>> that's why ?
>> I know how savedefconfig works ;-)
> OK! :)
>
>> What I wanted to say is nothing has changed. The defconfigs stay the
>> same for me. I made mrproper, socfpga_xyz_defconfig, savedefconfig and
>> copy defconfig configs/socfpga_xyz_defconfig, but all files staid the same.
>>
>> After all, the default config remains the same, we only use imply
>> instead of select...
> Perfect, then let's do V2 and be done with it. I don't see it in my
> mailbox yet ...

Uhm, sorry, I renamed it "arm: socfpga: Kconfig cleanups" as Lukasz 
asked me to add his patch moving CONFIG_HW_WATCHDOG to Kconfig. Sent at 
6:35 AM this morning :-)

Simon
Marek Vasut Feb. 13, 2018, 12:50 p.m. | #14
On 02/13/2018 01:46 PM, Simon Goldschmidt wrote:
> On 13.02.2018 13:44, Marek Vasut wrote:
>> On 02/13/2018 01:41 PM, Simon Goldschmidt wrote:
>>> On 13.02.2018 13:37, Marek Vasut wrote:
>>>> On 02/13/2018 01:33 PM, Simon Goldschmidt wrote:
>>>>> On 12.02.2018 15:54, Marek Vasut wrote:
>>>>>> On 02/12/2018 03:52 PM, Simon Goldschmidt wrote:
>>>>>>> In arch/arm/Kconfig, ARCH_SOCFPGA currently selects some
>>>>>>> thins for spi flash and mmc that are not required by the hw.
>>>>>> things ?
>>>>>>
>>>>>> what hw, all supported boards you mean ?
>>>>>>
>>>>>>> Give users more freedom of choice and use imply here instead
>>>>>>> of select.
>>>>>>>
>>>>>>> This should allow disabling spi support completely or using
>>>>>>> sd/mmc boot in "raw mode" (no partitions).
>>>>>> You can just turn them off in the defconfigs, but I get what you're
>>>>>> trying to say.
>>>>>>
>>>>>> Just reword the commit message and do make savedefconfig for all the
>>>>>> socfpga platforms (in a separate patch) to sync the defconfigs up.
>>>>> I've posted v2 today with reworded commit message. I also did make
>>>>> savedefconfig, but nothing changed.
>>>> make savedefconfig generates a defconfig file in the root of the source
>>>> tree, you need to move it to configs/socfpga_foo_defconfig . Maybe
>>>> that's why ?
>>> I know how savedefconfig works ;-)
>> OK! :)
>>
>>> What I wanted to say is nothing has changed. The defconfigs stay the
>>> same for me. I made mrproper, socfpga_xyz_defconfig, savedefconfig and
>>> copy defconfig configs/socfpga_xyz_defconfig, but all files staid the
>>> same.
>>>
>>> After all, the default config remains the same, we only use imply
>>> instead of select...
>> Perfect, then let's do V2 and be done with it. I don't see it in my
>> mailbox yet ...
> 
> Uhm, sorry, I renamed it "arm: socfpga: Kconfig cleanups" as Lukasz
> asked me to add his patch moving CONFIG_HW_WATCHDOG to Kconfig. Sent at
> 6:35 AM this morning :-)

Ah, ok, applied both, let's see what CI says, then I'll send PR.

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 225f57e847..37bf3dd69f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -699,13 +699,13 @@  config ARCH_SOCFPGA
 	select OF_CONTROL
 	select SPL_OF_CONTROL
 	select DM
-	select DM_SPI_FLASH
-	select DM_SPI
 	select ENABLE_ARM_SOC_BOOT0_HOOK
 	select ARCH_EARLY_INIT_R
 	select ARCH_MISC_INIT
-	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
 	select SYS_THUMB_BUILD
+	imply DM_SPI_FLASH
+	imply DM_SPI
+	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
 	imply CMD_MTDPARTS
 	imply CRC32_VERIFY
 	imply FAT_WRITE