XEF232 unable to boot from Internal Flash

New to XMOS and XCore? Get started here.
Sanjeev
Member
Posts: 12
Joined: Thu Jan 19, 2017 8:34 am

XEF232 unable to boot from Internal Flash

Postby Sanjeev » Fri May 17, 2019 6:25 am

We have created a Custom board out of XEF232-1024-FB374-C40 and following hardware connections made to boot from Internal flash

1. Mode0 and Mode 1 pins left unconnected, because controller internally Pulls them high
2. X2D06 is Pulled High, so that it boots from Node 2 Via LINK and set the BootMode to 4 in XN file(attached)
3. X0D01 is pulled high using 10Kohm resistor
4. X0D04..X0D07 are left Open, as they are pulled down internally.
5. X2D04, X2D05, X2D07 are left unconnected, as they are pulled down internally.

With these hardware changes, modified the XN file accordingly and build the AN00185 example; Looks like flashing is successful, but the controller is not booting from Internal flash.

Guide me on:
1. How to test whether the flashing is successful? any commands/document would help
2. Is there a way that, I can debug the booting sequence? using xTIME Composer 14.3.3?
3. What is a BootMode and what it should be when I am booting from Tile 0; my configurations for various tiles in my XN File attached.
4. Example: AN00185 page number 4; has a table with 1st row showing as 2 1 0 core 1 and core 0; what are these boot modes and what changes to XN I should be doing

Please revert back with suggestions.. Review my XN too..
Thanks in advance
Sanjeev

<?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">
<Type>Device</Type>
<Name>XEF232-1024-FB374-C40 Device</Name>

<Declarations>
<Declaration>tileref tile[4]</Declaration>
<Declaration>tileref usb_tile[2]</Declaration>
</Declarations>

<Packages>
<Package id="0" Type="XS2-UEFnA-1024-FB374">
<Nodes>
<Node Id="0" InPackageId="0" Type="XS2-L16A-512" SystemFrequency="500MHz" OscillatorSrc="1">
<Boot>
<Source Location="bootFlash0"/>
<Bootee NodeId="2"/>
</Boot>
<Tile Number="0" Reference="tile[0]">
<Port Location="XS1_PORT_1B" Name="PORT_SQI_CS_0"/>
<Port Location="XS1_PORT_1C" Name="PORT_SQI_SCLK_0"/>
<Port Location="XS1_PORT_4B" Name="PORT_SQI_SIO_0"/>
</Tile>
<Tile Number="1" Reference="tile[1]"/>
</Node>
<Node Id="2" InPackageId="2" Type="XS2-L16A-512" SystemFrequency="500MHz" OscillatorSrc="3">
<Boot>
<Source Location="LINK" BootMode="4"/>
</Boot>
<Tile Number="0" Reference="tile[2]"/>
<Tile Number="1" Reference="tile[3]"/>
</Node>
<Node Id="1" InPackageId="1" Type="periph:XS1-SU" Reference="usb_tile[0]" Oscillator="24MHz">
</Node>
<Node Id="3" InPackageId="3" Type="periph:XS1-SU" Reference="usb_tile[1]" Oscillator="24MHz">
</Node>
</Nodes>
<Links>
<Link Encoding="5wire" Delays="3clk">
<LinkEndpoint NodeId="0" Link="7"/>
<LinkEndpoint NodeId="2" Link="0"/>
</Link>
<Link Encoding="5wire" Delays="3clk">
<LinkEndpoint NodeId="0" Link="4"/>
<LinkEndpoint NodeId="2" Link="3"/>
</Link>
<Link Encoding="5wire" Delays="3clk">
<LinkEndpoint NodeId="0" Link="6"/>
<LinkEndpoint NodeId="2" Link="1"/>
</Link>
<Link Encoding="5wire" Delays="3clk">
<LinkEndpoint NodeId="0" Link="5"/>
<LinkEndpoint NodeId="2" Link="2"/>
</Link>
<Link Encoding="5wire">
<LinkEndpoint NodeId="0" Link="8" Delays="52clk,52clk"/>
<LinkEndpoint NodeId="1" Link="XL0" Delays="1clk,1clk"/>
</Link>
<Link Encoding="5wire">
<LinkEndpoint NodeId="2" Link="8" Delays="52clk,52clk"/>
<LinkEndpoint NodeId="3" Link="XL0" Delays="1clk,1clk"/>
</Link>
</Links>
</Package>
</Packages>

<ExternalDevices>
<Device NodeId="0" Tile="0" Class="SQIFlash" Name="bootFlash0">
<Attribute Name="PORT_SQI_CS" Value="PORT_SQI_CS_0"/>
<Attribute Name="PORT_SQI_SCLK" Value="PORT_SQI_SCLK_0"/>
<Attribute Name="PORT_SQI_SIO" Value="PORT_SQI_SIO_0"/>
<Attribute Name="QE_REGISTER" Value="quad_spi_qe_location_status_reg_0"/>
<Attribute Name="QE_BIT" Value="quad_spi_qe_bit_6"/>
</Device>
</ExternalDevices>

<JTAGChain>
<JTAGDevice NodeId="0"/>
<JTAGDevice NodeId="2"/>
</JTAGChain>

</Network>

After the compilation and flash using xTime Composer Tool 14.3.3, following is the o/p:
xflash Output:

Warning: F03098 Factory image and boot loader cannot be write-protected on flash device on node 0
xflash: Warning: F03148 --quad-spi-clock not given, using default 15.62MHz
xflash: Warning: F03149 QE_REGISTER and/or QE_BIT locations not found in XN file for this flash device. Using default quad_spi_qe_location_status_reg_0 and quad_spi_qe_bit_6.

Site 0 has started.
Site 0 has type 004.
Site 0 write 0x00000000.
Site 0 verified 0x00000000.
Site 0 write 0x00000400.
Site 0 verified 0x00000400.
Site 0 write 0x00000800.
Site 0 verified 0x00000800.
Site 0 write 0x00000c00.
Site 0 verified 0x00000c00.
Site 0 write 0x00001000.
Site 0 verified 0x00001000.
Site 0 write 0x00001400.
Site 0 verified 0x00001400.
Site 0 write 0x00001800.
Site 0 verified 0x00001800.
Site 0 write 0x00001c00.
Site 0 verified 0x00001c00.
Site 0 write 0x00002000.
Site 0 verified 0x00002000.
Site 0 write 0x00002400.
Site 0 verified 0x00002400.
Site 0 write 0x00002800.
Site 0 verified 0x00002800.
Site 0 write 0x00002c00.
Site 0 verified 0x00002c00.
Site 0 write 0x00003000.
Site 0 verified 0x00003000.
Site 0 write 0x00003400.
Site 0 verified 0x00003400.
Site 0 write 0x00003800.
Site 0 verified 0x00003800.
Site 0 write 0x00003c00.
Site 0 verified 0x00003c00.
Site 0 write 0x00004000.
Site 0 verified 0x00004000.
Site 0 write 0x00004400.
Site 0 verified 0x00004400.
Site 0 write 0x00004800.
Site 0 verified 0x00004800.
Site 0 write 0x00004c00.
Site 0 verified 0x00004c00.
Site 0 write 0x00005000.
Site 0 verified 0x00005000.
Site 0 write 0x00005400.
Site 0 verified 0x00005400.
Site 0 write 0x00005800.
Site 0 verified 0x00005800.
Site 0 write 0x00005c00.
Site 0 verified 0x00005c00.
Site 0 write 0x00006000.
Site 0 verified 0x00006000.
Site 0 write 0x00006400.
Site 0 verified 0x00006400.
Site 0 write 0x00006800.
Site 0 verified 0x00006800.
Site 0 write 0x00006c00.
Site 0 verified 0x00006c00.
Site 0 write 0x00007000.
Site 0 verified 0x00007000.
Site 0 write 0x00007400.
Site 0 verified 0x00007400.
Site 0 write 0x00007800.
Site 0 verified 0x00007800.
Site 0 write 0x00007c00.
Site 0 verified 0x00007c00.
Site 0 write 0x00008000.
Site 0 verified 0x00008000.
Site 0 write 0x00008400.
Site 0 verified 0x00008400.
Site 0 write 0x00008800.
Site 0 verified 0x00008800.
Site 0 write 0x00008c00.
Site 0 verified 0x00008c00.
Site 0 write 0x00009000.
Site 0 verified 0x00009000.
Site 0 write 0x00009400.
Site 0 verified 0x00009400.
Site 0 write 0x00009800.
Site 0 verified 0x00009800.
Site 0 write 0x00009c00.
Site 0 verified 0x00009c00.
Site 0 write 0x0000a000.
Site 0 verified 0x0000a000.
Site 0 write 0x0000a400.
Site 0 verified 0x0000a400.
Site 0 write 0x0000a800.
Site 0 verified 0x0000a800.
Site 0 write 0x0000ac00.
Site 0 verified 0x0000ac00.
Site 0 write 0x0000b000.
Site 0 verified 0x0000b000.
Site 0 write 0x0000b400.
Site 0 verified 0x0000b400.
Site 0 write 0x0000b800.
Site 0 verified 0x0000b800.
Site 0 write 0x0000bc00.
Site 0 verified 0x0000bc00.
Site 0 write 0x0000c000.
Site 0 verified 0x0000c000.
Site 0 write 0x0000c400.
Site 0 verified 0x0000c400.
Site 0 write 0x0000c800.
Site 0 verified 0x0000c800.
Site 0 write 0x0000cc00.
Site 0 verified 0x0000cc00.
Site 0 write 0x0000d000.
Site 0 verified 0x0000d000.
Site 0 write 0x0000d400.
Site 0 verified 0x0000d400.
Site 0 write 0x0000d800.
Site 0 verified 0x0000d800.
Site 0 write 0x0000dc00.
Site 0 verified 0x0000dc00.
Site 0 write 0x0000e000.
Site 0 verified 0x0000e000.
Site 0 write 0x0000e400.
Site 0 verified 0x0000e400.
Site 0 write 0x0000e800.
Site 0 verified 0x0000e800.
Site 0 write 0x0000ec00.
Site 0 verified 0x0000ec00.
Site 0 write 0x0000f000.
Site 0 verified 0x0000f000.
Site 0 write 0x0000f400.
Site 0 verified 0x0000f400.
Site 0 write 0x0000f800.
Site 0 verified 0x0000f800.
Site 0 write 0x0000fc00.
Site 0 verified 0x0000fc00.
Site 0 write 0x00010000.
Site 0 verified 0x00010000.
Site 0 write 0x00010400.
Site 0 verified 0x00010400.
Site 0 write 0x00010800.
Site 0 verified 0x00010800.
Site 0 write 0x00010c00.
Site 0 verified 0x00010c00.
Site 0 has finished successfully.


Thanks,
Sanjeev
User avatar
mon2
XCore Legend
Posts: 1398
Joined: Thu Jun 10, 2010 11:43 am

Postby mon2 » Fri May 17, 2019 12:37 pm

Hi.
3. X0D01 is pulled high using 10Kohm resistor
the pull-up resistor on X0D01 is required to be a strong pull-up @ 1K (not 10k). Please replace, test again and post your results.
Sanjeev
Member
Posts: 12
Joined: Thu Jan 19, 2017 8:34 am

Postby Sanjeev » Fri May 17, 2019 1:06 pm

Sorry typo error; It is 1K ohm resistor tied to 3.3Volt..
User avatar
akp
Respected Member
Posts: 266
Joined: Thu Nov 26, 2015 11:47 pm

Postby akp » Fri May 17, 2019 1:37 pm

Yeah, that's what I said in the OP's other post viewtopic.php?f=3&t=7130 ¯\_(ツ)_/¯
User avatar
mon2
XCore Legend
Posts: 1398
Joined: Thu Jun 10, 2010 11:43 am

Postby mon2 » Fri May 17, 2019 5:59 pm

Please review the following thread and the comments from Ross (XMOS):

viewtopic.php?f=47&t=4451
Sanjeev
Member
Posts: 12
Joined: Thu Jan 19, 2017 8:34 am

Postby Sanjeev » Fri May 17, 2019 6:38 pm

Thanks Ross, Mon2;
I ended up in following warnings during compilation:
xmap: Warning: port "XS1_PORT_1A" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1D" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1F" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1G" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1E" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1H" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1J" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1K" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1I" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1L" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1M" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_4A" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_4E" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_4F" on tile[2] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1C" on tile[3] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_1D" on tile[3] is not connected to any pins in this package.
xmap: Warning: port "XS1_PORT_4C" on tile[3] is not connected to any pins in this package.

Device gets flashed, but again does not bootup from the Internal flash.. (OTP is not burnt so no question of security resistor values) Any pointers? What does 2 1 0 core 1 and core 0 within the table on Page 4 of An00185 suggest? Are they Tiles? Nodes?
For QSPI, table suggests 0 0 0 respectively. Not sure what it signify and how that need to be added in the XN file. Any suggestions or pointers to edit/modify the XN file are welcome.

I tried executing getps(0x3); It printed 0; Not sure why? Is it because I run through JTAG->RAM
User avatar
mon2
XCore Legend
Posts: 1398
Joined: Thu Jun 10, 2010 11:43 am

Postby mon2 » Sat May 18, 2019 2:27 am

Also, if you have bonded out the MODE0 and MODE1 pins on the XMOS CPU, tie each high through a pull-up resistor to +3v3 (1k-10k should be ok) to be sure that these PLL settings are correct.

Do post your update.
Sanjeev
Member
Posts: 12
Joined: Thu Jan 19, 2017 8:34 am

Postby Sanjeev » Sat May 18, 2019 8:35 am

changing bootmode on Node 1 from Node 2; following error is seen after the xFlash is run
ERROR: No port 'XS1_PORT_1A' found on node 0 core 0
Thus reverted the XN my earlier XN file of Post 1;
User avatar
mon2
XCore Legend
Posts: 1398
Joined: Thu Jun 10, 2010 11:43 am

Postby mon2 » Sun May 19, 2019 2:33 pm

Try to confirm that your custom design is able to boot using the posted XN file here:

viewtopic.php?t=4852

If not, post your schematic of the CPU and power supply sequencers, etc. Suspecting the issue is with the XN file definition and respective MODE pin straps.

Who is online

Users browsing this forum: No registered users and 1 guest