[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