Subject: Re: RFC: Flash memory device API
To: Bucky Katz <bucky@picovex.com>
From: Jared D. McNeill <jmcneill@invisible.ca>
List: tech-kern
Date: 09/05/2006 08:11:58
On 5-Sep-06, at 3:44 AM, Bucky Katz wrote:

> "Jared D. McNeill" <jmcneill@invisible.ca> writes:
>
> Your timing is fortunate. I've just started working on a NAND driver
> for an arm part and am inventing the same wheel, but for NAND, with no
> clear understanding of how to cope with raw NOR.

That's perfect, because I don't really know how to cope with NAND :-)

>> Externally, flash(4) exposes the following ioctl operations:
>> 	FLASH_ERASEBLOCK: erase a single block
>> 	FLASH_GBLOCKSTATUS: get the status of a single block
>> 	FLASH_SBLOCKSTATUS: set the status of a single block
>> 	FLASH_GETINFO: query flash device capabilities
>
> Not sure what you mean by "status".  I *assume* that by BLOCK you mean
> the erasable unit of the flash.  I've seen several naming schemes used
> so it would be good to specific what label you're going to use for the
> readable unit and what label for the erasable.  readable = sector,
> erasable = block is fine.

"status" can be one of:
	OK
	READONLY
	RESERVED
	BAD
	XIP
	UNKNOWN

> For NAND I would add two more:
>
>  	FLASH_READSPARE:  read the spare area
>  	FLASH_WRITESPARE: write the spare area

What exactly is the spare area?

Cheers,
Jared