Problem with xflash on multi-tile design

Technical questions regarding the XTC tools and programming with XMOS.
sylvan
Junior Member
Posts: 6
Joined: Wed Sep 14, 2016 2:55 pm

Problem with xflash on multi-tile design

Post by sylvan »

Hi,

I have a 7 tile (4 packages) design that I'm trying to get to boot over XLink but I'm running into an issue.

The system looks like so (link numbers are in parenthesis). The formatting is not working but the QSPI flash is connected to the first XE216 part. Also note the pair of links between the XE216 parts:

XL208 (0)<--->(4) XU216 (0) <---> (0) XE216 (7,4) <===> (0,3) XE216
|
|
QSPI Flash

I'm able to xrun the application with no problem which would seem to validate the links and validate the network is routable.

When I attempt to xflash the application I'm met with:
WARNING: Trying to communicate over XLink0 when it is not connected
Segmentation fault: 11
Is this an issue with XFlash not supporting my topology?

Here is my XN file for reference. If anyone has a moment to look at this problem I would be grateful!!

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!-- XN for bringup of LAS VC.  No connection to SYS board.  Boots from local flash. -->
<Network xmlns="http://www.xmos.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xmos.com http://www.xmos.com" ManuallySpecifiedRouting="true">
  <Type>Board</Type>
  <Name>xCORE-200 MC Audio</Name>
  <Declarations>
    <Declaration>tileref tile[7]</Declaration>
    <Declaration>tileref usb_tile_sys</Declaration>
    <Declaration>tileref usb_tile_vc</Declaration>
  </Declarations>
  <Packages>
  <Package id="0" Type="XS2-LnA-128-TQ64">
      <Nodes>
        <Node Id="0" InPackageId="0" Type="XS2-L8A-128" Oscillator="24MHz" SystemFrequency="500MHz">
	  <Boot>
	  <!--
	    <Source Location="SPI:bootFlash" />
	    <Bootee NodeId="1" Tile="0"/>
	    <Bootee NodeId="1" Tile="1"/>
            <Bootee NodeId="3" Tile="0"/>
            <Bootee NodeId="3" Tile="1"/>
            <Bootee NodeId="5" Tile="0"/>
            <Bootee NodeId="5" Tile="1"/> -->
	  <Source Location="LINK" BootMode="4"/>
          </Boot>
          <Tile Number="0" Reference="tile[0]">
	    <Port Location="XS1_PORT_1A" Name="PORT_SPI_MISO"/>
            <Port Location="XS1_PORT_1B" Name="PORT_SPI_SS"/>
            <Port Location="XS1_PORT_1C" Name="PORT_SPI_CLK"/>
            <Port Location="XS1_PORT_1D" Name="PORT_SPI_MOSI"/>
         </Tile>
        </Node>
      </Nodes>
    </Package>
  <!-- System Control Board -->
  <Package ID="1" Type="XS2-UnA-512-TQ128">
      <Nodes>
        <Node Id="1" InPackageId="0" Type="XS2-L16A-512" Oscillator="24MHz" SystemFrequency="500MHz">
        <Boot>
	    <Source Location="LINK" BootMode="4"/>
          </Boot>
          <Tile Number="0" Reference="tile[1]">
          <!-- SPI Ports -->
            <Port Location="XS1_PORT_1A" Name="PORT_SPI_MISO"/>
            <Port Location="XS1_PORT_1B" Name="PORT_SPI_SS"/>
            <Port Location="XS1_PORT_1C" Name="PORT_SPI_CLK"/>
            <Port Location="XS1_PORT_1D" Name="PORT_SPI_MOSI"/>
            </Tile>
            <Tile Number="1" Reference="tile[2]">
            <Port Location="XS1_PORT_1H"  Name="PORT_USB_TX_READYIN"/> 
            <Port Location="XS1_PORT_1J"  Name="PORT_USB_CLK"/>
            <Port Location="XS1_PORT_1K"  Name="PORT_USB_TX_READYOUT"/>
            <Port Location="XS1_PORT_1I"  Name="PORT_USB_RX_READY"/>
            <Port Location="XS1_PORT_1E"  Name="PORT_USB_FLAG0"/>
            <Port Location="XS1_PORT_1F"  Name="PORT_USB_FLAG1"/>
            <Port Location="XS1_PORT_1G"  Name="PORT_USB_FLAG2"/> 
            <Port Location="XS1_PORT_8A"  Name="PORT_USB_TXD"/>
            <Port Location="XS1_PORT_8B"  Name="PORT_USB_RXD"/>
            </Tile>
        </Node>
          <Node Id="2" InPackageId="1" Type="periph:XS1-SU" Reference="usb_tile_sys" Oscillator="24MHz">
        </Node>
      </Nodes>
        <Links>
        <Link Encoding="5wire">
          <LinkEndpoint NodeId="1" Link="8" Delays="52clk,52clk"/>
          <LinkEndpoint NodeId="2" Link="XL0" Delays="1clk,1clk"/>
        </Link>
        </Links>
    </Package>
    <Package id="2" Type="XS2-UEnA-512-TQ128">
      <Nodes>
        <Node Id="3" InPackageId="0" Type="XS2-L16A-512" Oscillator="24MHz" SystemFrequency="500MHz">
          <Boot>
	    <Source Location="bootFlash" />
	    <Bootee NodeId="0" Tile="0"/>
	    <Bootee NodeId="1" Tile="0"/>
            <Bootee NodeId="1" Tile="1"/>
            <Bootee NodeId="5" Tile="0"/>
            <Bootee NodeId="5" Tile="1"/>
           <!-- <Source Location="LINK" BootMode="4"/> -->
          </Boot>
          <Tile Number="0" Reference="tile[3]">
            <Port Location="XS1_PORT_1B" Name="PORT_SQI_CS"/>
            <Port Location="XS1_PORT_1C" Name="PORT_SQI_SCLK"/>
            <Port Location="XS1_PORT_4B" Name="PORT_SQI_SIO"/>            
          </Tile>
          <Tile Number="1" Reference="tile[4]">
            <Port Location="XS1_PORT_1H"  Name="PORT_USB_TX_READYIN"/> 
            <Port Location="XS1_PORT_1J"  Name="PORT_USB_CLK"/>
            <Port Location="XS1_PORT_1K"  Name="PORT_USB_TX_READYOUT"/>
            <Port Location="XS1_PORT_1I"  Name="PORT_USB_RX_READY"/>
            <Port Location="XS1_PORT_1E"  Name="PORT_USB_FLAG0"/>
            <Port Location="XS1_PORT_1F"  Name="PORT_USB_FLAG1"/>
            <Port Location="XS1_PORT_1G"  Name="PORT_USB_FLAG2"/> 
            <Port Location="XS1_PORT_8A"  Name="PORT_USB_TXD"/>
            <Port Location="XS1_PORT_8B"  Name="PORT_USB_RXD"/>
            <Port Location="XS1_PORT_16B" Name="PORT_MCLK_COUNT"/>              
            <Port Location="XS1_PORT_1L"  Name="PORT_MCLK_IN2"/>
            
            <Port Location="XS1_PORT_1M"  Name="PORT_I2S_DAC0"/>
            <port Location="XS1_PORT_1N"  Name="PORT_I2S_DAC1"/>
            <port Location="XS1_PORT_1O"  Name="PORT_I2S_DAC2"/>
            <port Location="XS1_PORT_1P"  Name="PORT_I2S_DAC3"/>
            <Port Location="XS1_PORT_1A"  Name="PORT_I2S_ADC0"/> <!-- This is wrong!! changed for testing -->
            <Port Location="XS1_PORT_1J"  Name="PORT_I2S_ADC1"/>
            <Port Location="XS1_PORT_1K"  Name="PORT_I2S_ADC2"/>
            <Port Location="XS1_PORT_1L"  Name="PORT_I2S_ADC3"/>
            
            <Port Location="XS1_PORT_1B"  Name="PORT_I2S_LRCLK"/>
            <Port Location="XS1_PORT_1C"  Name="PORT_I2S_BCLK"/>
          </Tile>
        </Node>
        <Node Id="4" InPackageId="1" Type="periph:XS1-SU" Reference="usb_tile_vc" Oscillator="24MHz">
        </Node>
      </Nodes>
      <Links>
        <Link Encoding="5wire">
          <LinkEndpoint NodeId="3" Link="8" Delays="52clk,52clk"/>
          <LinkEndpoint NodeId="4" Link="XL0" Delays="1clk,1clk"/>
        </Link>
      </Links>
    </Package>
    <Package id="3" Type="XS2-UEnA-512-TQ128">
      <Nodes>
        <Node Id="5" InPackageId="0" Type="XS2-L16A-512" Oscillator="24MHz" SystemFrequency="500MHz">
          <Boot>
            <Source Location="LINK" BootMode="4"/>
          </Boot>
          <Tile Number="0" Reference="tile[5]">
          <!-- Audio Ports -->         
            <Port Location="XS1_PORT_1A"  Name="PORT_PLL_REF"/>
            <Port Location="XS1_PORT_1L"  Name="PORT_MCLK_IN"/>
            <Port Location="XS1_PORT_1M"  Name="PORT_DSD_DAC0"/>
            <port Location="XS1_PORT_1N"  Name="PORT_DSD_DAC1"/>
            <Port Location="XS1_PORT_1G"  Name="PORT_DSD_CLK"/>
            <Port Location="XS1_PORT_1E"  Name="PORT_ADAT_OUT"/>-->  <!-- D: COAX E: OPT --> 
            <Port Location="XS1_PORT_1D"  Name="PORT_SPDIF_OUT"/>--> <!-- D: COAX E: OPT -->
            <Port Location="XS1_PORT_1M"  Name="PORT_MIDI_IN"/>
            <Port Location="XS1_PORT_1N"  Name="PORT_MIDI_OUT"/>
            <Port Location="XS1_PORT_1O"  Name="PORT_ADAT_IN"/>-->  <!-- P: COAX O: OPT --> 
            <Port Location="XS1_PORT_1P"  Name="PORT_SPDIF_IN"/>--> <!-- P: COAX O: OPT -->
            <Port Location="XS1_PORT_1O"  Name="PORT_I2C_SCL"/>
            <Port Location="XS1_PORT_1P"  Name="PORT_I2C_SDA"/>
          </Tile>
          <Tile Number="1" Reference="tile[6]">
            
          </Tile>
        </Node>
        <Node Id="6" InPackageId="1" Type="periph:XS1-SU" Reference="usb_tile2" Oscillator="24MHz">
        </Node>
      </Nodes>
      <Links>
        <Link Encoding="5wire">
          <LinkEndpoint NodeId="5" Link="8" Delays="52clk,52clk"/>
          <LinkEndpoint NodeId="6" Link="XL0" Delays="1clk,1clk"/>
        </Link>
      </Links>
    </Package>
  </Packages>
  <Links>
   <Link Encoding="2wire" Delays="4,4">
     <LinkEndpoint NodeId="0" Link="0"/>
     <LinkEndpoint NodeId="1" Link="4"/>
   </Link>
    <Link Encoding="2wire" Delays="4,4	">
      <LinkEndpoint NodeId="1" Link="0"/>
      <LinkEndpoint NodeId="3" Link="0"/>
    </Link>
    <Link Encoding="2wire" Delays="4,4">
      <LinkEndpoint NodeId="3" Link="7"/>
      <LinkEndpoint NodeId="5" Link="0"/>
    </Link>
    <Link Encoding="2wire" Delays="4,4">
      <LinkEndpoint NodeId="3" Link="4"/>
      <LinkEndpoint NodeId="5" Link="3"/>
    </Link>
  </Links>
  <ExternalDevices>
    <Device NodeId="3" Tile="0" Class="SQIFlash" Name="bootFlash" Type="W25Q16DVSSIG">
      <Attribute Name="PORT_SQI_CS" Value="PORT_SQI_CS"/>
      <Attribute Name="PORT_SQI_SCLK"   Value="PORT_SQI_SCLK"/>
      <Attribute Name="PORT_SQI_SIO"  Value="PORT_SQI_SIO"/>
    </Device>
  </ExternalDevices>
  <JTAGChain>
    <JTAGDevice NodeId="0"/>
    <JTAGDevice NodeId="1"/>
    <JTAGDevice NodeId="3"/>
    <JTAGDevice NodeId="5"/>
  </JTAGChain>
</Network>
Thank you,

Sylvan


henk
Respected Member
Posts: 347
Joined: Wed Jan 27, 2016 5:21 pm

Post by henk »

Hi Sylvan,

It looks like a bug to me - I suggest you report this on <http://www.xmos.com/rt3/SelfService/Cre ... t-bug.html>

Thanks,
Henk