public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 03/10] sunxi: Introduce a hidden SUNXI_GEN_SUNxI Kconfig bool
Date: Mon, 04 May 2015 11:35:09 +0200	[thread overview]
Message-ID: <55473D4D.9050807@redhat.com> (raw)
In-Reply-To: <1430731883.15640.215.camel@hellion.org.uk>

Hi,

On 04-05-15 11:31, Ian Campbell wrote:
> On Mon, 2015-05-04 at 11:04 +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 02-05-15 15:31, Ian Campbell wrote:
>>> On Sun, 2015-04-26 at 17:21 +0200, Hans de Goede wrote:
>>>> sun6i and newer (derived) SoCs such as the sun8i-a23, sun8i-a33 and sun9i
>>>> have a various things in common, like having separate ahb reset control
>>>> registers, the SID living inside the pmic, custom pmic busses, new style
>>>> watchdog, etc.
>>>>
>>>> This commit introduces a new hidden SUNXI_GEN_SUN6I Kconfig bool which can be
>>>> used to check for these features avoiding the need for an ever growing list
>>>> of "#if defined CONFIG_MACH_SUN?I" conditionals as we add support for more
>>>> "new style" sunxi SoCs.
>>>>
>>>> For completeness this also adds a SUNXI_GEN_SUN4I bool for A10/A13/A20.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>> ---
>>>> Changes in v2:
>>>> -Use SUNXI_GEN_SUN?I instead of ARCH_SUN6I
>>>> ---
>>>>    arch/arm/cpu/armv7/sunxi/board.c            | 18 +++++++++---------
>>>>    arch/arm/cpu/armv7/sunxi/usbc.c             |  4 ++--
>>>>    arch/arm/include/asm/arch-sunxi/cpu_sun4i.h | 12 ++++++------
>>>>    arch/arm/include/asm/arch-sunxi/mmc.h       |  3 +--
>>>>    arch/arm/include/asm/arch-sunxi/timer.h     |  8 ++++----
>>>>    board/sunxi/Kconfig                         | 21 +++++++++++++++++++++
>>>>    board/sunxi/gmac.c                          |  6 +++---
>>>>    drivers/mmc/sunxi_mmc.c                     |  3 +--
>>>>    drivers/video/sunxi_display.c               | 10 +++++-----
>>>>    9 files changed, 52 insertions(+), 33 deletions(-)
>>>>
>>>> diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h b/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h
>>>> index f403742..afa55d6 100644
>>>> --- a/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h
>>>> +++ b/arch/arm/include/asm/arch-sunxi/cpu_sun4i.h
>>>> @@ -37,7 +37,7 @@
>>>>    #define SUNXI_MMC1_BASE			0x01c10000
>>>>    #define SUNXI_MMC2_BASE			0x01c11000
>>>>    #define SUNXI_MMC3_BASE			0x01c12000
>>>> -#if !defined CONFIG_MACH_SUN6I && !defined CONFIG_MACH_SUN8I
>>>> +#ifndef CONFIG_SUNXI_GEN_SUN6I
>>>
>>> #ifdef CONFIG_SUNXI_GEN_SUN4I?
>>>
>>>
>>>> diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h
>>>> index 74833b5..cb52e64 100644
>>>> --- a/arch/arm/include/asm/arch-sunxi/mmc.h
>>>> +++ b/arch/arm/include/asm/arch-sunxi/mmc.h
>>>> @@ -43,8 +43,7 @@ struct sunxi_mmc {
>>>>    	u32 chda;		/* 0x90 */
>>>>    	u32 cbda;		/* 0x94 */
>>>>    	u32 res1[26];
>>>> -#if defined(CONFIG_MACH_SUN6I) || defined(CONFIG_MACH_SUN8I) || \
>>>> -    defined(CONFIG_MACH_SUN9I)
>>>
>>> Did you miss the select GEN_SUN6I from the SUN9I Kconfig entry?
>>>
>>> Oh, there isn't one, I suppose this was some vestige of another patch
>>> and in that case it's fine as it is (unless this patch is supposed to be
>>> on top of one which adds Kconfig SUN9I).
>>>
>>> Anyway, which ever way it is I trust you know what to do (even if that's
>>> nothing).
>>
>> Right, so there is a MACH_SUN9I is my sunxi-wip tree, but that is not ready
>> yet to go upstream. I still need to address your comments about dealing with
>> the different DRAM base address between sun9i and the rest in sunxi-common.h.
>> But I've been busy with other stuff / been distracted by shinier things.
>>
>> So the reason why there is no SUN9I related code in this patch is because the
>> SUN9I code is intended to get merged at some point in the future after this
>> patch-set (and it sits after this one in the history of my sunxi-wip branch).
>
> Great thanks.
>
>>>> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
>>>> index 88e3358..b716a8b 100644
>>>> --- a/board/sunxi/Kconfig
>>>> +++ b/board/sunxi/Kconfig
>>>> @@ -1,21 +1,40 @@
>>>>    if ARCH_SUNXI
>>>>
>>>> +# Note only one of these may be selected at a time! But hidden choices are
>>>> +# not supported by Kconfig
>>>
>>> Probably not worth it, but is "depends on !THE_OTHER_THING" a usable
>>> construct?
>>
>> Good idea, unfortunately it seems Kconfig does not like it:
>>
>> board/sunxi/Kconfig:12:error: recursive dependency detected!
>> board/sunxi/Kconfig:12: symbol SUNXI_GEN_SUN6I depends on SUNXI_GEN_SUN4I
>> board/sunxi/Kconfig:5:  symbol SUNXI_GEN_SUN4I depends on SUNXI_GEN_SUN6I
>
> Shame.
>
>>>> diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c
>>>> index d90eed4..4e222d8 100644
>>>> --- a/board/sunxi/gmac.c
>>>> +++ b/board/sunxi/gmac.c
>>>> @@ -13,11 +13,11 @@ int sunxi_gmac_initialize(bd_t *bis)
>>>>    		(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
>>>>
>>>>    	/* Set up clock gating */
>>>> -#ifndef CONFIG_MACH_SUN6I
>>>> -	setbits_le32(&ccm->ahb_gate1, 0x1 << AHB_GATE_OFFSET_GMAC);
>>>> -#else
>>>> +#ifdef CONFIG_SUNXI_GEN_SUN6I
>>>
>>> Is this one not changing the behaviour for SUN8I (and SUN9I perhaps).
>>> Previously they would have gotten the else case.
>>
>> sun8i chips (at least the a23 and a33) do not have an ethernet chip, and
>> the Makefile has:
>>
>> obj-$(CONFIG_SUNXI_GMAC)        += gmac.o
>>
>> So this is never build for them. If it was build then the sun6i code
>> would be the correct thing to do since sun8i does have separate ahb reset
>> registers like sun6i.
>>
>> For sun9i it is unclear / unknown atm what sort of ethernet mac ip it
>> has, but if it is the classic dw gmac, then it too would need the
>> sun6i case of the code.
>
> OK, slightly confusing to have such intertwined things, but I see the
> logic now.
>
> Would be useful to make explicit reference to this Ethernet case and the
> HDMI/video ones in the commit message, but in any case:
>
> Acked-by: Ian Campbell <ijc@hellion.org.uk>

Thanks, I'll add a mention of the behavior changes for hdmi and gmac
for sun8i/sun9i and how that does not matter as they are not used,
to the commit message.

Regards,

Hans

      reply	other threads:[~2015-05-04  9:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-26 15:21 [U-Boot] [PATCH v2 03/10] sunxi: Introduce a hidden SUNXI_GEN_SUNxI Kconfig bool Hans de Goede
2015-05-02 13:31 ` Ian Campbell
2015-05-04  9:04   ` Hans de Goede
2015-05-04  9:31     ` Ian Campbell
2015-05-04  9:35       ` Hans de Goede [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55473D4D.9050807@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox