Hi, I received the shipment for chipignite shuttle...
# caravel
a
Hi, I received the shipment for chipignite shuttle 2206Q recently and was trying the basic blink test on one of the boards, i.e., ran make flash in the firmware/blink directory of the caravel-board repo. The test is failing due to mismatched reads (full test log below). Can someone please assist me in debugging this further? I have used the breakout boards marked ‘verified’ in the shipment.
Copy code
Success: Found one matching FTDI device at <ftdi://ftdi:232h:1:a/1>
 
Caravel data:
   mfg        = 0456
   product    = 11
   project ID = 110261f3
 
Resetting Flash...
status = 0x98
 
JEDEC = b'ef4016'
Erasing chip...
done
status = 0x2
setting address to 0x0
addr 0x0: flash page write successful
addr 0x100: flash page write successful
addr 0x200: flash page write successful
total_bytes = 544
status reg_1 = 0x3
status reg_2 = 0x41
************************************
verifying...
************************************
status reg_1 = 0xde
status reg_2 = 0xf1
setting address to 0x0
addr 0x0: *** read compare FAILED ***
b'930000009301000013020000930200001303000093030000130400009304000013050000930500001306000093060000130700009307000013080000930800001309000093090000130a0000930a0000130b0000930b0000130c0000930c0000130d0000930d0000130e0000930e0000130f0000930f0000170500001305851a970500f1938505f8170600f1130686f763dcc5008326050023a0d5001305450093854500e3c8c5fe170500f1130585f5970500f1938505f56358b5002320050013054500e34cb5feef00400b6f000000b70200281303001223906200a381020063080602130f80009373f60f93de73002380d20193ee0e012380d20193931300'
<----->
b'deec7b98a01064c0a004741aa00260a8a01270a8a01c7918bfc2e0a01e2260b0beb2e0a01e3270a0beac6b16a0046400a00260a8a01c6996bfdde008016de0000016e040050260600244720c40147020400c6100c04261f000126e7ec1f27bce6004701a40327dc1c024701a40327262601fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
addr 0x100: *** read compare FAILED ***
b'93f3f30f130fffffe3120ffe2380620063800506130f000283230500930f800093def3012380d20193ee0e012380d20183ce020093fe2e0093de1e0093931300b3e3d301130fffff63180f00232075001305450083230500938fffffe3920ffc9385f5ffe39c05fa63040f002320750013030008a381620067800000130101fe232e810013040102930710002324f4feb70700219387470023a00700b70700219387870023a00700b70700219387c70023a00700b70700211307100023a0e700b707002123a00700232604fe6f0000018327c4fe938717002326f4fe0327c4feb7170000938777bbe3d4e7feb70700211307100023a0e700232604fe6f000001'
<----->
b'788983437bb1ee62804193028011d06a800982a28049c2a28071e462ff0b8280788982c2facb828078c9c282fab1ac5a80119002800982a28071a65aff77802005b78000005b8100140981800911c8310051c08100318403010987c00049b9fb07c9ef398011c06900c9f7070091c06900c9c989807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
addr 0x200: *** read compare FAILED ***
b'8327c4fe938717002326f4fe0327c4feb7170000938777bbe3d4e7fe6ff05ffa'
<----->
b'009307000013080000930800001309000093090000130a0000930a0000130b00'
total_bytes = 544
pll_trim = b'67'
a
try holding down the reset button during the entire flashing process - in some cases (where the caravel is hijacking the I/Os) that can fix it
t
@Anish: If that's the case, it won't even report a manufacturer or product ID, or a flash JEDEC code, which are both in the output dump above. In fact, what's coming back from the verification looks like only half of the block got written at all, and that half ended up with garbage data. @Anuj Dubey: Do you have a scope where you can watch the data on the SO and SI pins on the 6-pin header at the bottom of the development board? It sounds rather like a signal integrity issue, although the flash received the JEDEC request without any issue.
a
I fixed it. I am supposed to use the firmware_vex directory. This is probably because 2206Q switched to using vexriscv.
🙌 1
👍 1
j
Thanks, this solved it for me as well
t
If you pick up the most recent caravel_board repository, there is only one "firmware" directory, so there should no longer be any ambiguity.