diff mbox

[U-Boot,v2,2/6] dm: sunxi: Add a new config for an FDT-based pcDuino3

Message ID 1414036962-28463-3-git-send-email-sjg@chromium.org
State Superseded
Delegated to: Hans de Goede
Headers show

Commit Message

Simon Glass Oct. 23, 2014, 4:02 a.m. UTC
For now we won't want to mess with the existing configurations. Create a
new one which will enable device tree and driver model. Note that this
brings the device tree binary into u-boot-sunxi-with-spl.bin.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 Makefile                                  | 3 ++-
 arch/arm/dts/Makefile                     | 1 +
 board/sunxi/MAINTAINERS                   | 1 +
 configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
 include/configs/sun7i.h                   | 4 ++++
 5 files changed, 16 insertions(+), 1 deletion(-)
 create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig

Comments

Hans de Goede Oct. 24, 2014, 8:38 a.m. UTC | #1
Hi,

On 10/23/2014 06:02 AM, Simon Glass wrote:
> For now we won't want to mess with the existing configurations. Create a
> new one which will enable device tree and driver model. Note that this
> brings the device tree binary into u-boot-sunxi-with-spl.bin.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> Changes in v2: None
> 
>  Makefile                                  | 3 ++-
>  arch/arm/dts/Makefile                     | 1 +
>  board/sunxi/MAINTAINERS                   | 1 +
>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>  include/configs/sun7i.h                   | 4 ++++
>  5 files changed, 16 insertions(+), 1 deletion(-)
>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
> 
> diff --git a/Makefile b/Makefile
> index 99097e1..816f859 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>  ifneq ($(CONFIG_SUNXI),)
>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>  				   --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
> +			u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>  	$(call if_changed,pad_cat)
>  endif
>  
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 3299817..564eb76 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -1,3 +1,4 @@
> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb

Please make this

dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb

>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
> index 4f32195..3dbfe15 100644
> --- a/board/sunxi/MAINTAINERS
> +++ b/board/sunxi/MAINTAINERS
> @@ -21,6 +21,7 @@ F:	configs/A20-OLinuXino_MICRO_defconfig
>  F:	configs/Bananapi_defconfig
>  F:	configs/i12-tvbox_defconfig
>  F:	configs/Linksprite_pcDuino3_defconfig
> +F:	configs/Linksprite_pcDuino3_fdt_defconfig
>  F:	configs/qt840a_defconfig
>  
>  CUBIEBOARD2 BOARD
> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
> new file mode 100644
> index 0000000..e5f6236
> --- /dev/null
> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
> @@ -0,0 +1,8 @@
> +CONFIG_SPL=y
> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"

Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
here (some other boards have local usage of its too, but it is not used globably.

Can you do a patch (and prepend it to this one in the next posting of this series),
which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h

Note sunxi uses CONFIG_FDTFILE in 3 places:

1) board/sunxi/Kconfig
2) various board/*_defconfig files
3) include/configs/sunxi-common.h


> +CONFIG_OF_CONTROL=y
> +CONFIG_OF_SEPARATE=y
> ++S:CONFIG_ARM=y
> ++S:CONFIG_TARGET_SUN7I=y
> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
> index a902b84..500d0e3 100644
> --- a/include/configs/sun7i.h
> +++ b/include/configs/sun7i.h
> @@ -36,6 +36,10 @@
>  #define CONFIG_ARMV7_SECURE_BASE	SUNXI_SRAM_B_BASE
>  #define CONFIG_SYS_CLK_FREQ		24000000
>  
> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
> +# define CONFIG_CMD_DM
> +#endif
> +

Can you please put this in include/configs/sunxi-common.h instead ?

>  /*
>   * Include common sunxi configuration where most the settings are
>   */
> 

Regards,

Hans
Simon Glass Oct. 28, 2014, 12:04 a.m. UTC | #2
Hi Hans,

On 24 October 2014 02:38, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 10/23/2014 06:02 AM, Simon Glass wrote:
>> For now we won't want to mess with the existing configurations. Create a
>> new one which will enable device tree and driver model. Note that this
>> brings the device tree binary into u-boot-sunxi-with-spl.bin.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>> Changes in v2: None
>>
>>  Makefile                                  | 3 ++-
>>  arch/arm/dts/Makefile                     | 1 +
>>  board/sunxi/MAINTAINERS                   | 1 +
>>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>>  include/configs/sun7i.h                   | 4 ++++
>>  5 files changed, 16 insertions(+), 1 deletion(-)
>>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
>>
>> diff --git a/Makefile b/Makefile
>> index 99097e1..816f859 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>>  ifneq ($(CONFIG_SUNXI),)
>>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>>                                  --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
>> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
>> +                     u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>>       $(call if_changed,pad_cat)
>>  endif
>>
>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>> index 3299817..564eb76 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -1,3 +1,4 @@
>> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
>
> Please make this
>
> dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb

Well I can do that, but this should have no effect if we don't define
CONFIG_OF_CONTROL. The way I have it we will be able to add more
device tree files for sun7x without anyone having to change it. The
target should build all sun7i device trees eventually.

>
>>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
>> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
>> index 4f32195..3dbfe15 100644
>> --- a/board/sunxi/MAINTAINERS
>> +++ b/board/sunxi/MAINTAINERS
>> @@ -21,6 +21,7 @@ F:  configs/A20-OLinuXino_MICRO_defconfig
>>  F:   configs/Bananapi_defconfig
>>  F:   configs/i12-tvbox_defconfig
>>  F:   configs/Linksprite_pcDuino3_defconfig
>> +F:   configs/Linksprite_pcDuino3_fdt_defconfig
>>  F:   configs/qt840a_defconfig
>>
>>  CUBIEBOARD2 BOARD
>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
>> new file mode 100644
>> index 0000000..e5f6236
>> --- /dev/null
>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>> @@ -0,0 +1,8 @@
>> +CONFIG_SPL=y
>> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
>> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>
> Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
> here (some other boards have local usage of its too, but it is not used globably.
>
> Can you do a patch (and prepend it to this one in the next posting of this series),
> which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
> the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h
>
> Note sunxi uses CONFIG_FDTFILE in 3 places:
>
> 1) board/sunxi/Kconfig
> 2) various board/*_defconfig files
> 3) include/configs/sunxi-common.h

But isn't that used for passing to the kernel? Do you want to drop the
ability to have a separate file for each?

>
>
>> +CONFIG_OF_CONTROL=y
>> +CONFIG_OF_SEPARATE=y
>> ++S:CONFIG_ARM=y
>> ++S:CONFIG_TARGET_SUN7I=y
>> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
>> index a902b84..500d0e3 100644
>> --- a/include/configs/sun7i.h
>> +++ b/include/configs/sun7i.h
>> @@ -36,6 +36,10 @@
>>  #define CONFIG_ARMV7_SECURE_BASE     SUNXI_SRAM_B_BASE
>>  #define CONFIG_SYS_CLK_FREQ          24000000
>>
>> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
>> +# define CONFIG_CMD_DM
>> +#endif
>> +
>
> Can you please put this in include/configs/sunxi-common.h instead ?

OK will do.

>
>>  /*
>>   * Include common sunxi configuration where most the settings are
>>   */

Regards,
Simon
Hans de Goede Oct. 28, 2014, 9:13 a.m. UTC | #3
Hi,

On 10/28/2014 01:04 AM, Simon Glass wrote:
> Hi Hans,
> 
> On 24 October 2014 02:38, Hans de Goede <hdegoede@redhat.com> wrote:
>> Hi,
>>
>> On 10/23/2014 06:02 AM, Simon Glass wrote:
>>> For now we won't want to mess with the existing configurations. Create a
>>> new one which will enable device tree and driver model. Note that this
>>> brings the device tree binary into u-boot-sunxi-with-spl.bin.
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>> ---
>>>
>>> Changes in v2: None
>>>
>>>  Makefile                                  | 3 ++-
>>>  arch/arm/dts/Makefile                     | 1 +
>>>  board/sunxi/MAINTAINERS                   | 1 +
>>>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>>>  include/configs/sun7i.h                   | 4 ++++
>>>  5 files changed, 16 insertions(+), 1 deletion(-)
>>>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 99097e1..816f859 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>>>  ifneq ($(CONFIG_SUNXI),)
>>>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>>>                                  --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
>>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
>>> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
>>> +                     u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>>>       $(call if_changed,pad_cat)
>>>  endif
>>>
>>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>>> index 3299817..564eb76 100644
>>> --- a/arch/arm/dts/Makefile
>>> +++ b/arch/arm/dts/Makefile
>>> @@ -1,3 +1,4 @@
>>> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
>>
>> Please make this
>>
>> dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb
> 
> Well I can do that, but this should have no effect if we don't define
> CONFIG_OF_CONTROL. The way I have it we will be able to add more
> device tree files for sun7x without anyone having to change it. The
> target should build all sun7i device trees eventually.

Ah, I see, ok lets keep this as is then.

> 
>>
>>>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>>>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>>>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
>>> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
>>> index 4f32195..3dbfe15 100644
>>> --- a/board/sunxi/MAINTAINERS
>>> +++ b/board/sunxi/MAINTAINERS
>>> @@ -21,6 +21,7 @@ F:  configs/A20-OLinuXino_MICRO_defconfig
>>>  F:   configs/Bananapi_defconfig
>>>  F:   configs/i12-tvbox_defconfig
>>>  F:   configs/Linksprite_pcDuino3_defconfig
>>> +F:   configs/Linksprite_pcDuino3_fdt_defconfig
>>>  F:   configs/qt840a_defconfig
>>>
>>>  CUBIEBOARD2 BOARD
>>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
>>> new file mode 100644
>>> index 0000000..e5f6236
>>> --- /dev/null
>>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>>> @@ -0,0 +1,8 @@
>>> +CONFIG_SPL=y
>>> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
>>> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>>> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>>
>> Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
>> here (some other boards have local usage of its too, but it is not used globably.
>>
>> Can you do a patch (and prepend it to this one in the next posting of this series),
>> which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
>> the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h
>>
>> Note sunxi uses CONFIG_FDTFILE in 3 places:
>>
>> 1) board/sunxi/Kconfig
>> 2) various board/*_defconfig files
>> 3) include/configs/sunxi-common.h
> 
> But isn't that used for passing to the kernel? Do you want to drop the
> ability to have a separate file for each?

A good question, there are 2 things here:

1) This is just the filename, it gets combined with a "basedir" set through extlinux.conf
when booting the real kernel, so they can still be different

2) TBH even if this would make it mandatory for them to be 1 and the same file, I would
not consider that a problem, I would very much like to avoid the need to have separate
u-boot and kernel devicetree flavors for sunxi.


> 
>>
>>
>>> +CONFIG_OF_CONTROL=y
>>> +CONFIG_OF_SEPARATE=y
>>> ++S:CONFIG_ARM=y
>>> ++S:CONFIG_TARGET_SUN7I=y
>>> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
>>> index a902b84..500d0e3 100644
>>> --- a/include/configs/sun7i.h
>>> +++ b/include/configs/sun7i.h
>>> @@ -36,6 +36,10 @@
>>>  #define CONFIG_ARMV7_SECURE_BASE     SUNXI_SRAM_B_BASE
>>>  #define CONFIG_SYS_CLK_FREQ          24000000
>>>
>>> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
>>> +# define CONFIG_CMD_DM
>>> +#endif
>>> +
>>
>> Can you please put this in include/configs/sunxi-common.h instead ?
> 
> OK will do.
> 
>>
>>>  /*
>>>   * Include common sunxi configuration where most the settings are
>>>   */
> 
> Regards,
> Simon
> 

Regards,

Hans
Simon Glass Oct. 29, 2014, 3:02 a.m. UTC | #4
Hi Hans,

On 28 October 2014 03:13, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 10/28/2014 01:04 AM, Simon Glass wrote:
>> Hi Hans,
>>
>> On 24 October 2014 02:38, Hans de Goede <hdegoede@redhat.com> wrote:
>>> Hi,
>>>
>>> On 10/23/2014 06:02 AM, Simon Glass wrote:
>>>> For now we won't want to mess with the existing configurations. Create a
>>>> new one which will enable device tree and driver model. Note that this
>>>> brings the device tree binary into u-boot-sunxi-with-spl.bin.
>>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>> ---
>>>>
>>>> Changes in v2: None
>>>>
>>>>  Makefile                                  | 3 ++-
>>>>  arch/arm/dts/Makefile                     | 1 +
>>>>  board/sunxi/MAINTAINERS                   | 1 +
>>>>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>>>>  include/configs/sun7i.h                   | 4 ++++
>>>>  5 files changed, 16 insertions(+), 1 deletion(-)
>>>>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index 99097e1..816f859 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>>>>  ifneq ($(CONFIG_SUNXI),)
>>>>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>>>>                                  --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
>>>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
>>>> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
>>>> +                     u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>>>>       $(call if_changed,pad_cat)
>>>>  endif
>>>>
>>>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>>>> index 3299817..564eb76 100644
>>>> --- a/arch/arm/dts/Makefile
>>>> +++ b/arch/arm/dts/Makefile
>>>> @@ -1,3 +1,4 @@
>>>> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
>>>
>>> Please make this
>>>
>>> dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb
>>
>> Well I can do that, but this should have no effect if we don't define
>> CONFIG_OF_CONTROL. The way I have it we will be able to add more
>> device tree files for sun7x without anyone having to change it. The
>> target should build all sun7i device trees eventually.
>
> Ah, I see, ok lets keep this as is then.
>
>>
>>>
>>>>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>>>>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>>>>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
>>>> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
>>>> index 4f32195..3dbfe15 100644
>>>> --- a/board/sunxi/MAINTAINERS
>>>> +++ b/board/sunxi/MAINTAINERS
>>>> @@ -21,6 +21,7 @@ F:  configs/A20-OLinuXino_MICRO_defconfig
>>>>  F:   configs/Bananapi_defconfig
>>>>  F:   configs/i12-tvbox_defconfig
>>>>  F:   configs/Linksprite_pcDuino3_defconfig
>>>> +F:   configs/Linksprite_pcDuino3_fdt_defconfig
>>>>  F:   configs/qt840a_defconfig
>>>>
>>>>  CUBIEBOARD2 BOARD
>>>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>> new file mode 100644
>>>> index 0000000..e5f6236
>>>> --- /dev/null
>>>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>> @@ -0,0 +1,8 @@
>>>> +CONFIG_SPL=y
>>>> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
>>>> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>>>> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>>>
>>> Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
>>> here (some other boards have local usage of its too, but it is not used globably.
>>>
>>> Can you do a patch (and prepend it to this one in the next posting of this series),
>>> which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
>>> the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h
>>>
>>> Note sunxi uses CONFIG_FDTFILE in 3 places:
>>>
>>> 1) board/sunxi/Kconfig
>>> 2) various board/*_defconfig files
>>> 3) include/configs/sunxi-common.h
>>
>> But isn't that used for passing to the kernel? Do you want to drop the
>> ability to have a separate file for each?
>
> A good question, there are 2 things here:
>
> 1) This is just the filename, it gets combined with a "basedir" set through extlinux.conf
> when booting the real kernel, so they can still be different
>
> 2) TBH even if this would make it mandatory for them to be 1 and the same file, I would
> not consider that a problem, I would very much like to avoid the need to have separate
> u-boot and kernel devicetree flavors for sunxi.

OK fair enough, but actually I feel that this should be unrelated to
my change. The CONFIG_DEFAULT_DEVICE_TREE setting is used by all
boards that use device tree. It seems that CONFIG_FDTFILE is used in a
few places but is not very widespread.

So I suppose what I am saying is, how about you do the patch you are
talking about? I need to be careful to focus on drivel model changes
and not boil the ocearn, or I will never get done!

>
>
>>
>>>
>>>
>>>> +CONFIG_OF_CONTROL=y
>>>> +CONFIG_OF_SEPARATE=y
>>>> ++S:CONFIG_ARM=y
>>>> ++S:CONFIG_TARGET_SUN7I=y
>>>> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
>>>> index a902b84..500d0e3 100644
>>>> --- a/include/configs/sun7i.h
>>>> +++ b/include/configs/sun7i.h
>>>> @@ -36,6 +36,10 @@
>>>>  #define CONFIG_ARMV7_SECURE_BASE     SUNXI_SRAM_B_BASE
>>>>  #define CONFIG_SYS_CLK_FREQ          24000000
>>>>
>>>> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
>>>> +# define CONFIG_CMD_DM
>>>> +#endif
>>>> +
>>>
>>> Can you please put this in include/configs/sunxi-common.h instead ?
>>
>> OK will do.
>>
>>>
>>>>  /*
>>>>   * Include common sunxi configuration where most the settings are
>>>>   */
Regards,
Simon
Hans de Goede Oct. 29, 2014, 9:32 a.m. UTC | #5
Hi,

On 10/29/2014 04:02 AM, Simon Glass wrote:
> Hi Hans,
> 
> On 28 October 2014 03:13, Hans de Goede <hdegoede@redhat.com> wrote:
>> Hi,
>>
>> On 10/28/2014 01:04 AM, Simon Glass wrote:
>>> Hi Hans,
>>>
>>> On 24 October 2014 02:38, Hans de Goede <hdegoede@redhat.com> wrote:
>>>> Hi,
>>>>
>>>> On 10/23/2014 06:02 AM, Simon Glass wrote:
>>>>> For now we won't want to mess with the existing configurations. Create a
>>>>> new one which will enable device tree and driver model. Note that this
>>>>> brings the device tree binary into u-boot-sunxi-with-spl.bin.
>>>>>
>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>> ---
>>>>>
>>>>> Changes in v2: None
>>>>>
>>>>>  Makefile                                  | 3 ++-
>>>>>  arch/arm/dts/Makefile                     | 1 +
>>>>>  board/sunxi/MAINTAINERS                   | 1 +
>>>>>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>>>>>  include/configs/sun7i.h                   | 4 ++++
>>>>>  5 files changed, 16 insertions(+), 1 deletion(-)
>>>>>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>
>>>>> diff --git a/Makefile b/Makefile
>>>>> index 99097e1..816f859 100644
>>>>> --- a/Makefile
>>>>> +++ b/Makefile
>>>>> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>>>>>  ifneq ($(CONFIG_SUNXI),)
>>>>>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>>>>>                                  --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
>>>>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
>>>>> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
>>>>> +                     u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>>>>>       $(call if_changed,pad_cat)
>>>>>  endif
>>>>>
>>>>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>>>>> index 3299817..564eb76 100644
>>>>> --- a/arch/arm/dts/Makefile
>>>>> +++ b/arch/arm/dts/Makefile
>>>>> @@ -1,3 +1,4 @@
>>>>> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
>>>>
>>>> Please make this
>>>>
>>>> dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb
>>>
>>> Well I can do that, but this should have no effect if we don't define
>>> CONFIG_OF_CONTROL. The way I have it we will be able to add more
>>> device tree files for sun7x without anyone having to change it. The
>>> target should build all sun7i device trees eventually.
>>
>> Ah, I see, ok lets keep this as is then.
>>
>>>
>>>>
>>>>>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>>>>>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>>>>>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
>>>>> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
>>>>> index 4f32195..3dbfe15 100644
>>>>> --- a/board/sunxi/MAINTAINERS
>>>>> +++ b/board/sunxi/MAINTAINERS
>>>>> @@ -21,6 +21,7 @@ F:  configs/A20-OLinuXino_MICRO_defconfig
>>>>>  F:   configs/Bananapi_defconfig
>>>>>  F:   configs/i12-tvbox_defconfig
>>>>>  F:   configs/Linksprite_pcDuino3_defconfig
>>>>> +F:   configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>  F:   configs/qt840a_defconfig
>>>>>
>>>>>  CUBIEBOARD2 BOARD
>>>>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>>> new file mode 100644
>>>>> index 0000000..e5f6236
>>>>> --- /dev/null
>>>>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>>> @@ -0,0 +1,8 @@
>>>>> +CONFIG_SPL=y
>>>>> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
>>>>> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>>>>> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>>>>
>>>> Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
>>>> here (some other boards have local usage of its too, but it is not used globably.
>>>>
>>>> Can you do a patch (and prepend it to this one in the next posting of this series),
>>>> which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
>>>> the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h
>>>>
>>>> Note sunxi uses CONFIG_FDTFILE in 3 places:
>>>>
>>>> 1) board/sunxi/Kconfig
>>>> 2) various board/*_defconfig files
>>>> 3) include/configs/sunxi-common.h
>>>
>>> But isn't that used for passing to the kernel? Do you want to drop the
>>> ability to have a separate file for each?
>>
>> A good question, there are 2 things here:
>>
>> 1) This is just the filename, it gets combined with a "basedir" set through extlinux.conf
>> when booting the real kernel, so they can still be different
>>
>> 2) TBH even if this would make it mandatory for them to be 1 and the same file, I would
>> not consider that a problem, I would very much like to avoid the need to have separate
>> u-boot and kernel devicetree flavors for sunxi.
> 
> OK fair enough, but actually I feel that this should be unrelated to
> my change. The CONFIG_DEFAULT_DEVICE_TREE setting is used by all
> boards that use device tree. It seems that CONFIG_FDTFILE is used in a
> few places but is not very widespread.
> 
> So I suppose what I am saying is, how about you do the patch you are
> talking about? I need to be careful to focus on drivel model changes
> and not boil the ocearn, or I will never get done!

Ok, I lets leave this bit of the patch as is then, and I'll put fixing this
on my todo list.

So...

> 
>>
>>
>>>
>>>>
>>>>
>>>>> +CONFIG_OF_CONTROL=y
>>>>> +CONFIG_OF_SEPARATE=y
>>>>> ++S:CONFIG_ARM=y
>>>>> ++S:CONFIG_TARGET_SUN7I=y
>>>>> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
>>>>> index a902b84..500d0e3 100644
>>>>> --- a/include/configs/sun7i.h
>>>>> +++ b/include/configs/sun7i.h
>>>>> @@ -36,6 +36,10 @@
>>>>>  #define CONFIG_ARMV7_SECURE_BASE     SUNXI_SRAM_B_BASE
>>>>>  #define CONFIG_SYS_CLK_FREQ          24000000
>>>>>
>>>>> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
>>>>> +# define CONFIG_CMD_DM
>>>>> +#endif
>>>>> +
>>>>
>>>> Can you please put this in include/configs/sunxi-common.h instead ?
>>>
>>> OK will do.

If you can do a respin based on tip of the latest master and with this one
small item fixed, then I'll queue up your patches in u-boot-sunxi/next

Thanks & Regards,

Hans
Simon Glass Oct. 29, 2014, 7:30 p.m. UTC | #6
Hi Hans,

On 29 October 2014 03:32, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 10/29/2014 04:02 AM, Simon Glass wrote:
>> Hi Hans,
>>
>> On 28 October 2014 03:13, Hans de Goede <hdegoede@redhat.com> wrote:
>>> Hi,
>>>
>>> On 10/28/2014 01:04 AM, Simon Glass wrote:
>>>> Hi Hans,
>>>>
>>>> On 24 October 2014 02:38, Hans de Goede <hdegoede@redhat.com> wrote:
>>>>> Hi,
>>>>>
>>>>> On 10/23/2014 06:02 AM, Simon Glass wrote:
>>>>>> For now we won't want to mess with the existing configurations. Create a
>>>>>> new one which will enable device tree and driver model. Note that this
>>>>>> brings the device tree binary into u-boot-sunxi-with-spl.bin.
>>>>>>
>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>>> ---
>>>>>>
>>>>>> Changes in v2: None
>>>>>>
>>>>>>  Makefile                                  | 3 ++-
>>>>>>  arch/arm/dts/Makefile                     | 1 +
>>>>>>  board/sunxi/MAINTAINERS                   | 1 +
>>>>>>  configs/Linksprite_pcDuino3_fdt_defconfig | 8 ++++++++
>>>>>>  include/configs/sun7i.h                   | 4 ++++
>>>>>>  5 files changed, 16 insertions(+), 1 deletion(-)
>>>>>>  create mode 100644 configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>>
>>>>>> diff --git a/Makefile b/Makefile
>>>>>> index 99097e1..816f859 100644
>>>>>> --- a/Makefile
>>>>>> +++ b/Makefile
>>>>>> @@ -941,7 +941,8 @@ u-boot-nand.gph: u-boot.bin FORCE
>>>>>>  ifneq ($(CONFIG_SUNXI),)
>>>>>>  OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
>>>>>>                                  --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
>>>>>> -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
>>>>>> +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
>>>>>> +                     u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
>>>>>>       $(call if_changed,pad_cat)
>>>>>>  endif
>>>>>>
>>>>>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>>>>>> index 3299817..564eb76 100644
>>>>>> --- a/arch/arm/dts/Makefile
>>>>>> +++ b/arch/arm/dts/Makefile
>>>>>> @@ -1,3 +1,4 @@
>>>>>> +dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
>>>>>
>>>>> Please make this
>>>>>
>>>>> dtb-$(CONFIG_PCDUINO3) +=  sun7i-a20-pcduino3.dtb
>>>>
>>>> Well I can do that, but this should have no effect if we don't define
>>>> CONFIG_OF_CONTROL. The way I have it we will be able to add more
>>>> device tree files for sun7x without anyone having to change it. The
>>>> target should build all sun7i device trees eventually.
>>>
>>> Ah, I see, ok lets keep this as is then.
>>>
>>>>
>>>>>
>>>>>>  dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
>>>>>>  dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
>>>>>>  dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
>>>>>> diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
>>>>>> index 4f32195..3dbfe15 100644
>>>>>> --- a/board/sunxi/MAINTAINERS
>>>>>> +++ b/board/sunxi/MAINTAINERS
>>>>>> @@ -21,6 +21,7 @@ F:  configs/A20-OLinuXino_MICRO_defconfig
>>>>>>  F:   configs/Bananapi_defconfig
>>>>>>  F:   configs/i12-tvbox_defconfig
>>>>>>  F:   configs/Linksprite_pcDuino3_defconfig
>>>>>> +F:   configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>>  F:   configs/qt840a_defconfig
>>>>>>
>>>>>>  CUBIEBOARD2 BOARD
>>>>>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>> new file mode 100644
>>>>>> index 0000000..e5f6236
>>>>>> --- /dev/null
>>>>>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>>>>>> @@ -0,0 +1,8 @@
>>>>>> +CONFIG_SPL=y
>>>>>> +CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
>>>>>> +CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>>>>>> +CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>>>>>
>>>>> Hmm, I don't like this doubling of info. CONFIG_FDTFILE is sort of a sunxi specific thing
>>>>> here (some other boards have local usage of its too, but it is not used globably.
>>>>>
>>>>> Can you do a patch (and prepend it to this one in the next posting of this series),
>>>>> which replaces sunxi's CONFIG_FDTFILE usage with CONFIG_DEFAULT_DEVICE_TREE, dropping
>>>>> the .dtb appending in the defconfigs and instead append the .dtb in include/configs/sunxi-commom.h
>>>>>
>>>>> Note sunxi uses CONFIG_FDTFILE in 3 places:
>>>>>
>>>>> 1) board/sunxi/Kconfig
>>>>> 2) various board/*_defconfig files
>>>>> 3) include/configs/sunxi-common.h
>>>>
>>>> But isn't that used for passing to the kernel? Do you want to drop the
>>>> ability to have a separate file for each?
>>>
>>> A good question, there are 2 things here:
>>>
>>> 1) This is just the filename, it gets combined with a "basedir" set through extlinux.conf
>>> when booting the real kernel, so they can still be different
>>>
>>> 2) TBH even if this would make it mandatory for them to be 1 and the same file, I would
>>> not consider that a problem, I would very much like to avoid the need to have separate
>>> u-boot and kernel devicetree flavors for sunxi.
>>
>> OK fair enough, but actually I feel that this should be unrelated to
>> my change. The CONFIG_DEFAULT_DEVICE_TREE setting is used by all
>> boards that use device tree. It seems that CONFIG_FDTFILE is used in a
>> few places but is not very widespread.
>>
>> So I suppose what I am saying is, how about you do the patch you are
>> talking about? I need to be careful to focus on drivel model changes
>> and not boil the ocearn, or I will never get done!
>
> Ok, I lets leave this bit of the patch as is then, and I'll put fixing this
> on my todo list.
>
> So...

Thank you, you are very kind :-) I still have a sunxi board and expect
to be doing more here in future, but right now am a bit tight for
time.

>
>>
>>>
>>>
>>>>
>>>>>
>>>>>
>>>>>> +CONFIG_OF_CONTROL=y
>>>>>> +CONFIG_OF_SEPARATE=y
>>>>>> ++S:CONFIG_ARM=y
>>>>>> ++S:CONFIG_TARGET_SUN7I=y
>>>>>> diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
>>>>>> index a902b84..500d0e3 100644
>>>>>> --- a/include/configs/sun7i.h
>>>>>> +++ b/include/configs/sun7i.h
>>>>>> @@ -36,6 +36,10 @@
>>>>>>  #define CONFIG_ARMV7_SECURE_BASE     SUNXI_SRAM_B_BASE
>>>>>>  #define CONFIG_SYS_CLK_FREQ          24000000
>>>>>>
>>>>>> +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
>>>>>> +# define CONFIG_CMD_DM
>>>>>> +#endif
>>>>>> +
>>>>>
>>>>> Can you please put this in include/configs/sunxi-common.h instead ?
>>>>
>>>> OK will do.
>
> If you can do a respin based on tip of the latest master and with this one
> small item fixed, then I'll queue up your patches in u-boot-sunxi/next

I will respin with the changes and retest. I was planning to bring it
through -dm with suitable acks, but it is all sunxi stuff now and
there are no DM-dependent patches outstanding, so going through sunxi
sounds good. But would like to make sure it merges to mainline next
week.

Regards,
Simon
Hans de Goede Oct. 30, 2014, 8:36 a.m. UTC | #7
Hi,

On 10/29/2014 08:30 PM, Simon Glass wrote:
> Hi Hans,
> 
> On 29 October 2014 03:32, Hans de Goede <hdegoede@redhat.com> wrote:

<snip>

>> If you can do a respin based on tip of the latest master and with this one
>> small item fixed, then I'll queue up your patches in u-boot-sunxi/next
> 
> I will respin with the changes and retest. I was planning to bring it
> through -dm with suitable acks, but it is all sunxi stuff now and
> there are no DM-dependent patches outstanding, so going through sunxi
> sounds good. But would like to make sure it merges to mainline next
> week.

I can do a pull-req as soon as you've a v3 ready. Or if you prefer you
can take this in through the dm tree, that works for me too.

In that case consider this patch:

Acked-by: Hans de Goede <hdegoede@redhat.com>

Once the CONFIG_CMD_DM defining code block has been moved to sunxi-common.h

Regards,

Hans
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 99097e1..816f859 100644
--- a/Makefile
+++ b/Makefile
@@ -941,7 +941,8 @@  u-boot-nand.gph: u-boot.bin FORCE
 ifneq ($(CONFIG_SUNXI),)
 OBJCOPYFLAGS_u-boot-sunxi-with-spl.bin = -I binary -O binary \
 				   --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff
-u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img FORCE
+u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin \
+			u-boot$(if $(CONFIG_OF_CONTROL),-dtb,).img FORCE
 	$(call if_changed,pad_cat)
 endif
 
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 3299817..564eb76 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -1,3 +1,4 @@ 
+dtb-$(CONFIG_SUN7I) +=  sun7i-a20-pcduino3.dtb
 dtb-$(CONFIG_S5PC100) += s5pc1xx-smdkc100.dtb
 dtb-$(CONFIG_S5PC110) += s5pc1xx-goni.dtb
 dtb-$(CONFIG_EXYNOS4) += exynos4210-origen.dtb \
diff --git a/board/sunxi/MAINTAINERS b/board/sunxi/MAINTAINERS
index 4f32195..3dbfe15 100644
--- a/board/sunxi/MAINTAINERS
+++ b/board/sunxi/MAINTAINERS
@@ -21,6 +21,7 @@  F:	configs/A20-OLinuXino_MICRO_defconfig
 F:	configs/Bananapi_defconfig
 F:	configs/i12-tvbox_defconfig
 F:	configs/Linksprite_pcDuino3_defconfig
+F:	configs/Linksprite_pcDuino3_fdt_defconfig
 F:	configs/qt840a_defconfig
 
 CUBIEBOARD2 BOARD
diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig b/configs/Linksprite_pcDuino3_fdt_defconfig
new file mode 100644
index 0000000..e5f6236
--- /dev/null
+++ b/configs/Linksprite_pcDuino3_fdt_defconfig
@@ -0,0 +1,8 @@ 
+CONFIG_SPL=y
+CONFIG_SYS_EXTRA_OPTIONS="PCDUINO3,AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI,DM"
+CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
+CONFIG_OF_CONTROL=y
+CONFIG_OF_SEPARATE=y
++S:CONFIG_ARM=y
++S:CONFIG_TARGET_SUN7I=y
diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h
index a902b84..500d0e3 100644
--- a/include/configs/sun7i.h
+++ b/include/configs/sun7i.h
@@ -36,6 +36,10 @@ 
 #define CONFIG_ARMV7_SECURE_BASE	SUNXI_SRAM_B_BASE
 #define CONFIG_SYS_CLK_FREQ		24000000
 
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_DM)
+# define CONFIG_CMD_DM
+#endif
+
 /*
  * Include common sunxi configuration where most the settings are
  */