7400,7410,7450 cpus vector have wrong exception prefix at reset
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
I have a proprietary ROM implementing system calls that are executed via the 'SC' instruction.
I use qemu-0.14.1,
qemu-system-ppc -M prep -cpu $CPU -bios my_bios -kernel my_kernel
That works fine on a 604 (CPU=0x00040103) - but does not on an emulated 7400 (CPU=0x000c0209) or 7450 (CPU=0x80000201). I found that the emulator jumps to 0x00000c00 instead of 0xfff00c00.
Probably this is due to a wrong setting in target-
init_excp_604() correctly sets env->hreset_
but
init_excp_7400() says env->hreset_
which seems wrong. (the 7400 manual says a hard-reset jumps initializes the
prefix to 0xfff00000.)
Likewise, init_excp_7450() (and probably other, related CPUs) are wrong.
Indeed, when I change the value in init_excp_7400() to 0xfff00000UL then
everything works as expected for me.
tags: | added: exceptions ppc |
Hi,
Am 16.07.2011 um 23:49 schrieb till:
> I have a proprietary ROM implementing system calls that are executed vector= 0xfff00000UL; vector= 0x00000000UL;
> via
> the 'SC' instruction.
>
> I use qemu-0.14.1,
>
> qemu-system-ppc -M prep -cpu $CPU -bios my_bios -kernel my_kernel
>
> That works fine on a 604 (CPU=0x00040103) - but does not on an
> emulated 7400 (CPU=0x000c0209) or 7450 (CPU=0x80000201). I found
> that the emulator jumps to 0x00000c00 instead of 0xfff00c00.
> Probably this is due to a wrong setting in target-ppc/
> translate_init.c:
>
> init_excp_604() correctly sets env->hreset_
>
> but
>
> init_excp_7400() says env->hreset_
>
> which seems wrong. (the 7400 manual says a hard-reset jumps
> initializes the
> prefix to 0xfff00000.)
Do you have a link to a spec saying so? Should be trivial to change
then.
> Likewise, init_excp_7450() (and probably other, related CPUs) are
> wrong.
>
> Indeed, when I change the value in init_excp_7400() to 0xfff00000UL
> then
> everything works as expected for me.
>
> ** Affects: qemu
> Importance: Undecided
> Status: New
> Bug description:
> I have a proprietary ROM implementing system calls that are executed
> via the 'SC' instruction.
>
> I use qemu-0.14.1,
>
> qemu-system-ppc -M prep -cpu $CPU -bios my_bios -kernel my_kernel
We are currently in the process of revamping the PReP machine you are
using above. Is your BIOS available publicly so that we can test we
don't break anything for you?
Andreas