I'm getting a Renesas toolchain working and found a couple of bugs and a few fixes in the qemu target code for this device.
The two critical bugs which are fixed: 1. Exception vector base address is incorrect. The right value is 0xffffff80. 2. A bunch of opcode helper functions are incorrectly labeled as TCG_CALL_NO_WG. These helpers read and write virtual registers out of the global environment and so must not be marked with this flag. The other changes included are sufficient to use qemu without needing to start gdb as well, starting the machine using the reset vector found in the exception table and then re-loading that vector during subsequent reset operations. With these fixes, the picolibc CI tests are now passing. Keith Packard (5): hw/rx: Allow execution without either bios or kernel target/rx: Set exception vector base to 0xffffff80 target/rx: Reset the CPU at qemu reset time target/rx: Load reset vector from memory after first run target/rx: Remove TCG_CALL_NO_WG from helpers which write env hw/rx/rx-gdbsim.c | 3 --- target/rx/cpu.c | 35 +++++++++++++++++++++++++++++------ target/rx/helper.c | 2 +- target/rx/helper.h | 14 +++++++------- 4 files changed, 37 insertions(+), 17 deletions(-) -- 2.47.2