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
next prev parent 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