Skip to contentSkip to conversation

Add atmel ROM code image

PATCH Superseded Andreas Bießmann 2 participants 8 messages May 16, 2014 – May 19, 2014

Subsystems (2)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add atmel ROM code image

This series add atmelimage support to mkimage.

An atmelimage is a quite dumb image type cause it has no real header. The file is mostly unmodified but the 6'th ARM vector gets replaced by the image size to load.

Heiko, I know your approach setting the vector in start.S but I think this solution is a bit smarter. We would need to patch at least 2 start.S files (arm926ejs and armv7), maybe also the arm920t one too. In fact is the conversion of executable BLOB to ROM detected executable BLOB something that should really be done afterwards as all other SoC vendors do.

In version 2 of this patchset the atmelimage mkimage target can also generate PMECC NAND header.

Changes in v2:
* do not check filesize in atmelimage
* add PMECC header generation and printout
* add printout of 6'th vector
* add -n switch to mkimage for PMECC type NAND and CONFIG_SYS_NANDFLASH

Andreas Bie?mann (3):
mkimage: add atmelimage
arm:at91: enable ROM loadable atmel image
sama5d3xek: enable PMECC header generation

 arch/arm/cpu/armv7/at91/config.mk |   10 ++
 common/image.c                    |    1 +
 doc/README.atmel_pmecc            |   30 ++++
 include/configs/sama5d3xek.h      |    6 +
 include/image.h                   |    1 +
 spl/Makefile                      |   18 ++
 tools/Makefile                    |    1 +
 tools/atmelimage.c                |  345 +++++++++++++++++++++++++++++++++++++
 tools/imagetool.c                 |    2 +
 tools/imagetool.h                 |    1 +
 10 files changed, 415 insertions(+)
 create mode 100644 arch/arm/cpu/armv7/at91/config.mk
 create mode 100644 tools/atmelimage.c
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH v2 1/3 mkimage: add atmelimage

The new atmelimage converts a machine code BLOB to bootable ROM image. Atmel ROM has no sophisticated image format, it only checks the first 7 ARM vectors. The vectors can contain valid B or LDR opcodes, the 6'th vector contains the image size to load.

Additionally the PMECC header can be written by the atmelimage target. The parameters must be given via the -n switch as a coma separated list. For example:

mkimage -T atmelimage \
-n usePmecc=1,sectorPerPage=4,sectorSize=512,spareSize=64,eccBits=4,eccOffset=36 \
-d spl/u-boot-spl.bin boot.bin

A provided image can be checked for correct header setup. It prints out the PMECC header parameters if it has one and the 6'th interrupt vector content.

---8<---
Image Type: ATMEL ROM-Boot Image with PMECC Header

		PMECC header
		====================
		eccOffset:        36
		sectorSize:      512
		eccBitReq:         4
		spareSize:        64
		nbSectorPerPage:   4
		usePmecc:          1
		====================
		6'th vector has 17044 set

--->8---

A SPL binary modified with the atmelimage mkimage target was succesfully booted on a sama5d34ek via MMC and NAND.

---

Changes in v2:
* do not check filesize in atmelimage
* add PMECC header generation and printout
* add printout of 6'th vector

 common/image.c     |    1 +
 include/image.h    |    1 +
 tools/Makefile     |    1 +
 tools/atmelimage.c |  345 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/imagetool.c  |    2 +
 tools/imagetool.h  |    1 +
 6 files changed, 351 insertions(+)
 create mode 100644 tools/atmelimage.c
common/image.c +1 -0
index fcc5a9c..7cb0bd7 100644
@@ -139,6 +139,7 @@ static const table_entry_t uimage_type[] = {
 	{	IH_TYPE_STANDALONE, "standalone", "Standalone Program", },
 	{	IH_TYPE_UBLIMAGE,   "ublimage",   "Davinci UBL image",},
 	{	IH_TYPE_MXSIMAGE,   "mxsimage",   "Freescale MXS Boot Image",},
+	{	IH_TYPE_ATMELIMAGE, "atmelimage", "ATMEL ROM-Boot Image",},
 	{	-1,		    "",		  "",			},
 };
 
include/image.h +1 -0
index b278778..9c3b9b8 100644
@@ -225,6 +225,7 @@ struct lmb;
 #define IH_TYPE_PBLIMAGE	15	/* Freescale PBL Boot Image	*/
 #define IH_TYPE_MXSIMAGE	16	/* Freescale MXSBoot Image	*/
 #define IH_TYPE_GPIMAGE		17	/* TI Keystone GPHeader Image	*/
+#define IH_TYPE_ATMELIMAGE	18	/* ATMEL ROM bootable Image	*/
 
 /*
  * Compression Types
tools/Makefile +1 -0
index 6e43a01..421ff50 100644
@@ -69,6 +69,7 @@ RSA_OBJS-$(CONFIG_FIT_SIGNATURE) := rsa-sign.o rsa-verify.o rsa-checksum.o
 
 # common objs for dumpimage and mkimage
 dumpimage-mkimage-objs := aisimage.o \
+			atmelimage.o \
 			$(FIT_SIG_OBJS-y) \
 			crc32.o \
 			default_image.o \
tools/atmelimage.c new file +345 -0

345 lines not on this page · raw message

tools/imagetool.c +2 -0
index da72115..32d6278 100644
@@ -27,6 +27,8 @@ void register_image_tool(imagetool_register_t image_register)
 	 */
 	register_func = image_register;
 
+	/* Init ATMEL ROM Boot Image generation/list support */
+	init_atmel_image_type();
 	/* Init Freescale PBL Boot image generation/list support */
 	init_pbl_image_type();
 	/* Init Kirkwood Boot image generation/list support */
tools/imagetool.h +1 -0
index a3e9d30..c480687 100644
@@ -159,6 +159,7 @@ void register_image_type(struct image_type_params *tparams);
  * Supported image types init functions
  */
 void init_default_image_type(void);
+void init_atmel_image_type(void);
 void init_pbl_image_type(void);
 void init_ais_image_type(void);
 void init_kwb_image_type(void);
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH v2 2/3 arm:at91: enable ROM loadable atmel image

In reply to Andreas Bießmann

For sama5d3xek we need to modify the SPL image for correct detection by ROM code.

---

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
arch/arm/cpu/armv7/at91/config.mk new file +10 -0
new file mode 100644
index 0000000..09eab70
@@ -0,0 +1,10 @@
+#
+# Copyright (C) 2014, Andreas Bie?mann <[email protected]>
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+ifdef CONFIG_SPL_BUILD
+ALL-y	+= boot.bin
+else
+ALL-y	+= u-boot.img
+endif
doc/README.atmel_pmecc +30 -0
index cf8373b..5a93123 100644
@@ -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 <[email protected]>
+
+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
+
+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.
spl/Makefile +18 -0
index 55500fd..8c6397e 100644
@@ -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
Signature · 1 line
1.7.10.4
#3 lore raw

PATCH v2 2/3 arm:at91: enable ROM loadable atmel image

Hi Andreas,

Quoted 51 lines · Andreas Bie?mann

For sama5d3xek we need to modify the SPL image for correct detection by ROM code.

---

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

arch/arm/cpu/armv7/at91/config.mk new file +10 -0
new file mode 100644
index 0000000..09eab70
@@ -0,0 +1,10 @@
+#
+# Copyright (C) 2014, Andreas Bie?mann <[email protected]>
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+ifdef CONFIG_SPL_BUILD
+ALL-y	+= boot.bin
+else
+ALL-y	+= u-boot.img
+endif
doc/README.atmel_pmecc +12 -0
index cf8373b..5a93123 100644
@@ -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 <[email protected]>
+
+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.

doc/README.atmel_pmecc Take AT91SAM9X5EK as an example, the board definition file likes: · line 51

Quoted 10 lines
doc/README.atmel_pmecc +10 -0
+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.

Quoted 27 lines
doc/README.atmel_pmecc +7 -0
+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.
spl/Makefile +11 -0
index 55500fd..8c6397e 100644
@@ -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)

spl/Makefile MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE) · line 206

Quoted 10 lines
spl/Makefile +7 -0
+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

#4 lore raw

PATCH v2 2/3 arm:at91: enable ROM loadable atmel image

Hi Bo,

Quoted 57 lines · Bo Shen
Quoted 43 lines · Andreas Bie?mann

For sama5d3xek we need to modify the SPL image for correct detection by ROM
code.

---

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

doc/README.atmel_pmecc +0 -0
index cf8373b..5a93123 100644
@@ -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

doc/README.atmel_pmecc +6 -0
+
+How to enable PMECC header for direct programmable boot.bin
+-----------------------------------------------------------
+2014-05-15 Andreas Bie?mann <[email protected]>
+
+The usual way to program SPL into NAND flash is to use the SAM-BA

Atmel tool.

doc/README.atmel_pmecc +2 -0
+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

doc/README.atmel_pmecc +1 -0
+SPL.

doc/README.atmel_pmecc Take AT91SAM9X5EK as an example, the board definition file likes: · line 51

Quoted 10 lines
doc/README.atmel_pmecc +10 -0
+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:

Quoted 3 lines

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?

Best regards

Andreas Bie?mann

#5 lore raw

PATCH v2 2/3 arm:at91: enable ROM loadable atmel image

Hi Andreas,

Quoted 60 lines · Andreas Bie?mann

Hi Bo,

Quoted 57 lines · Bo Shen
Quoted 43 lines · Andreas Bie?mann

For sama5d3xek we need to modify the SPL image for correct detection by ROM
code.

---

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

doc/README.atmel_pmecc +0 -0
index cf8373b..5a93123 100644
@@ -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
doc/README.atmel_pmecc +6 -0
+
+How to enable PMECC header for direct programmable boot.bin
+-----------------------------------------------------------
+2014-05-15 Andreas Bie?mann <[email protected]>
+
+The usual way to program SPL into NAND flash is to use the SAM-BA

Atmel tool.

doc/README.atmel_pmecc +2 -0
+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

doc/README.atmel_pmecc +1 -0
+SPL.

doc/README.atmel_pmecc Take AT91SAM9X5EK as an example, the board definition file likes: · line 51

Quoted 10 lines
doc/README.atmel_pmecc +10 -0
+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:

Quoted 6 lines
Quoted 3 lines

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

#6 lore raw

PATCH v2 2/3 arm:at91: enable ROM loadable atmel image

Quoted 3 lines · Bo Shen
Quoted 2 lines · Andreas Bie?mann
Quoted 1 line · Bo Shen

On 05/16/2014 05:59 PM, Andreas Bie?mann wrote:

<snip>

Quoted 17 lines
Quoted 9 lines
Quoted 9 lines

doc/README.atmel_pmecc Take AT91SAM9X5EK as an example, the board definition file likes: · line 51

Quoted 6 lines
doc/README.atmel_pmecc +6 -0
+#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:

Quoted 7 lines
Quoted 4 lines

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?

Quoted 6 lines

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

Unfortunately we cant do calculations within the Makefile. These parameters will be given to command line and end up in '-n usePmecc=y,sectorPerPage="0x800/512",..'
This will make the atmelimage cmdline parsing way more difficult.

Does anybody know some way to solve this in Makefile?

Best regards

Andreas Bie?mann

#7 lore raw

PATCH v2 3/3 sama5d3xek: enable PMECC header generation

In reply to Andreas Bießmann

---

Changes in v2: None

 include/configs/sama5d3xek.h |    6 ++++++
 1 file changed, 6 insertions(+)
include/configs/sama5d3xek.h +6 -0
index 516be85..bddd7e4 100644
@@ -201,6 +201,12 @@
 #define CONFIG_BOOTCOMMAND	"nand read 0x21000000 0x180000 0x80000;" \
 				"nand read 0x22000000 0x200000 0x600000;" \
 				"bootm 0x22000000 - 0x21000000"
+#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
 #elif CONFIG_SYS_USE_MMC
 /* bootstrap + u-boot + env in sd card */
 #define CONFIG_ENV_IS_IN_MMC
Signature · 1 line
1.7.10.4