summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Banon <mikebdp2@gmail.com>2019-01-08 19:11:34 +0300
committerPatrick Georgi <pgeorgi@google.com>2019-01-18 08:15:04 +0000
commit72812fa51671a616d466499f0aa15cae121f1ae5 (patch)
treebcaefc361de1dae708d11a93c2d20fd139d332eb
parent1e7d69944d3c406bae4c31ac21e7967681f432a6 (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>
-rw-r--r--src/drivers/spi/winbond.c64
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,
},