[PATCH 2/2] MTD: OneNAND: multiblock erase support

Adrian Hunter adrian.hunter at nokia.com
Fri Sep 18 04:04:24 EDT 2009


Korhonen Mika.2 (EXT-Ardites/Oulu) wrote:
> Hunter Adrian (Nokia-D/Helsinki) wrote:
>> Korhonen Mika.2 (EXT-Ardites/Oulu) wrote:
>>   
>>> Add support for multiblock erase command. OneNANDs (excluding Flex-OneNAND)
>>> are capable of simultaneous erase of up to 64 eraseblocks which is much
>>> faster.
>>> This changes the erase requests for regions covering multiple eraseblocks
>>> to be performed using multiblock erase.
>>>
>>> Signed-off-by: Mika Korhonen <ext-mika.2.korhonen at nokia.com>
>>> ---
>>>     
>> A few comments below.
>>
>>   
> [...]
>> +		switch (state) {
>> +		case FL_RESETING:
>> +			intr_flags |= ONENAND_INT_RESET;
>> +			break;
>> +		case FL_PREPARING_ERASE:
>> +			intr_flags |= ONENAND_INT_ERASE;
>> +			break;
>> +		case FL_VERIFYING_ERASE:
>> +			i = 51;
>>   
>>
>> I see 100us for this in some versions.  Perhaps Kyungmin can suggest
>> a value.
>>   
> With the chip I had the actual time for 64-eb verify read was in the 
> range of 20-30 us but you're right, there are chips for which the 
> maximum time is specified to be 100 us. Is ok to just raise this to that 
> value? Kyungmin?
> 
> [...]
>>> +
>>> +	/* loop over 64 eb batches */
>>> +	while (len) {
>>> +		struct erase_info verify_instr = *instr;
>>> +		verify_instr.addr = addr;
>>> +		verify_instr.len = 0;
>>> +
>>> +		eb_count = 0;
>>> +
>>> +		while (len > block_size &&
>>> +		       eb_count < (MB_ERASE_MAX_BLK_COUNT - 1)) {
>>>     
>> According to the manual I have you cannot do a multiblock erase
>> across a chip boundary, so you must exit this loop at the boundary too.
>>   
> 
> Ok, does this apply DDP chips only?

Yes, AFAIK. Kyungmin?




More information about the linux-mtd mailing list