diff options
author | Mike Banon <mikebdp2@gmail.com> | 2019-01-08 19:11:34 +0300 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-01-18 08:15:04 +0000 |
commit | 72812fa51671a616d466499f0aa15cae121f1ae5 (patch) | |
tree | bcaefc361de1dae708d11a93c2d20fd139d332eb /src | |
parent | 1e7d69944d3c406bae4c31ac21e7967681f432a6 (diff) |
drivers/spi/winbond.c: Add the rest of >=1MB Winbond W25 chips
Required for ACPI S3 suspend support at some motherboards.
Synchronizing with flashchips.c/h flashrom source code.
Signed-off-by: Mike Banon <mikebdp2@gmail.com>
Change-Id: I4d15d5acf0e2044e5128ce809c282fbcb35f24f0
Reviewed-on: https://review.coreboot.org/c/30746
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/spi/winbond.c | 64 |
1 files changed, 58 insertions, 6 deletions
diff --git a/src/drivers/spi/winbond.c b/src/drivers/spi/winbond.c index f8ea247bb8..8bf8fcd8d3 100644 --- a/src/drivers/spi/winbond.c +++ b/src/drivers/spi/winbond.c @@ -104,6 +104,38 @@ struct status_regs { static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { { + .id = 0x2014, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 4, + .name = "W25P80", + }, + { + .id = 0x2015, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 5, + .name = "W25P16", + }, + { + .id = 0x2016, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 6, + .name = "W25P32", + }, + { + .id = 0x3014, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 4, + .name = "W25X80", + }, + { .id = 0x3015, .l2_page_size_shift = 8, .pages_per_sector_shift = 4, @@ -133,7 +165,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 4, - .name = "W25Q80", + .name = "W25Q80_V", }, { .id = 0x4015, @@ -141,7 +173,17 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 5, - .name = "W25Q16", + .name = "W25Q16_V", + .protection_granularity_shift = 16, + .bp_bits = 3, + }, + { + .id = 0x6015, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 5, + .name = "W25Q16DW", .protection_granularity_shift = 16, .bp_bits = 3, }, @@ -151,7 +193,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 6, - .name = "W25Q32", + .name = "W25Q32_V", .protection_granularity_shift = 16, .bp_bits = 3, }, @@ -171,7 +213,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 7, - .name = "W25Q64", + .name = "W25Q64_V", .protection_granularity_shift = 17, .bp_bits = 3, }, @@ -191,7 +233,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 8, - .name = "W25Q128", + .name = "W25Q128_V", .protection_granularity_shift = 18, .bp_bits = 3, }, @@ -221,7 +263,17 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .pages_per_sector_shift = 4, .sectors_per_block_shift = 4, .nr_blocks_shift = 9, - .name = "W25Q256", + .name = "W25Q256_V", + .protection_granularity_shift = 16, + .bp_bits = 4, + }, + { + .id = 0x7019, + .l2_page_size_shift = 8, + .pages_per_sector_shift = 4, + .sectors_per_block_shift = 4, + .nr_blocks_shift = 9, + .name = "W25Q256J", .protection_granularity_shift = 16, .bp_bits = 4, }, |