SST25LF040A support patch from Stefan Reinauer. Stefan tested probing. I changed the coding style a bit to conform to flashrom rules. I checked against datasheets, should work.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: flashrom-stefan_sst25lf040a/flashchips.c =================================================================== --- flashrom-stefan_sst25lf040a/flashchips.c (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.c (Arbeitskopie) @@ -3817,6 +3817,34 @@
{ .vendor = "SST", + .name = "SST25LF040A.RES", + .bustype = CHIP_BUSTYPE_SPI, + .manufacture_id = SST_ID, + .model_id = SST_25VF040_REMS, + .total_size = 512, + .page_size = 256, + .tested = TEST_OK_PROBE, + .probe = probe_spi_res2, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 128} }, + .block_erase = spi_block_erase_20, + }, { + .eraseblocks = { {32 * 1024, 16} }, + .block_erase = spi_block_erase_52, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = spi_block_erase_60, + }, + }, + .write = spi_chip_write_1, + .read = spi_chip_read, + }, + + { + .vendor = "SST", .name = "SST25VF040B.REMS", .bustype = CHIP_BUSTYPE_SPI, .manufacture_id = SST_ID, Index: flashrom-stefan_sst25lf040a/flashchips.h =================================================================== --- flashrom-stefan_sst25lf040a/flashchips.h (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.h (Arbeitskopie) @@ -387,7 +387,7 @@ #define SST_25VF512A_REMS 0x48 /* REMS or RES opcode */ #define SST_25VF010_REMS 0x49 /* REMS or RES opcode */ #define SST_25VF020_REMS 0x43 /* REMS or RES opcode */ -#define SST_25VF040_REMS 0x44 /* REMS or RES opcode */ +#define SST_25VF040_REMS 0x44 /* REMS or RES opcode, same as SST25LF040A */ #define SST_25VF040B 0x258D #define SST_25VF040B_REMS 0x8D /* REMS or RES opcode */ #define SST_25VF080_REMS 0x80 /* REMS or RES opcode */
Hi Stefan,
could I get a signoff from you for that patch? It's your code, after all. I'll ack and commit.
On 03.06.2010 16:19, Carl-Daniel Hailfinger wrote:
SST25LF040A support patch from Stefan Reinauer. Stefan tested probing. I changed the coding style a bit to conform to flashrom rules. I checked against datasheets, should work.
Index: flashrom-stefan_sst25lf040a/flashchips.c
--- flashrom-stefan_sst25lf040a/flashchips.c (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.c (Arbeitskopie) @@ -3817,6 +3817,34 @@
{ .vendor = "SST",
.name = "SST25LF040A.RES",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = SST_ID,
.model_id = SST_25VF040_REMS,
.total_size = 512,
.page_size = 256,
.tested = TEST_OK_PROBE,
.probe = probe_spi_res2,
.probe_timing = TIMING_ZERO,
.block_erasers =
{
{
.eraseblocks = { {4 * 1024, 128} },
.block_erase = spi_block_erase_20,
}, {
.eraseblocks = { {32 * 1024, 16} },
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {512 * 1024, 1} },
.block_erase = spi_block_erase_60,
},
},
.write = spi_chip_write_1,
.read = spi_chip_read,
- },
- {
.name = "SST25VF040B.REMS", .bustype = CHIP_BUSTYPE_SPI, .manufacture_id = SST_ID,.vendor = "SST",
Index: flashrom-stefan_sst25lf040a/flashchips.h
--- flashrom-stefan_sst25lf040a/flashchips.h (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.h (Arbeitskopie) @@ -387,7 +387,7 @@ #define SST_25VF512A_REMS 0x48 /* REMS or RES opcode */ #define SST_25VF010_REMS 0x49 /* REMS or RES opcode */ #define SST_25VF020_REMS 0x43 /* REMS or RES opcode */ -#define SST_25VF040_REMS 0x44 /* REMS or RES opcode */ +#define SST_25VF040_REMS 0x44 /* REMS or RES opcode, same as SST25LF040A */ #define SST_25VF040B 0x258D #define SST_25VF040B_REMS 0x8D /* REMS or RES opcode */ #define SST_25VF080_REMS 0x80 /* REMS or RES opcode */
Regards, Carl-Daniel
On 6/14/10 2:07 PM, Carl-Daniel Hailfinger wrote:
Hi Stefan,
could I get a signoff from you for that patch? It's your code, after all. I'll ack and commit.
This is definitely below the threshold of originality, it's just cut'n'paste of some ofther chip with the name and probe function updated. Please note that I didn't verify any other information such as page size, timing or blocks so that information is most definitely wrong. But if it makes things easier:
Signed-off-by: Stefan Reinauer stepan@coresystems.de
On 03.06.2010 16:19, Carl-Daniel Hailfinger wrote:
SST25LF040A support patch from Stefan Reinauer. Stefan tested probing. I changed the coding style a bit to conform to flashrom rules. I checked against datasheets, should work.
Index: flashrom-stefan_sst25lf040a/flashchips.c
--- flashrom-stefan_sst25lf040a/flashchips.c (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.c (Arbeitskopie) @@ -3817,6 +3817,34 @@
{ .vendor = "SST",
.name = "SST25LF040A.RES",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = SST_ID,
.model_id = SST_25VF040_REMS,
.total_size = 512,
.page_size = 256,
.tested = TEST_OK_PROBE,
.probe = probe_spi_res2,
.probe_timing = TIMING_ZERO,
.block_erasers =
{
{
.eraseblocks = { {4 * 1024, 128} },
.block_erase = spi_block_erase_20,
}, {
.eraseblocks = { {32 * 1024, 16} },
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {512 * 1024, 1} },
.block_erase = spi_block_erase_60,
},
},
.write = spi_chip_write_1,
.read = spi_chip_read,
- },
- {
.name = "SST25VF040B.REMS", .bustype = CHIP_BUSTYPE_SPI, .manufacture_id = SST_ID,.vendor = "SST",
Index: flashrom-stefan_sst25lf040a/flashchips.h
--- flashrom-stefan_sst25lf040a/flashchips.h (Revision 1026) +++ flashrom-stefan_sst25lf040a/flashchips.h (Arbeitskopie) @@ -387,7 +387,7 @@ #define SST_25VF512A_REMS 0x48 /* REMS or RES opcode */ #define SST_25VF010_REMS 0x49 /* REMS or RES opcode */ #define SST_25VF020_REMS 0x43 /* REMS or RES opcode */ -#define SST_25VF040_REMS 0x44 /* REMS or RES opcode */ +#define SST_25VF040_REMS 0x44 /* REMS or RES opcode, same as SST25LF040A */ #define SST_25VF040B 0x258D #define SST_25VF040B_REMS 0x8D /* REMS or RES opcode */ #define SST_25VF080_REMS 0x80 /* REMS or RES opcode */
Regards, Carl-Daniel
On 14.06.2010 14:14, Stefan Reinauer wrote:
On 6/14/10 2:07 PM, Carl-Daniel Hailfinger wrote:
Hi Stefan,
could I get a signoff from you for that patch? It's your code, after all. I'll ack and commit.
This is definitely below the threshold of originality, it's just cut'n'paste of some ofther chip with the name and probe function updated. Please note that I didn't verify any other information such as page size, timing or blocks so that information is most definitely wrong.
I verified everything against the data sheet.
But if it makes things easier:
Signed-off-by: Stefan Reinauer stepan@coresystems.de
Thanks. Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net and committed in r1045.
Regards, Carl-Daniel
On 6/14/10 2:59 PM, Carl-Daniel Hailfinger wrote:
On 14.06.2010 14:14, Stefan Reinauer wrote:
On 6/14/10 2:07 PM, Carl-Daniel Hailfinger wrote:
Hi Stefan,
could I get a signoff from you for that patch? It's your code, after all. I'll ack and commit.
This is definitely below the threshold of originality, it's just cut'n'paste of some ofther chip with the name and probe function updated. Please note that I didn't verify any other information such as page size, timing or blocks so that information is most definitely wrong.
I verified everything against the data sheet.
Awesome thanks! :-)