--- flashchips.c 2014-12-14 11:05:12.512662091 +0000 +++ flashchips.c.patch.i945_lenovobios_sst 2014-12-14 11:11:27.790522994 +0000 @@ -6602,115 +6602,6 @@ { .vendor = "Macronix", - .name = "MX25L1605", - .bustype = BUS_SPI, - .manufacture_id = MACRONIX_ID, - .model_id = MACRONIX_MX25L1605, - .total_size = 2048, - .page_size = 256, - .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, - .block_erasers = - { - { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, - }, - }, - .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit6: error flag */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ - .voltage = {2700, 3600}, - }, - - { - .vendor = "Macronix", - .name = "MX25L1605A/MX25L1606E", - .bustype = BUS_SPI, - .manufacture_id = MACRONIX_ID, - .model_id = MACRONIX_MX25L1605, - .total_size = 2048, - .page_size = 256, - /* OTP: 64B total; enter 0xB1, exit 0xC1 (MX25L1606E only) */ - .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, - .block_erasers = - { - { - .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_52, - }, { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, - }, - }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* MX25L1605A bp2 only */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B) supported */ - .voltage = {2700, 3600}, - }, - - { - .vendor = "Macronix", - .name = "MX25L1605D/MX25L1608D/MX25L1673E", - .bustype = BUS_SPI, - .manufacture_id = MACRONIX_ID, - .model_id = MACRONIX_MX25L1605, - .total_size = 2048, - .page_size = 256, - .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, - .block_erasers = - { - { - .eraseblocks = { {4 * 1024, 512} }, - .block_erase = spi_block_erase_20, - }, { - .eraseblocks = { {64 * 1024, 32} }, - .block_erase = spi_block_erase_d8, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_60, - }, { - .eraseblocks = { {2 * 1024 * 1024, 1} }, - .block_erase = spi_block_erase_c7, - }, - }, - .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode */ - .unlock = spi_disable_blockprotect, - .write = spi_chip_write_256, - .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */ - .voltage = {2700, 3600}, - }, - - { - .vendor = "Macronix", .name = "MX25L1635D", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, @@ -11149,12 +11040,12 @@ .name = "SST25VF016B", .bustype = BUS_SPI, .manufacture_id = SST_ID, - .model_id = SST_SST25VF016B, + .model_id = 0x41, .total_size = 2048, .page_size = 256, .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, - .probe = probe_spi_rdid, + .probe = probe_spi_res2, .probe_timing = TIMING_ZERO, .block_erasers = { @@ -11177,7 +11068,7 @@ }, .printlock = spi_prettyprint_status_register_sst25vf016, .unlock = spi_disable_blockprotect, - .write = spi_aai_write, + .write = spi_chip_write_1, .read = spi_chip_read, .voltage = {2700, 3600}, },