Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2012-02-03 Thread Tom Rini
On Fri, Feb 3, 2012 at 1:17 PM, Albert ARIBAUD
 wrote:
> Hi,
>
> I am slowly catching up on my e-mail, so...
>
> Le 11/01/2012 00:24, Tom Rini a écrit :
>>
>> A hawkboard conversion is pending Albert ack'ing/commenting on a
>> generic ARM fixup.
>
>
> Can you point me to this patch series? I'll look it up as soon as possible.

Latest version starts at http://patchwork.ozlabs.org/patch/139114/ and
is in my queue for Monday, assuming there's no further feedback.

-- 
Tom
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2012-02-03 Thread Albert ARIBAUD

Hi,

I am slowly catching up on my e-mail, so...

Le 11/01/2012 00:24, Tom Rini a écrit :

A hawkboard conversion is pending Albert ack'ing/commenting on a
generic ARM fixup.


Can you point me to this patch series? I'll look it up as soon as possible.

Amicalement,
--
Albert.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2012-01-10 Thread Tom Rini
On Tue, Jan 10, 2012 at 4:01 PM, Scott Wood  wrote:
> On 12/13/2011 01:33 PM, Stefano Babic wrote:
>> Currently nand_spl_simple puts it's temp data at 0x1 offset in SDRAM
>> which is likely to contain already loaded data.
>> The patch saves the oob data and the ecc on the stack replacing
>> the fixed address in RAM.
>>
>> Signed-off-by: Stefano Babic 
>> CC: Ilya Yanok 
>> CC: Scott Wood 
>> CC: Tom Rini 
>> CC: Simon Schwarz 
>> CC: Wolfgang Denk 
>> ---
>> V4:
>>  - Drop SYS_ from local defines (Wolfgang Denk, Scott Wood)
>>  - drop parenthesis around defines (Scott Wood)
>>
>> V3:
>>  - use local defines for CONFIG_SYS_NAND_ECCSTEPS and
>>    CONFIG_SYS_NAND_ECCTOTAL (Tom Rini)
>>  - drop CONFIG_SYS_NAND_ECCSTEPS from board config files
>>
>> V2:
>>  - CONFIG_SYS_NAND_ECCTOTAL can always be computed (Ilya Yanok)
>>  - drop all CONFIG_SYS_NAND_ECCTOTAL in arm boards using nand_simple.c
>>
>>  drivers/mtd/nand/nand_spl_simple.c     |   42 
>> ---
>>  include/configs/am3517_crane.h         |    4 ---
>>  include/configs/am3517_evm.h           |    4 ---
>>  include/configs/devkit8000.h           |    5 
>>  include/configs/hawkboard.h            |    5 +---
>>  include/configs/omap3_beagle.h         |    4 ---
>>  include/configs/omap3_evm.h            |    4 ---
>>  include/configs/omap3_evm_quick_nand.h |    4 ---
>>  8 files changed, 17 insertions(+), 55 deletions(-)
>
> After this patch a hawkboard_nand build gives this:
>
>> Configuring for hawkboard_nand - Board: hawkboard, Options: NAND_U_BOOT
>> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c: In function 
>> 'nand_read_page':
>> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:148:17: error: 
>> 'CONFIG_SYS_NAND_ECCSTEPS' undeclared (first use in this function)
>> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:148:17: note: 
>> each undeclared identifier is reported only once for each function it 
>> appears in
>> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:164:18: error: 
>> 'CONFIG_SYS_NAND_ECCTOTAL' undeclared (first use in this function)
>> make[1]: *** [/tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.o] 
>> Error 1
>> make: *** [nand_spl] Error 2
>> make: *** Waiting for unfinished jobs
>
> Should I drop hawkboard from this patch, or add the change to
> nand_spl/nand_boot.c?  Is a hawkboard conversion to the new SPL pending
> in some other tree?

A hawkboard conversion is pending Albert ack'ing/commenting on a
generic ARM fixup.

-- 
Tom
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2012-01-10 Thread Scott Wood
On 12/13/2011 01:33 PM, Stefano Babic wrote:
> Currently nand_spl_simple puts it's temp data at 0x1 offset in SDRAM
> which is likely to contain already loaded data.
> The patch saves the oob data and the ecc on the stack replacing
> the fixed address in RAM.
> 
> Signed-off-by: Stefano Babic 
> CC: Ilya Yanok 
> CC: Scott Wood 
> CC: Tom Rini 
> CC: Simon Schwarz 
> CC: Wolfgang Denk 
> ---
> V4:
>  - Drop SYS_ from local defines (Wolfgang Denk, Scott Wood)
>  - drop parenthesis around defines (Scott Wood)
> 
> V3:
>  - use local defines for CONFIG_SYS_NAND_ECCSTEPS and
>CONFIG_SYS_NAND_ECCTOTAL (Tom Rini)
>  - drop CONFIG_SYS_NAND_ECCSTEPS from board config files
> 
> V2:
>  - CONFIG_SYS_NAND_ECCTOTAL can always be computed (Ilya Yanok)
>  - drop all CONFIG_SYS_NAND_ECCTOTAL in arm boards using nand_simple.c
> 
>  drivers/mtd/nand/nand_spl_simple.c |   42 ---
>  include/configs/am3517_crane.h |4 ---
>  include/configs/am3517_evm.h   |4 ---
>  include/configs/devkit8000.h   |5 
>  include/configs/hawkboard.h|5 +---
>  include/configs/omap3_beagle.h |4 ---
>  include/configs/omap3_evm.h|4 ---
>  include/configs/omap3_evm_quick_nand.h |4 ---
>  8 files changed, 17 insertions(+), 55 deletions(-)

After this patch a hawkboard_nand build gives this:

> Configuring for hawkboard_nand - Board: hawkboard, Options: NAND_U_BOOT
> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c: In function 
> 'nand_read_page':
> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:148:17: error: 
> 'CONFIG_SYS_NAND_ECCSTEPS' undeclared (first use in this function)
> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:148:17: note: 
> each undeclared identifier is reported only once for each function it appears 
> in
> /tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.c:164:18: error: 
> 'CONFIG_SYS_NAND_ECCTOTAL' undeclared (first use in this function)
> make[1]: *** [/tmp/u-boot-arm/nand_spl/board/davinci/da8xxevm/nand_boot.o] 
> Error 1
> make: *** [nand_spl] Error 2
> make: *** Waiting for unfinished jobs

Should I drop hawkboard from this patch, or add the change to
nand_spl/nand_boot.c?  Is a hawkboard conversion to the new SPL pending
in some other tree?

-Scott

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2011-12-15 Thread Stefano Babic
On 15/12/2011 10:03, Simon Schwarz wrote:
> Hi Stefano,
> 
> On 12/14/2011 09:49 AM, Stefano Babic wrote:
> [SNIP]
>> Because I thought that the patch will be merged by Tom, I rebased the
>> patch on u-boot-ti. This is also because there is Ilya's patch:
>>
>> nand_spl_simple: add support for software ECC
>>
>> that modifies the same file. The patch can be applied flawlessy on top
>> of u-boot-ti, I have checked now again.
>>
>> For testing I have then applied your SPL Linux patches, and tried to
>> boot linux, as I know there is a conflict with the ECC area.
>>
>> Tom, it is surely better (I forget to mention) that you merge the patch
>> into u-boot-ti, because you have already merged Ilya's patch.
>>
>> Regards,
>> Stefano
>>
> 
> hmm. I tried it on u-boot-ti (master and next) and it didn't apply.
> 
> The problem was with drivers/mtd/nand/nand_spl_simple.c:145. The last
> commit touching the file was from Anatolij on 3th december.

I see, maybe it was not already merged when I tested. I send a rebased
patch.

Stefano

-- 
=
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2011-12-14 Thread Stefano Babic
On 14/12/2011 09:22, Simon Schwarz wrote:
> On 12/13/2011 08:33 PM, Stefano Babic wrote:
>> Currently nand_spl_simple puts it's temp data at 0x1 offset in SDRAM
>> which is likely to contain already loaded data.
>> The patch saves the oob data and the ecc on the stack replacing
>> the fixed address in RAM.
>>
>> Signed-off-by: Stefano Babic
>> CC: Ilya Yanok
>> CC: Scott Wood
>> CC: Tom Rini
>> CC: Simon Schwarz
>> CC: Wolfgang Denk
>> ---
>> V4:
>>   - Drop SYS_ from local defines (Wolfgang Denk, Scott Wood)
>>   - drop parenthesis around defines (Scott Wood)
>>
>> V3:
>>   - use local defines for CONFIG_SYS_NAND_ECCSTEPS and
>> CONFIG_SYS_NAND_ECCTOTAL (Tom Rini)
>>   - drop CONFIG_SYS_NAND_ECCSTEPS from board config files
>>
>> V2:
>>   - CONFIG_SYS_NAND_ECCTOTAL can always be computed (Ilya Yanok)
>>   - drop all CONFIG_SYS_NAND_ECCTOTAL in arm boards using nand_simple.c
>>
> [SNIP]
> 
> Hi Stefano,
> 
> on which repo is this patch based? I tried to test it on u-boot but the
> patch does not apply.

Because I thought that the patch will be merged by Tom, I rebased the
patch on u-boot-ti. This is also because there is Ilya's patch:

nand_spl_simple: add support for software ECC

that modifies the same file. The patch can be applied flawlessy on top
of u-boot-ti, I have checked now again.

For testing I have then applied your SPL Linux patches, and tried to
boot linux, as I know there is a conflict with the ECC area.

Tom, it is surely better (I forget to mention) that you merge the patch
into u-boot-ti, because you have already merged Ilya's patch.

Regards,
Stefano

-- 
=
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2011-12-14 Thread Simon Schwarz

On 12/13/2011 08:33 PM, Stefano Babic wrote:

Currently nand_spl_simple puts it's temp data at 0x1 offset in SDRAM
which is likely to contain already loaded data.
The patch saves the oob data and the ecc on the stack replacing
the fixed address in RAM.

Signed-off-by: Stefano Babic
CC: Ilya Yanok
CC: Scott Wood
CC: Tom Rini
CC: Simon Schwarz
CC: Wolfgang Denk
---
V4:
  - Drop SYS_ from local defines (Wolfgang Denk, Scott Wood)
  - drop parenthesis around defines (Scott Wood)

V3:
  - use local defines for CONFIG_SYS_NAND_ECCSTEPS and
CONFIG_SYS_NAND_ECCTOTAL (Tom Rini)
  - drop CONFIG_SYS_NAND_ECCSTEPS from board config files

V2:
  - CONFIG_SYS_NAND_ECCTOTAL can always be computed (Ilya Yanok)
  - drop all CONFIG_SYS_NAND_ECCTOTAL in arm boards using nand_simple.c


[SNIP]

Hi Stefano,

on which repo is this patch based? I tried to test it on u-boot but the 
patch does not apply.


Regards
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH V4] nand_spl_simple: store ecc data on the stack

2011-12-13 Thread Tom Rini
On Tue, Dec 13, 2011 at 12:33 PM, Stefano Babic  wrote:
> Currently nand_spl_simple puts it's temp data at 0x1 offset in SDRAM
> which is likely to contain already loaded data.
> The patch saves the oob data and the ecc on the stack replacing
> the fixed address in RAM.
>
> Signed-off-by: Stefano Babic 
> CC: Ilya Yanok 
> CC: Scott Wood 
> CC: Tom Rini 
> CC: Simon Schwarz 
> CC: Wolfgang Denk 

Acked-by: Tom Rini 

> ---
> V4:
>  - Drop SYS_ from local defines (Wolfgang Denk, Scott Wood)
>  - drop parenthesis around defines (Scott Wood)
>
> V3:
>  - use local defines for CONFIG_SYS_NAND_ECCSTEPS and
>   CONFIG_SYS_NAND_ECCTOTAL (Tom Rini)
>  - drop CONFIG_SYS_NAND_ECCSTEPS from board config files
>
> V2:
>  - CONFIG_SYS_NAND_ECCTOTAL can always be computed (Ilya Yanok)
>  - drop all CONFIG_SYS_NAND_ECCTOTAL in arm boards using nand_simple.c
>
>  drivers/mtd/nand/nand_spl_simple.c     |   42 ---
>  include/configs/am3517_crane.h         |    4 ---
>  include/configs/am3517_evm.h           |    4 ---
>  include/configs/devkit8000.h           |    5 
>  include/configs/hawkboard.h            |    5 +---
>  include/configs/omap3_beagle.h         |    4 ---
>  include/configs/omap3_evm.h            |    4 ---
>  include/configs/omap3_evm_quick_nand.h |    4 ---
>  8 files changed, 17 insertions(+), 55 deletions(-)
>
> diff --git a/drivers/mtd/nand/nand_spl_simple.c 
> b/drivers/mtd/nand/nand_spl_simple.c
> index ed821f2..5a1e1a9 100644
> --- a/drivers/mtd/nand/nand_spl_simple.c
> +++ b/drivers/mtd/nand/nand_spl_simple.c
> @@ -27,6 +27,11 @@ static int nand_ecc_pos[] = CONFIG_SYS_NAND_ECCPOS;
>  static nand_info_t mtd;
>  static struct nand_chip nand_chip;
>
> +#define ECCSTEPS       (CONFIG_SYS_NAND_PAGE_SIZE / \
> +                                       CONFIG_SYS_NAND_ECCSIZE)
> +#define ECCTOTAL       (ECCSTEPS * CONFIG_SYS_NAND_ECCBYTES)
> +
> +
>  #if (CONFIG_SYS_NAND_PAGE_SIZE <= 512)
>  /*
>  * NAND command for small page NAND devices (512)
> @@ -145,30 +150,22 @@ static int nand_is_bad_block(int block)
>  static int nand_read_page(int block, int page, uchar *dst)
>  {
>        struct nand_chip *this = mtd.priv;
> -       u_char *ecc_calc;
> -       u_char *ecc_code;
> -       u_char *oob_data;
> +       u_char ecc_calc[ECCTOTAL];
> +       u_char ecc_code[ECCTOTAL];
> +       u_char oob_data[CONFIG_SYS_NAND_OOBSIZE];
>        int i;
>        int eccsize = CONFIG_SYS_NAND_ECCSIZE;
>        int eccbytes = CONFIG_SYS_NAND_ECCBYTES;
> -       int eccsteps = CONFIG_SYS_NAND_ECCSTEPS;
> +       int eccsteps = ECCSTEPS;
>        uint8_t *p = dst;
>        int stat;
>
> -       /*
> -        * No malloc available for now, just use some temporary locations
> -        * in SDRAM
> -        */
> -       ecc_calc = (u_char *)(CONFIG_SYS_SDRAM_BASE + 0x1);
> -       ecc_code = ecc_calc + 0x100;
> -       oob_data = ecc_calc + 0x200;
> -
>        nand_command(block, page, 0, NAND_CMD_READOOB);
>        this->read_buf(&mtd, oob_data, CONFIG_SYS_NAND_OOBSIZE);
>        nand_command(block, page, 0, NAND_CMD_READ0);
>
>        /* Pick the ECC bytes out of the oob data */
> -       for (i = 0; i < CONFIG_SYS_NAND_ECCTOTAL; i++)
> +       for (i = 0; i < ECCTOTAL; i++)
>                ecc_code[i] = oob_data[nand_ecc_pos[i]];
>
>
> @@ -185,25 +182,18 @@ static int nand_read_page(int block, int page, uchar 
> *dst)
>  static int nand_read_page(int block, int page, void *dst)
>  {
>        struct nand_chip *this = mtd.priv;
> -       u_char *ecc_calc;
> -       u_char *ecc_code;
> -       u_char *oob_data;
> +       u_char ecc_calc[ECCTOTAL];
> +       u_char ecc_code[ECCTOTAL];
> +       u_char oob_data[CONFIG_SYS_NAND_OOBSIZE];
>        int i;
>        int eccsize = CONFIG_SYS_NAND_ECCSIZE;
>        int eccbytes = CONFIG_SYS_NAND_ECCBYTES;
> -       int eccsteps = CONFIG_SYS_NAND_ECCSTEPS;
> +       int eccsteps = ECCSTEPS;
>        uint8_t *p = dst;
>        int stat;
>
>        nand_command(block, page, 0, NAND_CMD_READ0);
>
> -       /* No malloc available for now, just use some temporary locations
> -        * in SDRAM
> -        */
> -       ecc_calc = (u_char *)(CONFIG_SYS_SDRAM_BASE + 0x1);
> -       ecc_code = ecc_calc + 0x100;
> -       oob_data = ecc_calc + 0x200;
> -
>        for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
>                if (this->ecc.mode != NAND_ECC_SOFT)
>                        this->ecc.hwctl(&mtd, NAND_ECC_READ);
> @@ -213,10 +203,10 @@ static int nand_read_page(int block, int page, void 
> *dst)
>        this->read_buf(&mtd, oob_data, CONFIG_SYS_NAND_OOBSIZE);
>
>        /* Pick the ECC bytes out of the oob data */
> -       for (i = 0; i < CONFIG_SYS_NAND_ECCTOTAL; i++)
> +       for (i = 0; i < ECCTOTAL; i++)
>                ecc_code[i] = oob_data[nand_ecc_pos[i]];
>
> -       eccsteps = CONFIG_SYS_NAND_ECCSTEPS;
> +       eccsteps = ECCSTEPS;
>        p = dst;
>
>        for (i = 0 ; eccsteps; eccsteps--, i += eccbytes,