[OpenBIOS] [PATCH] ppc: fix ESCC reg properties

Segher Boessenkool segher at kernel.crashing.org
Thu Feb 4 01:40:02 CET 2016


On Wed, Feb 03, 2016 at 03:36:52PM -0500, Programmingkid wrote:
> > Trying to write invalid spr 0 (0x000) at 00f113c0
> > Trying to read invalid spr 0 (0x000) at 00f113c8

This is normal (it's a 601 SPR, Mac OS always writes that, and it catches
the CPU exception).

> > invalid/unsupported opcode: 1f - 07 - 02 (7c00488e) 00f113dc 0
> > invalid/unsupported opcode: 1f - 07 - 06 (7c00498e) 00f113e4 0

lvewx and stvewx, VMX insns, same thing.

> > Trying to write privileged spr 955 (0x3bb) at 00f168c8

SIAR

> > Trying to write invalid spr 959 (0x3bf) at 00f16930
> > Trying to read invalid spr 959 (0x3bf) at 00f16938

SDAR

> > Trying to write invalid spr 944 (0x3b0) at 00f1694c
> > Trying to read invalid spr 944 (0x3b0) at 00f16954

MMCR2

etc.  Don't worry about it.

> > invalid/unsupported opcode: 13 - 0a - 05 (4f434154) 009e1d10 1

'OCAT', now that is broken.

> > invalid/unsupported opcode: 00 - 00 - 00 (00c10000) 00000000 1
> > invalid/unsupported opcode: 00 - 00 - 00 (00c10000) 00000000 1
> > invalid/unsupported opcode: 00 - 00 - 00 (00000000) 008c0f14 1
> > invalid/unsupported opcode: 00 - 00 - 00 (00000000) 0421b81c 1

Primary opcode 0 is always invalid.

> > qemu: fatal: Trying to execute code outside RAM or ROM at 0xfdfdfdfc
> > 
> > NIP fdfdfdfc   LR fdfdfdfd CTR ffcf0dcc XER 20000100 CPU#0

LR fdfdfdfd is not likely valid ;-)  (the low two bits are masked when
trying to actually jump there, as it did, so you get fdfdfdfc).

> > MSR 0000f032 HID0 00810000  HF 00006000 idx 0
> > TB 00000000 1615152802 DECR 00059059
> > GPR00 00000000fdfdfdfd 00000000ffe55000 000000000004d280 00000000ffffffff

It got it from r0, so probably from the usual epilogue sequence; looks
like a corrupted stack.

> > GPR04 00000000ffffffff 00000000ffffffff 00000000f2ffc048 00000000f4ffc048
> > GPR08 0000000000ffc048 00000000f0ffc048 00000000ffffffff 00000000f6ffc048
> > GPR12 00000000fcffc048 0000000068fff400 0000000000004e94 000000000bb957ea
> > GPR16 000000003f3f3f3f 0000000000000001 0000000053680000 0000000000000000
> > GPR20 0000000000000001 0000000000000005 000000000bb8d12c 0000000000006807
> > GPR24 000000000004ccf0 000000000bb8d130 0000000000084d38 00000000009d0eb8
> > GPR28 0000000000084d38 00000000ffffffff 00000000fdfdfdfd 000000000000fdfd

It is also in r30.

> > SRR0 fdfdfdfc  SRR1 4000f032    PVR 00080301 VRSAVE 00000000
> > SPRG0 0fbfe000 SPRG1 ffe55000  SPRG2 fdfdfdfd  SPRG3 0fbfe420

And in sprg2.

> Is it possible the invalid/unsupported opcode errors are PowerPC instructions that are not implemented?   Or do you think the processor is executing memory it should not be executing? The message "qemu: fatal: Trying to execute code outside RAM or ROM at 0xfdfdfdfc", was it shown when you used your patch? If it was then there is some kind of address calculation error possibly taking place. 


Segher



More information about the OpenBIOS mailing list