ppc has always silently ignored access to real (physical) addresses with nothing behind it, which can make debugging difficult at times.
It looks like the way to handle this is implement the transaction failed call, which most target architectures do. Notably not x86 though, I wonder why? Other question is, sometimes I guess it's nice to avoid crashing in order to try to quickly get past some unimplemented MMIO. Maybe a command line option or something could turn it off? It should probably be a QEMU-wide option if so, so that shouldn't hold this series up, I can propose a option for that if anybody is worried about it. In any case this seems to work. I have only implemented it for books 64-bit for now because I'm not sure what all the others do. I could try to investigate it if there is interest. I took Zoltan's patch and tweaked it slightly (hopefully that's okay). Also made a better checkstop while we're here because the old one really doesn't work. Thanks, Nick BALATON Zoltan (1): target/ppc: Move common check in machne check handlers to a function Nicholas Piggin (3): target/ppc: Machine check on invalid real address access target/ppc: Add POWER9/10 invalid-real machine check codes target/ppc: Make checkstop stop the system target/ppc/cpu_init.c | 1 + target/ppc/excp_helper.c | 178 +++++++++++++++++++-------------------- target/ppc/internal.h | 5 ++ 3 files changed, 95 insertions(+), 89 deletions(-) -- 2.40.1