On Wed, 19 Jan 2022 at 04:03, Alexey Kardashevskiy <a...@ozlabs.ru> wrote:
>
>
>
> On 1/17/22 03:45, Peter Maydell wrote:
> > On Fri, 7 Jan 2022 at 07:29, Alexey Kardashevskiy <a...@ozlabs.ru> wrote:
> >>
> >> "PowerPC Processor binding to IEEE 1275" says in
> >> "8.2.1. Initial Register Values" that the initial state is defined as
> >> 32bit so do it for both SLOF and VOF.
> >>
> >> This should not cause behavioral change as SLOF switches to 64bit very
> >> early anyway. As nothing enforces LE anywhere, this drops it for VOF.
> >>
> >> The goal is to make VOF work with TCG as otherwise it barfs with
> >> qemu: fatal: TCG hflags mismatch (current:0x6c000004 rebuilt:0x6c000000)
> >
> > If you get this assert it means that something is changing
> > the CPU state and not calling the function to recalculate
> > the hflags (which are basically caching part of the CPU state).
> > So I don't know whether this patch is correct or not in updating
> > MSR bits, but in any case I think it is only masking the
> > missing-hflags-update that is causing the assertion...
>
>
> If we emulate a bare metal machine, then most likely we want MSR_SF
> (==64bit) set. But this particular case is paravirtual pseries/spapr and
> it requires special handling so spapr_reset_vcpu() seems to be the right
> place.

That may be so, but my point remains: if you are getting hflags
mismatch asserts then something is failing to recalculate the
hflags after updating CPU state.

-- PMM

Reply via email to