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] ARM: atmel: at91sam9m10g45ek: enable SPL
Date: Fri, 16 Jan 2015 10:10:03 +0100	[thread overview]
Message-ID: <54B8D56B.2070708@gmail.com> (raw)
In-Reply-To: <1421376816-847-1-git-send-email-voice.shen@atmel.com>

Hi Bo,

just a short review, more will follow this weekend.

On 01/16/2015 03:53 AM, Bo Shen wrote:
> Supports boot up from NAND flash with software ECC eanbled.
> And supports boot up from SD/MMC card with FAT file system.
> 
> As the boot from SD/MMC card with FAT file system, the BSS
> segment is too big to fit into SRAM, so, use the lds to put
> it into SDRAM. So, we need to initialize the SDRAM as soon
> as possible. Borrow the low level init code from
> <arm/arm/cpu/armv7/lowlevel_init.S> for this purpose.
> 
> As there is a little change, which need lowlevel init, so
> also change taurus board based on at91sam9260, corvus board
> based on at91sam9g45.
> (CONFIG_SPL_STACK is replaced by CONFIG_SYS_INIT_SP_ADDR)
> 
> Signed-off-by: Bo Shen <voice.shen@atmel.com>
> ---
> 
>  arch/arm/Kconfig                                |  1 +
>  arch/arm/cpu/arm926ejs/at91/Makefile            |  4 ++
>  arch/arm/cpu/arm926ejs/at91/spl_lowlevel_init.S | 37 ++++++++++++
>  arch/arm/cpu/at91-common/spl_at91.c             |  7 +--
>  arch/arm/cpu/at91-common/u-boot-spl-arm9.lds    | 48 +++++++++++++++
>  board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c | 80 +++++++++++++++++++++++++
>  configs/at91sam9m10g45ek_mmc_defconfig          |  5 +-
>  configs/at91sam9m10g45ek_nandflash_defconfig    |  5 +-
>  include/configs/at91sam9m10g45ek.h              | 65 ++++++++++++++++++++
>  include/configs/corvus.h                        |  7 ++-
>  include/configs/taurus.h                        |  7 ++-
>  11 files changed, 256 insertions(+), 10 deletions(-)
>  create mode 100644 arch/arm/cpu/arm926ejs/at91/spl_lowlevel_init.S
>  create mode 100644 arch/arm/cpu/at91-common/u-boot-spl-arm9.lds
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 5eb1d03..f4788c6 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -141,6 +141,7 @@ config TARGET_AT91SAM9263EK
>  config TARGET_AT91SAM9M10G45EK
>  	bool "Support at91sam9m10g45ek"
>  	select CPU_ARM926EJS
> +	select SUPPORT_SPL
>  
>  config TARGET_AT91SAM9N12EK
>  	bool "Support at91sam9n12ek"
> diff --git a/arch/arm/cpu/arm926ejs/at91/Makefile b/arch/arm/cpu/arm926ejs/at91/Makefile
> index 698a28d..238434b 100644
> --- a/arch/arm/cpu/arm926ejs/at91/Makefile
> +++ b/arch/arm/cpu/arm926ejs/at91/Makefile
> @@ -25,5 +25,9 @@ obj-y	+= reset.o
>  obj-y	+= timer.o
>  
>  ifndef CONFIG_SKIP_LOWLEVEL_INIT
> +ifdef CONFIG_SPL_BUILD
> +obj-y	+= spl_lowlevel_init.o
> +else
>  obj-y	+= lowlevel_init.o
>  endif
> +endif

I'm fine with having two variants of lowlevel_init for a time, but we
should consolidate this and use C-style initialisation of SDRAM and
stuff for the other armv5 at91 devices in future. AFAIK the
a/a/c/arm926ejs/at91/lowlevel_init.S is mainly used for NOR Flash boots,
so using the SPL code (but not necessarily the two binary mechanism) for
the NOR Flash boots in future is appreciated.

> diff --git a/arch/arm/cpu/arm926ejs/at91/spl_lowlevel_init.S b/arch/arm/cpu/arm926ejs/at91/spl_lowlevel_init.S
> new file mode 100644
> index 0000000..f1b2ec9
> --- /dev/null
> +++ b/arch/arm/cpu/arm926ejs/at91/spl_lowlevel_init.S
> @@ -0,0 +1,37 @@
> +/*
> + * A lowlevel_init function that sets up the stack to call a C function to
> + * perform further init.
> + *
> + * (C) Copyright 2010
> + * Texas Instruments, <www.ti.com>
> + *
> + * Author :
> + *	Aneesh V	<aneesh@ti.com>
> + *
> + * SPDX-License-Identifier:	GPL-2.0+
> + */
> +
> +#include <asm-offsets.h>
> +#include <config.h>
> +#include <linux/linkage.h>
> +
> +ENTRY(lowlevel_init)
> +	/*
> +	 * Setup a temporary stack
> +	 */
> +	ldr	sp, =CONFIG_SYS_INIT_SP_ADDR
> +	bic	sp, sp, #7 /* 8-byte alignment for ABI compliance */
> +
> +	ldr	r9, =gdata

I remember some patches removing the SPL gdata stuff, is that true?

> +
> +	/*
> +	 * Save the old lr(passed in ip) and the current lr to stack
> +	 */
> +	push	{ip, lr}
> +
> +	/*
> +	 * go setup pll, mux, memory
> +	 */
> +	bl	s_init
> +	pop	{ip, pc}
> +ENDPROC(lowlevel_init)

Rest of this patch will be reviewed later.

Best regards

Andreas Bie?mann

  reply	other threads:[~2015-01-16  9:10 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-16  2:53 [U-Boot] [PATCH] ARM: atmel: at91sam9m10g45ek: enable SPL Bo Shen
2015-01-16  9:10 ` Andreas Bießmann [this message]
2015-01-16  9:30   ` Bo Shen
2015-01-16 10:16     ` Andreas Bießmann
2015-01-19  1:41       ` Bo Shen
2015-01-19  6:15         ` Heiko Schocher
2015-01-19 19:32           ` Simon Glass
2015-01-16 11:35 ` Heiko Schocher
2015-01-19  1:38   ` Bo Shen
2015-01-19  6:07     ` Heiko Schocher

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=54B8D56B.2070708@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.