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 16:09:43 +0800 [thread overview]
Message-ID: <5379BC47.2020607@atmel.com> (raw)
In-Reply-To: <5379B738.6080800@gmail.com>
Hi Andreas,
On 05/19/2014 03:48 PM, Andreas Bie?mann wrote:
> Hi Bo,
>
> On 05/19/2014 05:13 AM, Bo Shen wrote:
>> 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/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.
>
> I used the two parameters I found, sorry the rest isn't defiend anywhere
> (or I can't find). Can you give me pointers to the other parameters?
Can we use the following information?
CONFIG_SPL_AT91_HEADER_USE_PMECC: CONFIG_ATMEL_NAND_HW_PMECC
CONFIG_SPL_AT91_HEADER_SECTOR_PER_PAGE: CONFIG_SYS_NAND_PAGE_SIZE /
CONFIG_PMECC_SECTOR_SIZE
CONFIG_SPL_AT91_HEADER_SPARE_SIZE: CONFIG_SYS_NAND_OOBSIZE
CONFIG_SPL_AT91_HEADER_ECC_OFFSET: this need a little bit more
calculation. take 4 bits (caps = 4) as an example:
ecc_offset = oob_size - ((12 + sector_size / 512) * caps + 7) /8
= 64 - ((12 + 512 / 512) * 4 + 7) / 8 = 36.
I am not sure this is worthwhile.
Best Regards,
Bo Shen
next prev parent reply other threads:[~2014-05-19 8:09 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
2014-05-19 7:48 ` Andreas Bießmann
2014-05-19 8:09 ` Bo Shen [this message]
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=5379BC47.2020607@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox