XEF232 unable to boot from Internal Flash
Posted: 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
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