Closed pavelvkozlov closed 1 year ago
I don't know how to get disassembler from QEMU crash, but as @BrunoASMauricio recommended I've added small debug output and it pointed me to this register:
[sr] Crashed on REG 31
**
ERROR:../qemu/target/arc/op_helper.c:248:helper_sr: assertion failed: (aux_reg_detail != NULL)
Bail out! ERROR:../qemu/target/arc/op_helper.c:248:helper_sr: assertion failed: (aux_reg_detail != NULL)
./qemu-arc32-run.sh: line 22: 2968 Aborted $ARC_QEMU_PATH/qemu-system-arc -cpu hs5x -M virt -m 2048 -display none -kernel $IMAGE -netdev tap,id=net0,ifname=$TAP,script=no,downscript=no -device virtio-net-device,netdev=net0 -drive file=$SWAP,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 --global cpu.freq_hz=30000000 -nographic
@pavelvkozlov please confirm if the merged patch works for you. If it does, please close this issue.
That's fixed, thanks.
I see QEMU crash in attempt to write to 0x1F ( IC_PTAG_HI) aux register. The aux register
IC_PTAG_HI
is a part of Instruction Cache Auxiliary Registers set. The patch https://github.com/foss-for-synopsys-dwc-arc-processors/linux/pull/122 adds code that uses this register, but it causes QEMU to crash.This register has a similar usage and description in both ARCv2 ISA and ARCv3 32-bit ISA (hs5x).