All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Andreas Bießmann" <andreas.devel@googlemail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 6/8] avr32: add generic board support
Date: Wed, 28 Jan 2015 11:04:15 +0100	[thread overview]
Message-ID: <54C8B41F.6020800@gmail.com> (raw)
In-Reply-To: <CAPnjgZ2cCC7Wk7e09o7Y=AGoctXciv1DfMiC0N9qUU0Fuif8=g@mail.gmail.com>

Hi Simon,

On 01/28/2015 04:09 AM, Simon Glass wrote:
> Hi,
> 
> On 27 January 2015 at 17:16, Andreas Bie?mann
> <andreas.devel@googlemail.com> wrote:
>> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
>> ---
>>
>> Changes in v1:
>> - add timer_init in board_r
>> - remove extern declaration of mmu_init_r()
>>
>>  arch/avr32/config.mk            |    3 +++
>>  arch/avr32/cpu/u-boot.lds       |    2 ++
>>  arch/avr32/include/asm/config.h |    1 +
>>  arch/avr32/include/asm/u-boot.h |    7 +++++++
>>  arch/avr32/lib/Makefile         |    2 ++
>>  arch/avr32/lib/interrupts.c     |    5 +++++
>>  common/board_f.c                |   13 ++++++++++---
>>  common/board_r.c                |   26 +++++++++++++++++++++++---
>>  include/asm-generic/u-boot.h    |    4 ++++
>>  9 files changed, 57 insertions(+), 6 deletions(-)


>> diff --git a/common/board_f.c b/common/board_f.c
>> index 215108b..1a735ae 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -174,7 +174,7 @@ static int announce_dram_init(void)
>>         return 0;
>>  }
>>
>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>  static int init_func_ram(void)
>>  {
>>  #ifdef CONFIG_BOARD_TYPES
>> @@ -268,6 +268,8 @@ static int setup_mon_len(void)
>>         gd->mon_len = (ulong)&_end - (ulong)_init;
>>  #elif defined(CONFIG_BLACKFIN) || defined(CONFIG_NIOS2)
>>         gd->mon_len = CONFIG_SYS_MONITOR_LEN;
>> +#elif defined(CONFIG_AVR32)
>> +       gd->mon_len = (ulong)&__bss_end - (ulong)&_text;
> 
> Would we be able to unify the symbols here rather than having a
> special case for AVR32?

well, I'm not __ARM__ nor CONFIG_SANDBOX, CONFIG_BLACKFIN or
CONFIG_NIOS2. The else path may fit, I'll check that.

>>  #else
>>         /* TODO: use (ulong)&__bss_end - (ulong)&__text_start; ? */
>>         gd->mon_len = (ulong)&__bss_end - CONFIG_SYS_MONITOR_BASE;
>> @@ -581,7 +583,7 @@ static int reserve_stacks(void)
>>         gd->irq_sp = gd->start_addr_sp;
>>  # endif
>>  #else
>> -# ifdef CONFIG_PPC
>> +# if defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>         ulong *s;
>>  # endif
>>
>> @@ -611,6 +613,11 @@ static int reserve_stacks(void)
>>         s = (ulong *) gd->start_addr_sp;
>>         *s = 0; /* Terminate back chain */
>>         *++s = 0; /* NULL return address */
>> +# elif defined(CONFIG_AVR32)
>> +       gd->arch.stack_end = gd->start_addr_sp;
>> +       s = (ulong *)gd->start_addr_sp;
>> +       *s = 0;
>> +       *--s = 0;
> 
> Can we create an arch_reserve_stacks() function to handle this, and
> put it in the AVR32 code?

I'll do so.

> 
>>  # endif /* Architecture specific code */
>>
>>         return 0;
>> @@ -912,7 +919,7 @@ static init_fnc_t init_sequence_f[] = {
>>  #if defined(CONFIG_ARM) || defined(CONFIG_X86)
>>         dram_init,              /* configure available RAM banks */
>>  #endif
>> -#if defined(CONFIG_MIPS) || defined(CONFIG_PPC)
>> +#if defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_AVR32)
>>         init_func_ram,
> 
> Can you use dram_init() instead?

I have to check that. Can we do that later when we convert mips/ppc? I
fear it is a bit complex.

>>  #endif
>>  #ifdef CONFIG_POST
>> diff --git a/common/board_r.c b/common/board_r.c
>> index e712902..3620438 100644
>> --- a/common/board_r.c
>> +++ b/common/board_r.c
>> @@ -55,6 +55,9 @@
>>  #include <dm/root.h>
>>  #include <linux/compiler.h>
>>  #include <linux/err.h>
>> +#ifdef CONFIG_AVR32
>> +#include <asm/arch/mmu.h>
>> +#endif
> 
> What needs this? Let's move it into AVR32 code.

The mmu_init_r needs this. I dunno where to place it. ARM has the TLB
setup before activating d-caches (in initr_caches). This is not required
for avr32 and therefore not the right place.

>> @@ -894,6 +910,10 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
>>         int i;
>>  #endif
>>
>> +#ifdef CONFIG_AVR32
>> +       mmu_init_r(dest_addr);
>> +#endif
> 
> What does this do? It feels like it shold perhaps happen in the init
> sequence. See x86 which has a similar requirement, or at least I think
> it is similar.

can you point me to the x86 code?

> The objective ultimately is to remove all #ifdefs from board_f/r.c.

That's clear to me. I thought we can first gather all the stuff in
common/board_* and in a second turn we clean it up. Obvious things
cleaned up before, but questionnaire things are cleaned up in a second
turn. At least this was my objective ;)

Best regards

Andreas Bie?mann

  reply	other threads:[~2015-01-28 10:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-28  0:15 [U-Boot] [PATCH v1 0/8] avr32: add generic board Andreas Bießmann
2015-01-28  0:15 ` [U-Boot] [PATCH v1 1/8] avr32: use dlmalloc for DMA buffers Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 2/8] avr32: rename cpu_init() -> arch_cpu_init() Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 3/8] avr32: factor out cpu_mmc_init() Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 4/8] avr32: rename mmu.h definitions Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 5/8] common/board_r: manual relocation for cmd table Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 6/8] avr32: add generic board support Andreas Bießmann
2015-01-28  3:09   ` Simon Glass
2015-01-28 10:04     ` Andreas Bießmann [this message]
2015-01-28 16:34       ` Simon Glass
2015-01-28  0:16 ` [U-Boot] [PATCH v1 7/8] grasshopper: enable generic board Andreas Bießmann
2015-01-28  0:16 ` [U-Boot] [PATCH v1 8/8] atstk1002: " Andreas Bießmann

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=54C8B41F.6020800@gmail.com \
    --to=andreas.devel@googlemail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.