All of lore.kernel.org
 help / color / mirror / Atom feed
* NAND on MV78100
@ 2010-09-23  8:16 Nils Faerber
  2010-09-23 19:07 ` Nicolas Pitre
  0 siblings, 1 reply; 3+ messages in thread
From: Nils Faerber @ 2010-09-23  8:16 UTC (permalink / raw)
  To: linux-mtd@lists.infradead.org

Hi!
I am currently working on board support for a Marvell MV78100 based
board. The MV78100 uses the same Orion SOC components as e.g. the
Kirkwood which is quite well supported from OpenRD and SheevaPlug.

After some struggling I got the Orion NAND driver working, it detects
the NAND chip properly (512MB) and assigns a partition. Everything seems
OK so far.

But when I read from the device, e.g. just by "cat /dev/mtdblock1 | wc
-c" it starts to fail with "uncorrectable error" after exactly 1MB
(1024*1024).

This seems pretty strange to me and I have no real idea where to look
for the problem. I have the Orion NAND driver working cleanly with the
very same kernel version on a Kirkwood based board without problems.

Any hint on where to look would be *very* much appreciated ;)

Thanks!

Cheers
  nils

-- 
kernel concepts GbR        Tel: +49-271-771091-12
Sieghuetter Hauptweg 48
D-57072 Siegen             Mob: +49-176-21024535
http://www.kernelconcepts.de

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

* Re: NAND on MV78100
  2010-09-23  8:16 NAND on MV78100 Nils Faerber
@ 2010-09-23 19:07 ` Nicolas Pitre
  2010-09-24 10:22   ` Nils Faerber
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Pitre @ 2010-09-23 19:07 UTC (permalink / raw)
  To: Nils Faerber; +Cc: linux-mtd@lists.infradead.org

On Thu, 23 Sep 2010, Nils Faerber wrote:

> Hi!
> I am currently working on board support for a Marvell MV78100 based
> board. The MV78100 uses the same Orion SOC components as e.g. the
> Kirkwood which is quite well supported from OpenRD and SheevaPlug.
> 
> After some struggling I got the Orion NAND driver working, it detects
> the NAND chip properly (512MB) and assigns a partition. Everything seems
> OK so far.
> 
> But when I read from the device, e.g. just by "cat /dev/mtdblock1 | wc
> -c" it starts to fail with "uncorrectable error" after exactly 1MB
> (1024*1024).

This is most likely due to a difference in the ECC model used.
The quick "fix" would be to reformat the NAND (at least from the offset 
where it fails) using the Linux supported 1-bit ECC.

The Marvell LSPs (and most unfortunately the bootrom) are using a 
4-bit software ECC implementation that is poorly optimized, and layered 
backward.


Nicolas

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

* Re: NAND on MV78100
  2010-09-23 19:07 ` Nicolas Pitre
@ 2010-09-24 10:22   ` Nils Faerber
  0 siblings, 0 replies; 3+ messages in thread
From: Nils Faerber @ 2010-09-24 10:22 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: linux-mtd@lists.infradead.org

Am 23.09.2010 21:07, schrieb Nicolas Pitre:
> On Thu, 23 Sep 2010, Nils Faerber wrote:
>> I am currently working on board support for a Marvell MV78100 based
>> board. The MV78100 uses the same Orion SOC components as e.g. the
>> Kirkwood which is quite well supported from OpenRD and SheevaPlug.
>>
>> After some struggling I got the Orion NAND driver working, it detects
>> the NAND chip properly (512MB) and assigns a partition. Everything seems
>> OK so far.
>>
>> But when I read from the device, e.g. just by "cat /dev/mtdblock1 | wc
>> -c" it starts to fail with "uncorrectable error" after exactly 1MB
>> (1024*1024).
> 
> This is most likely due to a difference in the ECC model used.
> The quick "fix" would be to reformat the NAND (at least from the offset 
> where it fails) using the Linux supported 1-bit ECC.
> The Marvell LSPs (and most unfortunately the bootrom) are using a 
> 4-bit software ECC implementation that is poorly optimized, and layered 
> backward.

This could be the reason since the Marvell LSP kernel was used before on
this board.
Reformatting means flash_erase?
I was scared to hose my flash by wrongly erasing it so I tried reading
only first ;)

But after your assurance I tried to flash_eraseall one partition and see
- yeha, works!

Now I just might have another issue - since I do not know some of the
board's details like RAM timing and I do not have a proper JTAG setup I
do not want to touch the pre-installed Marvell-based U-Boot. But U-Boot
shall read the at least the kernel from the NAND. But I would guess that
since the ECC is different it will not work that easily?
Well, as fallback we still have a NOR flash which could hold the kernel.

Ah, just tried and see - the Marvell UBoot obviously ignores the ECC
when reading - perfect ;)

Thank you!

> Nicolas
Cheers
  nils

-- 
kernel concepts GbR      Tel: +49-271-771091-12
Sieghuetter Hauptweg 48  Fax: +49-271-771091-19
D-57072 Siegen           Mob: +49-176-21024535
http://www.kernelconcepts.de

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

end of thread, other threads:[~2010-09-24 10:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-23  8:16 NAND on MV78100 Nils Faerber
2010-09-23 19:07 ` Nicolas Pitre
2010-09-24 10:22   ` Nils Faerber

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.