DFU programming strange problem
Posted: Fri Jun 12, 2020 3:54 am
We have an old product (2014) based on XS1-U8A-64
- audio reference design 6.5.0
- xTime Composer Enterprise 13.2.3
- design has a data file and extensive HID communication stuff implemented.
Product works fine, and I believe, DFU also worked fine for this product.
Now we need to implement the same design in a different product with very few firmware modifications.
Since design worked fine and it had a lot of HID stuff implemented, I've decided to keep development environment the same.
Now when I program the device with xflash, everything is ok.
But when I generate an upgrade file and program it by DFU, the device doesn't boot from an upgrade image, instead booting from a factory image (i can see it by a version).
DFU file is generated by a piece of software written in 2014 and there is no source code.
When I look at DFU binary, it looks ok:
- program is at address 0x00000 - supposed to be programmed by DFU at memory address 0x10000
- datafile is at address 0x10000 - supposed to be programmed by DFU at memory address 0x20000
When I read the content of a flash after DFU programming, I see very strange thing:
- factory image is intact
- datafile is in a right place at 0x20000
- upgrade image is programmed at 0xD000
I tried to generate the DFU binary directly by xflash.
That is what I get:
>xflash --upgrade 1 upgrade_file.xe --factory factory_file.xe 64k --data data_file.bin -o dfu_file.bin
factory_file.xe: Error: F03071 Application overruns specified boundary
If I remove 64k, I get:
>xflash --upgrade 1 upgrade_file.xe --factory factory_file.xe --data data_file.bin -o dfu_file.bin
Error: F03069 Not enough space on device (device size is 0x8000)
For information:
- factory_file.bin (with data_file) - 179K
- factory_file.bin (without data_file) - 52308 bytes
- upgrade_file.bin (with data-file) - 179K bytes
- upgrade_file.bin (without data-file) - 49668 bytes
- data_file.bin - 51.4K
- dfu_file.bin - not generated
Probably I've done something wrong.
Any ideas what is going on?
Thank you
- audio reference design 6.5.0
- xTime Composer Enterprise 13.2.3
- design has a data file and extensive HID communication stuff implemented.
Product works fine, and I believe, DFU also worked fine for this product.
Now we need to implement the same design in a different product with very few firmware modifications.
Since design worked fine and it had a lot of HID stuff implemented, I've decided to keep development environment the same.
Now when I program the device with xflash, everything is ok.
But when I generate an upgrade file and program it by DFU, the device doesn't boot from an upgrade image, instead booting from a factory image (i can see it by a version).
DFU file is generated by a piece of software written in 2014 and there is no source code.
When I look at DFU binary, it looks ok:
- program is at address 0x00000 - supposed to be programmed by DFU at memory address 0x10000
- datafile is at address 0x10000 - supposed to be programmed by DFU at memory address 0x20000
When I read the content of a flash after DFU programming, I see very strange thing:
- factory image is intact
- datafile is in a right place at 0x20000
- upgrade image is programmed at 0xD000
I tried to generate the DFU binary directly by xflash.
That is what I get:
>xflash --upgrade 1 upgrade_file.xe --factory factory_file.xe 64k --data data_file.bin -o dfu_file.bin
factory_file.xe: Error: F03071 Application overruns specified boundary
If I remove 64k, I get:
>xflash --upgrade 1 upgrade_file.xe --factory factory_file.xe --data data_file.bin -o dfu_file.bin
Error: F03069 Not enough space on device (device size is 0x8000)
For information:
- factory_file.bin (with data_file) - 179K
- factory_file.bin (without data_file) - 52308 bytes
- upgrade_file.bin (with data-file) - 179K bytes
- upgrade_file.bin (without data-file) - 49668 bytes
- data_file.bin - 51.4K
- dfu_file.bin - not generated
Probably I've done something wrong.
Any ideas what is going on?
Thank you