On Tue, 18 Feb 2025 at 21:22, Keith Packard via <qemu-devel@nongnu.org> wrote: > > With feedback from Peter Maydell and Richard Henderson, I've updated > this series to address two concerns: > > 1. The hardware model is now responsible for guiding the CPU reset > process. > > 2. Loading the reset vector from memory is now delayed until cpu_reset > is finished to ensure memory_dispatch is initialized. > > First, there are two critical flaws in the emulation. These are > needed for this model to work correctly: > > 1. The exception vector base is 0xffffff80 not 0xffffffc0. This > prevents exceptions from working at all. > > 2. Many tcg helpers inappropriately used TCG_CALL_NO_WG even though > they modified virtual registers stored in global memory. This > causes these operations to fail unless one-insn-per-tb was enabled. > > The third patch changes how the cpu is reset so that it is driven by > the hw code instead of the target code. Now the cpu is reset each time > qemu is reset and the initial PC value is either set from the loaded > kernel or from the reset vector. This should look a lot more like how > other models manage this process. > > The final patch adds the ability to load an ELF file rather than > a binary memory image. It's purely a new feature and not required for > this model to be usable; without this, it's fairly easy to use > the loader device; that just requires the loaded image to include the > exception vectors with the correct reset vector value. > > Keith Packard (4): > target/rx: Set exception vector base to 0xffffff80 > target/rx: Remove TCG_CALL_NO_WG from helpers which write env > hw/rx: Reset the CPU at qemu reset time > rx: Support loading of ELF files too
Apologies for having taken nearly a month to get to this series. I had review comments on patches 3 and 4, but patches 1 and 2 are good to go and so I've taken them inte target-arm.next. -- PMM