1*4882a593Smuzhiyun# arm cpu features 2*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_NEON 3*4882a593Smuzhiyun bool 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun# for some cores, NEON support is optional 6*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_NEON 7*4882a593Smuzhiyun bool 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun# For some cores, the FPU is optional 10*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPU 11*4882a593Smuzhiyun bool 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPU 14*4882a593Smuzhiyun bool 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun# for some cores, VFPv2 is optional 17*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV2 18*4882a593Smuzhiyun bool 19*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_FPU 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV2 22*4882a593Smuzhiyun bool 23*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FPU 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun# for some cores, VFPv3 is optional 26*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV3 27*4882a593Smuzhiyun bool 28*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV2 29*4882a593Smuzhiyun 30*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV3 31*4882a593Smuzhiyun bool 32*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV2 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun# for some cores, VFPv4 is optional 35*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_VFPV4 36*4882a593Smuzhiyun bool 37*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV3 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_VFPV4 40*4882a593Smuzhiyun bool 41*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV3 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun# FPv4 is always optional 44*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPV4 45*4882a593Smuzhiyun bool 46*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_FPU 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPV4 49*4882a593Smuzhiyun bool 50*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FPU 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun# FPv5 is always optional 53*4882a593Smuzhiyunconfig BR2_ARM_CPU_MAYBE_HAS_FPV5 54*4882a593Smuzhiyun bool 55*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_FPV4 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FPV5 58*4882a593Smuzhiyun bool 59*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FPV4 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_FP_ARMV8 62*4882a593Smuzhiyun bool 63*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_ARM 66*4882a593Smuzhiyun bool 67*4882a593Smuzhiyun 68*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_THUMB 69*4882a593Smuzhiyun bool 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunconfig BR2_ARM_CPU_HAS_THUMB2 72*4882a593Smuzhiyun bool 73*4882a593Smuzhiyun 74*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV4 75*4882a593Smuzhiyun bool 76*4882a593Smuzhiyun 77*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV5 78*4882a593Smuzhiyun bool 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV6 81*4882a593Smuzhiyun bool 82*4882a593Smuzhiyun 83*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV7A 84*4882a593Smuzhiyun bool 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV7M 87*4882a593Smuzhiyun bool 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunconfig BR2_ARM_CPU_ARMV8A 90*4882a593Smuzhiyun bool 91*4882a593Smuzhiyun 92*4882a593Smuzhiyunchoice 93*4882a593Smuzhiyun prompt "Target Architecture Variant" 94*4882a593Smuzhiyun default BR2_cortex_a53 if BR2_ARCH_IS_64 95*4882a593Smuzhiyun default BR2_arm926t 96*4882a593Smuzhiyun help 97*4882a593Smuzhiyun Specific CPU variant to use 98*4882a593Smuzhiyun 99*4882a593Smuzhiyunif !BR2_ARCH_IS_64 100*4882a593Smuzhiyuncomment "armv4 cores" 101*4882a593Smuzhiyunconfig BR2_arm920t 102*4882a593Smuzhiyun bool "arm920t" 103*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 104*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 105*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV4 106*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 107*4882a593Smuzhiyunconfig BR2_arm922t 108*4882a593Smuzhiyun bool "arm922t" 109*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 110*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 111*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV4 112*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 113*4882a593Smuzhiyunconfig BR2_fa526 114*4882a593Smuzhiyun bool "fa526/626" 115*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 116*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV4 117*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 118*4882a593Smuzhiyunconfig BR2_strongarm 119*4882a593Smuzhiyun bool "strongarm sa110/sa1100" 120*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 121*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV4 122*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 123*4882a593Smuzhiyun 124*4882a593Smuzhiyuncomment "armv5 cores" 125*4882a593Smuzhiyunconfig BR2_arm926t 126*4882a593Smuzhiyun bool "arm926t" 127*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 128*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV2 129*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 130*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV5 131*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 132*4882a593Smuzhiyunconfig BR2_iwmmxt 133*4882a593Smuzhiyun bool "iwmmxt" 134*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 135*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV5 136*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 137*4882a593Smuzhiyunconfig BR2_xscale 138*4882a593Smuzhiyun bool "xscale" 139*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 140*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 141*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV5 142*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 143*4882a593Smuzhiyun 144*4882a593Smuzhiyuncomment "armv6 cores" 145*4882a593Smuzhiyunconfig BR2_arm1136j_s 146*4882a593Smuzhiyun bool "arm1136j-s" 147*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 148*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 149*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV6 150*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 151*4882a593Smuzhiyunconfig BR2_arm1136jf_s 152*4882a593Smuzhiyun bool "arm1136jf-s" 153*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 154*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV2 155*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 156*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV6 157*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 158*4882a593Smuzhiyunconfig BR2_arm1176jz_s 159*4882a593Smuzhiyun bool "arm1176jz-s" 160*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 161*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 162*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV6 163*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 164*4882a593Smuzhiyunconfig BR2_arm1176jzf_s 165*4882a593Smuzhiyun bool "arm1176jzf-s" 166*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 167*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV2 168*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 169*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV6 170*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 171*4882a593Smuzhiyunconfig BR2_arm11mpcore 172*4882a593Smuzhiyun bool "mpcore" 173*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 174*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV2 175*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB 176*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV6 177*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 178*4882a593Smuzhiyun 179*4882a593Smuzhiyuncomment "armv7a cores" 180*4882a593Smuzhiyunconfig BR2_cortex_a5 181*4882a593Smuzhiyun bool "cortex-A5" 182*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 183*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_NEON 184*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV4 185*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 186*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 187*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 188*4882a593Smuzhiyunconfig BR2_cortex_a7 189*4882a593Smuzhiyun bool "cortex-A7" 190*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 191*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 192*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 193*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 194*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 195*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 196*4882a593Smuzhiyunconfig BR2_cortex_a8 197*4882a593Smuzhiyun bool "cortex-A8" 198*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 199*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 200*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV3 201*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 202*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 203*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 204*4882a593Smuzhiyunconfig BR2_cortex_a9 205*4882a593Smuzhiyun bool "cortex-A9" 206*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 207*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_NEON 208*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_VFPV3 209*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 210*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 211*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 212*4882a593Smuzhiyunconfig BR2_cortex_a12 213*4882a593Smuzhiyun bool "cortex-A12" 214*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 215*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 216*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 217*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 218*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 219*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 220*4882a593Smuzhiyunconfig BR2_cortex_a15 221*4882a593Smuzhiyun bool "cortex-A15" 222*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 223*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 224*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 225*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 226*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 227*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 228*4882a593Smuzhiyunconfig BR2_cortex_a15_a7 229*4882a593Smuzhiyun bool "cortex-A15/A7 big.LITTLE" 230*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 231*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 232*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 233*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 234*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 235*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 236*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9 237*4882a593Smuzhiyunconfig BR2_cortex_a17 238*4882a593Smuzhiyun bool "cortex-A17" 239*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 240*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 241*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 242*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 243*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 244*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 245*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 246*4882a593Smuzhiyunconfig BR2_cortex_a17_a7 247*4882a593Smuzhiyun bool "cortex-A17/A7 big.LITTLE" 248*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 249*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 250*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 251*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 252*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 253*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 254*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 255*4882a593Smuzhiyunconfig BR2_pj4 256*4882a593Smuzhiyun bool "pj4" 257*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 258*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV3 259*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7A 260*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 261*4882a593Smuzhiyun 262*4882a593Smuzhiyuncomment "armv7m cores" 263*4882a593Smuzhiyunconfig BR2_cortex_m3 264*4882a593Smuzhiyun bool "cortex-M3" 265*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 266*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7M 267*4882a593Smuzhiyunconfig BR2_cortex_m4 268*4882a593Smuzhiyun bool "cortex-M4" 269*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 270*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_FPV4 271*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7M 272*4882a593Smuzhiyunconfig BR2_cortex_m7 273*4882a593Smuzhiyun bool "cortex-M7" 274*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 275*4882a593Smuzhiyun select BR2_ARM_CPU_MAYBE_HAS_FPV5 276*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV7M 277*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 278*4882a593Smuzhiyunendif # !BR2_ARCH_IS_64 279*4882a593Smuzhiyun 280*4882a593Smuzhiyuncomment "armv8 cores" 281*4882a593Smuzhiyunconfig BR2_cortex_a32 282*4882a593Smuzhiyun bool "cortex-A32" 283*4882a593Smuzhiyun depends on !BR2_ARCH_IS_64 284*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM 285*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 286*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 287*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 288*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 289*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 290*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 291*4882a593Smuzhiyunconfig BR2_cortex_a35 292*4882a593Smuzhiyun bool "cortex-A35" 293*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 294*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 295*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 296*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 297*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 298*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 299*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 300*4882a593Smuzhiyunconfig BR2_cortex_a53 301*4882a593Smuzhiyun bool "cortex-A53" 302*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 303*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 304*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 305*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 306*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 307*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 308*4882a593Smuzhiyunconfig BR2_cortex_a57 309*4882a593Smuzhiyun bool "cortex-A57" 310*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 311*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 312*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 313*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 314*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 315*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 316*4882a593Smuzhiyunconfig BR2_cortex_a57_a53 317*4882a593Smuzhiyun bool "cortex-A57/A53 big.LITTLE" 318*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 319*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 320*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 321*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 322*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 323*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 324*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 325*4882a593Smuzhiyunconfig BR2_cortex_a72 326*4882a593Smuzhiyun bool "cortex-A72" 327*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 328*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 329*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 330*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 331*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 332*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 333*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 334*4882a593Smuzhiyunconfig BR2_cortex_a72_a53 335*4882a593Smuzhiyun bool "cortex-A72/A53 big.LITTLE" 336*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 337*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 338*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 339*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 340*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 341*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 342*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 343*4882a593Smuzhiyunconfig BR2_cortex_a73 344*4882a593Smuzhiyun bool "cortex-A73" 345*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 346*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 347*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 348*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 349*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 350*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 351*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 352*4882a593Smuzhiyunconfig BR2_cortex_a73_a35 353*4882a593Smuzhiyun bool "cortex-A73/A35 big.LITTLE" 354*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 355*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 356*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 357*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 358*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 359*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 360*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 361*4882a593Smuzhiyunconfig BR2_cortex_a73_a53 362*4882a593Smuzhiyun bool "cortex-A73/A53 big.LITTLE" 363*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 364*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 365*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 366*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 367*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 368*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 369*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 370*4882a593Smuzhiyunconfig BR2_emag 371*4882a593Smuzhiyun bool "emag" 372*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 373*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 374*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 375*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 376*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 377*4882a593Smuzhiyunconfig BR2_exynos_m1 378*4882a593Smuzhiyun bool "exynos-m1" 379*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 380*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 381*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 382*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 383*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 384*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 385*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 386*4882a593Smuzhiyunconfig BR2_falkor 387*4882a593Smuzhiyun bool "falkor" 388*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 389*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 390*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 391*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 392*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 393*4882a593Smuzhiyunconfig BR2_phecda 394*4882a593Smuzhiyun bool "phecda" 395*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 396*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 397*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 398*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 399*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 400*4882a593Smuzhiyunconfig BR2_qdf24xx 401*4882a593Smuzhiyun bool "qdf24xx" 402*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 403*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 404*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 405*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 406*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_6 407*4882a593Smuzhiyunconfig BR2_thunderx 408*4882a593Smuzhiyun bool "thunderx (aka octeontx)" 409*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 410*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 411*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 412*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 413*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 414*4882a593Smuzhiyunconfig BR2_thunderxt81 415*4882a593Smuzhiyun bool "thunderxt81 (aka octeontx81)" 416*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 417*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 418*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 419*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 420*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 421*4882a593Smuzhiyunconfig BR2_thunderxt83 422*4882a593Smuzhiyun bool "thunderxt83 (aka octeontx83)" 423*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 424*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 425*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 426*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 427*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 428*4882a593Smuzhiyunconfig BR2_thunderxt88 429*4882a593Smuzhiyun bool "thunderxt88" 430*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 431*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 432*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 433*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 434*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 435*4882a593Smuzhiyunconfig BR2_thunderxt88p1 436*4882a593Smuzhiyun bool "thunderxt88p1" 437*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 438*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 439*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 440*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 441*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 442*4882a593Smuzhiyunconfig BR2_xgene1 443*4882a593Smuzhiyun bool "xgene1" 444*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 445*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 446*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 447*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 448*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 449*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 450*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 451*4882a593Smuzhiyun 452*4882a593Smuzhiyuncomment "armv8.1a cores" 453*4882a593Smuzhiyunconfig BR2_thunderx2t99 454*4882a593Smuzhiyun bool "thunderx2t99" 455*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 456*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 457*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 458*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 459*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 460*4882a593Smuzhiyunconfig BR2_thunderx2t99p1 461*4882a593Smuzhiyun bool "thunderx2t99p1" 462*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 463*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 464*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 465*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 466*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 467*4882a593Smuzhiyunconfig BR2_vulcan 468*4882a593Smuzhiyun bool "vulcan" 469*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 470*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 471*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 472*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 473*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_7 474*4882a593Smuzhiyun 475*4882a593Smuzhiyuncomment "armv8.2a cores" 476*4882a593Smuzhiyunconfig BR2_cortex_a55 477*4882a593Smuzhiyun bool "cortex-A55" 478*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 479*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 480*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 481*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 482*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 483*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 484*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 485*4882a593Smuzhiyunconfig BR2_cortex_a75 486*4882a593Smuzhiyun bool "cortex-A75" 487*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 488*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 489*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 490*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 491*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 492*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 493*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 494*4882a593Smuzhiyunconfig BR2_cortex_a75_a55 495*4882a593Smuzhiyun bool "cortex-A75/A55 big.LITTLE" 496*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 497*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 498*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 499*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 500*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 501*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 502*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 503*4882a593Smuzhiyunconfig BR2_cortex_a76 504*4882a593Smuzhiyun bool "cortex-A76" 505*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 506*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 507*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 508*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 509*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 510*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 511*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 512*4882a593Smuzhiyunconfig BR2_cortex_a76_a55 513*4882a593Smuzhiyun bool "cortex-A76/A55 big.LITTLE" 514*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 515*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 516*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 517*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 518*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 519*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 520*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 521*4882a593Smuzhiyunconfig BR2_neoverse_n1 522*4882a593Smuzhiyun bool "neoverse-N1 (aka ares)" 523*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64 524*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64 525*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64 526*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 527*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 528*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 529*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 530*4882a593Smuzhiyunconfig BR2_tsv110 531*4882a593Smuzhiyun bool "tsv110" 532*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 533*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 534*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 535*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 536*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_9 537*4882a593Smuzhiyun 538*4882a593Smuzhiyuncomment "armv8.4a cores" 539*4882a593Smuzhiyunconfig BR2_saphira 540*4882a593Smuzhiyun bool "saphira" 541*4882a593Smuzhiyun depends on BR2_ARCH_IS_64 542*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FP_ARMV8 543*4882a593Smuzhiyun select BR2_ARM_CPU_ARMV8A 544*4882a593Smuzhiyun select BR2_ARCH_HAS_MMU_OPTIONAL 545*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_8 546*4882a593Smuzhiyunendchoice 547*4882a593Smuzhiyun 548*4882a593Smuzhiyunconfig BR2_ARM_ENABLE_NEON 549*4882a593Smuzhiyun bool "Enable NEON SIMD extension support" 550*4882a593Smuzhiyun depends on BR2_ARM_CPU_MAYBE_HAS_NEON 551*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_NEON 552*4882a593Smuzhiyun help 553*4882a593Smuzhiyun For some CPU cores, the NEON SIMD extension is optional. 554*4882a593Smuzhiyun Select this option if you are certain your particular 555*4882a593Smuzhiyun implementation has NEON support and you want to use it. 556*4882a593Smuzhiyun 557*4882a593Smuzhiyunconfig BR2_ARM_ENABLE_VFP 558*4882a593Smuzhiyun bool "Enable VFP extension support" 559*4882a593Smuzhiyun depends on BR2_ARM_CPU_MAYBE_HAS_FPU 560*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5 561*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4 562*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4 563*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3 564*4882a593Smuzhiyun select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2 565*4882a593Smuzhiyun help 566*4882a593Smuzhiyun For some CPU cores, the VFP extension is optional. Select 567*4882a593Smuzhiyun this option if you are certain your particular 568*4882a593Smuzhiyun implementation has VFP support and you want to use it. 569*4882a593Smuzhiyun 570*4882a593Smuzhiyunchoice 571*4882a593Smuzhiyun prompt "Target ABI" 572*4882a593Smuzhiyun default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU 573*4882a593Smuzhiyun default BR2_ARM_EABI 574*4882a593Smuzhiyun depends on BR2_arm || BR2_armeb 575*4882a593Smuzhiyun help 576*4882a593Smuzhiyun Application Binary Interface to use. The Application Binary 577*4882a593Smuzhiyun Interface describes the calling conventions (how arguments 578*4882a593Smuzhiyun are passed to functions, how the return value is passed, how 579*4882a593Smuzhiyun system calls are made, etc.). 580*4882a593Smuzhiyun 581*4882a593Smuzhiyunconfig BR2_ARM_EABI 582*4882a593Smuzhiyun bool "EABI" 583*4882a593Smuzhiyun help 584*4882a593Smuzhiyun The EABI is currently the standard ARM ABI, which is used in 585*4882a593Smuzhiyun most projects. It supports both the 'soft' floating point 586*4882a593Smuzhiyun model (in which floating point instructions are emulated in 587*4882a593Smuzhiyun software) and the 'softfp' floating point model (in which 588*4882a593Smuzhiyun floating point instructions are executed using an hardware 589*4882a593Smuzhiyun floating point unit, but floating point arguments to 590*4882a593Smuzhiyun functions are passed in integer registers). 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun The 'softfp' floating point model is link-compatible with 593*4882a593Smuzhiyun the 'soft' floating point model, i.e you can link a library 594*4882a593Smuzhiyun built 'soft' with some other code built 'softfp'. 595*4882a593Smuzhiyun 596*4882a593Smuzhiyun However, passing the floating point arguments in integer 597*4882a593Smuzhiyun registers is a bit inefficient, so if your ARM processor has 598*4882a593Smuzhiyun a floating point unit, and you don't have pre-compiled 599*4882a593Smuzhiyun 'soft' or 'softfp' code, using the EABIhf ABI will provide 600*4882a593Smuzhiyun better floating point performances. 601*4882a593Smuzhiyun 602*4882a593Smuzhiyun If your processor does not have a floating point unit, then 603*4882a593Smuzhiyun you must use this ABI. 604*4882a593Smuzhiyun 605*4882a593Smuzhiyunconfig BR2_ARM_EABIHF 606*4882a593Smuzhiyun bool "EABIhf" 607*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FPU 608*4882a593Smuzhiyun help 609*4882a593Smuzhiyun The EABIhf is an extension of EABI which supports the 'hard' 610*4882a593Smuzhiyun floating point model. This model uses the floating point 611*4882a593Smuzhiyun unit to execute floating point instructions, and passes 612*4882a593Smuzhiyun floating point arguments in floating point registers. 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun It is more efficient than EABI for floating point related 615*4882a593Smuzhiyun workload. However, it does not allow to link against code 616*4882a593Smuzhiyun that has been pre-built for the 'soft' or 'softfp' floating 617*4882a593Smuzhiyun point models. 618*4882a593Smuzhiyun 619*4882a593Smuzhiyun If your processor has a floating point unit, and you don't 620*4882a593Smuzhiyun depend on existing pre-compiled code, this option is most 621*4882a593Smuzhiyun likely the best choice. 622*4882a593Smuzhiyun 623*4882a593Smuzhiyunendchoice 624*4882a593Smuzhiyun 625*4882a593Smuzhiyunchoice 626*4882a593Smuzhiyun prompt "Floating point strategy" 627*4882a593Smuzhiyun default BR2_ARM_FPU_AUTO 628*4882a593Smuzhiyun default BR2_ARM_FPU_NEON_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 && BR2_ARM_CPU_HAS_NEON 629*4882a593Smuzhiyun default BR2_ARM_FPU_NEON_VFPV4 if BR2_ARM_CPU_HAS_VFPV4 && BR2_ARM_CPU_HAS_NEON 630*4882a593Smuzhiyun default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8 631*4882a593Smuzhiyun default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5 632*4882a593Smuzhiyun default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4 633*4882a593Smuzhiyun default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4 634*4882a593Smuzhiyun default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3 635*4882a593Smuzhiyun default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2 636*4882a593Smuzhiyun default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU 637*4882a593Smuzhiyun 638*4882a593Smuzhiyunconfig BR2_ARM_SOFT_FLOAT 639*4882a593Smuzhiyun bool "Soft float" 640*4882a593Smuzhiyun depends on BR2_ARM_EABI 641*4882a593Smuzhiyun select BR2_SOFT_FLOAT 642*4882a593Smuzhiyun help 643*4882a593Smuzhiyun This option allows to use software emulated floating 644*4882a593Smuzhiyun point. It should be used for ARM cores that do not include a 645*4882a593Smuzhiyun Vector Floating Point unit, such as ARMv5 cores (ARM926 for 646*4882a593Smuzhiyun example) or certain ARMv6 cores. 647*4882a593Smuzhiyun 648*4882a593Smuzhiyunconfig BR2_ARM_FPU_AUTO 649*4882a593Smuzhiyun bool "Auto" 650*4882a593Smuzhiyun help 651*4882a593Smuzhiyun This option allows to use GCC's default floating point unit. 652*4882a593Smuzhiyun 653*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV2 654*4882a593Smuzhiyun bool "VFPv2" 655*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV2 656*4882a593Smuzhiyun help 657*4882a593Smuzhiyun This option allows to use the VFPv2 floating point unit, as 658*4882a593Smuzhiyun available in some ARMv5 processors (ARM926EJ-S) and some 659*4882a593Smuzhiyun ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11 660*4882a593Smuzhiyun MPCore). 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun Note that this option is also safe to use for newer cores 663*4882a593Smuzhiyun such as Cortex-A, because the VFPv3 and VFPv4 units are 664*4882a593Smuzhiyun backward compatible with VFPv2. 665*4882a593Smuzhiyun 666*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV3 667*4882a593Smuzhiyun bool "VFPv3" 668*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV3 669*4882a593Smuzhiyun help 670*4882a593Smuzhiyun This option allows to use the VFPv3 floating point unit, as 671*4882a593Smuzhiyun available in some ARMv7 processors (Cortex-A{8, 9}). This 672*4882a593Smuzhiyun option requires a VFPv3 unit that has 32 double-precision 673*4882a593Smuzhiyun registers, which is not necessarily the case in all SOCs 674*4882a593Smuzhiyun based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16 675*4882a593Smuzhiyun instead, which is guaranteed to work on all Cortex-A{8, 9}. 676*4882a593Smuzhiyun 677*4882a593Smuzhiyun Note that this option is also safe to use for newer cores 678*4882a593Smuzhiyun that have a VFPv4 unit, because VFPv4 is backward compatible 679*4882a593Smuzhiyun with VFPv3. They must of course also have 32 680*4882a593Smuzhiyun double-precision registers. 681*4882a593Smuzhiyun 682*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV3D16 683*4882a593Smuzhiyun bool "VFPv3-D16" 684*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV3 685*4882a593Smuzhiyun help 686*4882a593Smuzhiyun This option allows to use the VFPv3 floating point unit, as 687*4882a593Smuzhiyun available in some ARMv7 processors (Cortex-A{8, 9}). This 688*4882a593Smuzhiyun option requires a VFPv3 unit that has 16 double-precision 689*4882a593Smuzhiyun registers, which is generally the case in all SOCs based on 690*4882a593Smuzhiyun Cortex-A{8, 9}, even though VFPv3 is technically optional on 691*4882a593Smuzhiyun Cortex-A9. This is the safest option for those cores. 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun Note that this option is also safe to use for newer cores 694*4882a593Smuzhiyun such that have a VFPv4 unit, because the VFPv4 is backward 695*4882a593Smuzhiyun compatible with VFPv3. 696*4882a593Smuzhiyun 697*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV4 698*4882a593Smuzhiyun bool "VFPv4" 699*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV4 700*4882a593Smuzhiyun help 701*4882a593Smuzhiyun This option allows to use the VFPv4 floating point unit, as 702*4882a593Smuzhiyun available in some ARMv7 processors (Cortex-A{5, 7, 12, 703*4882a593Smuzhiyun 15}). This option requires a VFPv4 unit that has 32 704*4882a593Smuzhiyun double-precision registers, which is not necessarily the 705*4882a593Smuzhiyun case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're 706*4882a593Smuzhiyun unsure, you should probably use VFPv4-D16 instead. 707*4882a593Smuzhiyun 708*4882a593Smuzhiyun Note that if you want binary code that works on all ARMv7 709*4882a593Smuzhiyun cores, including the earlier Cortex-A{8, 9}, you should 710*4882a593Smuzhiyun instead select VFPv3. 711*4882a593Smuzhiyun 712*4882a593Smuzhiyunconfig BR2_ARM_FPU_VFPV4D16 713*4882a593Smuzhiyun bool "VFPv4-D16" 714*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV4 715*4882a593Smuzhiyun help 716*4882a593Smuzhiyun This option allows to use the VFPv4 floating point unit, as 717*4882a593Smuzhiyun available in some ARMv7 processors (Cortex-A{5, 7, 12, 718*4882a593Smuzhiyun 15}). This option requires a VFPv4 unit that has 16 719*4882a593Smuzhiyun double-precision registers, which is always available on 720*4882a593Smuzhiyun Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and 721*4882a593Smuzhiyun Cortex-A7. 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun Note that if you want binary code that works on all ARMv7 724*4882a593Smuzhiyun cores, including the earlier Cortex-A{8, 9}, you should 725*4882a593Smuzhiyun instead select VFPv3-D16. 726*4882a593Smuzhiyun 727*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON 728*4882a593Smuzhiyun bool "NEON" 729*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_NEON 730*4882a593Smuzhiyun help 731*4882a593Smuzhiyun This option allows to use the NEON SIMD unit, as available 732*4882a593Smuzhiyun in some ARMv7 processors, as a floating-point unit. It 733*4882a593Smuzhiyun should however be noted that using NEON for floating point 734*4882a593Smuzhiyun operations doesn't provide a complete compatibility with the 735*4882a593Smuzhiyun IEEE 754. 736*4882a593Smuzhiyun 737*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON_VFPV4 738*4882a593Smuzhiyun bool "NEON/VFPv4" 739*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_VFPV4 740*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_NEON 741*4882a593Smuzhiyun help 742*4882a593Smuzhiyun This option allows to use both the VFPv4 and the NEON SIMD 743*4882a593Smuzhiyun units for floating point operations. Note that some ARMv7 744*4882a593Smuzhiyun cores do not necessarily have VFPv4 and/or NEON support, for 745*4882a593Smuzhiyun example on Cortex-A5 and Cortex-A7, support for VFPv4 and 746*4882a593Smuzhiyun NEON is optional. 747*4882a593Smuzhiyun 748*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV4D16 749*4882a593Smuzhiyun bool "FPv4-D16" 750*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FPV4 751*4882a593Smuzhiyun help 752*4882a593Smuzhiyun This option allows to use the FPv4-SP (single precision) 753*4882a593Smuzhiyun floating point unit, as available in some ARMv7m processors 754*4882a593Smuzhiyun (Cortex-M4). 755*4882a593Smuzhiyun 756*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV5D16 757*4882a593Smuzhiyun bool "FPv5-D16" 758*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FPV5 759*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 760*4882a593Smuzhiyun help 761*4882a593Smuzhiyun This option allows to use the FPv5-SP (single precision) 762*4882a593Smuzhiyun floating point unit, as available in some ARMv7m processors 763*4882a593Smuzhiyun (Cortex-M7). 764*4882a593Smuzhiyun 765*4882a593Smuzhiyun Note that if you want binary code that works on the earlier 766*4882a593Smuzhiyun Cortex-M4, you should instead select FPv4-D16. 767*4882a593Smuzhiyun 768*4882a593Smuzhiyunconfig BR2_ARM_FPU_FPV5DPD16 769*4882a593Smuzhiyun bool "FPv5-DP-D16" 770*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FPV5 771*4882a593Smuzhiyun select BR2_ARCH_NEEDS_GCC_AT_LEAST_5 772*4882a593Smuzhiyun help 773*4882a593Smuzhiyun This option allows to use the FPv5-DP (double precision) 774*4882a593Smuzhiyun floating point unit, as available in some ARMv7m processors 775*4882a593Smuzhiyun (Cortex-M7). 776*4882a593Smuzhiyun 777*4882a593Smuzhiyun Note that if you want binary code that works on the earlier 778*4882a593Smuzhiyun Cortex-M4, you should instead select FPv4-D16. 779*4882a593Smuzhiyun 780*4882a593Smuzhiyunconfig BR2_ARM_FPU_FP_ARMV8 781*4882a593Smuzhiyun bool "FP-ARMv8" 782*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FP_ARMV8 783*4882a593Smuzhiyun help 784*4882a593Smuzhiyun This option allows to use the ARMv8 floating point unit. 785*4882a593Smuzhiyun 786*4882a593Smuzhiyunconfig BR2_ARM_FPU_NEON_FP_ARMV8 787*4882a593Smuzhiyun bool "NEON/FP-ARMv8" 788*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_FP_ARMV8 789*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_NEON 790*4882a593Smuzhiyun help 791*4882a593Smuzhiyun This option allows to use both the ARMv8 floating point unit 792*4882a593Smuzhiyun and the NEON SIMD unit for floating point operations. 793*4882a593Smuzhiyun 794*4882a593Smuzhiyunendchoice 795*4882a593Smuzhiyun 796*4882a593Smuzhiyunchoice 797*4882a593Smuzhiyun prompt "ARM instruction set" 798*4882a593Smuzhiyun depends on BR2_arm || BR2_armeb 799*4882a593Smuzhiyun 800*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_ARM 801*4882a593Smuzhiyun bool "ARM" 802*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_ARM 803*4882a593Smuzhiyun help 804*4882a593Smuzhiyun This option instructs the compiler to generate regular ARM 805*4882a593Smuzhiyun instructions, that are all 32 bits wide. 806*4882a593Smuzhiyun 807*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_THUMB 808*4882a593Smuzhiyun bool "Thumb" 809*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_THUMB 810*4882a593Smuzhiyun # Thumb-1 and VFP are not compatible 811*4882a593Smuzhiyun depends on BR2_ARM_SOFT_FLOAT 812*4882a593Smuzhiyun help 813*4882a593Smuzhiyun This option instructions the compiler to generate Thumb 814*4882a593Smuzhiyun instructions, which allows to mix 16 bits instructions and 815*4882a593Smuzhiyun 32 bits instructions. This generally provides a much smaller 816*4882a593Smuzhiyun compiled binary size. 817*4882a593Smuzhiyun 818*4882a593Smuzhiyuncomment "Thumb1 is not compatible with VFP" 819*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_THUMB 820*4882a593Smuzhiyun depends on !BR2_ARM_SOFT_FLOAT 821*4882a593Smuzhiyun 822*4882a593Smuzhiyunconfig BR2_ARM_INSTRUCTIONS_THUMB2 823*4882a593Smuzhiyun bool "Thumb2" 824*4882a593Smuzhiyun depends on BR2_ARM_CPU_HAS_THUMB2 825*4882a593Smuzhiyun help 826*4882a593Smuzhiyun This option instructions the compiler to generate Thumb2 827*4882a593Smuzhiyun instructions, which allows to mix 16 bits instructions and 828*4882a593Smuzhiyun 32 bits instructions. This generally provides a much smaller 829*4882a593Smuzhiyun compiled binary size. 830*4882a593Smuzhiyun 831*4882a593Smuzhiyunendchoice 832*4882a593Smuzhiyun 833*4882a593Smuzhiyunconfig BR2_ARCH 834*4882a593Smuzhiyun default "arm" if BR2_arm 835*4882a593Smuzhiyun default "armeb" if BR2_armeb 836*4882a593Smuzhiyun default "aarch64" if BR2_aarch64 837*4882a593Smuzhiyun default "aarch64_be" if BR2_aarch64_be 838*4882a593Smuzhiyun 839*4882a593Smuzhiyunconfig BR2_NORMALIZED_ARCH 840*4882a593Smuzhiyun default "arm" if BR2_arm || BR2_armeb 841*4882a593Smuzhiyun default "arm64" if BR2_aarch64 || BR2_aarch64_be 842*4882a593Smuzhiyun 843*4882a593Smuzhiyunconfig BR2_ENDIAN 844*4882a593Smuzhiyun default "LITTLE" if (BR2_arm || BR2_aarch64) 845*4882a593Smuzhiyun default "BIG" if (BR2_armeb || BR2_aarch64_be) 846*4882a593Smuzhiyun 847*4882a593Smuzhiyunconfig BR2_GCC_TARGET_CPU 848*4882a593Smuzhiyun # armv4 849*4882a593Smuzhiyun default "arm920t" if BR2_arm920t 850*4882a593Smuzhiyun default "arm922t" if BR2_arm922t 851*4882a593Smuzhiyun default "fa526" if BR2_fa526 852*4882a593Smuzhiyun default "strongarm" if BR2_strongarm 853*4882a593Smuzhiyun # armv5 854*4882a593Smuzhiyun default "arm926ej-s" if BR2_arm926t 855*4882a593Smuzhiyun default "iwmmxt" if BR2_iwmmxt 856*4882a593Smuzhiyun default "xscale" if BR2_xscale 857*4882a593Smuzhiyun # armv6 858*4882a593Smuzhiyun default "arm1136j-s" if BR2_arm1136j_s 859*4882a593Smuzhiyun default "arm1136jf-s" if BR2_arm1136jf_s 860*4882a593Smuzhiyun default "arm1176jz-s" if BR2_arm1176jz_s 861*4882a593Smuzhiyun default "arm1176jzf-s" if BR2_arm1176jzf_s 862*4882a593Smuzhiyun default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2 863*4882a593Smuzhiyun default "mpcorenovfp" if BR2_arm11mpcore 864*4882a593Smuzhiyun # armv7a 865*4882a593Smuzhiyun default "cortex-a5" if BR2_cortex_a5 866*4882a593Smuzhiyun default "cortex-a7" if BR2_cortex_a7 867*4882a593Smuzhiyun default "cortex-a8" if BR2_cortex_a8 868*4882a593Smuzhiyun default "cortex-a9" if BR2_cortex_a9 869*4882a593Smuzhiyun default "cortex-a12" if BR2_cortex_a12 870*4882a593Smuzhiyun default "cortex-a15" if BR2_cortex_a15 871*4882a593Smuzhiyun default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7 872*4882a593Smuzhiyun default "cortex-a17" if BR2_cortex_a17 873*4882a593Smuzhiyun default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7 874*4882a593Smuzhiyun default "marvell-pj4" if BR2_pj4 875*4882a593Smuzhiyun # armv7m 876*4882a593Smuzhiyun default "cortex-m3" if BR2_cortex_m3 877*4882a593Smuzhiyun default "cortex-m4" if BR2_cortex_m4 878*4882a593Smuzhiyun default "cortex-m7" if BR2_cortex_m7 879*4882a593Smuzhiyun # armv8a 880*4882a593Smuzhiyun default "cortex-a32" if BR2_cortex_a32 881*4882a593Smuzhiyun default "cortex-a35" if BR2_cortex_a35 882*4882a593Smuzhiyun default "cortex-a53" if BR2_cortex_a53 883*4882a593Smuzhiyun default "cortex-a57" if BR2_cortex_a57 884*4882a593Smuzhiyun default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53 885*4882a593Smuzhiyun default "cortex-a72" if BR2_cortex_a72 886*4882a593Smuzhiyun default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53 887*4882a593Smuzhiyun default "cortex-a73" if BR2_cortex_a73 888*4882a593Smuzhiyun default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35 889*4882a593Smuzhiyun default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53 890*4882a593Smuzhiyun default "emag" if BR2_emag 891*4882a593Smuzhiyun default "exynos-m1" if BR2_exynos_m1 892*4882a593Smuzhiyun default "falkor" if BR2_falkor 893*4882a593Smuzhiyun default "phecda" if BR2_phecda 894*4882a593Smuzhiyun default "qdf24xx" if BR2_qdf24xx 895*4882a593Smuzhiyun default "thunderx" if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 896*4882a593Smuzhiyun default "octeontx" if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9 897*4882a593Smuzhiyun default "thunderxt81" if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 898*4882a593Smuzhiyun default "octeontx81" if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 899*4882a593Smuzhiyun default "thunderxt83" if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9 900*4882a593Smuzhiyun default "octeontx83" if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9 901*4882a593Smuzhiyun default "thunderxt88" if BR2_thunderxt88 902*4882a593Smuzhiyun default "thunderxt88p1" if BR2_thunderxt88p1 903*4882a593Smuzhiyun default "xgene1" if BR2_xgene1 904*4882a593Smuzhiyun # armv8.1a 905*4882a593Smuzhiyun default "thunderx2t99" if BR2_thunderx2t99 906*4882a593Smuzhiyun default "thunderx2t99p1" if BR2_thunderx2t99p1 907*4882a593Smuzhiyun default "vulcan" if BR2_vulcan 908*4882a593Smuzhiyun # armv8.2a 909*4882a593Smuzhiyun default "cortex-a55" if BR2_cortex_a55 910*4882a593Smuzhiyun default "cortex-a75" if BR2_cortex_a75 911*4882a593Smuzhiyun default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55 912*4882a593Smuzhiyun default "cortex-a76" if BR2_cortex_a76 913*4882a593Smuzhiyun default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55 914*4882a593Smuzhiyun default "neoverse-n1" if BR2_neoverse_n1 915*4882a593Smuzhiyun default "tsv110" if BR2_tsv110 916*4882a593Smuzhiyun # armv8.4a 917*4882a593Smuzhiyun default "saphira" if BR2_saphira 918*4882a593Smuzhiyun 919*4882a593Smuzhiyunconfig BR2_GCC_TARGET_ABI 920*4882a593Smuzhiyun default "aapcs-linux" if BR2_arm || BR2_armeb 921*4882a593Smuzhiyun default "lp64" if BR2_aarch64 || BR2_aarch64_be 922*4882a593Smuzhiyun 923*4882a593Smuzhiyunconfig BR2_GCC_TARGET_FPU 924*4882a593Smuzhiyun default "" if BR2_ARM_FPU_AUTO 925*4882a593Smuzhiyun default "vfp" if BR2_ARM_FPU_VFPV2 926*4882a593Smuzhiyun default "vfpv3" if BR2_ARM_FPU_VFPV3 927*4882a593Smuzhiyun default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16 928*4882a593Smuzhiyun default "vfpv4" if BR2_ARM_FPU_VFPV4 929*4882a593Smuzhiyun default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16 930*4882a593Smuzhiyun default "neon" if BR2_ARM_FPU_NEON 931*4882a593Smuzhiyun default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4 932*4882a593Smuzhiyun default "fpv4-sp-d16" if BR2_ARM_FPU_FPV4D16 933*4882a593Smuzhiyun default "fpv5-sp-d16" if BR2_ARM_FPU_FPV5D16 934*4882a593Smuzhiyun default "fpv5-d16" if BR2_ARM_FPU_FPV5DPD16 935*4882a593Smuzhiyun default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8 936*4882a593Smuzhiyun default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8 937*4882a593Smuzhiyun depends on BR2_arm || BR2_armeb 938*4882a593Smuzhiyun 939*4882a593Smuzhiyunconfig BR2_GCC_TARGET_FLOAT_ABI 940*4882a593Smuzhiyun default "soft" if BR2_ARM_SOFT_FLOAT 941*4882a593Smuzhiyun default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI 942*4882a593Smuzhiyun default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF 943*4882a593Smuzhiyun 944*4882a593Smuzhiyunconfig BR2_GCC_TARGET_MODE 945*4882a593Smuzhiyun default "arm" if BR2_ARM_INSTRUCTIONS_ARM 946*4882a593Smuzhiyun default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2 947*4882a593Smuzhiyun 948*4882a593Smuzhiyunconfig BR2_READELF_ARCH_NAME 949*4882a593Smuzhiyun default "ARM" if BR2_arm || BR2_armeb 950*4882a593Smuzhiyun default "AArch64" if BR2_aarch64 || BR2_aarch64_be 951*4882a593Smuzhiyun 952*4882a593Smuzhiyun# vim: ft=kconfig 953*4882a593Smuzhiyun# -*- mode:kconfig; -*- 954