title: How to read a byte of the Serial Presence Detect (SPD) data from the DIMM after 255(FF) bytes?
body: <p>I have got SMBus Base Address Register, 
  and program the SMBus Transmit Slave Address Register with the DIMM SMBus address, SMBBASE 04h.</p>
  
  <p>Then program the SMBus Host Command Register with the DIMM’s SPD data offset to be read, SMBBASE 03h.</p>
  
  <p>But the Host Command Register (HCMD)—Offset 3h is Size: 8 bits(255/FF),</p>
  
  <p>So How can I read the after 255 bytes?</p>
  
  <p>For example: 
  DDR4 Serial Presence Detect (SPD) Table:</p>
  
  <p>Byte 320 : Module Manufacturer ID Code</p>
  
  <p>I need to read Byte 320.</p>
  
  <p>My code like this</p>
  
  <pre><code>unsigned ReadByte(unsigned SMBase_addr,unsigned i)   
  {
      unsigned val;   
  
      outportb(SMBase_addr,0x1e);   
  
      outportb(SMBase_addr 0x04,0xa7);   
  
      outportb(SMBase_addr 0x03,i);   
  
      outportb(SMBase_addr 0x02,0x48);   
  
      while((inportb(SMBase_addr))&amp;0x01){   
          delay(10);   
      }   
  
      val=inportb(SMBase_addr 0x05);   
  
      return val;   
  } 
  for(i=0;i&lt;383;i )
  {
     data=ReadByte(SMBase_addr,i);
     printf("%4x",data);   
  }  
  </code></pre>
  
  <p>and I change 
  outportb(SMBase_addr 0x03,i); </p>
  
  <p>to </p>
  
  <p>outportw(SMBase_addr 0x03,i);
  Host Status Register return 0x44, Device Error (DERR).</p>