Author: stefanct
Date: Fri Jul  1 02:39:23 2011
New Revision: 1362
URL: http://flashrom.org/trac/flashrom/changeset/1362

Log:
ichspi.c: preserve reserved bits in address registers

Signed-off-by: Stefan Tauner <[email protected]>
Acked-by: Carl-Daniel Hailfinger <[email protected]>

Modified:
   trunk/ichspi.c

Modified: trunk/ichspi.c
==============================================================================
--- trunk/ichspi.c      Fri Jul  1 02:39:16 2011        (r1361)
+++ trunk/ichspi.c      Fri Jul  1 02:39:23 2011        (r1362)
@@ -659,10 +659,11 @@
                return 1;
        }
 
-       /* Programm Offset in Flash into FADDR */
-       REGWRITE32(ICH7_REG_SPIA, (offset & 0x00FFFFFF));       /* SPI 
addresses are 24 BIT only */
+       /* Program offset in flash into SPIA while preserving reserved bits. */
+       temp32 = REGREAD32(ICH7_REG_SPIA) & ~0x00FFFFFF;
+       REGWRITE32(ICH7_REG_SPIA, (offset & 0x00FFFFFF) | temp32);
 
-       /* Program data into FDATA0 to N */
+       /* Program data into SPID0 to N */
        if (write_cmd && (datalength != 0)) {
                temp32 = 0;
                for (a = 0; a < datalength; a++) {
@@ -803,8 +804,10 @@
                return 1;
        }
 
-       /* Programm Offset in Flash into FADDR */
-       REGWRITE32(ICH9_REG_FADDR, (offset & 0x00FFFFFF));      /* SPI 
addresses are 24 BIT only */
+       /* Program offset in flash into FADDR while preserve the reserved bits
+        * and clearing the 25. address bit which is only useable in hwseq. */
+       temp32 = REGREAD32(ICH9_REG_FADDR) & ~0x01FFFFFF;
+       REGWRITE32(ICH9_REG_FADDR, (offset & 0x00FFFFFF) | temp32);
 
        /* Program data into FDATA0 to N */
        if (write_cmd && (datalength != 0)) {

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to