public inbox for u-boot@lists.denx.de
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox