Revision 1c27f8fb

b/target-ppc/helper.c
2792 2792
    msr_fp = 1; /* Allow floating point exceptions */
2793 2793
    msr_pr = 1;
2794 2794
#else
2795
#if defined(TARGET_PPC64)
2796
    env->nip = 0x00000100;
2797
#else
2798
    env->nip = 0xFFFFFFFC;
2799
#endif
2795
    env->nip = env->hreset_vector | env->excp_prefix;
2800 2796
    ppc_tlb_invalidate_all(env);
2801 2797
#endif
2802 2798
    do_compute_hflags(env);
b/target-ppc/translate_init.c
2235 2235
    env->excp_prefix = 0x00000000;
2236 2236
    env->ivor_mask = 0x0000FFF0;
2237 2237
    env->ivpr_mask = 0xFFFF0000;
2238
    /* Hardware reset vector */
2239
    env->hreset_vector = 0xFFFFFFFCUL;
2238 2240
#endif
2239 2241
}
2240 2242

  
......
2258 2260
    env->excp_prefix = 0x00000000;
2259 2261
    env->ivor_mask = 0x0000FFF0;
2260 2262
    env->ivpr_mask = 0xFFFF0000;
2263
    /* Hardware reset vector */
2264
    env->hreset_vector = 0xFFFFFFFCUL;
2261 2265
#endif
2262 2266
}
2263 2267

  
......
2283 2287
    env->excp_prefix = 0x00000000;
2284 2288
    env->ivor_mask = 0x0000FFE0;
2285 2289
    env->ivpr_mask = 0xFFFF0000;
2290
    /* Hardware reset vector */
2291
    env->hreset_vector = 0xFFFFFFFCUL;
2286 2292
#endif
2287 2293
}
2288 2294

  
......
2302 2308
    env->excp_vectors[POWERPC_EXCP_SYSCALL]  = 0x00000C00;
2303 2309
    env->excp_vectors[POWERPC_EXCP_RUNM]     = 0x00002000;
2304 2310
    env->excp_prefix = 0xFFF00000;
2311
    /* Hardware reset vector */
2312
    env->hreset_vector = 0xFFFFFFFCUL;
2305 2313
#endif
2306 2314
}
2307 2315

  
......
2328 2336
    env->excp_vectors[POWERPC_EXCP_WDT]      = 0x00001500;
2329 2337
    env->excp_vectors[POWERPC_EXCP_EMUL]     = 0x00001600;
2330 2338
    env->excp_prefix = 0xFFF00000;
2339
    /* Hardware reset vector */
2340
    env->hreset_vector = 0xFFFFFFFCUL;
2331 2341
#endif
2332 2342
}
2333 2343

  
......
2350 2360
    env->excp_vectors[POWERPC_EXCP_DSTLB]    = 0x00001200;
2351 2361
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2352 2362
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2363
    /* Hardware reset vector */
2364
    env->hreset_vector = 0xFFFFFFFCUL;
2353 2365
#endif
2354 2366
}
2355 2367

  
......
2373 2385
    env->excp_vectors[POWERPC_EXCP_DSTLB]    = 0x00001200;
2374 2386
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2375 2387
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2388
    /* Hardware reset vector */
2389
    env->hreset_vector = 0xFFFFFFFCUL;
2376 2390
#endif
2377 2391
}
2378 2392

  
......
2393 2407
    env->excp_vectors[POWERPC_EXCP_PERFM]    = 0x00000F00;
2394 2408
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2395 2409
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2410
    /* Hardware reset vector */
2411
    env->hreset_vector = 0xFFFFFFFCUL;
2396 2412
#endif
2397 2413
}
2398 2414

  
......
2415 2431
    env->excp_vectors[POWERPC_EXCP_PERFM]    = 0x00000F00;
2416 2432
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2417 2433
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2434
    /* Hardware reset vector */
2435
    env->hreset_vector = 0x0000000000000100ULL; /* ? */
2418 2436
#endif
2419 2437
}
2420 2438
#endif /* defined(TARGET_PPC64) */
......
2436 2454
    env->excp_vectors[POWERPC_EXCP_PERFM]    = 0x00000F00;
2437 2455
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2438 2456
    env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700;
2457
    /* Hardware reset vector */
2458
    env->hreset_vector = 0xFFFFFFFCUL;
2439 2459
#endif
2440 2460
}
2441 2461

  
......
2457 2477
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2458 2478
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2459 2479
    env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700;
2480
    /* Hardware reset vector */
2481
    env->hreset_vector = 0xFFFFFFFCUL;
2460 2482
#endif
2461 2483
}
2462 2484

  
......
2480 2502
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2481 2503
    env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600;
2482 2504
    env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700;
2505
    /* Hardware reset vector */
2506
    env->hreset_vector = 0xFFFFFFFCUL;
2483 2507
#endif
2484 2508
}
2485 2509

  
......
2505 2529
    env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300;
2506 2530
    env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400;
2507 2531
    env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600;
2532
    /* Hardware reset vector */
2533
    env->hreset_vector = 0xFFFFFFFCUL;
2508 2534
#endif
2509 2535
}
2510 2536

  
......
2534 2560
    env->excp_vectors[POWERPC_EXCP_MAINT]    = 0x00001600;
2535 2561
    env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001700;
2536 2562
    env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001800;
2563
    /* Hardware reset vector */
2564
    env->hreset_vector = 0x0000000000000100ULL;
2537 2565
#endif
2538 2566
}
2539 2567
#endif
......
2564 2592
    env->icache_line_size = 32;
2565 2593
    /* Allocate hardware IRQ controller */
2566 2594
    ppc40x_irq_init(env);
2567
#if !defined(CONFIG_USER_ONLY)
2568
    /* Hardware reset vector */
2569
    env->hreset_vector = 0xFFFFFFFCUL;
2570
#endif
2571 2595
}
2572 2596

  
2573 2597
/* PowerPC 401x2                                                             */
......
2597 2621
    env->icache_line_size = 32;
2598 2622
    /* Allocate hardware IRQ controller */
2599 2623
    ppc40x_irq_init(env);
2600
#if !defined(CONFIG_USER_ONLY)
2601
    /* Hardware reset vector */
2602
    env->hreset_vector = 0xFFFFFFFCUL;
2603
#endif
2604 2624
}
2605 2625

  
2606 2626
/* PowerPC 401x3                                                             */
......
2628 2648
    env->icache_line_size = 32;
2629 2649
    /* Allocate hardware IRQ controller */
2630 2650
    ppc40x_irq_init(env);
2631
#if !defined(CONFIG_USER_ONLY)
2632
    /* Hardware reset vector */
2633
    env->hreset_vector = 0xFFFFFFFCUL;
2634
#endif
2635 2651
}
2636 2652

  
2637 2653
/* IOP480                                                                    */
......
2661 2677
    env->icache_line_size = 32;
2662 2678
    /* Allocate hardware IRQ controller */
2663 2679
    ppc40x_irq_init(env);
2664
#if !defined(CONFIG_USER_ONLY)
2665
    /* Hardware reset vector */
2666
    env->hreset_vector = 0xFFFFFFFCUL;
2667
#endif
2668 2680
}
2669 2681

  
2670 2682
/* PowerPC 403                                                               */
......
2733 2745
    env->icache_line_size = 32;
2734 2746
    /* Allocate hardware IRQ controller */
2735 2747
    ppc40x_irq_init(env);
2736
#if !defined(CONFIG_USER_ONLY)
2737
    /* Hardware reset vector */
2738
    env->hreset_vector = 0xFFFFFFFCUL;
2739
#endif
2740 2748
}
2741 2749

  
2742 2750
/* PowerPC 405                                                               */
......
2777 2785
    env->icache_line_size = 32;
2778 2786
    /* Allocate hardware IRQ controller */
2779 2787
    ppc40x_irq_init(env);
2780
#if !defined(CONFIG_USER_ONLY)
2781
    /* Hardware reset vector */
2782
    env->hreset_vector = 0xFFFFFFFCUL;
2783
#endif
2784 2788
}
2785 2789

  
2786 2790
/* PowerPC 440 EP                                                            */
......
2826 2830
    env->dcache_line_size = 32;
2827 2831
    env->icache_line_size = 32;
2828 2832
    /* XXX: TODO: allocate internal IRQ controller */
2829
#if !defined(CONFIG_USER_ONLY)
2830
    /* Hardware reset vector */
2831
    env->hreset_vector = 0xFFFFFFFCUL;
2832
#endif
2833 2833
}
2834 2834

  
2835 2835
/* PowerPC 440 GP                                                            */
......
2857 2857
    env->dcache_line_size = 32;
2858 2858
    env->icache_line_size = 32;
2859 2859
    /* XXX: TODO: allocate internal IRQ controller */
2860
#if !defined(CONFIG_USER_ONLY)
2861
    /* Hardware reset vector */
2862
    env->hreset_vector = 0xFFFFFFFCUL;
2863
#endif
2864 2860
}
2865 2861

  
2866 2862
/* PowerPC 440x4                                                             */
......
2889 2885
    env->dcache_line_size = 32;
2890 2886
    env->icache_line_size = 32;
2891 2887
    /* XXX: TODO: allocate internal IRQ controller */
2892
#if !defined(CONFIG_USER_ONLY)
2893
    /* Hardware reset vector */
2894
    env->hreset_vector = 0xFFFFFFFCUL;
2895
#endif
2896 2888
}
2897 2889

  
2898 2890
/* PowerPC 440x5                                                             */
......
2938 2930
    env->dcache_line_size = 32;
2939 2931
    env->icache_line_size = 32;
2940 2932
    /* XXX: TODO: allocate internal IRQ controller */
2941
#if !defined(CONFIG_USER_ONLY)
2942
    /* Hardware reset vector */
2943
    env->hreset_vector = 0xFFFFFFFCUL;
2944
#endif
2945 2933
}
2946 2934

  
2947 2935
/* PowerPC 460 (guessed)                                                     */
......
2993 2981
    env->dcache_line_size = 32;
2994 2982
    env->icache_line_size = 32;
2995 2983
    /* XXX: TODO: allocate internal IRQ controller */
2996
#if !defined(CONFIG_USER_ONLY)
2997
    /* Hardware reset vector */
2998
    env->hreset_vector = 0xFFFFFFFCUL;
2999
#endif
3000 2984
}
3001 2985

  
3002 2986
/* PowerPC 460F (guessed)                                                    */
......
3051 3035
    env->dcache_line_size = 32;
3052 3036
    env->icache_line_size = 32;
3053 3037
    /* XXX: TODO: allocate internal IRQ controller */
3054
#if !defined(CONFIG_USER_ONLY)
3055
    /* Hardware reset vector */
3056
    env->hreset_vector = 0xFFFFFFFCUL;
3057
#endif
3058 3038
}
3059 3039

  
3060 3040
/* Generic BookE PowerPC                                                     */
......
3077 3057
    init_excp_BookE(env);
3078 3058
    env->dcache_line_size = 32;
3079 3059
    env->icache_line_size = 32;
3080
#if !defined(CONFIG_USER_ONLY)
3081
    /* Hardware reset vector */
3082
    env->hreset_vector = 0xFFFFFFFCUL;
3083
#endif
3084 3060
}
3085 3061

  
3086 3062
/* e200 core                                                                 */
......
3112 3088
    env->dcache_line_size = 32;
3113 3089
    env->icache_line_size = 32;
3114 3090
    /* XXX: TODO: allocate internal IRQ controller */
3115
#if !defined(CONFIG_USER_ONLY)
3116
    /* Hardware reset vector */
3117
    env->hreset_vector = 0xFFFFFFFCUL;
3118
#endif
3119 3091
}
3120 3092

  
3121 3093
/* e600 core                                                                 */
......
3185 3157
    env->dcache_line_size = 64;
3186 3158
    env->icache_line_size = 64;
3187 3159
    /* XXX: TODO: allocate internal IRQ controller */
3188
#if !defined(CONFIG_USER_ONLY)
3189
    /* Hardware reset vector */
3190
    env->hreset_vector = 0xFFFFFFFCUL;
3191
#endif
3192 3160
}
3193 3161

  
3194 3162
/* PowerPC 602                                                               */
......
3228 3196
    env->icache_line_size = 32;
3229 3197
    /* Allocate hardware IRQ controller */
3230 3198
    ppc6xx_irq_init(env);
3231
#if !defined(CONFIG_USER_ONLY)
3232
    /* Hardware reset vector */
3233
    env->hreset_vector = 0xFFFFFFFCUL;
3234
#endif
3235 3199
}
3236 3200

  
3237 3201
/* PowerPC 603                                                               */
......
3267 3231
    env->icache_line_size = 32;
3268 3232
    /* Allocate hardware IRQ controller */
3269 3233
    ppc6xx_irq_init(env);
3270
#if !defined(CONFIG_USER_ONLY)
3271
    /* Hardware reset vector */
3272
    env->hreset_vector = 0xFFFFFFFCUL;
3273
#endif
3274 3234
}
3275 3235

  
3276 3236
/* PowerPC 603e                                                              */
......
3311 3271
    env->icache_line_size = 32;
3312 3272
    /* Allocate hardware IRQ controller */
3313 3273
    ppc6xx_irq_init(env);
3314
#if !defined(CONFIG_USER_ONLY)
3315
    /* Hardware reset vector */
3316
    env->hreset_vector = 0xFFFFFFFCUL;
3317
#endif
3318 3274
}
3319 3275

  
3320 3276
/* PowerPC G2                                                                */
......
3357 3313
    env->icache_line_size = 32;
3358 3314
    /* Allocate hardware IRQ controller */
3359 3315
    ppc6xx_irq_init(env);
3360
#if !defined(CONFIG_USER_ONLY)
3361
    /* Hardware reset vector */
3362
    env->hreset_vector = 0xFFFFFFFCUL;
3363
#endif
3364 3316
}
3365 3317

  
3366 3318
/* PowerPC G2LE                                                              */
......
3403 3355
    env->icache_line_size = 32;
3404 3356
    /* Allocate hardware IRQ controller */
3405 3357
    ppc6xx_irq_init(env);
3406
#if !defined(CONFIG_USER_ONLY)
3407
    /* Hardware reset vector */
3408
    env->hreset_vector = 0xFFFFFFFCUL;
3409
#endif
3410 3358
}
3411 3359

  
3412 3360
/* PowerPC 604                                                               */
......
3441 3389
    env->icache_line_size = 32;
3442 3390
    /* Allocate hardware IRQ controller */
3443 3391
    ppc6xx_irq_init(env);
3444
#if !defined(CONFIG_USER_ONLY)
3445
    /* Hardware reset vector */
3446
    env->hreset_vector = 0xFFFFFFFCUL;
3447
#endif
3448 3392
}
3449 3393

  
3450 3394
/* PowerPC 740/750 (aka G3)                                                  */
......
3481 3425
    env->icache_line_size = 32;
3482 3426
    /* Allocate hardware IRQ controller */
3483 3427
    ppc6xx_irq_init(env);
3484
#if !defined(CONFIG_USER_ONLY)
3485
    /* Hardware reset vector */
3486
    env->hreset_vector = 0xFFFFFFFCUL;
3487
#endif
3488 3428
}
3489 3429

  
3490 3430
/* PowerPC 750FX/GX                                                          */
......
3528 3468
    env->icache_line_size = 32;
3529 3469
    /* Allocate hardware IRQ controller */
3530 3470
    ppc6xx_irq_init(env);
3531
#if !defined(CONFIG_USER_ONLY)
3532
    /* Hardware reset vector */
3533
    env->hreset_vector = 0xFFFFFFFCUL;
3534
#endif
3535 3471
}
3536 3472

  
3537 3473
/* PowerPC 745/755                                                           */
......
3579 3515
    gen_low_BATs(env);
3580 3516
    gen_high_BATs(env);
3581 3517
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3518
    /* XXX: exception vectors ? */
3582 3519
    env->dcache_line_size = 32;
3583 3520
    env->icache_line_size = 32;
3584 3521
    /* Allocate hardware IRQ controller */
......
3616 3553
    env->icache_line_size = 32;
3617 3554
    /* Allocate hardware IRQ controller */
3618 3555
    ppc6xx_irq_init(env);
3619
#if !defined(CONFIG_USER_ONLY)
3620
    /* Hardware reset vector */
3621
    env->hreset_vector = 0xFFFFFFFCUL;
3622
#endif
3623 3556
}
3624 3557

  
3625 3558
/* PowerPC 7410 (aka G4)                                                     */
......
3661 3594
    env->icache_line_size = 32;
3662 3595
    /* Allocate hardware IRQ controller */
3663 3596
    ppc6xx_irq_init(env);
3664
#if !defined(CONFIG_USER_ONLY)
3665
    /* Hardware reset vector */
3666
    env->hreset_vector = 0xFFFFFFFCUL;
3667
#endif
3668 3597
}
3669 3598

  
3670 3599
/* PowerPC 7440 (aka G4)                                                     */
......
3728 3657
    /* Memory management */
3729 3658
    gen_low_BATs(env);
3730 3659
    gen_74xx_soft_tlb(env, 128, 2);
3660
    init_excp_7450(env);
3731 3661
    env->dcache_line_size = 32;
3732 3662
    env->icache_line_size = 32;
3733 3663
    /* Allocate hardware IRQ controller */
3734 3664
    ppc6xx_irq_init(env);
3735
#if !defined(CONFIG_USER_ONLY)
3736
    /* Hardware reset vector */
3737
    env->hreset_vector = 0xFFFFFFFCUL;
3738
#endif
3739 3665
}
3740 3666

  
3741 3667
/* PowerPC 7450 (aka G4)                                                     */
......
3806 3732
    env->icache_line_size = 32;
3807 3733
    /* Allocate hardware IRQ controller */
3808 3734
    ppc6xx_irq_init(env);
3809
#if !defined(CONFIG_USER_ONLY)
3810
    /* Hardware reset vector */
3811
    env->hreset_vector = 0xFFFFFFFCUL;
3812
#endif
3813 3735
}
3814 3736

  
3815 3737
/* PowerPC 7445 (aka G4)                                                     */
......
3912 3834
    env->icache_line_size = 32;
3913 3835
    /* Allocate hardware IRQ controller */
3914 3836
    ppc6xx_irq_init(env);
3915
#if !defined(CONFIG_USER_ONLY)
3916
    /* Hardware reset vector */
3917
    env->hreset_vector = 0xFFFFFFFCUL;
3918
#endif
3919 3837
}
3920 3838

  
3921 3839
/* PowerPC 7455 (aka G4)                                                     */
......
4020 3938
    env->icache_line_size = 32;
4021 3939
    /* Allocate hardware IRQ controller */
4022 3940
    ppc6xx_irq_init(env);
4023
#if !defined(CONFIG_USER_ONLY)
4024
    /* Hardware reset vector */
4025
    env->hreset_vector = 0xFFFFFFFCUL;
4026
#endif
4027 3941
}
4028 3942

  
4029 3943
#if defined (TARGET_PPC64)
......
4084 3998
    env->icache_line_size = 128;
4085 3999
    /* Allocate hardware IRQ controller */
4086 4000
    ppc970_irq_init(env);
4087
#if !defined(CONFIG_USER_ONLY)
4088
    /* Hardware reset vector */
4089
    env->hreset_vector = 0x0000000000000100ULL;
4090
#endif
4091 4001
}
4092 4002

  
4093 4003
/* PowerPC 970FX (aka G5)                                                    */
......
4143 4053
    env->icache_line_size = 128;
4144 4054
    /* Allocate hardware IRQ controller */
4145 4055
    ppc970_irq_init(env);
4146
#if !defined(CONFIG_USER_ONLY)
4147
    /* Hardware reset vector */
4148
    env->hreset_vector = 0x0000000000000100ULL;
4149
#endif
4150 4056
}
4151 4057

  
4152 4058
/* PowerPC 970 GX                                                            */
......
4202 4108
    env->icache_line_size = 128;
4203 4109
    /* Allocate hardware IRQ controller */
4204 4110
    ppc970_irq_init(env);
4205
#if !defined(CONFIG_USER_ONLY)
4206
    /* Hardware reset vector */
4207
    env->hreset_vector = 0x0000000000000100ULL;
4208
#endif
4209 4111
}
4210 4112

  
4211 4113
/* PowerPC 620                                                               */
......
4237 4139
    env->dcache_line_size = 64;
4238 4140
    env->icache_line_size = 64;
4239 4141
    /* XXX: TODO: initialize internal interrupt controller */
4240
#if !defined(CONFIG_USER_ONLY)
4241
    /* Hardware reset vector */
4242
    env->hreset_vector = 0x0000000000000100ULL; /* ? */
4243
#endif
4244 4142
}
4245 4143
#endif /* defined (TARGET_PPC64) */
4246 4144

  

Also available in: Unified diff