All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/7] NAND SPL support for mcx board
@ 2011-10-17 23:33 Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 1/7] omap3/emif4: fix registers definition Ilya Yanok
                   ` (6 more replies)
  0 siblings, 7 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Hi All,

these patches enable support for booting from NAND without X-loader
for HTKW mcx board as well as some OMAP/SPL fixes.

The last patch relies on my recently posted davinci_emac/mcx series
while the others can be applied directly on master.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 1/7] omap3/emif4: fix registers definition
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE Ilya Yanok
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Fix EMIF4 registers definition.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 arch/arm/include/asm/arch-omap3/cpu.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/include/asm/arch-omap3/cpu.h b/arch/arm/include/asm/arch-omap3/cpu.h
index 08a725d..97fbee6 100644
--- a/arch/arm/include/asm/arch-omap3/cpu.h
+++ b/arch/arm/include/asm/arch-omap3/cpu.h
@@ -218,6 +218,7 @@ struct sdrc {
 
 /* EMIF4 */
 typedef struct emif4 {
+	unsigned int emif_mod_id_rev;
 	unsigned int sdram_sts;
 	unsigned int sdram_config;
 	unsigned int res1;
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 1/7] omap3/emif4: fix registers definition Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-17 23:43   ` Tom Rini
  2011-10-17 23:33 ` [U-Boot] [PATCH 3/7] omap/spl: actually enable the console Ilya Yanok
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Don't hardcode u-boot.bin size for the case where mkimage signature is
missing, use CONFIG_SYS_NAND_U_BOOT_SIZE for this.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 arch/arm/cpu/armv7/omap-common/spl.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl.c b/arch/arm/cpu/armv7/omap-common/spl.c
index c76fea6..f28411b 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -81,8 +81,7 @@ void spl_parse_image_header(const struct image_header *header)
 		printf("mkimage signature not found - ih_magic = %x\n",
 			header->ih_magic);
 		puts("Assuming u-boot.bin ..\n");
-		/* Let's assume U-Boot will not be more than 200 KB */
-		spl_image.size = 200 * 1024;
+		spl_image.size = CONFIG_SYS_NAND_U_BOOT_SIZE;
 		spl_image.entry_point = CONFIG_SYS_TEXT_BASE;
 		spl_image.load_addr = CONFIG_SYS_TEXT_BASE;
 		spl_image.os = IH_OS_U_BOOT;
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 3/7] omap/spl: actually enable the console
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 1/7] omap3/emif4: fix registers definition Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-19 19:24   ` Tom Rini
  2011-10-17 23:33 ` [U-Boot] [PATCH 4/7] nand_spl_simple: add support for software ECC Ilya Yanok
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Currently OMAP SPL code does all the initialization but does not set the
gd->have_console value so no output is actually performed. This patch
sets gd->have_console to 1 if CONFIG_SPL_CONSOLE is defined.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 arch/arm/cpu/armv7/omap-common/spl.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap-common/spl.c b/arch/arm/cpu/armv7/omap-common/spl.c
index f28411b..3d3e95c 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -152,6 +152,10 @@ void preloader_console_init(void)
 
 	serial_init();		/* serial communications setup */
 
+#ifdef CONFIG_SPL_CONSOLE
+	gd->have_console = 1;
+#endif
+
 	/* Avoid a second "U-Boot" coming from this string */
 	u_boot_rev = &u_boot_rev[7];
 
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 4/7] nand_spl_simple: add support for software ECC
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
                   ` (2 preceding siblings ...)
  2011-10-17 23:33 ` [U-Boot] [PATCH 3/7] omap/spl: actually enable the console Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled Ilya Yanok
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

This patch adds support for software ECC to the nand_spl_simple driver.
To enable this one have to define CONFIG_SPL_NAND_SOFTECC.

Tested on OMAP3.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 drivers/mtd/nand/nand_ecc.c        |    2 +-
 drivers/mtd/nand/nand_spl_simple.c |   11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/nand_ecc.c b/drivers/mtd/nand/nand_ecc.c
index 52bc916..81f0e08 100644
--- a/drivers/mtd/nand/nand_ecc.c
+++ b/drivers/mtd/nand/nand_ecc.c
@@ -50,7 +50,7 @@
  * only nand_correct_data() is needed
  */
 
-#ifndef CONFIG_NAND_SPL
+#if !defined(CONFIG_NAND_SPL) || defined(CONFIG_SPL_NAND_SOFTECC)
 /*
  * Pre-calculated 256-way 1 byte column parity
  */
diff --git a/drivers/mtd/nand/nand_spl_simple.c b/drivers/mtd/nand/nand_spl_simple.c
index 71491d4..dd1de27 100644
--- a/drivers/mtd/nand/nand_spl_simple.c
+++ b/drivers/mtd/nand/nand_spl_simple.c
@@ -21,6 +21,7 @@
 #include <common.h>
 #include <nand.h>
 #include <asm/io.h>
+#include <linux/mtd/nand_ecc.h>
 
 static int nand_ecc_pos[] = CONFIG_SYS_NAND_ECCPOS;
 static nand_info_t mtd;
@@ -163,7 +164,8 @@ static int nand_read_page(int block, int page, void *dst)
 	oob_data = ecc_calc + 0x200;
 
 	for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
-		this->ecc.hwctl(&mtd, NAND_ECC_READ);
+		if (this->ecc.mode != NAND_ECC_SOFT)
+			this->ecc.hwctl(&mtd, NAND_ECC_READ);
 		this->read_buf(&mtd, p, eccsize);
 		this->ecc.calculate(&mtd, p, &ecc_calc[i]);
 	}
@@ -233,6 +235,13 @@ void nand_init(void)
 	nand_chip.options = 0;
 	board_nand_init(&nand_chip);
 
+#ifdef CONFIG_SPL_NAND_SOFTECC
+	if (nand_chip.ecc.mode == NAND_ECC_SOFT) {
+		nand_chip.ecc.calculate = nand_calculate_ecc;
+		nand_chip.ecc.correct = nand_correct_data;
+	}
+#endif
+
 	if (nand_chip.select_chip)
 		nand_chip.select_chip(&mtd, 0);
 }
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
                   ` (3 preceding siblings ...)
  2011-10-17 23:33 ` [U-Boot] [PATCH 4/7] nand_spl_simple: add support for software ECC Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-20 12:00   ` Simon Schwarz
  2011-10-17 23:33 ` [U-Boot] [PATCH 6/7] nand_spl_simple: store temp data at CONFIG_SPL_NAND_WORKSPACE Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 7/7] mcx: NAND SPL support Ilya Yanok
  6 siblings, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Use software ECC for the SPL build if support for software ECC in SPL is
enabled.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 drivers/mtd/nand/omap_gpmc.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/omap_gpmc.c b/drivers/mtd/nand/omap_gpmc.c
index 5bbec48..1dfe074 100644
--- a/drivers/mtd/nand/omap_gpmc.c
+++ b/drivers/mtd/nand/omap_gpmc.c
@@ -348,7 +348,7 @@ int board_nand_init(struct nand_chip *nand)
 
 	nand->chip_delay = 100;
 	/* Default ECC mode */
-#ifndef CONFIG_SPL_BUILD
+#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_NAND_SOFTECC)
 	nand->ecc.mode = NAND_ECC_SOFT;
 #else
 	nand->ecc.mode = NAND_ECC_HW;
@@ -359,7 +359,9 @@ int board_nand_init(struct nand_chip *nand)
 	nand->ecc.correct = omap_correct_data;
 	nand->ecc.calculate = omap_calculate_ecc;
 	omap_hwecc_init(nand);
+#endif
 
+#ifdef CONFIG_SPL_BUILD
 	if (nand->options & NAND_BUSWIDTH_16)
 		nand->read_buf = nand_read_buf16;
 	else
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 6/7] nand_spl_simple: store temp data at CONFIG_SPL_NAND_WORKSPACE
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
                   ` (4 preceding siblings ...)
  2011-10-17 23:33 ` [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  2011-10-17 23:33 ` [U-Boot] [PATCH 7/7] mcx: NAND SPL support Ilya Yanok
  6 siblings, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

Currently nand_spl_simple puts it's temp data at 0x10000 offset in SDRAM
which is likely to contain already loaded data. I can't see any way to
determine some safe address automagically so make it up to board porter
to provide the safe-to-use address via CONFIG_SPL_NAND_WORKSPACE value.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 drivers/mtd/nand/nand_spl_simple.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/nand_spl_simple.c b/drivers/mtd/nand/nand_spl_simple.c
index dd1de27..e40cbf0 100644
--- a/drivers/mtd/nand/nand_spl_simple.c
+++ b/drivers/mtd/nand/nand_spl_simple.c
@@ -158,8 +158,13 @@ static int nand_read_page(int block, int page, void *dst)
 
 	/* No malloc available for now, just use some temporary locations
 	 * in SDRAM
+	 * Please provide some safe value for CONFIG_SPL_NAND_WORKSPACE in
+	 * your board configuration, this is just a guess!!
 	 */
-	ecc_calc = (u_char *)(CONFIG_SYS_SDRAM_BASE + 0x10000);
+#ifndef CONFIG_SPL_NAND_WORKSPACE
+#define CONFIG_SPL_NAND_WORKSPACE	(CONFIG_SYS_SDRAM_BASE + 0x10000)
+#endif
+	ecc_calc = (u_char *)CONFIG_SPL_NAND_WORKSPACE;
 	ecc_code = ecc_calc + 0x100;
 	oob_data = ecc_calc + 0x200;
 
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 7/7] mcx: NAND SPL support
  2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
                   ` (5 preceding siblings ...)
  2011-10-17 23:33 ` [U-Boot] [PATCH 6/7] nand_spl_simple: store temp data at CONFIG_SPL_NAND_WORKSPACE Ilya Yanok
@ 2011-10-17 23:33 ` Ilya Yanok
  6 siblings, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:33 UTC (permalink / raw)
  To: u-boot

support for booting from NAND without X-loader.

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
---
 include/configs/mcx.h |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/include/configs/mcx.h b/include/configs/mcx.h
index 25fd610..ad35334 100644
--- a/include/configs/mcx.h
+++ b/include/configs/mcx.h
@@ -283,6 +283,52 @@
 					 CONFIG_SYS_INIT_RAM_SIZE - \
 					 GENERATED_GBL_DATA_SIZE)
 
+/* Defines for SPL */
+#define CONFIG_SPL
+#define CONFIG_SPL_CONSOLE
+#define CONFIG_SPL_NAND_SIMPLE
+#define CONFIG_SPL_NAND_SOFTECC
+#define CONFIG_SPL_NAND_WORKSPACE	0x8f07f000 /* below BSS */
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBDISK_SUPPORT
+#define CONFIG_SPL_I2C_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+#define CONFIG_SPL_POWER_SUPPORT
+#define CONFIG_SPL_NAND_SUPPORT
+#define CONFIG_SPL_LDSCRIPT		"$(CPUDIR)/omap-common/u-boot-spl.lds"
+
+#define CONFIG_SPL_TEXT_BASE		0x40200000 /*CONFIG_SYS_SRAM_START*/
+#define CONFIG_SPL_MAX_SIZE		0xB400  /* 45 K */
+#define CONFIG_SPL_STACK		LOW_LEVEL_SRAM_STACK
+
+#define CONFIG_SPL_BSS_START_ADDR	0x8f080000 /* end of RAM */
+#define CONFIG_SPL_BSS_MAX_SIZE		0x80000
+
+/* NAND boot config */
+#define CONFIG_SYS_NAND_PAGE_COUNT	64
+#define CONFIG_SYS_NAND_PAGE_SIZE	2048
+#define CONFIG_SYS_NAND_OOBSIZE		64
+#define CONFIG_SYS_NAND_BLOCK_SIZE	(128*1024)
+#define CONFIG_SYS_NAND_5_ADDR_CYCLE
+#define CONFIG_SYS_NAND_BAD_BLOCK_POS	0
+#define CONFIG_SYS_NAND_ECCPOS		{40, 41, 42, 43, 44, 45, 46, 47,\
+					 48, 49, 50, 51, 52, 53, 54, 55,\
+					 56, 57, 58, 59, 60, 61, 62, 63}
+#define CONFIG_SYS_NAND_ECCSIZE		256
+#define CONFIG_SYS_NAND_ECCBYTES	3
+
+#define CONFIG_SYS_NAND_ECCSTEPS	(CONFIG_SYS_NAND_PAGE_SIZE / \
+						CONFIG_SYS_NAND_ECCSIZE)
+#define CONFIG_SYS_NAND_ECCTOTAL       (CONFIG_SYS_NAND_ECCBYTES * \
+						CONFIG_SYS_NAND_ECCSTEPS)
+
+#define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE
+
+#define CONFIG_SYS_NAND_U_BOOT_OFFS	0x80000
+#define CONFIG_SYS_NAND_U_BOOT_SIZE	0x60000
+
 /*
  * ethernet support
  *
-- 
1.7.6.4

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE
  2011-10-17 23:33 ` [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE Ilya Yanok
@ 2011-10-17 23:43   ` Tom Rini
  2011-10-17 23:50     ` Ilya Yanok
  2011-10-31 12:38     ` Ilya Yanok
  0 siblings, 2 replies; 20+ messages in thread
From: Tom Rini @ 2011-10-17 23:43 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 17, 2011 at 4:33 PM, Ilya Yanok <yanok@emcraft.com> wrote:
> Don't hardcode u-boot.bin size for the case where mkimage signature is
> missing, use CONFIG_SYS_NAND_U_BOOT_SIZE for this.
>
> Signed-off-by: Ilya Yanok <yanok@emcraft.com>

I don't like this since it means we need to always define this
variable when well behaved situations will have shipped u-boot.img
anyhow.  Or is there really a good reason
to fall back to u-boot.bin?

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE
  2011-10-17 23:43   ` Tom Rini
@ 2011-10-17 23:50     ` Ilya Yanok
  2011-10-31 12:38     ` Ilya Yanok
  1 sibling, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-17 23:50 UTC (permalink / raw)
  To: u-boot

Hi Tom,

On 18.10.2011 03:43, Tom Rini wrote:
>> Don't hardcode u-boot.bin size for the case where mkimage signature is
>> missing, use CONFIG_SYS_NAND_U_BOOT_SIZE for this.
>>
>> Signed-off-by: Ilya Yanok <yanok@emcraft.com>
> 
> I don't like this since it means we need to always define this
> variable when well behaved situations will have shipped u-boot.img
> anyhow.  Or is there really a good reason
> to fall back to u-boot.bin?

No, I don't think so. I got your point. Still I think hardcoding the
size value is not very good solution either. Maybe we can add something like

#ifndef CONFIG_SYS_NAND_U_BOOT_SIZE
#define CONFIG_SYS_NAND_U_BOOT_SIZE (200 * 1024) /* 200kB - default */
#endif

?

Regards, Ilya.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 3/7] omap/spl: actually enable the console
  2011-10-17 23:33 ` [U-Boot] [PATCH 3/7] omap/spl: actually enable the console Ilya Yanok
@ 2011-10-19 19:24   ` Tom Rini
  2011-10-31 12:39     ` Ilya Yanok
  0 siblings, 1 reply; 20+ messages in thread
From: Tom Rini @ 2011-10-19 19:24 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 17, 2011 at 4:33 PM, Ilya Yanok <yanok@emcraft.com> wrote:
> Currently OMAP SPL code does all the initialization but does not set the
> gd->have_console value so no output is actually performed. This patch
> sets gd->have_console to 1 if CONFIG_SPL_CONSOLE is defined.
>
> Signed-off-by: Ilya Yanok <yanok@emcraft.com>

So, this is because of a behavior change.  Do we want an SPL_CONSOLE variable?
Or should we just bring back the previous behavior?  I kind of think
the previous
behavior...  Others?

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-17 23:33 ` [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled Ilya Yanok
@ 2011-10-20 12:00   ` Simon Schwarz
  2011-10-20 15:23     ` Ilya Yanok
  0 siblings, 1 reply; 20+ messages in thread
From: Simon Schwarz @ 2011-10-20 12:00 UTC (permalink / raw)
  To: u-boot

Hi Ilya,

On 10/18/2011 01:33 AM, Ilya Yanok wrote:
> Use software ECC for the SPL build if support for software ECC in SPL is
> enabled.

I'am curious: Is there a special reason for having software ecc in SPL?

Regards
Simon

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-20 12:00   ` Simon Schwarz
@ 2011-10-20 15:23     ` Ilya Yanok
  2011-10-21 11:08       ` Simon Schwarz
  0 siblings, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-20 15:23 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 20.10.2011 16:00, Simon Schwarz wrote:
>> Use software ECC for the SPL build if support for software ECC in SPL is
>> enabled.
> 
> I'am curious: Is there a special reason for having software ecc in SPL?

Well, yes. On OMAP2+ ECC mode defaults to software (incompatible with HW
mode; 256 vs 512 bytes block size) both in U-Boot and Linux (U-Boot has
command to change it while in Linux you have to recompile the kernel).

So we need software ecc to read images written from Linux.

Regards, Ilya.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-20 15:23     ` Ilya Yanok
@ 2011-10-21 11:08       ` Simon Schwarz
  2011-10-27 20:27         ` Ilya Yanok
  2011-10-31 17:30         ` Ilya Yanok
  0 siblings, 2 replies; 20+ messages in thread
From: Simon Schwarz @ 2011-10-21 11:08 UTC (permalink / raw)
  To: u-boot

Hi Ilya,

On 10/20/2011 05:23 PM, Ilya Yanok wrote:
 > Hi Simon,
 >
 > On 20.10.2011 16:00, Simon Schwarz wrote:
 >>> Use software ECC for the SPL build if support for software ECC in 
SPL is
 >>> enabled.
 >>
 >> I'am curious: Is there a special reason for having software ecc in SPL?
 >
 > Well, yes. On OMAP2+ ECC mode defaults to software (incompatible with HW
 > mode; 256 vs 512 bytes block size) both in U-Boot and Linux (U-Boot has
 > command to change it while in Linux you have to recompile the kernel).
 >
 > So we need software ecc to read images written from Linux.

ok. Agreed.

Another thing just poped into my mind, ATM I have a DMA patch for 
devkit8000 on the ML:
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/109744
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/112661

It speeds up the process of copying the u-boot/linux image. ATM this is 
in combination with HW ecc and I doubt that it will work seamlessly with 
SW-ecc, yet. However IMHO DMA in combination with SW-ecc could be nearly 
as fast as using HW-ecc.

So maybe an adaption is worth a try?

Regards
Simon

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-21 11:08       ` Simon Schwarz
@ 2011-10-27 20:27         ` Ilya Yanok
  2011-10-31 17:30         ` Ilya Yanok
  1 sibling, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-27 20:27 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 21.10.2011 15:08, Simon Schwarz wrote:
>>>> Use software ECC for the SPL build if support for software ECC in
> SPL is
>>>> enabled.
>>>
>>> I'am curious: Is there a special reason for having software ecc in SPL?
>>
>> Well, yes. On OMAP2+ ECC mode defaults to software (incompatible with HW
>> mode; 256 vs 512 bytes block size) both in U-Boot and Linux (U-Boot has
>> command to change it while in Linux you have to recompile the kernel).
>>
>> So we need software ecc to read images written from Linux.
> 
> ok. Agreed.
> 
> Another thing just poped into my mind, ATM I have a DMA patch for
> devkit8000 on the ML:
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/109744
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/112661

Yes, I've seen this patch.

> It speeds up the process of copying the u-boot/linux image. ATM this is
> in combination with HW ecc and I doubt that it will work seamlessly with
> SW-ecc, yet. However IMHO DMA in combination with SW-ecc could be nearly
> as fast as using HW-ecc.
> 
> So maybe an adaption is worth a try?

Uh.. Had no time to look at it last days... I'll try to take a look at
it this weekend.

Regards, Ilya.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE
  2011-10-17 23:43   ` Tom Rini
  2011-10-17 23:50     ` Ilya Yanok
@ 2011-10-31 12:38     ` Ilya Yanok
  2011-10-31 14:43       ` Tom Rini
  1 sibling, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-31 12:38 UTC (permalink / raw)
  To: u-boot

Hi Tom, All,

On 18.10.2011 03:43, Tom Rini wrote:
>> Don't hardcode u-boot.bin size for the case where mkimage signature is
>> missing, use CONFIG_SYS_NAND_U_BOOT_SIZE for this.
>>
>> Signed-off-by: Ilya Yanok <yanok@emcraft.com>

So what about this patch? Should I drop it?

Regards, Ilya.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 3/7] omap/spl: actually enable the console
  2011-10-19 19:24   ` Tom Rini
@ 2011-10-31 12:39     ` Ilya Yanok
  2011-10-31 14:44       ` Tom Rini
  0 siblings, 1 reply; 20+ messages in thread
From: Ilya Yanok @ 2011-10-31 12:39 UTC (permalink / raw)
  To: u-boot

Hi Tom,

>> Currently OMAP SPL code does all the initialization but does not set the
>> gd->have_console value so no output is actually performed. This patch
>> sets gd->have_console to 1 if CONFIG_SPL_CONSOLE is defined.
>>
>> Signed-off-by: Ilya Yanok <yanok@emcraft.com>
> 
> So, this is because of a behavior change.  Do we want an SPL_CONSOLE variable?
> Or should we just bring back the previous behavior?  I kind of think
> the previous
> behavior...  Others?

So what will be your decision? Should I remove SPL_CONSOLE and repost
the patch? Or should I drop it completely?

Regards, Ilya.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE
  2011-10-31 12:38     ` Ilya Yanok
@ 2011-10-31 14:43       ` Tom Rini
  0 siblings, 0 replies; 20+ messages in thread
From: Tom Rini @ 2011-10-31 14:43 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2011 at 5:38 AM, Ilya Yanok <yanok@emcraft.com> wrote:
> Hi Tom, All,
>
> On 18.10.2011 03:43, Tom Rini wrote:
>>> Don't hardcode u-boot.bin size for the case where mkimage signature is
>>> missing, use CONFIG_SYS_NAND_U_BOOT_SIZE for this.
>>>
>>> Signed-off-by: Ilya Yanok <yanok@emcraft.com>
>
> So what about this patch? Should I drop it?

That would be my vote, but I don't have a MAINTAINER hat anywhere here ;)

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 3/7] omap/spl: actually enable the console
  2011-10-31 12:39     ` Ilya Yanok
@ 2011-10-31 14:44       ` Tom Rini
  0 siblings, 0 replies; 20+ messages in thread
From: Tom Rini @ 2011-10-31 14:44 UTC (permalink / raw)
  To: u-boot

On Mon, Oct 31, 2011 at 5:39 AM, Ilya Yanok <yanok@emcraft.com> wrote:
> Hi Tom,
>
>>> Currently OMAP SPL code does all the initialization but does not set the
>>> gd->have_console value so no output is actually performed. This patch
>>> sets gd->have_console to 1 if CONFIG_SPL_CONSOLE is defined.
>>>
>>> Signed-off-by: Ilya Yanok <yanok@emcraft.com>
>>
>> So, this is because of a behavior change. ?Do we want an SPL_CONSOLE variable?
>> Or should we just bring back the previous behavior? ?I kind of think
>> the previous
>> behavior... ?Others?
>
> So what will be your decision? Should I remove SPL_CONSOLE and repost
> the patch? Or should I drop it completely?

I would say just drop the #ifdef part.

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled
  2011-10-21 11:08       ` Simon Schwarz
  2011-10-27 20:27         ` Ilya Yanok
@ 2011-10-31 17:30         ` Ilya Yanok
  1 sibling, 0 replies; 20+ messages in thread
From: Ilya Yanok @ 2011-10-31 17:30 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 21.10.2011 15:08, Simon Schwarz wrote:
> Another thing just poped into my mind, ATM I have a DMA patch for
> devkit8000 on the ML:
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/109744
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/112661
> 
> It speeds up the process of copying the u-boot/linux image. ATM this is
> in combination with HW ecc and I doubt that it will work seamlessly with
> SW-ecc, yet. However IMHO DMA in combination with SW-ecc could be nearly
> as fast as using HW-ecc.
> 
> So maybe an adaption is worth a try?

Ok, I've finally taken a look at it. Adaption is very straight forward
actually. This works for me:

diff --git a/drivers/mtd/nand/nand_spl_simple.c
b/drivers/mtd/nand/nand_spl_simple.c
index 1402a35..1248f8f 100644
--- a/drivers/mtd/nand/nand_spl_simple.c
+++ b/drivers/mtd/nand/nand_spl_simple.c
@@ -284,7 +284,8 @@ static int nand_read_page_dma(int block, int page,
void *dst)
        for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
                res += omap3_dma_conf_transfer(0, nand_chip.IO_ADDR_R,
                        (uint32_t *)p, CONFIG_SYS_NAND_ECCSIZE/4);
-               this->ecc.hwctl(&mtd, NAND_ECC_READ);
+               if (this->ecc.mode != NAND_ECC_SOFT)
+                       this->ecc.hwctl(&mtd, NAND_ECC_READ);
                res += omap3_dma_start_transfer(0);
                /* correct ecc from former transfer */
                if (ecc_wait.valid != 0)

Regards, Ilya.

^ permalink raw reply related	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2011-10-31 17:30 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-17 23:33 [U-Boot] [PATCH 0/7] NAND SPL support for mcx board Ilya Yanok
2011-10-17 23:33 ` [U-Boot] [PATCH 1/7] omap3/emif4: fix registers definition Ilya Yanok
2011-10-17 23:33 ` [U-Boot] [PATCH 2/7] omap/spl: don't assume u-boot.bin size, use CONFIG_SYS_NAND_U_BOOT_SIZE Ilya Yanok
2011-10-17 23:43   ` Tom Rini
2011-10-17 23:50     ` Ilya Yanok
2011-10-31 12:38     ` Ilya Yanok
2011-10-31 14:43       ` Tom Rini
2011-10-17 23:33 ` [U-Boot] [PATCH 3/7] omap/spl: actually enable the console Ilya Yanok
2011-10-19 19:24   ` Tom Rini
2011-10-31 12:39     ` Ilya Yanok
2011-10-31 14:44       ` Tom Rini
2011-10-17 23:33 ` [U-Boot] [PATCH 4/7] nand_spl_simple: add support for software ECC Ilya Yanok
2011-10-17 23:33 ` [U-Boot] [PATCH 5/7] omap_gpmc: use SOFTECC in SPL if it's enabled Ilya Yanok
2011-10-20 12:00   ` Simon Schwarz
2011-10-20 15:23     ` Ilya Yanok
2011-10-21 11:08       ` Simon Schwarz
2011-10-27 20:27         ` Ilya Yanok
2011-10-31 17:30         ` Ilya Yanok
2011-10-17 23:33 ` [U-Boot] [PATCH 6/7] nand_spl_simple: store temp data at CONFIG_SPL_NAND_WORKSPACE Ilya Yanok
2011-10-17 23:33 ` [U-Boot] [PATCH 7/7] mcx: NAND SPL support Ilya Yanok

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.