qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 18/29] target-sparc: use SparcV9MMU type for spa


From: Artyom Tarasenko
Subject: Re: [Qemu-devel] [PATCH 18/29] target-sparc: use SparcV9MMU type for sparc64 I/D-MMUs
Date: Tue, 11 Oct 2016 15:56:53 +0200

On Mon, Oct 10, 2016 at 10:13 PM, Richard Henderson <address@hidden> wrote:
> On 10/01/2016 05:05 AM, Artyom Tarasenko wrote:
>>
>> -    //typedef struct SparcMMU
>> -    union {
>> -        uint64_t immuregs[16];
>> -        struct {
>> -            uint64_t tsb_tag_target;
>> -            uint64_t unused_mmu_primary_context;   // use DMMU
>> -            uint64_t unused_mmu_secondary_context; // use DMMU
>> -            uint64_t sfsr;
>> -            uint64_t sfar;
>> -            uint64_t tsb;
>> -            uint64_t tag_access;
>> -            uint64_t virtual_watchpoint;
>> -            uint64_t physical_watchpoint;
>> -        } immu;
>> -    };
>> -    union {
>> -        uint64_t dmmuregs[16];
>> -        struct {
>> -            uint64_t tsb_tag_target;
>> -            uint64_t mmu_primary_context;
>> -            uint64_t mmu_secondary_context;
>> -            uint64_t sfsr;
>> -            uint64_t sfar;
>> -            uint64_t tsb;
>> -            uint64_t tag_access;
>> -            uint64_t virtual_watchpoint;
>> -            uint64_t physical_watchpoint;
>> -        } dmmu;
>> -    };
>> +    SparcV9MMU immu;
>> +    SparcV9MMU dmmu;
>
>
> You'll find this broke sparc64-linux-user.  You'll need
>
> diff --git a/linux-user/main.c b/linux-user/main.c
> index bb48260..b1f1347 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -1163,7 +1163,7 @@ void cpu_loop (CPUSPARCState *env)
>                  /* XXX: check env->error_code */
>                  info.si_code = TARGET_SEGV_MAPERR;
>                  if (trapnr == TT_DFAULT)
> -                    info._sifields._sigfault._addr = env->dmmuregs[4];
> +                    info._sifields._sigfault._addr = env->dmmu.mmuregs[4];
>                  else
>                      info._sifields._sigfault._addr = cpu_tsptr(env)->tpc;
>                  queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
>

Will add this. Thanks!


-- 
Regards,
Artyom Tarasenko

SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu



reply via email to

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