This is the 3rd version of the patch set, updated as per the review
from Richard and Alistair, and updated for current top of tree. Parts
1 and 2 are the same. Part 3 is smaller because some of it was moved
to part 5. Part 5 is bigger because it received part of part 3.
Parts 4 and 5 have changed because the csr support was rewritten. The
illegal instruction traps are no longer inside the csr support code,
but it still has mode checks that I need to disable, so I still need a
debugger mode, but it doesn't do as much as before. Also, what was
one function is now about one hundred functions, so rather than add a
debugger parameter to lots of functions that don't need it, I put it
in the CPURISCVState struct. This also helps fix a bug, because
debugger mode is only appropriate for system qemu, and should not be
enabled for user qemu. The new patch set gets this right. As a
result of this, part 4 also ends up smaller, and part 5 is rewritten a
bit to use the new interface to the csr support. Otherwise it is
effectively the same code as before.
Jim