<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Thanks for your response.<div><br></div><div>I also encountered another problem.</div><div><br></div><div>That's,  I found the content of 16-bit EEPROM through the combination of the SMBUS APIs was not incorrect.</div><div><div><br></div><div>    /* This is for 16 bit addressing EEPROM device. First an offset</div><div>     * needs to be written before read data from a offset</div><div>     */</div><div>    int ret = i2c_smbus_write_byte_data(file, 0, low_addr);</div><div>    if (ret < 0)</div><div>    {</div><div>        return ret;</div><div>    }</div><div><br></div><div>    return i2c_smbus_read_i2c_block_data(file, high_addr, len, buf);</div></div><div><br></div><div>So I referred to i2c-tools to modify them. </div><div>And then I could see my FRU under the tree of 'xyz/openbmc_project/FruDevice/'</div><div><br></div><div><div>    int ret = i2c_smbus_write_byte_data(file, high_addr, low_addr);</div><div>    //int ret = i2c_smbus_write_byte_data(file, 0, low_addr);</div><div>    if (ret < 0)</div><div>    {</div><div>        return ret;</div><div>    }</div><div>    while (index < len){</div><div><span style="white-space:pre">      </span>buf[index] = i2c_smbus_read_byte(file);</div><div><span style="white-space:pre">       </span>index++;</div><div>    }</div><div><br></div><div>    //return i2c_smbus_read_i2c_block_data(file, high_addr, len, buf);</div><div>    return len;</div></div><div><br></div><div>Let me know if you have any comments.</div><div><br></div><div>Thanks.</div></div></div></div></div>