wuxx / icesugar

iCESugar FPGA Board (base on iCE40UP5k)
350 stars 96 forks source link

Drag&Drop fail with multi-image. #30

Closed juanmard closed 2 years ago

juanmard commented 3 years ago

When you use a packet bitstream generated with icemulti and use a Drag&Drop iCELink feature, always fail with a time out error.

$ icemulti -v -p0 pwm.bin picorv32.bin leds.bin pll.bin -o icemulti_test.bin
Place image 0 at 0000a0 .. 01973a (`pwm.bin')
Place image 1 at 01973a .. 11b176 (`picorv32.bin')
Place image 2 at 11b176 .. 134810 (`leds.bin')
Place image 3 at 134810 .. 14deaa (`pll.bin')

Drag&Drop file _icemultitest.bin and get this FAIL file:

imagen

wuxx commented 3 years ago

what's the function of icemulti ? is it just conbine these bin file into a whole one image, like the cat command? when drag-n-drop program, the on-board iCELink will check the file format, check the link here for detail http://www.clifford.at/icestorm/format.html

juanmard commented 3 years ago

Yes, icemulti is: "IceMulti: A tool for packing multiple bitstream files into one iCE40 multiboot image file." http://www.clifford.at/icestorm (see icestorm tools) or code https://github.com/YosysHQ/icestorm/blob/master/icemulti/icemulti.cc

Used to multiple bitstream: https://www.latticesemi.com/view_document?document_id=46502 (Chapter 10) Not exactly like the cat command, because it include at the begining an «applet zone» with information about four bitstreams.

We would need to jump this applet to verify the format of the file and let it pass.

wuxx commented 3 years ago

drag-n-drop need the file start with FF 00 00 FF, so it may only support program a single bitstream file, recommend to use the icesprog to program the multiboot image file

juanmard commented 3 years ago

Ok, thank you.