Revision d63001d1 target-ppc/translate_init.c

b/target-ppc/translate_init.c
2542 2542
/* PowerPC implementations definitions                                       */
2543 2543

  
2544 2544
/* PowerPC 40x instruction set                                               */
2545
#define POWERPC_INSNS_EMB    (PPC_INSNS_BASE | PPC_EMB_COMMON)
2545
#define POWERPC_INSNS_EMB    (PPC_INSNS_BASE | PPC_CACHE_DCBZ | PPC_EMB_COMMON)
2546 2546

  
2547 2547
/* PowerPC 401                                                               */
2548 2548
#define POWERPC_INSNS_401    (POWERPC_INSNS_EMB |                             \
......
2560 2560
    gen_spr_401_403(env);
2561 2561
    gen_spr_401(env);
2562 2562
    init_excp_4xx_real(env);
2563
    env->dcache_line_size = 32;
2564
    env->icache_line_size = 32;
2563 2565
    /* Allocate hardware IRQ controller */
2564 2566
    ppc40x_irq_init(env);
2567
#if !defined(CONFIG_USER_ONLY)
2568
    /* Hardware reset vector */
2569
    env->hreset_vector = 0xFFFFFFFCUL;
2570
#endif
2565 2571
}
2566 2572

  
2567 2573
/* PowerPC 401x2                                                             */
......
2587 2593
    env->nb_ways = 1;
2588 2594
    env->id_tlbs = 0;
2589 2595
    init_excp_4xx_softmmu(env);
2596
    env->dcache_line_size = 32;
2597
    env->icache_line_size = 32;
2590 2598
    /* Allocate hardware IRQ controller */
2591 2599
    ppc40x_irq_init(env);
2600
#if !defined(CONFIG_USER_ONLY)
2601
    /* Hardware reset vector */
2602
    env->hreset_vector = 0xFFFFFFFCUL;
2603
#endif
2592 2604
}
2593 2605

  
2594 2606
/* PowerPC 401x3                                                             */
......
2612 2624
    gen_spr_401x2(env);
2613 2625
    gen_spr_compress(env);
2614 2626
    init_excp_4xx_softmmu(env);
2627
    env->dcache_line_size = 32;
2628
    env->icache_line_size = 32;
2615 2629
    /* Allocate hardware IRQ controller */
2616 2630
    ppc40x_irq_init(env);
2631
#if !defined(CONFIG_USER_ONLY)
2632
    /* Hardware reset vector */
2633
    env->hreset_vector = 0xFFFFFFFCUL;
2634
#endif
2617 2635
}
2618 2636

  
2619 2637
/* IOP480                                                                    */
......
2639 2657
    env->nb_ways = 1;
2640 2658
    env->id_tlbs = 0;
2641 2659
    init_excp_4xx_softmmu(env);
2660
    env->dcache_line_size = 32;
2661
    env->icache_line_size = 32;
2642 2662
    /* Allocate hardware IRQ controller */
2643 2663
    ppc40x_irq_init(env);
2664
#if !defined(CONFIG_USER_ONLY)
2665
    /* Hardware reset vector */
2666
    env->hreset_vector = 0xFFFFFFFCUL;
2667
#endif
2644 2668
}
2645 2669

  
2646 2670
/* PowerPC 403                                                               */
......
2661 2685
    gen_spr_403(env);
2662 2686
    gen_spr_403_real(env);
2663 2687
    init_excp_4xx_real(env);
2688
    env->dcache_line_size = 32;
2689
    env->icache_line_size = 32;
2664 2690
    /* Allocate hardware IRQ controller */
2665 2691
    ppc40x_irq_init(env);
2692
#if !defined(CONFIG_USER_ONLY)
2693
    /* Hardware reset vector */
2694
    env->hreset_vector = 0xFFFFFFFCUL;
2695
#endif
2666 2696
}
2667 2697

  
2668 2698
/* PowerPC 403 GCX                                                           */
......
2699 2729
    env->nb_ways = 1;
2700 2730
    env->id_tlbs = 0;
2701 2731
    init_excp_4xx_softmmu(env);
2732
    env->dcache_line_size = 32;
2733
    env->icache_line_size = 32;
2702 2734
    /* Allocate hardware IRQ controller */
2703 2735
    ppc40x_irq_init(env);
2736
#if !defined(CONFIG_USER_ONLY)
2737
    /* Hardware reset vector */
2738
    env->hreset_vector = 0xFFFFFFFCUL;
2739
#endif
2704 2740
}
2705 2741

  
2706 2742
/* PowerPC 405                                                               */
......
2737 2773
    env->nb_ways = 1;
2738 2774
    env->id_tlbs = 0;
2739 2775
    init_excp_4xx_softmmu(env);
2776
    env->dcache_line_size = 32;
2777
    env->icache_line_size = 32;
2740 2778
    /* Allocate hardware IRQ controller */
2741 2779
    ppc40x_irq_init(env);
2780
#if !defined(CONFIG_USER_ONLY)
2781
    /* Hardware reset vector */
2782
    env->hreset_vector = 0xFFFFFFFCUL;
2783
#endif
2742 2784
}
2743 2785

  
2744 2786
/* PowerPC 440 EP                                                            */
......
2781 2823
    env->nb_ways = 1;
2782 2824
    env->id_tlbs = 0;
2783 2825
    init_excp_BookE(env);
2826
    env->dcache_line_size = 32;
2827
    env->icache_line_size = 32;
2784 2828
    /* XXX: TODO: allocate internal IRQ controller */
2829
#if !defined(CONFIG_USER_ONLY)
2830
    /* Hardware reset vector */
2831
    env->hreset_vector = 0xFFFFFFFCUL;
2832
#endif
2785 2833
}
2786 2834

  
2787 2835
/* PowerPC 440 GP                                                            */
......
2806 2854
    env->nb_ways = 1;
2807 2855
    env->id_tlbs = 0;
2808 2856
    init_excp_BookE(env);
2857
    env->dcache_line_size = 32;
2858
    env->icache_line_size = 32;
2809 2859
    /* XXX: TODO: allocate internal IRQ controller */
2860
#if !defined(CONFIG_USER_ONLY)
2861
    /* Hardware reset vector */
2862
    env->hreset_vector = 0xFFFFFFFCUL;
2863
#endif
2810 2864
}
2811 2865

  
2812 2866
/* PowerPC 440x4                                                             */
......
2832 2886
    env->nb_ways = 1;
2833 2887
    env->id_tlbs = 0;
2834 2888
    init_excp_BookE(env);
2889
    env->dcache_line_size = 32;
2890
    env->icache_line_size = 32;
2835 2891
    /* XXX: TODO: allocate internal IRQ controller */
2892
#if !defined(CONFIG_USER_ONLY)
2893
    /* Hardware reset vector */
2894
    env->hreset_vector = 0xFFFFFFFCUL;
2895
#endif
2836 2896
}
2837 2897

  
2838 2898
/* PowerPC 440x5                                                             */
......
2875 2935
    env->nb_ways = 1;
2876 2936
    env->id_tlbs = 0;
2877 2937
    init_excp_BookE(env);
2938
    env->dcache_line_size = 32;
2939
    env->icache_line_size = 32;
2878 2940
    /* XXX: TODO: allocate internal IRQ controller */
2941
#if !defined(CONFIG_USER_ONLY)
2942
    /* Hardware reset vector */
2943
    env->hreset_vector = 0xFFFFFFFCUL;
2944
#endif
2879 2945
}
2880 2946

  
2881 2947
/* PowerPC 460 (guessed)                                                     */
......
2924 2990
    env->nb_ways = 1;
2925 2991
    env->id_tlbs = 0;
2926 2992
    init_excp_BookE(env);
2993
    env->dcache_line_size = 32;
2994
    env->icache_line_size = 32;
2927 2995
    /* XXX: TODO: allocate internal IRQ controller */
2996
#if !defined(CONFIG_USER_ONLY)
2997
    /* Hardware reset vector */
2998
    env->hreset_vector = 0xFFFFFFFCUL;
2999
#endif
2928 3000
}
2929 3001

  
2930 3002
/* PowerPC 460F (guessed)                                                    */
......
2976 3048
    env->nb_ways = 1;
2977 3049
    env->id_tlbs = 0;
2978 3050
    init_excp_BookE(env);
3051
    env->dcache_line_size = 32;
3052
    env->icache_line_size = 32;
2979 3053
    /* XXX: TODO: allocate internal IRQ controller */
3054
#if !defined(CONFIG_USER_ONLY)
3055
    /* Hardware reset vector */
3056
    env->hreset_vector = 0xFFFFFFFCUL;
3057
#endif
2980 3058
}
2981 3059

  
2982 3060
/* Generic BookE PowerPC                                                     */
......
2997 3075
static void init_proc_BookE (CPUPPCState *env)
2998 3076
{
2999 3077
    init_excp_BookE(env);
3078
    env->dcache_line_size = 32;
3079
    env->icache_line_size = 32;
3080
#if !defined(CONFIG_USER_ONLY)
3081
    /* Hardware reset vector */
3082
    env->hreset_vector = 0xFFFFFFFCUL;
3083
#endif
3000 3084
}
3001 3085

  
3002 3086
/* e200 core                                                                 */
......
3025 3109
    env->nb_ways = 1;
3026 3110
    env->id_tlbs = 0;
3027 3111
    init_excp_BookE(env);
3112
    env->dcache_line_size = 32;
3113
    env->icache_line_size = 32;
3028 3114
    /* XXX: TODO: allocate internal IRQ controller */
3115
#if !defined(CONFIG_USER_ONLY)
3116
    /* Hardware reset vector */
3117
    env->hreset_vector = 0xFFFFFFFCUL;
3118
#endif
3029 3119
}
3030 3120

  
3031 3121
/* e600 core                                                                 */
......
3038 3128
#define POWERPC_INSNS_WORKS  (POWERPC_INSNS_6xx | PPC_FLOAT_FSQRT |           \
3039 3129
                              PPC_FLOAT_FRES | PPC_FLOAT_FRSQRTE |            \
3040 3130
                              PPC_FLOAT_FSEL | PPC_FLOAT_STFIWX |             \
3041
                              PPC_MEM_TLBSYNC | PPC_MFTB)
3131
                              PPC_MEM_TLBSYNC | PPC_CACHE_DCBZ | PPC_MFTB)
3042 3132

  
3043 3133
/* POWER : same as 601, without mfmsr, mfsr                                  */
3044 3134
#if defined(TODO)
......
3048 3138
#endif /* TODO */
3049 3139

  
3050 3140
/* PowerPC 601                                                               */
3051
#define POWERPC_INSNS_601    (POWERPC_INSNS_6xx | PPC_EXTERN | PPC_POWER_BR)
3141
#define POWERPC_INSNS_601    (POWERPC_INSNS_6xx | PPC_CACHE_DCBZ |            \
3142
                              PPC_EXTERN | PPC_POWER_BR)
3052 3143
#define POWERPC_MSRM_601     (0x000000000000FE70ULL)
3053 3144
//#define POWERPC_MMU_601      (POWERPC_MMU_601)
3054 3145
//#define POWERPC_EXCP_601     (POWERPC_EXCP_601)
......
3091 3182
    env->id_tlbs = 0;
3092 3183
    env->id_tlbs = 0;
3093 3184
    init_excp_601(env);
3185
    env->dcache_line_size = 64;
3186
    env->icache_line_size = 64;
3094 3187
    /* XXX: TODO: allocate internal IRQ controller */
3188
#if !defined(CONFIG_USER_ONLY)
3189
    /* Hardware reset vector */
3190
    env->hreset_vector = 0xFFFFFFFCUL;
3191
#endif
3095 3192
}
3096 3193

  
3097 3194
/* PowerPC 602                                                               */
3098 3195
#define POWERPC_INSNS_602    (POWERPC_INSNS_6xx | PPC_MFTB |                  \
3099 3196
                              PPC_FLOAT_FRES | PPC_FLOAT_FRSQRTE |            \
3100 3197
                              PPC_FLOAT_FSEL | PPC_FLOAT_STFIWX |             \
3101
                              PPC_6xx_TLB | PPC_MEM_TLBSYNC | PPC_602_SPEC)
3198
                              PPC_6xx_TLB | PPC_MEM_TLBSYNC | PPC_CACHE_DCBZ |\
3199
                              PPC_602_SPEC)
3102 3200
#define POWERPC_MSRM_602     (0x000000000033FF73ULL)
3103 3201
#define POWERPC_MMU_602      (POWERPC_MMU_SOFT_6xx)
3104 3202
//#define POWERPC_EXCP_602     (POWERPC_EXCP_602)
......
3126 3224
    gen_low_BATs(env);
3127 3225
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3128 3226
    init_excp_602(env);
3227
    env->dcache_line_size = 32;
3228
    env->icache_line_size = 32;
3129 3229
    /* Allocate hardware IRQ controller */
3130 3230
    ppc6xx_irq_init(env);
3231
#if !defined(CONFIG_USER_ONLY)
3232
    /* Hardware reset vector */
3233
    env->hreset_vector = 0xFFFFFFFCUL;
3234
#endif
3131 3235
}
3132 3236

  
3133 3237
/* PowerPC 603                                                               */
......
3159 3263
    gen_low_BATs(env);
3160 3264
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3161 3265
    init_excp_603(env);
3266
    env->dcache_line_size = 32;
3267
    env->icache_line_size = 32;
3162 3268
    /* Allocate hardware IRQ controller */
3163 3269
    ppc6xx_irq_init(env);
3270
#if !defined(CONFIG_USER_ONLY)
3271
    /* Hardware reset vector */
3272
    env->hreset_vector = 0xFFFFFFFCUL;
3273
#endif
3164 3274
}
3165 3275

  
3166 3276
/* PowerPC 603e                                                              */
......
3197 3307
    gen_low_BATs(env);
3198 3308
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3199 3309
    init_excp_603(env);
3310
    env->dcache_line_size = 32;
3311
    env->icache_line_size = 32;
3200 3312
    /* Allocate hardware IRQ controller */
3201 3313
    ppc6xx_irq_init(env);
3314
#if !defined(CONFIG_USER_ONLY)
3315
    /* Hardware reset vector */
3316
    env->hreset_vector = 0xFFFFFFFCUL;
3317
#endif
3202 3318
}
3203 3319

  
3204 3320
/* PowerPC G2                                                                */
......
3237 3353
    gen_high_BATs(env);
3238 3354
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3239 3355
    init_excp_G2(env);
3356
    env->dcache_line_size = 32;
3357
    env->icache_line_size = 32;
3240 3358
    /* Allocate hardware IRQ controller */
3241 3359
    ppc6xx_irq_init(env);
3360
#if !defined(CONFIG_USER_ONLY)
3361
    /* Hardware reset vector */
3362
    env->hreset_vector = 0xFFFFFFFCUL;
3363
#endif
3242 3364
}
3243 3365

  
3244 3366
/* PowerPC G2LE                                                              */
......
3277 3399
    gen_high_BATs(env);
3278 3400
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3279 3401
    init_excp_G2(env);
3402
    env->dcache_line_size = 32;
3403
    env->icache_line_size = 32;
3280 3404
    /* Allocate hardware IRQ controller */
3281 3405
    ppc6xx_irq_init(env);
3406
#if !defined(CONFIG_USER_ONLY)
3407
    /* Hardware reset vector */
3408
    env->hreset_vector = 0xFFFFFFFCUL;
3409
#endif
3282 3410
}
3283 3411

  
3284 3412
/* PowerPC 604                                                               */
......
3309 3437
    /* Memory management */
3310 3438
    gen_low_BATs(env);
3311 3439
    init_excp_604(env);
3440
    env->dcache_line_size = 32;
3441
    env->icache_line_size = 32;
3312 3442
    /* Allocate hardware IRQ controller */
3313 3443
    ppc6xx_irq_init(env);
3444
#if !defined(CONFIG_USER_ONLY)
3445
    /* Hardware reset vector */
3446
    env->hreset_vector = 0xFFFFFFFCUL;
3447
#endif
3314 3448
}
3315 3449

  
3316 3450
/* PowerPC 740/750 (aka G3)                                                  */
......
3343 3477
    /* Memory management */
3344 3478
    gen_low_BATs(env);
3345 3479
    init_excp_7x0(env);
3480
    env->dcache_line_size = 32;
3481
    env->icache_line_size = 32;
3346 3482
    /* Allocate hardware IRQ controller */
3347 3483
    ppc6xx_irq_init(env);
3484
#if !defined(CONFIG_USER_ONLY)
3485
    /* Hardware reset vector */
3486
    env->hreset_vector = 0xFFFFFFFCUL;
3487
#endif
3348 3488
}
3349 3489

  
3350 3490
/* PowerPC 750FX/GX                                                          */
......
3384 3524
    /* PowerPC 750fx & 750gx has 8 DBATs and 8 IBATs */
3385 3525
    gen_high_BATs(env);
3386 3526
    init_excp_750FX(env);
3527
    env->dcache_line_size = 32;
3528
    env->icache_line_size = 32;
3387 3529
    /* Allocate hardware IRQ controller */
3388 3530
    ppc6xx_irq_init(env);
3531
#if !defined(CONFIG_USER_ONLY)
3532
    /* Hardware reset vector */
3533
    env->hreset_vector = 0xFFFFFFFCUL;
3534
#endif
3389 3535
}
3390 3536

  
3391 3537
/* PowerPC 745/755                                                           */
......
3433 3579
    gen_low_BATs(env);
3434 3580
    gen_high_BATs(env);
3435 3581
    gen_6xx_7xx_soft_tlb(env, 64, 2);
3582
    env->dcache_line_size = 32;
3583
    env->icache_line_size = 32;
3436 3584
    /* Allocate hardware IRQ controller */
3437 3585
    ppc6xx_irq_init(env);
3586
#if !defined(CONFIG_USER_ONLY)
3587
    /* Hardware reset vector */
3588
    env->hreset_vector = 0xFFFFFFFCUL;
3589
#endif
3438 3590
}
3439 3591

  
3440 3592
/* PowerPC 7400 (aka G4)                                                     */
......
3460 3612
    /* Memory management */
3461 3613
    gen_low_BATs(env);
3462 3614
    init_excp_7400(env);
3615
    env->dcache_line_size = 32;
3616
    env->icache_line_size = 32;
3463 3617
    /* Allocate hardware IRQ controller */
3464 3618
    ppc6xx_irq_init(env);
3619
#if !defined(CONFIG_USER_ONLY)
3620
    /* Hardware reset vector */
3621
    env->hreset_vector = 0xFFFFFFFCUL;
3622
#endif
3465 3623
}
3466 3624

  
3467 3625
/* PowerPC 7410 (aka G4)                                                     */
......
3499 3657
    /* Memory management */
3500 3658
    gen_low_BATs(env);
3501 3659
    init_excp_7400(env);
3660
    env->dcache_line_size = 32;
3661
    env->icache_line_size = 32;
3502 3662
    /* Allocate hardware IRQ controller */
3503 3663
    ppc6xx_irq_init(env);
3664
#if !defined(CONFIG_USER_ONLY)
3665
    /* Hardware reset vector */
3666
    env->hreset_vector = 0xFFFFFFFCUL;
3667
#endif
3504 3668
}
3505 3669

  
3506 3670
/* PowerPC 7440 (aka G4)                                                     */
......
3564 3728
    /* Memory management */
3565 3729
    gen_low_BATs(env);
3566 3730
    gen_74xx_soft_tlb(env, 128, 2);
3731
    env->dcache_line_size = 32;
3732
    env->icache_line_size = 32;
3567 3733
    /* Allocate hardware IRQ controller */
3568 3734
    ppc6xx_irq_init(env);
3735
#if !defined(CONFIG_USER_ONLY)
3736
    /* Hardware reset vector */
3737
    env->hreset_vector = 0xFFFFFFFCUL;
3738
#endif
3569 3739
}
3570 3740

  
3571 3741
/* PowerPC 7450 (aka G4)                                                     */
......
3632 3802
    gen_low_BATs(env);
3633 3803
    gen_74xx_soft_tlb(env, 128, 2);
3634 3804
    init_excp_7450(env);
3805
    env->dcache_line_size = 32;
3806
    env->icache_line_size = 32;
3635 3807
    /* Allocate hardware IRQ controller */
3636 3808
    ppc6xx_irq_init(env);
3809
#if !defined(CONFIG_USER_ONLY)
3810
    /* Hardware reset vector */
3811
    env->hreset_vector = 0xFFFFFFFCUL;
3812
#endif
3637 3813
}
3638 3814

  
3639 3815
/* PowerPC 7445 (aka G4)                                                     */
......
3732 3908
    gen_high_BATs(env);
3733 3909
    gen_74xx_soft_tlb(env, 128, 2);
3734 3910
    init_excp_7450(env);
3911
    env->dcache_line_size = 32;
3912
    env->icache_line_size = 32;
3735 3913
    /* Allocate hardware IRQ controller */
3736 3914
    ppc6xx_irq_init(env);
3915
#if !defined(CONFIG_USER_ONLY)
3916
    /* Hardware reset vector */
3917
    env->hreset_vector = 0xFFFFFFFCUL;
3918
#endif
3737 3919
}
3738 3920

  
3739 3921
/* PowerPC 7455 (aka G4)                                                     */
......
3834 4016
    gen_high_BATs(env);
3835 4017
    gen_74xx_soft_tlb(env, 128, 2);
3836 4018
    init_excp_7450(env);
4019
    env->dcache_line_size = 32;
4020
    env->icache_line_size = 32;
3837 4021
    /* Allocate hardware IRQ controller */
3838 4022
    ppc6xx_irq_init(env);
4023
#if !defined(CONFIG_USER_ONLY)
4024
    /* Hardware reset vector */
4025
    env->hreset_vector = 0xFFFFFFFCUL;
4026
#endif
3839 4027
}
3840 4028

  
3841 4029
#if defined (TARGET_PPC64)
4030
#define POWERPC_INSNS_WORK64  (POWERPC_INSNS_6xx | PPC_FLOAT_FSQRT |          \
4031
                              PPC_FLOAT_FRES | PPC_FLOAT_FRSQRTE |            \
4032
                              PPC_FLOAT_FSEL | PPC_FLOAT_STFIWX |             \
4033
                              PPC_MEM_TLBSYNC | PPC_CACHE_DCBZT | PPC_MFTB)
3842 4034
/* PowerPC 970                                                               */
3843
#define POWERPC_INSNS_970    (POWERPC_INSNS_WORKS | PPC_FLOAT_FSQRT |         \
4035
#define POWERPC_INSNS_970    (POWERPC_INSNS_WORK64 | PPC_FLOAT_FSQRT |        \
3844 4036
                              PPC_64B | PPC_ALTIVEC |                         \
3845 4037
                              PPC_64_BRIDGE | PPC_SLBI)
3846 4038
#define POWERPC_MSRM_970     (0x900000000204FF36ULL)
......
3860 4052
    spr_register(env, SPR_HID0, "HID0",
3861 4053
                 SPR_NOACCESS, SPR_NOACCESS,
3862 4054
                 &spr_read_generic, &spr_write_clear,
3863
                 0x00000000);
4055
                 0x60000000);
3864 4056
    /* XXX : not implemented */
3865 4057
    spr_register(env, SPR_HID1, "HID1",
3866 4058
                 SPR_NOACCESS, SPR_NOACCESS,
......
3878 4070
    env->slb_nr = 32;
3879 4071
#endif
3880 4072
    init_excp_970(env);
4073
    env->dcache_line_size = 128;
4074
    env->icache_line_size = 128;
3881 4075
    /* Allocate hardware IRQ controller */
3882 4076
    ppc970_irq_init(env);
4077
#if !defined(CONFIG_USER_ONLY)
4078
    /* Hardware reset vector */
4079
    env->hreset_vector = 0x0000000000000100ULL;
4080
#endif
3883 4081
}
3884 4082

  
3885 4083
/* PowerPC 970FX (aka G5)                                                    */
3886
#define POWERPC_INSNS_970FX  (POWERPC_INSNS_WORKS | PPC_FLOAT_FSQRT |         \
4084
#define POWERPC_INSNS_970FX  (POWERPC_INSNS_WORK64 | PPC_FLOAT_FSQRT |        \
3887 4085
                              PPC_64B | PPC_ALTIVEC |                         \
3888 4086
                              PPC_64_BRIDGE | PPC_SLBI)
3889 4087
#define POWERPC_MSRM_970FX   (0x800000000204FF36ULL)
......
3903 4101
    spr_register(env, SPR_HID0, "HID0",
3904 4102
                 SPR_NOACCESS, SPR_NOACCESS,
3905 4103
                 &spr_read_generic, &spr_write_clear,
3906
                 0x00000000);
4104
                 0x60000000);
3907 4105
    /* XXX : not implemented */
3908 4106
    spr_register(env, SPR_HID1, "HID1",
3909 4107
                 SPR_NOACCESS, SPR_NOACCESS,
......
3914 4112
                 SPR_NOACCESS, SPR_NOACCESS,
3915 4113
                 &spr_read_generic, &spr_write_generic,
3916 4114
                 0x00000000);
4115
    /* XXX : not implemented */
4116
    spr_register(env, SPR_970_HID5, "HID5",
4117
                 SPR_NOACCESS, SPR_NOACCESS,
4118
                 &spr_read_generic, &spr_write_generic,
4119
                 0x00000000);
3917 4120
    /* Memory management */
3918 4121
    /* XXX: not correct */
3919 4122
    gen_low_BATs(env);
......
3921 4124
    env->slb_nr = 32;
3922 4125
#endif
3923 4126
    init_excp_970(env);
4127
    env->dcache_line_size = 128;
4128
    env->icache_line_size = 128;
3924 4129
    /* Allocate hardware IRQ controller */
3925 4130
    ppc970_irq_init(env);
4131
#if !defined(CONFIG_USER_ONLY)
4132
    /* Hardware reset vector */
4133
    env->hreset_vector = 0x0000000000000100ULL;
4134
#endif
3926 4135
}
3927 4136

  
3928 4137
/* PowerPC 970 GX                                                            */
3929
#define POWERPC_INSNS_970GX  (POWERPC_INSNS_WORKS | PPC_FLOAT_FSQRT |         \
4138
#define POWERPC_INSNS_970GX  (POWERPC_INSNS_WORK64 | PPC_FLOAT_FSQRT |        \
3930 4139
                              PPC_64B | PPC_ALTIVEC |                         \
3931 4140
                              PPC_64_BRIDGE | PPC_SLBI)
3932 4141
#define POWERPC_MSRM_970GX   (0x800000000204FF36ULL)
......
3946 4155
    spr_register(env, SPR_HID0, "HID0",
3947 4156
                 SPR_NOACCESS, SPR_NOACCESS,
3948 4157
                 &spr_read_generic, &spr_write_clear,
3949
                 0x00000000);
4158
                 0x60000000);
3950 4159
    /* XXX : not implemented */
3951 4160
    spr_register(env, SPR_HID1, "HID1",
3952 4161
                 SPR_NOACCESS, SPR_NOACCESS,
......
3957 4166
                 SPR_NOACCESS, SPR_NOACCESS,
3958 4167
                 &spr_read_generic, &spr_write_generic,
3959 4168
                 0x00000000);
4169
    /* XXX : not implemented */
4170
    spr_register(env, SPR_970_HID5, "HID5",
4171
                 SPR_NOACCESS, SPR_NOACCESS,
4172
                 &spr_read_generic, &spr_write_generic,
4173
                 0x00000000);
3960 4174
    /* Memory management */
3961 4175
    /* XXX: not correct */
3962 4176
    gen_low_BATs(env);
......
3964 4178
    env->slb_nr = 32;
3965 4179
#endif
3966 4180
    init_excp_970(env);
4181
    env->dcache_line_size = 128;
4182
    env->icache_line_size = 128;
3967 4183
    /* Allocate hardware IRQ controller */
3968 4184
    ppc970_irq_init(env);
4185
#if !defined(CONFIG_USER_ONLY)
4186
    /* Hardware reset vector */
4187
    env->hreset_vector = 0x0000000000000100ULL;
4188
#endif
3969 4189
}
3970 4190

  
3971 4191
/* PowerPC 620                                                               */
......
3994 4214
    gen_low_BATs(env);
3995 4215
    gen_high_BATs(env);
3996 4216
    init_excp_620(env);
4217
    env->dcache_line_size = 64;
4218
    env->icache_line_size = 64;
3997 4219
    /* XXX: TODO: initialize internal interrupt controller */
4220
#if !defined(CONFIG_USER_ONLY)
4221
    /* Hardware reset vector */
4222
    env->hreset_vector = 0x0000000000000100ULL; /* ? */
4223
#endif
3998 4224
}
3999 4225
#endif /* defined (TARGET_PPC64) */
4000 4226

  

Also available in: Unified diff