I have this board here https://www.xmos.com/products/voice/micarray and I'm trying to reprogram it but can't seem to get it to work.
I'm new to XMOS products and xTime in general so apologies if I'm missing a simple step here.
- I've loaded up QuadSPI example here https://www.xmos.com/download/AN00188:- ... .2rc1).pdf
- I've then adjusted the Makefile "Target" to be "XU216-256-TQ128-C20"
- I needed to import the "XU216-256-TQ128-C20.xn" file and adjust it to be the following (this fixed all of my build issues):
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">
<Type>Device</Type>
<Name>XU216-256-TQ128-C20 Device</Name>
<Declarations>
<Declaration>tileref tile[2]</Declaration>
<Declaration>tileref usb_tile</Declaration>
</Declarations>
<Packages>
<Package id="0" Type="XS2-UnA-512-TQ128">
<Nodes>
<Node Id="0" InPackageId="0" Type="XS2-L16A-256" SystemFrequency="500MHz" OscillatorSrc="1">
<Boot>
<Source Location="bootFlash"/>
</Boot>
<Tile Number="0" Reference="tile[0]">
<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[1]"/>
</Node>
<Node Id="1" InPackageId="1" Type="periph:XS1-SU" Reference="usb_tile" Oscillator="24MHz">
</Node>
</Nodes>
<Links>
<Link Encoding="5wire">
<LinkEndpoint NodeId="0" Link="8" Delays="52clk,52clk"/>
<LinkEndpoint NodeId="1" Link="XL0" Delays="1clk,1clk"/>
</Link>
</Links>
</Package>
</Packages>
<Nodes>
<Node Id="2" Type="device:" RoutingId="0x8000">
<Service Id="0" Proto="xscope_host_data(chanend c);">
<Chanend Identifier="c" end="3"/>
</Service>
</Node>
</Nodes>
<Links>
<Link Encoding="2wire" Delays="5clk" Flags="XSCOPE">
<LinkEndpoint NodeId="0" Link="XL0"/>
<LinkEndpoint NodeId="2" Chanend="1"/>
</Link>
</Links>
<ExternalDevices>
<Device NodeId="0" Tile="0" Class="SQIFlash" Name="bootFlash" Type="IS25LQ016B">
<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"/>
<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"/>
</JTAGChain>
</Network>
- From here, I stopped the running code and reconnected the device to get back to a fresh state.
- I adjusted my Flash Configuration to mirror the example shown in the PDF (Partition Size = 0x80000 && otherOptions = "--data src/data.bin")
- From here, when I run "Flash" I get the following output:
Code: Select all
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
Site 0 has started.
Site 0 has type 005.
Site Verify failed for page 0x00000000, offset 0x0000 (read 0x79, expected 0x7d).
Site Verify failed for page 0x00000001, offset 0x0000 (read 0x10, expected 0x30).
...
...
Error: F03013 Failed to run : 0x7ffe98ac11a0.
I've dug around a bit on the forums and came across this post but it quite cover the issue I'm facing.
I also tried running the command line version to flash the device but still ran into the same issue:
Code: Select all
xflash --factory bin/qspi_persistent_storage.xe --boot-partition-size 0x80000 --data src/data.bin