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

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Wed Jan 20 18:24:46 CET 2010


On 20.01.2010 17:49, Anders Juel Jensen wrote:
> update to block_erasers
>
> Signed-off-by Anders Juel Jensen
>   

Your original Signed-off-by: statement (with : and mail address) had the
format we want. No need to worry, someone will fix up on commit.


> On Sunday 17 January 2010 05:53:00 Sean Nelson wrote:
>   
>> Could you please redo patch to use block_erasers?
>>
>>     
>
> 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,
> +		.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.


> +		.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,
> +		.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,
>   


Regards,
Carl-Daniel

-- 
Developer quote of the year:
"We are juggling too many chainsaws and flaming arrows and tigers."





More information about the flashrom mailing list