public inbox for u-boot@lists.denx.de
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox