ERROR: [IP_Flow 19-3461] on custom platform

I'm porting the FMCOMMS5 to a custom board and every time I build the project I receive the following error:

### ad_ip_instance axi_iic axi_iic_main
### ad_ip_parameter axi_iic_main CONFIG.USE_BOARD_FLOW true
### ad_ip_parameter axi_iic_main CONFIG.IIC_BOARD_INTERFACE {IIC_MAIN}
ERROR: [IP_Flow 19-3461] Value 'IIC_MAIN' is out of the range for parameter 'IIC Board Interface(IIC_BOARD_INTERFACE)' for BD Cell 'axi_iic_main' . Valid values are - Custom
INFO: [IP_Flow 19-3438] Customization errors found on 'axi_iic_main'. Restoring to previous valid configuration.
ERROR: [BD 41-245] set_property error - Value 'IIC_MAIN' is out of the range for parameter 'IIC Board Interface(IIC_BOARD_INTERFACE)' for BD Cell 'axi_iic_main' . Valid values are - Custom
Customization errors found on 'axi_iic_main'. Restoring to previous valid configuration.

ERROR: [Common 17-39] 'set_property' failed due to earlier errors.

    while executing
"rdi::set_property CONFIG.IIC_BOARD_INTERFACE IIC_MAIN /axi_iic_main"
    invoked from within
"set_property ${i_param} ${i_value} [get_bd_cells ${i_name}]"
    (procedure "ad_ip_parameter" line 3)
    invoked from within
"ad_ip_parameter axi_iic_main CONFIG.IIC_BOARD_INTERFACE {IIC_MAIN}"
    (file "/home/nturner/gemini_hdl/projects/common/custom/custom_system_bd.tcl" line 64)

    while executing
"source $ad_hdl_dir/projects/common/custom/custom_system_bd.tcl"
    (file "system_bd.tcl" line 3)

    while executing
"source system_bd.tcl"
    (procedure "adi_project_xilinx" line 114)
    invoked from within
"adi_project_xilinx fmcomms5_custom"
    (file "system_project.tcl" line 6)
INFO: [Common 17-206] Exiting Vivado at Wed Jun 26 17:43:14 2019...

The project includes some 3rd party IP that includes the following lines:

  <spirit:busInterfaces>
    <spirit:busInterface>
      <spirit:name>EMIO_I2C1</spirit:name>
      <spirit:displayName>EMIO I2C</spirit:displayName>
      <spirit:description>EMIO I2C connection to SC resources</spirit:description>
      <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="iic" spirit:version="1.0"/>
      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="iic_rtl" spirit:version="1.0"/>
      <spirit:slave/>
      <spirit:portMaps>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_I</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>sda_i</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_I</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>scl_i</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_O</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>sda_o</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_O</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>scl_o</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_T</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>sda_t</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_T</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>scl_t</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
      </spirit:portMaps>
    </spirit:busInterface>
    <spirit:busInterface>
      <spirit:name>EXT_I2C</spirit:name>
      <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="iic" spirit:version="1.0"/>
      <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="iic_rtl" spirit:version="1.0"/>
      <spirit:master/>
      <spirit:portMaps>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_T</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_scl_t</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_O</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_sda_o</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_I</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_sda_i</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SDA_T</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_sda_t</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_O</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_scl_o</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
        <spirit:portMap>
          <spirit:logicalPort>
            <spirit:name>SCL_I</spirit:name>
          </spirit:logicalPort>
          <spirit:physicalPort>
            <spirit:name>ext_scl_i</spirit:name>
          </spirit:physicalPort>
        </spirit:portMap>
      </spirit:portMaps>
    </spirit:busInterface>
  </spirit:busInterfaces>

Would the way the I2C is implemented in this IP block interfere with how it's implemented in custom_system_bd.tcl? If not is there another reason for this error? Other posts seem to suggest a version mismatch, but I'm using Vivado 2018.2 with the hdl_2018_r2 branch.

Top Replies

Parents Reply Children
  • I went ahead and modified my board files to include the information, and I'm able to run make successfully and continue through the process of making my BOOT.BIN.

    However, when I run i2cdetect I get no devices on the bus.

    $ sudo i2cdetect 1
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-1.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --                         
    $ sudo i2cdetect -l
    i2c-1    i2c           xiic-i2c                            I2C adapter
    i2c-2    i2c           Cadence I2C at e0005000             I2C adapter
    $ sudo i2cdetect 2
    Error: Can't use SMBus Quick Write command on this bus
    $ sudo i2cdetect -r 2
    WARNING! This program can confuse your I2C bus, cause data loss and worse!
    I will probe file /dev/i2c-2 using read byte commands.
    I will probe address range 0x03-0x77.
    Continue? [Y/n] y
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --       
                     

    I'm expecting the AD7291 and EEPROM on 0x2F and 0x50.

  • Even when I put the pins on an oscilloscope I'm not getting any readings.

  • 0
    •  Analog Employees 
    on Jul 3, 2019 6:35 AM over 1 year ago in reply to nturner

    Hi,

    Do you have the proper constraints on your pins?

    Andrei