Clock glitching on the ICE40

This is somewhat a simple question: is it possible to clock glitch an ICE40 (with the default neorv32 softcore)? That is, is there a project I can build that works similar to the first lab on clock glitching? I tried to run the clock glitching lab FAULT1.1 with the neorv32 target selected, but ran into compile-time errors (not too surprising given it’s a different chip). Regardless, is this possible?

Below is the compile-time error after running:

SCOPETYPE = 'OPENADC'
PLATFORM = 'CW308_NEORV32'
SS_VER = 'SS_VER_2_1'
%run "../../Setup_Scripts/Setup_Generic.ipynb"
%%bash -s "$PLATFORM" "$SS_VER"
cd ../../../firmware/mcu/simpleserial-glitch
make PLATFORM=$1 CRYPTO_TARGET=NONE SS_VER=$2 -j
SS_VER set to SS_VER_2_1
SS_VER set to SS_VER_2_1
riscv64-unknown-elf-gcc (g04696df09) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mkdir -p objdir-CW308_NEORV32 
.
Welcome to another exciting ChipWhisperer target build!!
.
.
.
.
.
.
.
Compiling:
.
Compiling:
.
Compiling:
Compiling:
.
.
Compiling:
.
.
.
.
.
.
.
Compiling:
Compiling:
Compiling:
-en     .././hal//neorv32/neorv32_slink.c ...
-en     .././hal//neorv32/neorv32_twi.c ...
-en     .././hal//neorv32/neorv32_pwm.c ...
Compiling:
Compiling:
Compiling:
-en     .././hal//neorv32/neorv32_spi.c ...
-en     .././hal//neorv32/neorv32_xip.c ...
-en     .././hal//neorv32/neorv32_trng.c ...
Compiling:
-en     .././hal//neorv32/neorv32_cpu.c ...
-en     .././hal//neorv32/neorv32_wdt.c ...
Compiling:
-en     .././simpleserial/simpleserial.c ...
-en     .././hal//neorv32/neorv32_rte.c ...
-en     .././hal//neorv32/neorv32_cfs.c ...
Compiling:
-en     .././hal//neorv32/neorv32_uart.c ...
Compiling:
-en     .././hal/hal.c ...
-e Done!
-e Done!
-en     .././hal//neorv32/neorv32_neoled.c ...
-e Done!
-e Done!
-e Done!
-e Done!
Compiling:
-e Done!
-en     simpleserial-glitch.c ...
Compiling:
-en     .././hal//neorv32/neorv32_mtime.c ...
Compiling:
-en     .././hal//neorv32/neorv32_gptmr.c ...
.././hal//neorv32/neorv32_cpu.h: Assembler messages:
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,928', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,929', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,930', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,931', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,932', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,933', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,934', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,935', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,936', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,937', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,938', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,939', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,940', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,941', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,942', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,943', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 928,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 929,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 930,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 931,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 932,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 933,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 934,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 935,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 936,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 937,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 938,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 939,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 940,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 941,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 942,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 943,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.c:116: Error: unrecognized opcode `csrrs zero,mie,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.c:135: Error: unrecognized opcode `csrrc zero,mie,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a3,3200', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a4,3072', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,3200', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2816,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2944,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2816,a0', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a3,3202', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a4,3074', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,3202', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2818,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2946,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2818,a0', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a3,3201', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a4,3073', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,3201', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.c:331: Error: unrecognized opcode `csrw mepc,ra', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.c:333: Error: unrecognized opcode `csrrc zero,mstatus,ra', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,928', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 928,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 944,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a4,944', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 944,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 945,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 946,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 947,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 948,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 949,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 950,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 951,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 952,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 953,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 954,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 955,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 956,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 957,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 958,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 959,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 960,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 961,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 962,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 963,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 964,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 965,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 966,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 967,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 968,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 969,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 970,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 971,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 972,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 973,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 974,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 975,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 976,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 977,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 978,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 979,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 980,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 981,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 982,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 983,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 984,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 985,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 986,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 987,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 988,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 989,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 990,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 991,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 992,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 993,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 994,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 995,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 996,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 997,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 998,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 999,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1000,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1001,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1002,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1003,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1004,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1005,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1006,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 1007,a1', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,800', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 800,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2819,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2820,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2821,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2822,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2823,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2824,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2825,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2826,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2827,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2828,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2829,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2830,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2831,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2832,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2833,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2834,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2835,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2836,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2837,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2838,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2839,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2840,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2841,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2842,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2843,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2844,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2845,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2819', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,2820', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2821', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2822', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2823', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2824', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2825', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2826', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2827', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2828', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2829', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2830', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2831', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2832', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2833', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2834', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2835', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2836', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2837', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2838', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2839', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2840', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2841', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2842', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2843', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2844', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,2845', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.c:703: Error: unrecognized opcode `csrwi 800,8', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2819,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 2947,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,2947', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a3,2819', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a3,2947', extension `zicsr' required
-en     .././hal//neorv32/neorv32_gpio.c ...
-e Done!
-e Done!
.
.
.
.
Compiling:
Compiling:
-e Done!
Assembling: .././hal//neorv32/crt0.S
riscv64-unknown-elf-gcc -c -march=rv32i -mabi=ilp32  -I. -x assembler-with-cpp -Wall -ffunction-sections -fdata-sections -nostartfiles -mno-fdiv -Wl,--gc-sections -lm -lc -lgcc -lc -falign-functions=4 -falign-labels=4 -falign-loops=4 -falign-jumps=4 -DF_CPU=7372800 -Wa,-gstabs,-adhlns=objdir-CW308_NEORV32/crt0.lst -I.././simpleserial/ -I.././hal/ -I.././hal/ -I.././hal//neorv32 -I.././simpleserial/ -I.././crypto/ .././hal//neorv32/crt0.S -o objdir-CW308_NEORV32/crt0.o
Compiling:
-en     .././hal//neorv32/syscalls.c ...
-en     .././hal//neorv32/neorv32_xirq.c ...
-en     .././hal//neorv32/neorv32_hal.c ...
-e Done!
-e Done!
-e Done!
-e Done!
-e Done!
-e Done!
.././hal//neorv32/neorv32_cpu.h: Assembler messages:
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a4,833', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 832,a4', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,834', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 833,a2', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr s0,834', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,832', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a0,835', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 773,a5', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,3859', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a1,3860', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a2,3857', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr s0,3858', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a1,3859', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a5,769', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr s2,769', extension `zicsr' required
.././hal//neorv32/neorv32_cpu.h:234: Error: unrecognized opcode `csrr a2,769', extension `zicsr' required
crt0.S: Assembler messages:
crt0.S:73: Error: unrecognized opcode `csrw mtvec,x10', extension `zicsr' required
crt0.S:74: Error: unrecognized opcode `csrw mepc,x10', extension `zicsr' required
crt0.S:76: Error: unrecognized opcode `csrw mstatus,zero', extension `zicsr' required
crt0.S:78: Error: unrecognized opcode `csrw mie,zero', extension `zicsr' required
crt0.S:80: Error: unrecognized opcode `csrw mcounteren,zero', extension `zicsr' required
crt0.S:83: Error: unrecognized opcode `csrw 0x320,x11', extension `zicsr' required
crt0.S:85: Error: unrecognized opcode `csrw mcycle,zero', extension `zicsr' required
crt0.S:86: Error: unrecognized opcode `csrw mcycleh,zero', extension `zicsr' required
crt0.S:87: Error: unrecognized opcode `csrw minstret,zero', extension `zicsr' required
crt0.S:88: Error: unrecognized opcode `csrw minstreth,zero', extension `zicsr' required
.././hal//neorv32/crt0.S:202: Error: unrecognized opcode `csrw mscratch,a0', extension `zicsr' required
.././hal//neorv32/crt0.S:216: Error: unrecognized opcode `csrci mstatus,8', extension `zicsr' required
.././hal//neorv32/crt0.S:233: Error: unrecognized opcode `csrr x8,mcause', extension `zicsr' required
.././hal//neorv32/crt0.S:236: Error: unrecognized opcode `csrr x8,mepc', extension `zicsr' required
.././hal//neorv32/crt0.S:243: Error: unrecognized opcode `csrw mepc,x8', extension `zicsr' required
.././hal//neorv32/crt0.S:249: Error: unrecognized opcode `csrr x8,mepc', extension `zicsr' required
.././hal//neorv32/crt0.S:251: Error: unrecognized opcode `csrw mepc,x8', extension `zicsr' required
make: *** [objdir-CW308_NEORV32/crt0.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [objdir-CW308_NEORV32/neorv32_cpu.o] Error 1
make: *** [objdir-CW308_NEORV32/neorv32_rte.o] Error 1
.././hal//neorv32/syscalls.c:103:6: warning: "/*" within comment [-Wcomment]
  103 |     //*(volatile int *)EXIT_REG = exit_status;
.././hal//neorv32/syscalls.c:134:19: warning: 'struct timeb' declared inside parameter list will not be visible outside of this definition or declaration
  134 | int _ftime(struct timeb *tp)
      |                   ^~~~~
.././hal//neorv32/syscalls.c: In function '_write':
.././hal//neorv32/syscalls.c:248:9: error: implicit declaration of function 'neorv32_uart0_putc'; did you mean 'neorv32_uart0_printf'? [-Wimplicit-function-declaration]
  248 |         neorv32_uart0_putc(*(char *)(ptr++));
      |         ^~~~~~~~~~~~~~~~~~
      |         neorv32_uart0_printf
.././hal//neorv32/syscalls.c: In function '_sbrk':
.././hal//neorv32/syscalls.c:266:22: warning: comparison between two arrays [-Warray-compare]
  266 |     if (__heap_start == __heap_end) {
      |                      ^~
.././hal//neorv32/syscalls.c:266:22: note: use '&__heap_start[0] == &__heap_end[0]' to compare the addresses
make: *** [objdir-CW308_NEORV32/syscalls.o] Error 1
.././hal//neorv32/neorv32_cpu.h: Assembler messages:
.././hal//neorv32/neorv32_cpu.h:250: Error: unrecognized opcode `csrw 836,a5', extension `zicsr' required
make: *** [objdir-CW308_NEORV32/neorv32_xirq.o] Error 1
-e Done!
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
Cell In[5], line 1
----> 1 get_ipython().run_cell_magic('bash', '-s "$PLATFORM" "$SS_VER"', 'cd ../../../firmware/mcu/simpleserial-glitch\nmake PLATFORM=$1 CRYPTO_TARGET=NONE SS_VER=$2 -j\n')

File ~/.pyenv/versions/3.9.5/lib/python3.9/site-packages/IPython/core/interactiveshell.py:2517, in InteractiveShell.run_cell_magic(self, magic_name, line, cell)
   2515 with self.builtin_trap:
   2516     args = (magic_arg_s, cell)
-> 2517     result = fn(*args, **kwargs)
   2519 # The code below prevents the output from being displayed
   2520 # when using magics with decorator @output_can_be_silenced
   2521 # when the last Python token in the expression is a ';'.
   2522 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False):

File ~/.pyenv/versions/3.9.5/lib/python3.9/site-packages/IPython/core/magics/script.py:154, in ScriptMagics._make_script_magic.<locals>.named_script_magic(line, cell)
    152 else:
    153     line = script
--> 154 return self.shebang(line, cell)

File ~/.pyenv/versions/3.9.5/lib/python3.9/site-packages/IPython/core/magics/script.py:314, in ScriptMagics.shebang(self, line, cell)
    309 if args.raise_error and p.returncode != 0:
    310     # If we get here and p.returncode is still None, we must have
    311     # killed it but not yet seen its return code. We don't wait for it,
    312     # in case it's stuck in uninterruptible sleep. -9 = SIGKILL
    313     rc = p.returncode or -9
--> 314     raise CalledProcessError(rc, cell)

CalledProcessError: Command 'b'cd ../../../firmware/mcu/simpleserial-glitch\nmake PLATFORM=$1 CRYPTO_TARGET=NONE SS_VER=$2 -j\n'' returned non-zero exit status 2.

It’s definitely possible to try; setting PLATFORM = 'CW308_NEORV32' should be all that you need to change.

Maybe there is an issue with that compiler version; I’m able to compile with this one:
riscv32-unknown-elf-gcc (g1ea978e3066) 12.1.0

1 Like

So I reinstalled my riscv compiler on both MacOS and inside a Ubuntu VM and got a similar error. I made sure to also tried setting the arch=i_zicsr to include the extension the error printout was complaining about.

I ended up trying to adjust the arch inside the makesife in chipwhisperer/firmware/MCU/neorv32/Makefile.neorv32 by setting “march=rv32i_zicsr” and got a different error (below). It seems this error was caused by an implicit function declaration in syscalls.c inside the neorv32 directory. I added #include “neorv32_uart.h” and this seemed to fix the issue. I think it works now.

In addition to this, when trying the demo glitch loop in lab Fault1.1, got got an error that appears to be related to this post: Husky: No Trigger Seen.

SS_VER set to SS_VER_2_1
SS_VER set to SS_VER_2_1
riscv32-unknown-elf-gcc () 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

mkdir -p objdir-CW308_NEORV32 
.
Welcome to another exciting ChipWhisperer target build!!
.
.
Compiling:
Compiling:
-en     simpleserial-glitch.c ...
-en     .././simpleserial/simpleserial.c ...
.
.
Compiling:
Compiling:
-en     .././hal/hal.c ...
-en     .././hal//neorv32/neorv32_cfs.c ...
.
.
Compiling:
Compiling:
-en     .././hal//neorv32/neorv32_cpu.c ...
-en     .././hal//neorv32/neorv32_gpio.c ...
.
-e Done!
Compiling:
.
-en     .././hal//neorv32/neorv32_gptmr.c ...
Compiling:
-en     .././hal//neorv32/neorv32_mtime.c ...
.
-e Done!
-e Done!
Compiling:
.
-en     .././hal//neorv32/neorv32_neoled.c ...
Compiling:
-e Done!
-en     .././hal//neorv32/neorv32_pwm.c ...
.
-e Done!
-e Done!
Compiling:
-e Done!
-en     .././hal//neorv32/neorv32_rte.c ...
.
-e Done!
Compiling:
-e Done!
-en     .././hal//neorv32/neorv32_slink.c ...
.
-e Done!
Compiling:
.
-en     .././hal//neorv32/neorv32_spi.c ...
Compiling:
-en     .././hal//neorv32/neorv32_trng.c ...
.
Compiling:
.
-en     .././hal//neorv32/neorv32_twi.c ...
Compiling:
-en     .././hal//neorv32/neorv32_uart.c ...
.
Compiling:
.
-en     .././hal//neorv32/neorv32_wdt.c ...
Compiling:
-en     .././hal//neorv32/neorv32_xip.c ...
.
Compiling:
.
-en     .././hal//neorv32/neorv32_xirq.c ...
Compiling:
-en     .././hal//neorv32/neorv32_hal.c ...
.
Compiling:
.
-en     .././hal//neorv32/syscalls.c ...
-e Done!
-e Done!
Assembling: .././hal//neorv32/crt0.S
riscv32-unknown-elf-gcc -c -march=rv32i_zicsr -mabi=ilp32  -I. -x assembler-with-cpp -Wall -ffunction-sections -fdata-sections -nostartfiles -mno-fdiv -Wl,--gc-sections -lm -lc -lgcc -lc -falign-functions=4 -falign-labels=4 -falign-loops=4 -falign-jumps=4 -DF_CPU=7372800 -Wa,-gstabs,-adhlns=objdir-CW308_NEORV32/crt0.lst -I.././simpleserial/ -I.././hal/ -I.././hal/ -I.././hal//neorv32 -I.././simpleserial/ -I.././crypto/ .././hal//neorv32/crt0.S -o objdir-CW308_NEORV32/crt0.o
-e Done!

.././hal//neorv32/syscalls.c:103:6: warning: "/*" within comment [-Wcomment]
  103 |     //*(volatile int *)EXIT_REG = exit_status;
.././hal//neorv32/syscalls.c:134:19: warning: 'struct timeb' declared inside parameter list will not be visible outside of this definition or declaration
  134 | int _ftime(struct timeb *tp)
      |                   ^~~~~
.././hal//neorv32/syscalls.c: In function '_write':
.././hal//neorv32/syscalls.c:248:9: error: implicit declaration of function 'neorv32_uart0_putc'; did you mean 'neorv32_uart0_printf'? [-Wimplicit-function-declaration]
  248 |         neorv32_uart0_putc(*(char *)(ptr++));
      |         ^~~~~~~~~~~~~~~~~~
      |         neorv32_uart0_printf
.././hal//neorv32/syscalls.c: In function '_sbrk':
.././hal//neorv32/syscalls.c:266:22: warning: comparison between two arrays [-Warray-compare]
  266 |     if (__heap_start == __heap_end) {
      |                      ^~
.././hal//neorv32/syscalls.c:266:22: note: use '&__heap_start[0] == &__heap_end[0]' to compare the addresses

-e Done!

make: *** [.././Makefile.inc:506: objdir-CW308_NEORV32/syscalls.o] Error 1
make: *** Waiting for unfinished jobs....

-e Done!
-e Done!
-e Done!
-e Done!
-e Done!
-e Done!

---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
Cell In[9], line 1
----> 1 get_ipython().run_cell_magic('bash', '-s "$PLATFORM" "$SS_VER"', 'cd ../../../firmware/mcu/simpleserial-glitch\nmake PLATFORM=$1 CRYPTO_TARGET=NONE SS_VER=$2 -j\n')

File ~/.cwvenv/lib/python3.10/site-packages/IPython/core/interactiveshell.py:2543, in InteractiveShell.run_cell_magic(self, magic_name, line, cell)
   2541 with self.builtin_trap:
   2542     args = (magic_arg_s, cell)
-> 2543     result = fn(*args, **kwargs)
   2545 # The code below prevents the output from being displayed
   2546 # when using magics with decorator @output_can_be_silenced
   2547 # when the last Python token in the expression is a ';'.
   2548 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False):

File ~/.cwvenv/lib/python3.10/site-packages/IPython/core/magics/script.py:159, in ScriptMagics._make_script_magic.<locals>.named_script_magic(line, cell)
    157 else:
    158     line = script
--> 159 return self.shebang(line, cell)

File ~/.cwvenv/lib/python3.10/site-packages/IPython/core/magics/script.py:336, in ScriptMagics.shebang(self, line, cell)
    331 if args.raise_error and p.returncode != 0:
    332     # If we get here and p.returncode is still None, we must have
    333     # killed it but not yet seen its return code. We don't wait for it,
    334     # in case it's stuck in uninterruptible sleep. -9 = SIGKILL
    335     rc = p.returncode or -9
--> 336     raise CalledProcessError(rc, cell)

CalledProcessError: Command 'b'cd ../../../firmware/mcu/simpleserial-glitch\nmake PLATFORM=$1 CRYPTO_TARGET=NONE SS_VER=$2 -j\n'' returned non-zero exit status 2.