Paul Menzel ([email protected]) just uploaded a new patch set 
to gerrit, which you can find at http://review.coreboot.org/2469

-gerrit

commit ccf74f677f47a1d3924080904659ee961fc86427
Author: Paul Menzel <[email protected]>
Date:   Wed Feb 20 12:42:46 2013 +0100

    ASRock E350M1: Unify `dimmSpd.c` with the one from Persimmon
    
    The whitespace cleanup in the following commit was not done
    the ASRock E350M1.
    
        commit 36abff1dc8e74beafa47ad83de17416681970916
        Author: Marc Jones <[email protected]>
        Date:   Mon Nov 7 23:26:14 2011 -0700
    
            Cleanup Persimmon mainboard whitespace.
    
            Reviewed-on: http://review.coreboot.org/427
    
    Do this now for `dimmSpd.c`.
    
        $ diff --suppress-common-lines -U0 
src/mainboard/asrock/e350m1/dimmSpd.c src/mainboard/amd/persimmon/dimmSpd.c | 
grep ^- | wc -l
        106
        $ diff -u -w src/mainboard/asrock/e350m1/dimmSpd.c 
src/mainboard/amd/persimmon/dimmSpd.c
        --- src/mainboard/asrock/e350m1/dimmSpd.c       2013-02-20 
12:05:15.096240632 +0100
        +++ src/mainboard/amd/persimmon/dimmSpd.c       2013-02-20 
12:05:15.084240614 +0100
        @@ -35,7 +35,7 @@
            {
            // socket 0
               {
        -         {0xA0, 0xA4},  // channel 0 dimms
        +               {0xA0, 0xA2},   // channel 0 dimms
                  {0x00, 0x00},  // channel 1 dimms
               },
            // socket 1
        @@ -65,8 +65,7 @@
    
            // time limit to avoid hanging for unexpected error status (should 
never happen)
            limit = __rdtsc () + 2000000000 / 10;
        -   for (;;)
        -      {
        +       for (;;) {
               status = __inbyte (iobase);
               if (__rdtsc () > limit) break;
               if ((status & 2) == 0) continue;               // SMBusInterrupt 
not set, keep waiting
        @@ -95,8 +94,7 @@
    
            // time limit to avoid hanging for unexpected error status
            limit = __rdtsc () + 2000000000 / 10;
        -   for (;;)
        -      {
        +       for (;;) {
               status = __inbyte (iobase);
               if (__rdtsc () > limit) break;
               if ((status & 2) == 0) continue;               // SMBusInterrupt 
not set, keep waiting
        @@ -127,8 +125,7 @@
            if (error) return error;
    
            /* read the remaining bytes using auto-increment for speed */
        -   for (index = 1; index < count; index++)
        -      {
        +       for (index = 1; index < count; index++) {
               error = readSmbusByte (iobase, SmbusSlaveAddress, &buffer 
[index]);
               if (error) return error;
               }
    
    After:
    
        $ diff -u -w src/mainboard/asrock/e350m1/dimmSpd.c 
src/mainboard/amd/persimmon/dimmSpd.c
        --- src/mainboard/asrock/e350m1/dimmSpd.c       2013-02-20 
14:04:44.002009899 +0100
        +++ src/mainboard/amd/persimmon/dimmSpd.c       2013-02-20 
13:56:49.633790834 +0100
        @@ -35,7 +35,7 @@
        {
                // socket 0
                {
        -               {0xA0, 0xA4},   // channel 0 dimms
        +               {0xA0, 0xA2},   // channel 0 dimms
                        {0x00, 0x00},   // channel 1 dimms
                },
                // socket 1
    
    Change-Id: Iecb146895a266fd62995ddb7ac716343d7bde26d
    Signed-off-by: Paul Menzel <[email protected]>
---
 src/mainboard/asrock/e350m1/dimmSpd.c | 207 +++++++++++++++++-----------------
 1 file changed, 102 insertions(+), 105 deletions(-)

diff --git a/src/mainboard/asrock/e350m1/dimmSpd.c 
b/src/mainboard/asrock/e350m1/dimmSpd.c
index 62aedd2..7883a4a 100644
--- a/src/mainboard/asrock/e350m1/dimmSpd.c
+++ b/src/mainboard/asrock/e350m1/dimmSpd.c
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #include "Porting.h"
@@ -31,19 +31,19 @@ AGESA_STATUS AmdMemoryReadSPD (UINT32 unused1, UINT32 
unused2, AGESA_READ_SPD_PA
 * SPD address table - porting required
 */
 
-static const UINT8 spdAddressLookup [2] [2] [4] =  // socket, channel, dimm
-   {
-   // socket 0
-      {
-         {0xA0, 0xA4},  // channel 0 dimms
-         {0x00, 0x00},  // channel 1 dimms
-      },
-   // socket 1
-      {
-         {0x00, 0x00},  // channel 0 dimms
-         {0x00, 0x00},  // channel 1 dimms
-      },
-   };
+static const UINT8 spdAddressLookup [2] [2] [4] =      // socket, channel, dimm
+{
+       // socket 0
+       {
+               {0xA0, 0xA4},   // channel 0 dimms
+               {0x00, 0x00},   // channel 1 dimms
+       },
+       // socket 1
+       {
+               {0x00, 0x00},   // channel 0 dimms
+               {0x00, 0x00},   // channel 1 dimms
+       },
+};
 
 /*-----------------------------------------------------------------------------
  *
@@ -51,117 +51,114 @@ static const UINT8 spdAddressLookup [2] [2] [4] =  // 
socket, channel, dimm
  */
 
 static int readSmbusByteData (int iobase, int address, char *buffer, int 
offset)
-   {
-   unsigned int status;
-   UINT64 limit;
-
-   address |= 1; // set read bit
-
-   __outbyte (iobase + 0, 0xFF);                // clear error status
-   __outbyte (iobase + 1, 0x1F);                // clear error status
-   __outbyte (iobase + 3, offset);              // offset in eeprom
-   __outbyte (iobase + 4, address);             // slave address and read bit
-   __outbyte (iobase + 2, 0x48);                // read byte command
-
-   // time limit to avoid hanging for unexpected error status (should never 
happen)
-   limit = __rdtsc () + 2000000000 / 10;
-   for (;;)
-      {
-      status = __inbyte (iobase);
-      if (__rdtsc () > limit) break;
-      if ((status & 2) == 0) continue;               // SMBusInterrupt not 
set, keep waiting
-      if ((status & 1) == 1) continue;               // HostBusy set, keep 
waiting
-      break;
-      }
-
-   buffer [0] = __inbyte (iobase + 5);
-   if (status == 2) status = 0;                      // check for done with no 
errors
-   return status;
-   }
+{
+       unsigned int status;
+       UINT64 limit;
+
+       address |= 1; // set read bit
+
+       __outbyte (iobase + 0, 0xFF);                           // clear error 
status
+       __outbyte (iobase + 1, 0x1F);                           // clear error 
status
+       __outbyte (iobase + 3, offset);                         // offset in 
eeprom
+       __outbyte (iobase + 4, address);                        // slave 
address and read bit
+       __outbyte (iobase + 2, 0x48);                           // read byte 
command
+
+       // time limit to avoid hanging for unexpected error status (should 
never happen)
+       limit = __rdtsc () + 2000000000 / 10;
+       for (;;) {
+               status = __inbyte (iobase);
+               if (__rdtsc () > limit) break;
+               if ((status & 2) == 0) continue;                // 
SMBusInterrupt not set, keep waiting
+               if ((status & 1) == 1) continue;                // HostBusy 
set, keep waiting
+               break;
+       }
+
+       buffer [0] = __inbyte (iobase + 5);
+       if (status == 2) status = 0;                            // check for 
done with no errors
+       return status;
+}
 
 /*-----------------------------------------------------------------------------
  *
  * readSmbusByte - read a single SPD byte from the default offset
- *                 this function is faster function readSmbusByteData
+ *                              this function is faster function 
readSmbusByteData
  */
 
 static int readSmbusByte (int iobase, int address, char *buffer)
-   {
-   unsigned int status;
-   UINT64 limit;
-
-   __outbyte (iobase + 0, 0xFF);                // clear error status
-   __outbyte (iobase + 2, 0x44);                // read command
-
-   // time limit to avoid hanging for unexpected error status
-   limit = __rdtsc () + 2000000000 / 10;
-   for (;;)
-      {
-      status = __inbyte (iobase);
-      if (__rdtsc () > limit) break;
-      if ((status & 2) == 0) continue;               // SMBusInterrupt not 
set, keep waiting
-      if ((status & 1) == 1) continue;               // HostBusy set, keep 
waiting
-      break;
-      }
-
-   buffer [0] = __inbyte (iobase + 5);
-   if (status == 2) status = 0;                      // check for done with no 
errors
-   return status;
-   }
+{
+       unsigned int status;
+       UINT64 limit;
+
+       __outbyte (iobase + 0, 0xFF);                           // clear error 
status
+       __outbyte (iobase + 2, 0x44);                           // read command
+
+       // time limit to avoid hanging for unexpected error status
+       limit = __rdtsc () + 2000000000 / 10;
+       for (;;) {
+               status = __inbyte (iobase);
+               if (__rdtsc () > limit) break;
+               if ((status & 2) == 0) continue;                // 
SMBusInterrupt not set, keep waiting
+               if ((status & 1) == 1) continue;                // HostBusy 
set, keep waiting
+               break;
+       }
+
+       buffer [0] = __inbyte (iobase + 5);
+       if (status == 2) status = 0;                            // check for 
done with no errors
+       return status;
+}
 
 /*---------------------------------------------------------------------------
  *
  * readspd - Read one or more SPD bytes from a DIMM.
- *           Start with offset zero and read sequentially.
- *           Optimization relies on autoincrement to avoid
- *           sending offset for every byte.
- *          Reads 128 bytes in 7-8 ms at 400 KHz.
+ *                     Start with offset zero and read sequentially.
+ *                     Optimization relies on autoincrement to avoid
+ *                     sending offset for every byte.
+ *                     Reads 128 bytes in 7-8 ms at 400 KHz.
  */
 
 static int readspd (int iobase, int SmbusSlaveAddress, char *buffer, int count)
-   {
-   int index, error;
+{
+       int index, error;
 
-   /* read the first byte using offset zero */
-   error = readSmbusByteData (iobase, SmbusSlaveAddress, buffer, 0);
-   if (error) return error;
+       /* read the first byte using offset zero */
+       error = readSmbusByteData (iobase, SmbusSlaveAddress, buffer, 0);
+       if (error) return error;
 
-   /* read the remaining bytes using auto-increment for speed */
-   for (index = 1; index < count; index++)
-      {
-      error = readSmbusByte (iobase, SmbusSlaveAddress, &buffer [index]);
-      if (error) return error;
-      }
+       /* read the remaining bytes using auto-increment for speed */
+       for (index = 1; index < count; index++) {
+               error = readSmbusByte (iobase, SmbusSlaveAddress, &buffer 
[index]);
+               if (error) return error;
+       }
 
-   return 0;
-   }
+       return 0;
+}
 
 static void writePmReg (int reg, int data)
-   {
-   __outbyte (0xCD6, reg);
-   __outbyte (0xCD7, data);
-   }
+       {
+       __outbyte (0xCD6, reg);
+       __outbyte (0xCD7, data);
+       }
 
 static void setupFch (int ioBase)
-   {
-   writePmReg (0x2D, ioBase >> 8);
-   writePmReg (0x2C, ioBase | 1);
-   writePmReg (0x29, 0x80);
-   writePmReg (0x28, 0x61);
-   __outbyte (ioBase + 0x0E, 66000000 / 400000 / 4); // set SMBus clock to 400 
KHz
-   }
+{
+       writePmReg (0x2D, ioBase >> 8);
+       writePmReg (0x2C, ioBase | 1);
+       writePmReg (0x29, 0x80);
+       writePmReg (0x28, 0x61);
+       __outbyte (ioBase + 0x0E, 66000000 / 400000 / 4); // set SMBus clock to 
400 KHz
+}
 
 AGESA_STATUS AmdMemoryReadSPD (UINT32 unused1, UINT32 unused2, 
AGESA_READ_SPD_PARAMS *info)
-   {
-   int spdAddress, ioBase;
-
-   if (info->SocketId     >= DIMENSION (spdAddressLookup      )) return 
AGESA_ERROR;
-   if (info->MemChannelId >= DIMENSION (spdAddressLookup[0]   )) return 
AGESA_ERROR;
-   if (info->DimmId       >= DIMENSION (spdAddressLookup[0][0])) return 
AGESA_ERROR;
-
-   spdAddress = spdAddressLookup [info->SocketId] [info->MemChannelId] 
[info->DimmId];
-   if (spdAddress == 0) return AGESA_ERROR;
-   ioBase = SMBUS0_BASE_ADDRESS;
-   setupFch (ioBase);
-   return readspd (ioBase, spdAddress, (void *) info->Buffer, 128);
-   }
+{
+       int spdAddress, ioBase;
+
+       if (info->SocketId       >= DIMENSION (spdAddressLookup         )) 
return AGESA_ERROR;
+       if (info->MemChannelId >= DIMENSION (spdAddressLookup[0]        )) 
return AGESA_ERROR;
+       if (info->DimmId                >= DIMENSION (spdAddressLookup[0][0])) 
return AGESA_ERROR;
+
+       spdAddress = spdAddressLookup [info->SocketId] [info->MemChannelId] 
[info->DimmId];
+       if (spdAddress == 0) return AGESA_ERROR;
+       ioBase = SMBUS0_BASE_ADDRESS;
+       setupFch (ioBase);
+       return readspd (ioBase, spdAddress, (void *) info->Buffer, 128);
+}

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to