Hi I have a custom XMOS board that I cannot get past flashing the firmware. I have confirmed that the firmware can run ok with command "xrun clearsound_uac_1AMi2o2xxxxxx.xe" so I think the firmware is sort of ok.
However, I cannot get pass to flash the firmware to the bootflash.
I am using XU316-1024-QF60A and W25Q16JWXHIQ as the flash chip in QSPI configuration.
Below is the debug output of xflash.
Any guidance where to look for problem?
xflash 1AMi2o2xxxxxx\clearsound_uac_1AMi2o2xxxxxx.xe --verbose
XFlash_Options::ListDevices : xrun --list-devices devl-f52550fc
XFlash_Application found _start :80000 on Node 0
XFlash_Application found _DoSyscall :8717c on Node 0
XFlash_Application found _DoException :800c4 on Node 0
XFlash_Application found _start :80000 on Node 0
XFlash_Application found _DoSyscall :81820 on Node 0
XFlash_Application found _DoException :800c4 on Node 0
XFlash::DoXFlash
XFlash::DoImageProgramming
XFlash::GetDeviceInfo
XFlash_DeviceInfo::GetDeviceInfo_User
XFlash_DeviceInfo::PrintDeviceInfo
Site 0 (bootFlash) info:
_device_size 0x200000
_device_page_size 0x100
_regular_sector_sizes true
_device_sector_size 0x1000
_device_protection_available false
_device_divider 3
_device_first_user_sector 0x0
_device_search_limit 0x200000
XFlash::BuildFlashBinaryFile
XFlash_Builder_S2L::BuildStage2Loaders Factory
Stage2_Loader::Compile : xcc -Wno-bidirectional-buffered-port -Wno-timing -Wno-unused-function -Xmapper --dontenablesodlinks -Xmapper --nochaninit -Xmapper --noinitialtidy -Xmapper --image-base -Xmapper 0x80080 -Xmapper --image-size -Xmapper 0x7ff80 -Xmapper --wno110 -Xmapper --wno226 -Xmapper --wnoXN -std=gnu99 -O2 -target=XU316-1024-FB265-C32 -x none "C:\Program Files\XMOS\XTC\15.3.0\target\app\xs3a\stage2loader_SQI.o" -lstage2loader -lsqiaccess -lquadspi -llocks -o s2l-n0-cd2beee8
Stage2Loader found DEVICE_SECTOR_WORD_SIZE : 0x81650 on Node 0
Stage2Loader found pllConfig : 0x815f8 on Node 0
Stage2Loader found otp_disable : 0x81654 on Node 0
Stage2Loader found debug_stop : 0x81658 on Node 0
Stage2Loader found s2l_record_timings : 0x81644 on Node 0
Stage2Loader found s2l_search_by_address : 0x81648 on Node 0
Stage2Loader found s2l_num_addresses : 0x8164c on Node 0
Stage2Loader found s2l_search_addresses : 0x815b8 on Node 0
Stage2Loader found flash_ports : 0x815c8 on Node 0
Stage2Loader found clock_config : 0x815d8 on Node 0
Stage2Loader found qe_config : 0x815f0 on Node 0
Stage2Loader found spanning_routing_id : 0x8250c on Node 0
Stage2Loader found spanning_table : 0x81388 on Node 0
Stage2Loader found num_spanning_tables : 0x82510 on Node 0
Stage2Loader found routing_table : 0x81ab8 on Node 0
Stage2Loader found num_routing_tables : 0x82514 on Node 0
Stage2Loader found link_info : 0x81c48 on Node 0
Stage2Loader found links_table : 0x81e28 on Node 0
Stage2Loader found num_link_tables : 0x82518 on Node 0
Stage2Loader found galaxian_table : 0x82328 on Node 0
Stage2Loader found num_galaxian_tables : 0x8251c on Node 0
Stage2Loader found pll_table : 0x823a0 on Node 0
Stage2Loader found debug_stop : 0x82524 on Node 0
Stage2Loader found secondaryPllConfig : 0x823c0 on Node 0
Stage2Loader found ddrConfig : 0x823d0 on Node 0
Stage2Loader found ddrEnable : 0x82520 on Node 0
XFlash_Builder_Image::BuildImages Factory
XFlash_Builder_Image::BuildImageTable
master node = 0
node = 0
XFlash_Builder_Image::BuildImageTable num cores for image table = 2
XFlash_Builder_Image::CalculateBufferSize Starting calculation _total_image_size=0
XFlash_Builder_Image::CalculateBufferSize Add Image Header _total_image_size=38
XFlash_Builder_Image::CalculateBufferSize Add Switch Setup header _total_image_size=40
XFlash_Builder_Image::CalculateBufferSize Add Per Core header _total_image_size=80
XFlash_Builder_Image::CalculateBufferSize_SwitchSetup _total_image_size=25ac
XFlash_Builder_Image::CalculateBufferSize_Application application size = a4f8 _total_image_size = caa4
XFlash_Builder_Image::CalculateBufferSize_Application application size = 2524 _total_image_size = efc8
XFlash_Builder_Image::BuildImageTable allocated image buffer size = efc8
XFlash_Builder_Image::WriteBuffer_ImageHeader
XFlash_Builder_Image::WriteBuffer_SwitchSetup current switch setup table offset : 38
XFlash_Builder_Image::WriteBuffer_SwitchSetup current application data offset : 80
XFlash_Builder_Image::WriteBuffer_SwitchSetup size : 2528
XFlash_Builder_Image::WriteBuffer_SwitchSetup aligned_size : 252c
XFlash_Builder_Image::WriteBuffer_SwitchSetup init_vec_shift : 0
XFlash_Builder_Image::WriteBuffer_Application
XFlash_Builder_Image::WriteBuffer_Application for node : 0
XFlash_Builder_Image::WriteBuffer_Application for core : 0
XFlash_Builder_Image::WriteBuffer_Application current core table offset : 40
XFlash_Builder_Image::WriteBuffer_Application current application data offset : 25ac
XFlash_Builder_Image::WriteBuffer_Application size : a4f4
XFlash_Builder_Image::WriteBuffer_Application aligned_size : a4f8
XFlash_Builder_Image::WriteBuffer_Application init_vec_shift : 0
XFlash_Builder_Image::WriteBuffer_Application chan end : 80020002
XFlash_Builder_Image::WriteBuffer_Application for core : 1
XFlash_Builder_Image::WriteBuffer_Application current core table offset : 60
XFlash_Builder_Image::WriteBuffer_Application current application data offset : caa4
XFlash_Builder_Image::WriteBuffer_Application size : 2520
XFlash_Builder_Image::WriteBuffer_Application aligned_size : 2524
XFlash_Builder_Image::WriteBuffer_Application init_vec_shift : 0
XFlash_Builder_Image::WriteBuffer_Application chan end : 80030002
XFlash_Builder_Image::WriteBuffer_SwMem
XFlash_Builder_Image::WriteBuffer_SwMem for node : 0
XFlash_Builder_Image::WriteBuffer_SwMem for core : 0
XFlash_Builder_Image::WriteBuffer_SwMem current core table offset : 40
XFlash_Builder_Image::WriteBuffer_SwMem current application data offset : efc8
XFlash_Builder_Image::WriteBuffer_SwMem for core : 1
XFlash_Builder_Image::WriteBuffer_SwMem current core table offset : 60
XFlash_Builder_Image::WriteBuffer_SwMem current application data offset : efc8
XFlash_Builder_Image::WriteBuffer_ExtMem
XFlash_Builder_Image::WriteBuffer_ExtMem for node : 0
XFlash_Builder_Image::WriteBuffer_ExtMem for core : 0
XFlash_Builder_Image::WriteBuffer_ExtMem current core table offset : 40
XFlash_Builder_Image::WriteBuffer_ExtMem current application data offset : efc8
XFlash_Builder_Image::WriteBuffer_ExtMem for core : 1
XFlash_Builder_Image::WriteBuffer_ExtMem current core table offset : 60
XFlash_Builder_Image::WriteBuffer_ExtMem current application data offset : efc8
XFlash_Builder_Image::WriteBuffer_CRC
XFlash_Builder_Binary::BuildBinary
XFlash_Builder_Binary::CalculateBufferSize_Factory
XFlash_Builder_Binary::CalculateBufferSize_Factory : Adding s2l size word (4)4
XFlash_Builder_Binary::CalculateBufferSize_Factory : Adding s2l app (1668) 166c
XFlash_Builder_Binary::CalculateBufferSize_Factory : Adding s2l crc (4)1670
XFlash_Builder_Binary::CalculateBufferSize_Factory : Adding factory app (efc8) 10638
XFlash_Builder_Binary::CalculateBufferSize_Factory : Adding sector padding (9c8) 11000
XFlash_Builder_Binary::CalculateBufferSize_Factory : First User Sector offset = 11000
XFlash_Builder_Binary::GetSearchLimitPadding : current size (11000) 0
XFlash_Builder_Binary::CalculateBufferSize_Data
XFlash_Builder_Binary::BuildBinary : Allocating buffer - 11000
XFlash_Builder_Binary::GetSearchLimitPadding : current size (11000) 0
XFlash_Builder_Binary::WriteBufferToBinary : flash_bin_node0
XFlash_Builder_Storage_PPB::BuildStorage
XFlash_Programmer_Write::DoWrite
XFlash_Programmer_Write::IssueCompileCommand
xcc -w -Xmapper --dontenablesodlinks -Xmapper --errdemote130 -Xmapper --errdemote131 -x xn "target-xn-v0-cae97716" -O2 -lquadflash -llocks -D xnPORT_SQI_CS0=PORT_SQI_CS -D xnPORT_SQI_SCLK0=PORT_SQI_SCLK -D xnPORT_SQI_SIO0=PORT_SQI_SIO -x xc "fw-854e3b7e" -o "fw-b1492959"
XFlash_Utils::BuildRunCommand : xrun --io fw-b1492959
Site 0 has started.
Site 0 reports warning: Page size override does not match SFDP response. Please check XN file or SPI-SPEC.
warning: Number of pages override does not match SFDP response. Please check XN file or SPI-SPEC.
Continue? (Y/N) y
Site 0 has ID 0xef6015.
Site 0 skip 0x00000000.
Site 0 write 0x00000000.
Verify failed for page 0x00000000, offset 0x0000 (read 0xff, expected 0xa9).
Error: F03013 Failed to run : xrun --io fw-b1492959
XN file is below.
<?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>Board</Type>
<Name>xcore.ai MC Audio Board</Name>
<Declarations>
<Declaration>tileref tile[2]</Declaration>
</Declarations>
<Packages>
<Package id="0" Type="XS3-UnA-1024-QF60A">
<Nodes>
<Node Id="0" InPackageId="0" Type="XS3-L16A-1024" Oscillator="24MHz" SystemFrequency="600MHz" ReferenceFrequency="100MHz">
<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"/>
<!-- Various ctrl signals -->
<Port Location="XS1_PORT_8D" Name="PORT_CTRL"/>
<!-- I2C -->
<Port Location="XS1_PORT_1O" Name="PORT_I2C_SCL"/>
<Port Location="XS1_PORT_1P" Name="PORT_I2C_SDA"/>
<!-- Button -->
<Port Location="XS1_PORT_1M" Name="PORT_Button1"/>
<Port Location="XS1_PORT_1N" Name="PORT_Button2"/>
<!-- USB VOLTAFE Detect, MAYBE UNNECESSARY -->
<Port Location="XS1_PORT_1L" Name="PORT_USB_DETECT"/>
<!-- Clocking -->
<Port Location="XS1_PORT_16B" Name="PORT_MCLK_COUNT"/>
<Port Location="XS1_PORT_1D" Name="PORT_MCLK_IN_USB"/>
<Port Location="XS1_PORT_1A" Name="PORT_PLL_REF"/>
<!-- Audio Ports: Digital -->
<Port Location="XS1_PORT_1N" Name="PORT_ADAT_IN"/> <!-- PORT REUSED HERE N: Coax O: Optical -->
<Port Location="XS1_PORT_1O" Name="PORT_SPDIF_IN"/> <!-- PORT REUSED HERE N: Coax O: Optical -->
</Tile>
<Tile Number="1" Reference="tile[1]">
<!-- Audio Ports: I2S -->
<Port Location="XS1_PORT_1A" Name="PORT_MCLK_IN"/>
<Port Location="XS1_PORT_16B" Name="PORT_MCLK_COUNT_2"/>
<Port Location="XS1_PORT_1C" Name="PORT_I2S_LRCLK"/>
<Port Location="XS1_PORT_1B" Name="PORT_I2S_BCLK"/>
<Port Location="XS1_PORT_1D" Name="PORT_I2S_DAC0"/>
<port Location="XS1_PORT_1O" Name="PORT_I2S_DAC1"/>
<port Location="XS1_PORT_1N" Name="PORT_I2S_DAC2"/>
<port Location="XS1_PORT_1M" Name="PORT_I2S_DAC3"/>
<Port Location="XS1_PORT_1K" Name="PORT_I2S_ADC0"/>
<Port Location="XS1_PORT_1F" Name="PORT_I2S_ADC1"/>
<Port Location="XS1_PORT_1J" Name="PORT_I2S_ADC2"/>
<Port Location="XS1_PORT_1L" Name="PORT_I2S_ADC3"/>
<!-- Audio Ports: Digital -->
<Port Location="XS1_PORT_1G" Name="PORT_ADAT_OUT"/> <!-- A: Coax G: Optical -->
<Port Location="XS1_PORT_1I" Name="PORT_SPDIF_OUT"/> <!-- A: Coax G: Optical -->
<!-- MIDI -->
<Port Location="XS1_PORT_1P" Name="PORT_MIDI_IN"/>
<Port Location="XS1_PORT_4C" Name="PORT_MIDI_OUT"/> <!-- bit[0] -->
</Tile>
</Node>
</Nodes>
</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" PageSize="256" SectorSize="4096" NumPages="8192">
<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"/>
</JTAGChain>
</Network>
fail to flash the bootflash
-
- Member
- Posts: 9
- Joined: Wed Sep 25, 2024 5:46 am
-
- Member++
- Posts: 21
- Joined: Thu Mar 14, 2024 7:44 pm
https://www.xcore.com/viewtopic.php?t=8830
Have a look through the last couple of posts in that thread. In particular, can you verify the status of the QE bit in the status register? Refer to your specific flash's datasheet to confirm the commands/register addresses.
Have a look through the last couple of posts in that thread. In particular, can you verify the status of the QE bit in the status register? Refer to your specific flash's datasheet to confirm the commands/register addresses.