All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bo Shen <voice.shen@atmel.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/3] arm:at91: enable ROM loadable atmel image
Date: Mon, 19 May 2014 11:13:30 +0800	[thread overview]
Message-ID: <537976DA.5070508@atmel.com> (raw)
In-Reply-To: <1400234355-24819-3-git-send-email-andreas.devel@googlemail.com>

Hi Andreas,

On 05/16/2014 05:59 PM, Andreas Bie?mann wrote:
> For sama5d3xek we need to modify the SPL image for correct detection by ROM
> code.
>
> Signed-off-by: Andreas Bie?mann <andreas.devel@googlemail.com>
> ---
>
> Changes in v2:
> * add -n switch to mkimage for PMECC type NAND and CONFIG_SYS_NANDFLASH
>
>   arch/arm/cpu/armv7/at91/config.mk |   10 ++++++++++
>   doc/README.atmel_pmecc            |   30 ++++++++++++++++++++++++++++++
>   spl/Makefile                      |   18 ++++++++++++++++++
>   3 files changed, 58 insertions(+)
>   create mode 100644 arch/arm/cpu/armv7/at91/config.mk
>
> diff --git a/arch/arm/cpu/armv7/at91/config.mk b/arch/arm/cpu/armv7/at91/config.mk
> new file mode 100644
> index 0000000..09eab70
> --- /dev/null
> +++ b/arch/arm/cpu/armv7/at91/config.mk
> @@ -0,0 +1,10 @@
> +#
> +# Copyright (C) 2014, Andreas Bie?mann <andreas.devel@googlemail.com>
> +#
> +# SPDX-License-Identifier:	GPL-2.0+
> +#
> +ifdef CONFIG_SPL_BUILD
> +ALL-y	+= boot.bin
> +else
> +ALL-y	+= u-boot.img
> +endif
> diff --git a/doc/README.atmel_pmecc b/doc/README.atmel_pmecc
> index cf8373b..5a93123 100644
> --- a/doc/README.atmel_pmecc
> +++ b/doc/README.atmel_pmecc
> @@ -27,3 +27,33 @@ Take AT91SAM9X5EK as an example, the board definition file likes:
>   #define CONFIG_ATMEL_NAND_HW_PMECC	1
>   #define CONFIG_PMECC_CAP		2
>   #define CONFIG_PMECC_SECTOR_SIZE	512
> +
> +How to enable PMECC header for direct programmable boot.bin
> +-----------------------------------------------------------
> +2014-05-15 Andreas Bie?mann <andreas.devel@googlemail.com>
> +
> +The usual way to program SPL into NAND flash is to use the SAM-BA Atmel tool.
> +This however is often not usable when doing field updates. To be able to
> +program a SPL binary into NAND flash we need to add the PMECC header to the
> +binary before. Chapter '12.4.4.1 NAND Flash Boot: NAND Flash Detection' in
> +sama5d3 SoC spec (as of 03. April 2014). We have a new image type added to
> +mkimage to generate this PMECC header and integrated into the build process of
> +SPL.
> +The required parameters in board configuration header are as follows:
> +
> +This example is working for sama5d3xek:
> +
> +#define CONFIG_SPL_AT91_HEADER_USE_PMECC	1
> +#define CONFIG_SPL_AT91_HEADER_SECTOR_PER_PAGE	4
> +#define CONFIG_SPL_AT91_HEADER_SECTOR_SIZE	CONFIG_PMECC_SECTOR_SIZE
> +#define CONFIG_SPL_AT91_HEADER_SPARE_SIZE	64
> +#define CONFIG_SPL_AT91_HEADER_ECC_BITS		CONFIG_PMECC_CAP
> +#define CONFIG_SPL_AT91_HEADER_ECC_OFFSET	36

Just a nitpick here:

Can we take this parameter from the existing definition while not use 
new definition? Or else, if the header using different parameter with 
what u-boot nand driver use, then if flash through u-boot, it won't boot.

> +It enables the PMECC hardware and set the relevant parameters as known from
> +the SAM-BA tool. We are able to use other defined values here cause we check
> +these values in the buildsystem. Therefore the CONFIG_PMECC_SECTOR_SIZE is
> +expanded to the correct value set some lines above.
> +
> +The mkimage image type atmelimage also set the 6'th interrupt vector to the
> +correct value. This feature can also be used to setup a boot.bin for MMC boot.
> diff --git a/spl/Makefile b/spl/Makefile
> index 55500fd..8c6397e 100644
> --- a/spl/Makefile
> +++ b/spl/Makefile
> @@ -183,6 +183,24 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE)
>   MLO MLO.byteswap: $(obj)/u-boot-spl.bin
>   	$(call if_changed,mkimage)
>
> +ATMEL_NAND_HEADER = usePmecc=$(CONFIG_SPL_AT91_HEADER_USE_PMECC), \
> +	sectorPerPage=$(CONFIG_SPL_AT91_HEADER_SECTOR_PER_PAGE), \
> +	sectorSize=$(CONFIG_SPL_AT91_HEADER_SECTOR_SIZE), \
> +	spareSize=$(CONFIG_SPL_AT91_HEADER_SPARE_SIZE), \
> +	eccBits=$(CONFIG_SPL_AT91_HEADER_ECC_BITS), \
> +	eccOffset=$(CONFIG_SPL_AT91_HEADER_ECC_OFFSET)
> +
> +MKIMAGEFLAGS_boot.bin = -T atmelimage
> +
> +ifdef CONFIG_ATMEL_NAND_HW_PMECC
> +ifeq ($(CONFIG_SYS_USE_NANDFLASH),y)
> +MKIMAGEFLAGS_boot.bin += -n $(subst $(space),,$(ATMEL_NAND_HEADER))
> +endif
> +endif
> +
> +boot.bin: $(obj)/u-boot-spl.bin
> +	$(call if_changed,mkimage)
> +
>   ALL-y	+= $(obj)/$(SPL_BIN).bin
>
>   ifdef CONFIG_SAMSUNG
>

Best Regards,
Bo Shen

  reply	other threads:[~2014-05-19  3:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-16  9:59 [U-Boot] [PATCH v2 0/3] Add atmel ROM code image Andreas Bießmann
2014-05-16  9:59 ` [U-Boot] [PATCH v2 1/3] mkimage: add atmelimage Andreas Bießmann
2014-05-16  9:59 ` [U-Boot] [PATCH v2 2/3] arm:at91: enable ROM loadable atmel image Andreas Bießmann
2014-05-19  3:13   ` Bo Shen [this message]
2014-05-19  7:48     ` Andreas Bießmann
2014-05-19  8:09       ` Bo Shen
2014-05-19  8:36         ` Andreas Bießmann
2014-05-16  9:59 ` [U-Boot] [PATCH v2 3/3] sama5d3xek: enable PMECC header generation 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=537976DA.5070508@atmel.com \
    --to=voice.shen@atmel.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.