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


Reply via email to