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

Simon Glass sjg at chromium.org
Wed Oct 29 20:30:50 CET 2014


Hi Hans,

On 29 October 2014 03:32, Hans de Goede <hdegoede at 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 at 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 at 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 at 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


More information about the U-Boot mailing list