Commit 1c27f8fbfead8f5ff12da6946436fe35c6adcac4
1 parent
1192dad8
PowerPC hardware reset vector is now considered as part of the exception model.
Use it at CPU initialisation time. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3332 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
31 additions
and
137 deletions
target-ppc/helper.c
... | ... | @@ -2792,11 +2792,7 @@ void cpu_ppc_reset (void *opaque) |
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); | ... | ... |
target-ppc/translate_init.c
... | ... | @@ -2235,6 +2235,8 @@ static void init_excp_4xx_real (CPUPPCState *env) |
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,6 +2260,8 @@ static void init_excp_4xx_softmmu (CPUPPCState *env) |
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,6 +2287,8 @@ static void init_excp_BookE (CPUPPCState *env) |
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,6 +2308,8 @@ static void init_excp_601 (CPUPPCState *env) |
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,6 +2336,8 @@ static void init_excp_602 (CPUPPCState *env) |
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,6 +2360,8 @@ static void init_excp_603 (CPUPPCState *env) |
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,6 +2385,8 @@ static void init_excp_G2 (CPUPPCState *env) |
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,6 +2407,8 @@ static void init_excp_604 (CPUPPCState *env) |
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,6 +2431,8 @@ static void init_excp_620 (CPUPPCState *env) |
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,6 +2454,8 @@ static void init_excp_7x0 (CPUPPCState *env) |
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,6 +2477,8 @@ static void init_excp_750FX (CPUPPCState *env) |
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,6 +2502,8 @@ static void init_excp_7400 (CPUPPCState *env) |
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,6 +2529,8 @@ static void init_excp_7450 (CPUPPCState *env) |
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,6 +2560,8 @@ static void init_excp_970 (CPUPPCState *env) |
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,10 +2592,6 @@ static void init_proc_401 (CPUPPCState *env) |
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,10 +2621,6 @@ static void init_proc_401x2 (CPUPPCState *env) |
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,10 +2648,6 @@ static void init_proc_401x3 (CPUPPCState *env) |
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,10 +2677,6 @@ static void init_proc_IOP480 (CPUPPCState *env) |
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,10 +2745,6 @@ static void init_proc_403GCX (CPUPPCState *env) |
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,10 +2785,6 @@ static void init_proc_405 (CPUPPCState *env) |
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,10 +2830,6 @@ static void init_proc_440EP (CPUPPCState *env) |
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,10 +2857,6 @@ static void init_proc_440GP (CPUPPCState *env) |
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,10 +2885,6 @@ static void init_proc_440x4 (CPUPPCState *env) |
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,10 +2930,6 @@ static void init_proc_440x5 (CPUPPCState *env) |
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,10 +2981,6 @@ static void init_proc_460 (CPUPPCState *env) |
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,10 +3035,6 @@ static void init_proc_460F (CPUPPCState *env) |
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,10 +3057,6 @@ static void init_proc_BookE (CPUPPCState *env) |
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,10 +3088,6 @@ static void init_proc_e500 (CPUPPCState *env) |
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,10 +3157,6 @@ static void init_proc_601 (CPUPPCState *env) |
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,10 +3196,6 @@ static void init_proc_602 (CPUPPCState *env) |
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,10 +3231,6 @@ static void init_proc_603 (CPUPPCState *env) |
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,10 +3271,6 @@ static void init_proc_603E (CPUPPCState *env) |
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,10 +3313,6 @@ static void init_proc_G2 (CPUPPCState *env) |
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,10 +3355,6 @@ static void init_proc_G2LE (CPUPPCState *env) |
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,10 +3389,6 @@ static void init_proc_604 (CPUPPCState *env) |
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,10 +3425,6 @@ static void init_proc_7x0 (CPUPPCState *env) |
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,10 +3468,6 @@ static void init_proc_750fx (CPUPPCState *env) |
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,6 +3515,7 @@ static void init_proc_7x5 (CPUPPCState *env) |
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,10 +3553,6 @@ static void init_proc_7400 (CPUPPCState *env) |
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,10 +3594,6 @@ static void init_proc_7410 (CPUPPCState *env) |
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,14 +3657,11 @@ static void init_proc_7440 (CPUPPCState *env) |
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,10 +3732,6 @@ static void init_proc_7450 (CPUPPCState *env) |
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,10 +3834,6 @@ static void init_proc_7445 (CPUPPCState *env) |
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,10 +3938,6 @@ static void init_proc_7455 (CPUPPCState *env) |
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,10 +3998,6 @@ static void init_proc_970 (CPUPPCState *env) |
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,10 +4053,6 @@ static void init_proc_970FX (CPUPPCState *env) |
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,10 +4108,6 @@ static void init_proc_970GX (CPUPPCState *env) |
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,10 +4139,6 @@ static void init_proc_620 (CPUPPCState *env) |
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 | ... | ... |