Revision e9cd84b9

b/target-ppc/translate_init.c
2804 2804
#endif
2805 2805
}
2806 2806

  
2807
static void init_excp_e200 (CPUPPCState *env)
2807
static void init_excp_e200(CPUPPCState *env, target_ulong ivpr_mask)
2808 2808
{
2809 2809
#if !defined(CONFIG_USER_ONLY)
2810 2810
    env->excp_vectors[POWERPC_EXCP_RESET]    = 0x00000FFC;
......
2829 2829
    env->excp_vectors[POWERPC_EXCP_EFPRI]    = 0x00000000;
2830 2830
    env->hreset_excp_prefix = 0x00000000UL;
2831 2831
    env->ivor_mask = 0x0000FFF7UL;
2832
    env->ivpr_mask = 0xFFFF0000UL;
2832
    env->ivpr_mask = ivpr_mask;
2833 2833
    /* Hardware reset vector */
2834 2834
    env->hreset_vector = 0xFFFFFFFCUL;
2835 2835
#endif
......
4307 4307
    env->id_tlbs = 0;
4308 4308
    env->tlb_type = TLB_EMB;
4309 4309
#endif
4310
    init_excp_e200(env);
4310
    init_excp_e200(env, 0xFFFF0000UL);
4311 4311
    env->dcache_line_size = 32;
4312 4312
    env->icache_line_size = 32;
4313 4313
    /* XXX: TODO: allocate internal IRQ controller */
......
4434 4434
{
4435 4435
    uint32_t tlbncfg[2];
4436 4436
    uint64_t ivor_mask = 0x0000000F0000FFFFULL;
4437
    uint64_t ivpr_mask = 0xFFFF0000ULL;
4437 4438
    uint32_t l1cfg0 = 0x3800  /* 8 ways */
4438 4439
                    | 0x0020; /* 32 kb */
4439 4440
#if !defined(CONFIG_USER_ONLY)
......
4575 4576
    }
4576 4577
#endif
4577 4578

  
4578
    init_excp_e200(env);
4579
    init_excp_e200(env, ivpr_mask);
4579 4580
    /* Allocate hardware IRQ controller */
4580 4581
    ppce500_irq_init(env);
4581 4582
}

Also available in: Unified diff