error in multi-node boot

Technical questions regarding the XTC tools and programming with XMOS.
User avatar
rp181
Respected Member
Posts: 395
Joined: Tue May 18, 2010 12:25 am

error in multi-node boot

Post by rp181 »

I have a chain of 9 L1's. I had the system working- I was printing data off of some node. But now when i try to execute I get an error:

Code: Select all

C:\Users\User\AppData\Local\Temp/.xrun6188-RPNERR1I/xeload_auto.gdb:5: Error in sourced command file:
First stage multi-node boot failed, please check XN file and Xmos link connectivity
I stripped the main code and now i'm just executing this:

Code: Select all

#include <platform.h>
#include <xs1.h>
#include <stdio.h>

void print();

int main() {
	par {
		on tile[0]: print();
	}
}

void print() {
	while (1) {
		printf("1\n");
	}
}
The XN file:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<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">

	<Declarations>
		<Declaration>tileref tile[9]</Declaration>
	</Declarations>

	<Packages>

		<Package Id="P0" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="0" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="SPI:bootFlash" />
						<Bootee NodeId="1" Tile="0"/>
						<Bootee NodeId="2" Tile="0"/>
						<Bootee NodeId="3" Tile="0"/>
						<Bootee NodeId="4" Tile="0"/>
						<Bootee NodeId="5" Tile="0"/>
						<Bootee NodeId="6" Tile="0"/>
						<Bootee NodeId="7" Tile="0"/>
						<Bootee NodeId="8" Tile="0"/>
					</Boot>

					<Tile Number="0" Reference="tile[0]">
						<Port Location="XS1_PORT_1D" 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_1A" Name="PORT_SPI_MOSI" />
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P1" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="1" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[1]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P2" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="2" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[2]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P3" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="3" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[3]">
					</Tile>
				</Node>
			</Nodes>
		</Package>

		<Package Id="P4" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="4" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">
					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>
					<Tile Number="0" Reference="tile[4]">
					</Tile>
				</Node>
			</Nodes>
		</Package>

		<Package Id="P5" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="5" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">
					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>
					<Tile Number="0" Reference="tile[5]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P6" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="6" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[6]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P7" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="7" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[7]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

		<Package Id="P8" Type="XS1-LnA-64-LQ64">
			<Nodes>
				<Node Id="8" Type="XS1-L6A-64" InPackageId="0" Oscillator="20MHz"
					SystemFrequency="400Mhz">

					<Boot>
						<Source Location="XMOSLINK" />
					</Boot>

					<Tile Number="0" Reference="tile[8]">
					</Tile>

				</Node>
			</Nodes>
		</Package>

	</Packages>


	<Links>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="0" Link="X0LA" />
			<LinkEndpoint NodeId="1" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="1" Link="X0LA" />
			<LinkEndpoint NodeId="2" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="2" Link="X0LA" />
			<LinkEndpoint NodeId="3" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="3" Link="X0LA" />
			<LinkEndpoint NodeId="4" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="4" Link="X0LA" />
			<LinkEndpoint NodeId="5" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="5" Link="X0LA" />
			<LinkEndpoint NodeId="6" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="6" Link="X0LA" />
			<LinkEndpoint NodeId="7" Link="X0LB" />
		</Link>
		<Link Encoding="2wire" Delays="1,1">
			<LinkEndpoint NodeId="7" Link="X0LA" />
			<LinkEndpoint NodeId="8" Link="X0LB" />
		</Link>
	</Links>


	<ExternalDevices>

		<Device NodeId="0" Tile="0" Class="SPIFlash" Name="bootFlash"
			Type="W25X10BV">
			<Attribute Name="PORT_SPI_MISO" Value="PORT_SPI_MISO" />
			<Attribute Name="PORT_SPI_SS" Value="PORT_SPI_SS" />
			<Attribute Name="PORT_SPI_CLK" Value="PORT_SPI_CLK" />
			<Attribute Name="PORT_SPI_MOSI" Value="PORT_SPI_MOSI" />
		</Device>

	</ExternalDevices>


	<JTAGChain>
		<JTAGDevice NodeId="0" Position="0" />
		<JTAGDevice NodeId="1" Position="1" />
		<JTAGDevice NodeId="2" Position="2" />
		<JTAGDevice NodeId="3" Position="3" />
		<JTAGDevice NodeId="4" Position="4" />
		<JTAGDevice NodeId="5" Position="5" />
		<JTAGDevice NodeId="6" Position="6" />
		<JTAGDevice NodeId="7" Position="7" />
		<JTAGDevice NodeId="8" Position="8" />
	</JTAGChain>


</Network>


Any help would be appreciated.


User avatar
segher
XCore Expert
Posts: 844
Joined: Sun Jul 11, 2010 1:31 am

Post by segher »

You could try running the links not so terribly fast. And/or
try to figure out _what_ goes wrong ;-)
Redeye
XCore Addict
Posts: 131
Joined: Wed Aug 03, 2011 9:13 am

Post by Redeye »

I agree with segher - try starting off at 4,4 for your link delays and go faster if you need to.
User avatar
rp181
Respected Member
Posts: 395
Joined: Tue May 18, 2010 12:25 am

Post by rp181 »

Oops- I've been testing with 4,4 - same issue.
I do not have the mode pins configured to boot from JTAG, could this be the issue causing this?
I was pretty sure it is a software issue because a) it was working for a period of time and b) I have to identical systems- both were working and now both are not.

Here's a top level schematic:


Do you have any other suggestions? I'm at a loss.
User avatar
segher
XCore Expert
Posts: 844
Joined: Sun Jul 11, 2010 1:31 am

Post by segher »

rp181 wrote:Oops- I've been testing with 4,4 - same issue.
It's pretty amazing it would ever work at 1,1 :-)
I do not have the mode pins configured to boot from JTAG, could this be the issue causing this?
Probably not. But having the mode pins set strangely causes
very strange problems sometimes -- problems you do not
want to debug. If you have mode0/mode1 set wrong, that
explains everything of course.
I was pretty sure it is a software issue because a) it was working for a period of time and b) I have to identical systems- both were working and now both are not.

Do you have any other suggestions? I'm at a loss.
Yeah, that does sound like it was something you changed. So
what did you change? You do keep a log, right? :-)