[flashrom] [PATCH] Support for PCM Pm39LV020 and Pm39LV040

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sun Mar 28 00:25:41 CET 2010


Hi Anders,

you wrote that you planned to do the Pm39LV512 as well. It would be cool
if you could send a patch for that, and also for the Pm39F* family.

On 20.01.2010 18:24, Carl-Daniel Hailfinger wrote:
> On 20.01.2010 17:49, Anders Juel Jensen wrote:
>   
>> if this is done right i will add the 512 version too
>>     
>
> That would be nice.
>
>
>   
>> Index: flashchips.c
>> ===================================================================
>> --- flashchips.c	(revision 876)
>> +++ flashchips.c	(working copy)
>> @@ -3372,6 +3372,64 @@
>>  
>>  	{
>>  		.vendor		= "PMC",
>> +		.name		= "Pm39LV020",
>> +		.bustype	= CHIP_BUSTYPE_PARALLEL,
>> +		.manufacture_id	= PMC_ID_NOPREFIX,
>> +		.model_id	= PMC_39F020,
>>     

This ID was incorrect. Pm39LV020 and Pm39F020 have different IDs. I
fixed it for the commit.


>> +		.total_size	= 256,
>> +		.page_size	= 4096,
>> +		.tested		= TEST_UNTESTED,
>> +		.probe		= probe_jedec,
>>   
>>     
>
> Ahem. While you're correct that the command sequence is JEDEC, it seems
> the PMC chips use a reduced address scheme of 0x555 and 0x2aa, so
> probe_jedec is not really correct. Same problem for the erase functions.
> Before you redo the patch, let us merge Sean's last eraseblock patch,
> and then finish the infrastructure for reduced addresses. That way, your
> patch only has to set .feature_bits and can keep the reast as it was in
> this submission.
>   

I fixed it for the commit.


>> +		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
>> +		.erase		= NULL,
>> +		.block_erasers =
>> +		{
>> +			{
>> +				.eraseblocks = { {4 * 1024, 64} },
>> +				.block_erase = erase_sector_jedec,
>> +			}, {
>> +				.eraseblocks = { {64 * 1024, 4} },
>> +				.block_erase = erase_block_jedec,
>> +			}, {
>> +				.eraseblocks = { {256 * 1024, 1} },
>> +				.block_erase = erase_chip_block_jedec,
>>   
>>     
>
> Looks good.
>
>
>   
>> +			}
>> +		},
>> +		.write		= write_49f002,
>> +		.read		= read_memmapped,
>> +	},
>> +
>> +	{
>> +		.vendor		= "PMC",
>> +		.name		= "Pm39LV040",
>> +		.bustype	= CHIP_BUSTYPE_PARALLEL,
>> +		.manufacture_id	= PMC_ID_NOPREFIX,
>> +		.model_id	= PMC_39F040,
>>     

Wrong ID again. Fixed for the commit.


>> +		.total_size	= 512,
>> +		.page_size	= 4096,
>> +		.tested		= TEST_UNTESTED,
>> +		.probe		= probe_jedec,
>> +		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
>> +		.erase		= NULL,
>> +		.block_erasers =
>> +		{
>> +			{
>> +				.eraseblocks = { {4 * 1024, 128} },
>> +				.block_erase = erase_sector_jedec,
>> +			}, {
>> +				.eraseblocks = { {64 * 1024, 8} },
>> +				.block_erase = erase_block_jedec,
>> +			}, {
>> +				.eraseblocks = { {512 * 1024, 1} },
>> +				.block_erase = erase_chip_block_jedec,
>>   
>>     
>
> Looks good as well.
>
>
>   
>> +			}
>> +		},
>> +		.write		= write_49f002,
>> +		.read		= read_memmapped,
>> +	},
>> +	
>> +	{
>> +		.vendor		= "PMC",
>>  		.name		= "Pm49FL002",
>>  		.bustype	= CHIP_BUSTYPE_LPC|CHIP_BUSTYPE_FWH, /* A/A Mux*/
>>  		.manufacture_id	= PMC_ID_NOPREFIX,
>>     

Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Committed in r988 with the changes outlined above.

Regards,
Carl-Daniel
-- 
http://www.hailfinger.org/





More information about the flashrom mailing list