When I try to boot it, I receive a newline, (C)StarFive, another newline, and then the boot ROM seems to restart listening for a program over XMODEM, except that it no longer boots the working program until I press the reset button.
But if I instead assemble the broken program for RV64I_Zicsr, it boots normally and I get the expected 01234 output again.
This strange behaviour doesn't occur when booting from a microSD card.
I am using vf2-recover to transfer the program.
Could this be the result of incompatibility between my XMODEM client and the boot ROM's XMODEM client.
If not, what exactly is expected of programs booted from UART?
Booting the same program over and over again seems to work consistently. But most programs I tried for some unknown reason do not work.
For example, the following RV64GC program boots from UART:
It outputs a stream of
0
,1
,2
,3
, and4
, suggesting that the code atint
never runs.After removing the
mtvec
write, the program no longer boots:When I try to boot it, I receive a newline,
(C)StarFive
, another newline, and then the boot ROM seems to restart listening for a program over XMODEM, except that it no longer boots the working program until I press the reset button.But if I instead assemble the broken program for RV64I_Zicsr, it boots normally and I get the expected
01234
output again.This strange behaviour doesn't occur when booting from a microSD card.
I am using vf2-recover to transfer the program. Could this be the result of incompatibility between my XMODEM client and the boot ROM's XMODEM client.
If not, what exactly is expected of programs booted from UART?