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,
- },
- {
.name = "Pm49FL002", .bustype = CHIP_BUSTYPE_LPC|CHIP_BUSTYPE_FWH, /* A/A Mux*/ .manufacture_id = PMC_ID_NOPREFIX,.vendor = "PMC",
Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Committed in r988 with the changes outlined above.
Regards, Carl-Daniel