qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] 4xx wrtee instructions


From: Aurelien Jarno
Subject: Re: [Qemu-devel] 4xx wrtee instructions
Date: Wed, 14 Jan 2009 20:40:58 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

On Tue, Jan 13, 2009 at 04:04:18PM -0800, Andrew May wrote:
> When I try to boot a PPC 4xx linux kernel it fails somewhere after
> expanding the ramdisk with:
> "qemu: fatal: Trying to execute code outside RAM or ROM at 0xc007c70c"
> 
> It seems that the "wrteei" instruction is unsetting the address
> translate bits in the MSR. This patch seems to fix it, and I think it
> is correct, to and with the "not" of the bit instead of the bit itself
> to disable interrupts.
> 
> The qemu log file doesn't display the correct instructions, but that
> doesn't seem to be a problem.
> ====================
> IN: 
> 0xc000d0cc:  mfmsr      r5
> 0xc000d0d0:  mfspr      r6,945
> 0xc000d0d4:  .long 0x7c000146
> 0xc000d0d8:  mtspr      945,r4
> 0xc000d0dc:  .long 0x7c601f25
> 0xc000d0e0:  mtspr      945,r6
> 0xc000d0e4:  .long 0x7ca00106
> =======================
> 
> Please CC me since I am not on the list.
> 
> Here is the patch.
> ==========
> diff --git a/trunk/target-ppc/translate.c b/trunk/target-ppc/translate.c
> --- a/trunk/target-ppc/translate.c
> +++ b/trunk/target-ppc/translate.c
> @@ -6050,7 +6050,7 @@ GEN_HANDLER(wrteei, 0x1F, 0x03, 0x05, 0x000EFC01, 
> PPC_WRTEE)
>          /* Stop translation to have a chance to raise an exception */
>          gen_stop_exception(ctx);
>      } else {
> -        tcg_gen_andi_tl(cpu_msr, cpu_msr, (1 << MSR_EE));
> +        tcg_gen_andi_tl(cpu_msr, cpu_msr, ~(1 << MSR_EE));
>      }
>  #endif
>  }
> 

Thanks, applied.

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]