* Large block NAND
@ 2004-03-18 12:14 llandre
2004-03-18 13:11 ` Thomas Gleixner
0 siblings, 1 reply; 11+ messages in thread
From: llandre @ 2004-03-18 12:14 UTC (permalink / raw)
To: linux-mtd
Hi all,
I'm going to write a driver for the Samsung Flash K9F1G08U0M (128MB).
The main characteristics are:
- erase block size: 128 KB
- page program size: 2 KB
- total chip size: 128 MB
- tR = 25 us
This chip is not fully compatible with the standard NAND flash commands
defined in
nand.h (Samsung call these devices "large block").
Thus, in my understanding, I must provide the following custom functions:
my_board_nand_command
my_board_nand_wait
my_board_nand_block_bad
Anybody wrote a driver for a similar device?
Have the MTD maintainers already planned to support these devices?
Best regards,
llandre
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 12:14 Large block NAND llandre
@ 2004-03-18 13:11 ` Thomas Gleixner
2004-03-18 14:16 ` David Woodhouse
2004-03-18 14:52 ` llandre
0 siblings, 2 replies; 11+ messages in thread
From: Thomas Gleixner @ 2004-03-18 13:11 UTC (permalink / raw)
To: llandre, linux-mtd
On Thursday 18 March 2004 13:14, llandre wrote:
> Hi all,
>
> I'm going to write a driver for the Samsung Flash K9F1G08U0M (128MB).
> The main characteristics are:
> - erase block size: 128 KB
> - page program size: 2 KB
> - total chip size: 128 MB
> - tR = 25 us
>
> This chip is not fully compatible with the standard NAND flash commands
> defined in
> nand.h (Samsung call these devices "large block").
> Thus, in my understanding, I must provide the following custom functions:
> my_board_nand_command
> my_board_nand_wait
> my_board_nand_block_bad
Those functions should be incorporated into nand.c, as they are generic. So
all boards which use those "large block" devices can use them.
Be aware, that the available NAND aware filesystems must be changed too, as
they are not aware of pagesizes > 512 byte, but if IIRC the datasheet
details it is possible to write 4 512 byte sub-pages to the device without
violating the specs. Anyway changes will be neccecary.
> Anybody wrote a driver for a similar device?
> Have the MTD maintainers already planned to support these devices?
Yep, but nobody forced me / us to implement it by paying for it. :)
--
Thomas
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail: tglx@linutronix.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 13:11 ` Thomas Gleixner
@ 2004-03-18 14:16 ` David Woodhouse
2004-03-18 14:26 ` Thomas Gleixner
2004-03-18 14:52 ` llandre
1 sibling, 1 reply; 11+ messages in thread
From: David Woodhouse @ 2004-03-18 14:16 UTC (permalink / raw)
To: tglx; +Cc: linux-mtd
On Thu, 2004-03-18 at 14:11 +0100, Thomas Gleixner wrote:
> Be aware, that the available NAND aware filesystems must be changed too, as
> they are not aware of pagesizes > 512 byte, but if IIRC the datasheet
> details it is possible to write 4 512 byte sub-pages to the device without
> violating the specs. Anyway changes will be neccecary.
JFFS2 shouldn't actually have any problem with arbitrary page sizes as
long as they're a power of two.
--
dwmw2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 14:16 ` David Woodhouse
@ 2004-03-18 14:26 ` Thomas Gleixner
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2004-03-18 14:26 UTC (permalink / raw)
To: David Woodhouse; +Cc: linux-mtd
On Thursday 18 March 2004 15:16, David Woodhouse wrote:
> On Thu, 2004-03-18 at 14:11 +0100, Thomas Gleixner wrote:
> > Be aware, that the available NAND aware filesystems must be changed too,
> > as they are not aware of pagesizes > 512 byte, but if IIRC the datasheet
> > details it is possible to write 4 512 byte sub-pages to the device
> > without violating the specs. Anyway changes will be neccecary.
>
> JFFS2 shouldn't actually have any problem with arbitrary page sizes as
> long as they're a power of two.
Except for the oob handling, but thats only one function to adjust
--
Thomas
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail: tglx@linutronix.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 13:11 ` Thomas Gleixner
2004-03-18 14:16 ` David Woodhouse
@ 2004-03-18 14:52 ` llandre
2004-03-18 14:57 ` Thomas Gleixner
` (2 more replies)
1 sibling, 3 replies; 11+ messages in thread
From: llandre @ 2004-03-18 14:52 UTC (permalink / raw)
To: tglx; +Cc: linux-mtd, David Woodhouse
Hi Thomas,
> > I'm going to write a driver for the Samsung Flash K9F1G08U0M (128MB).
> > The main characteristics are:
> > - erase block size: 128 KB
> > - page program size: 2 KB
> > - total chip size: 128 MB
> > - tR = 25 us
> >
> > This chip is not fully compatible with the standard NAND flash commands
> > defined in
> > nand.h (Samsung call these devices "large block").
> > Thus, in my understanding, I must provide the following custom functions:
> > my_board_nand_command
> > my_board_nand_wait
> > my_board_nand_block_bad
>
>Those functions should be incorporated into nand.c, as they are generic. So
>all boards which use those "large block" devices can use them.
>
>Be aware, that the available NAND aware filesystems must be changed too, as
>they are not aware of pagesizes > 512 byte, but if IIRC the datasheet
>details it is possible to write 4 512 byte sub-pages to the device without
>violating the specs. Anyway changes will be neccecary.
I see.
> > Anybody wrote a driver for a similar device?
> > Have the MTD maintainers already planned to support these devices?
>
>Yep, but nobody forced me / us to implement it by paying for it. :)
In case we decide to implement this feature by ourselves:
1) will the code be included in the public CVS tree?
2) will we guided by you and David in order to write the code the right way (I
mean, for example, using the correct notations and coding style)?
Regards,
llandre
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 14:52 ` llandre
@ 2004-03-18 14:57 ` Thomas Gleixner
2004-03-18 14:59 ` David Woodhouse
2004-03-18 18:32 ` David Updegraff
2 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2004-03-18 14:57 UTC (permalink / raw)
To: llandre; +Cc: linux-mtd, David Woodhouse
On Thursday 18 March 2004 15:52, llandre wrote:
> >
> >Yep, but nobody forced me / us to implement it by paying for it. :)
>
> In case we decide to implement this feature by ourselves:
> 1) will the code be included in the public CVS tree?
Why not.
> 2) will we guided by you and David in order to write the code the right way
> (I mean, for example, using the correct notations and coding style)?
Sure, Try it. Join #mtd on irc.freenode.net.
--
Thomas
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail: tglx@linutronix.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 14:52 ` llandre
2004-03-18 14:57 ` Thomas Gleixner
@ 2004-03-18 14:59 ` David Woodhouse
2004-03-22 15:37 ` David Updegraff
2004-03-18 18:32 ` David Updegraff
2 siblings, 1 reply; 11+ messages in thread
From: David Woodhouse @ 2004-03-18 14:59 UTC (permalink / raw)
To: llandre; +Cc: tglx, linux-mtd
On Thu, 2004-03-18 at 15:52 +0100, llandre wrote:
> In case we decide to implement this feature by ourselves:
> 1) will the code be included in the public CVS tree?
> 2) will we guided by you and David in order to write the code the right way (I
> mean, for example, using the correct notations and coding style)?
The code will be included if it's acceptable, certainly. Guidance is
also likely to be forthcoming, but not excessive handholding. If it
takes us so long to talk you through it that we might as well have done
it ourselves, then it's not going to help :)
Have a look, come up with a plan, and join the IRC channel to discuss
it.
--
dwmw2
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 14:52 ` llandre
2004-03-18 14:57 ` Thomas Gleixner
2004-03-18 14:59 ` David Woodhouse
@ 2004-03-18 18:32 ` David Updegraff
2004-03-19 8:21 ` llandre
2 siblings, 1 reply; 11+ messages in thread
From: David Updegraff @ 2004-03-18 18:32 UTC (permalink / raw)
To: linux-mtd
Does anyone know how 'industry-standard' the format of the 4th ID byte
in these large NAND chips from Samsung is? Y'know, the one that tells
you pagesize, buswidth, etc. I'd sure be sweet to be able to reliably
use them.
>> > I'm going to write a driver for the Samsung Flash K9F1G08U0M (128MB).
>> > The main characteristics are:
>> > - erase block size: 128 KB
>> > - page program size: 2 KB
>> > - total chip size: 128 MB
>> > - tR = 25 us
>> >
>> > This chip is not fully compatible with the standard NAND flash commands
>> > defined in
>> > nand.h (Samsung call these devices "large block").
>> > Thus, in my understanding, I must provide the following custom
>> functions:
>> > my_board_nand_command
>> > my_board_nand_wait
>> > my_board_nand_block_bad
>>
>> Those functions should be incorporated into nand.c, as they are
>> generic. So
>> all boards which use those "large block" devices can use them.
>>
>> Be aware, that the available NAND aware filesystems must be changed
>> too, as
>> they are not aware of pagesizes > 512 byte, but if IIRC the datasheet
>> details it is possible to write 4 512 byte sub-pages to the device
>> without
>> violating the specs. Anyway changes will be neccecary.
>
>
> I see.
>
>> > Anybody wrote a driver for a similar device?
>> > Have the MTD maintainers already planned to support these devices?
>>
>> Yep, but nobody forced me / us to implement it by paying for it. :)
>
>
> In case we decide to implement this feature by ourselves:
> 1) will the code be included in the public CVS tree?
> 2) will we guided by you and David in order to write the code the right
> way (I
> mean, for example, using the correct notations and coding style)?
>
>
>
> Regards,
>
> llandre
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 18:32 ` David Updegraff
@ 2004-03-19 8:21 ` llandre
0 siblings, 0 replies; 11+ messages in thread
From: llandre @ 2004-03-19 8:21 UTC (permalink / raw)
To: David Updegraff; +Cc: linux-mtd
>Does anyone know how 'industry-standard' the format of the 4th ID byte in
>these large NAND chips from Samsung is? Y'know, the one that tells you
>pagesize, buswidth, etc. I'd sure be sweet to be able to reliably use them.
Hi David,
I'm not sure I understood exactly your question anyway the 4th ID byte is
usually described in the
technical datasheet. For example, for the K9F1G08U0M, it is detailed on
pages 28 and 29.
PS: which chip are you going to work with?
Regards,
llandre
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-18 14:59 ` David Woodhouse
@ 2004-03-22 15:37 ` David Updegraff
2004-03-22 15:57 ` David Woodhouse
0 siblings, 1 reply; 11+ messages in thread
From: David Updegraff @ 2004-03-22 15:37 UTC (permalink / raw)
To: linux-mtd
I am looking at the existing 'drivers' in drivers/mtd/nand; am a bit
baffled; need help understanding approach.
The files (spia, autcpu12..) are apparently drivers for particular NAND
chips, but it appears to me that they all call nand_scan in nand.c,
which in turn just looks for ids enumerated in nand_ids.h. Does this
not make it necessary to hand-tune which driver you want to compile with
nand.c instead of having the drivers themselves control with nand chip
they know how to drive -- based on what ID one finds? Or is the
thinking that the quirks of each little embedded gadget to too wierd
anyway; so must hand-tune?
-dbu.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Large block NAND
2004-03-22 15:37 ` David Updegraff
@ 2004-03-22 15:57 ` David Woodhouse
0 siblings, 0 replies; 11+ messages in thread
From: David Woodhouse @ 2004-03-22 15:57 UTC (permalink / raw)
To: David Updegraff; +Cc: linux-mtd
On Mon, 2004-03-22 at 09:37 -0600, David Updegraff wrote:
> I am looking at the existing 'drivers' in drivers/mtd/nand; am a bit
> baffled; need help understanding approach.
>
> The files (spia, autcpu12..) are apparently drivers for particular NAND
> chips,
They're not. They're drivers for particular ways wiring up a NAND chip.
The code in nand.c handles all currently-supported (i.e 8-bit, 256- or
512-byte per page) NAND chips, and uses access functions provided by the
board-specific 'wiring' driver to waggle the control lines, etc.
> but it appears to me that they all call nand_scan in nand.c,
> which in turn just looks for ids enumerated in nand_ids.h. Does this
> not make it necessary to hand-tune which driver you want to compile with
> nand.c instead of having the drivers themselves control with nand chip
> they know how to drive -- based on what ID one finds? Or is the
> thinking that the quirks of each little embedded gadget to too wierd
> anyway; so must hand-tune?
>
> -dbu.
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
--
dwmw2
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2004-03-22 15:57 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-18 12:14 Large block NAND llandre
2004-03-18 13:11 ` Thomas Gleixner
2004-03-18 14:16 ` David Woodhouse
2004-03-18 14:26 ` Thomas Gleixner
2004-03-18 14:52 ` llandre
2004-03-18 14:57 ` Thomas Gleixner
2004-03-18 14:59 ` David Woodhouse
2004-03-22 15:37 ` David Updegraff
2004-03-22 15:57 ` David Woodhouse
2004-03-18 18:32 ` David Updegraff
2004-03-19 8:21 ` llandre
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox