Patchwork Add support for Atmel AT25DL161

login
register
about
Submitter Allen Yan
Date 2014-03-17 06:39:14
Message ID <CAB6Z6vY7NVa5zjkQf1Prm_VLxpg59Xw6WgO1pQKV5r0RFpDv6g@mail.gmail.com>
Download mbox | patch
Permalink /patch/4121/
State Changes Requested
Headers show

Comments

Allen Yan - 2014-03-17 06:39:14
This patch adds support for Atmel AT25DL161, 2Mbytes SPI flash which look
like the low voltage version of Atmel AT25DQ161. It has no pre test for now.




         .voltage    = {2700, 3600},
     },
Stefan Tauner - 2014-05-15 14:26:55
On Mon, 17 Mar 2014 14:39:14 +0800
Allen Yan <lexkde@gmail.com> wrote:

> This patch adds support for Atmel AT25DL161, 2Mbytes SPI flash which look
> like the low voltage version of Atmel AT25DQ161. It has no pre test for now.

Hello Allen,

thanks for your patch! Please note that before we can include your
patch you need to sign the Developer's Certificate of Origin by
stating so in the patch/email. We can not include your patch as is!
Please read
http://flashrom.org/Development_Guidelines#Sign-off_Procedure
for details, thanks.
Stefan Tauner - 2014-06-01 13:24:30
On Thu, 15 May 2014 16:26:55 +0200
Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> wrote:

> On Mon, 17 Mar 2014 14:39:14 +0800
> Allen Yan <lexkde@gmail.com> wrote:
> 
> > This patch adds support for Atmel AT25DL161, 2Mbytes SPI flash which look
> > like the low voltage version of Atmel AT25DQ161. It has no pre test for now.
> 
> Hello Allen,
> 
> thanks for your patch! Please note that before we can include your
> patch you need to sign the Developer's Certificate of Origin by
> stating so in the patch/email. We can not include your patch as is!
> Please read
> http://flashrom.org/Development_Guidelines#Sign-off_Procedure
> for details, thanks.
> 

r1810 substitutes this change (it also adds support for AT25DL081).

Patch

Index: flashchips.c
===================================================================
--- flashchips.c    (Revision 1766)
+++ flashchips.c    (Arbeitskopie)
@@ -1671,77 +1671,114 @@ 

     {
         .vendor        = "Atmel",
         .name        = "AT25DF641(A)",
         .bustype    = BUS_SPI,
         .manufacture_id    = ATMEL_ID,
         .model_id    = ATMEL_AT25DF641,
         .total_size    = 8192,
         .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, 2048} },
                 .block_erase = spi_block_erase_20,
             }, {
                 .eraseblocks = { {32 * 1024, 256} },
                 .block_erase = spi_block_erase_52,
             }, {
                 .eraseblocks = { {64 * 1024, 128} },
                 .block_erase = spi_block_erase_d8,
             }, {
                 .eraseblocks = { {8 * 1024 * 1024, 1} },
                 .block_erase = spi_block_erase_60,
             }, {
                 .eraseblocks = { {8 * 1024 * 1024, 1} },
                 .block_erase = spi_block_erase_c7,
             }
         },
         .printlock    = spi_prettyprint_status_register_at25df_sec,
         .unlock        =
spi_disable_blockprotect_at2x_global_unprotect_sec,
         .write        = spi_chip_write_256,
         .read        = spi_chip_read,
         .voltage    = {2700, 3600},
     },
-
+    {
+        .vendor = "Atmel",
+        .name    = "AT25DL161",
+        .bustype    = BUS_SPI,
+        .manufacture_id = ATMEL_ID,
+        .model_id    = ATMEL_AT25DL161,
+        .total_size = 2048,
+        .page_size    = 256,
+        /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
+        .feature_bits    = FEATURE_WRSR_WREN | FEATURE_OTP,
+        .tested = TEST_UNTESTED,
+        .probe    = probe_spi_rdid,
+        .probe_timing    = TIMING_ZERO,
+        .block_erasers    =
+        {
+            {
+                .eraseblocks = { {4 * 1024, 512} },
+                .block_erase = spi_block_erase_20,
+            }, {
+                .eraseblocks = { {32 * 1024, 64} },
+                .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_at25df_sec,
+        .unlock = spi_disable_blockprotect_at2x_global_unprotect_sec,
+        .write    = spi_chip_write_256,
+        .read    = spi_chip_read,
+        .voltage    = {1650, 1950},
+    },
     {
         .vendor        = "Atmel",
         .name        = "AT25DQ161",
         .bustype    = BUS_SPI,
         .manufacture_id    = ATMEL_ID,
         .model_id    = ATMEL_AT25DQ161,
         .total_size    = 2048,
         .page_size    = 256,
         /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
         .feature_bits    = FEATURE_WRSR_WREN | FEATURE_OTP,
         .tested        = TEST_UNTESTED,
         .probe        = probe_spi_rdid,
         .probe_timing    = TIMING_ZERO,
         .block_erasers    =
         {
             {
                 .eraseblocks = { {4 * 1024, 512} },
                 .block_erase = spi_block_erase_20,
             }, {
                 .eraseblocks = { {32 * 1024, 64} },
                 .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_at25df_sec,
         .unlock        =
spi_disable_blockprotect_at2x_global_unprotect_sec,
         .write        = spi_chip_write_256,
         .read        = spi_chip_read,