Add support for an armv7 variant for Kryo

* Kryo is closer to Krait than to cortex-a53, so choose Krait defaults.

* Made together with Jake Weinstein (xboxfanj)

Bug: 36728278

Test: Built and boot sailfish set up as kryo.

Change-Id: I04fa0a1dca6f97ae19202d28ee3ce8a59bf169b5
Signed-off-by: Alex Naidis <alex.naidis@linux.com>
This commit is contained in:
Alex Naidis
2016-08-20 00:14:56 +02:00
parent 1889d015c5
commit ae4fc18406
2 changed files with 18 additions and 0 deletions

View File

@@ -856,6 +856,7 @@ func getMegaDeviceConfig() []archConfig {
{"arm", "armv7-a-neon", "cortex-a53.a57", []string{"armeabi-v7a"}}, {"arm", "armv7-a-neon", "cortex-a53.a57", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "denver", []string{"armeabi-v7a"}}, {"arm", "armv7-a-neon", "denver", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "krait", []string{"armeabi-v7a"}}, {"arm", "armv7-a-neon", "krait", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "kryo", []string{"armeabi-v7a"}},
{"arm64", "armv8-a", "cortex-a53", []string{"arm64-v8a"}}, {"arm64", "armv8-a", "cortex-a53", []string{"arm64-v8a"}},
{"arm64", "armv8-a", "denver64", []string{"arm64-v8a"}}, {"arm64", "armv8-a", "denver64", []string{"arm64-v8a"}},
{"mips", "mips32-fp", "", []string{"mips"}}, {"mips", "mips32-fp", "", []string{"mips"}},

View File

@@ -134,6 +134,14 @@ var (
// better solution comes around. See Bug 27340895 // better solution comes around. See Bug 27340895
"-D__ARM_FEATURE_LPAE=1", "-D__ARM_FEATURE_LPAE=1",
}, },
"kryo": []string{
"-mcpu=cortex-a15",
// Fake an ARM compiler flag as these processors support LPAE which GCC/clang
// don't advertise.
// TODO This is a hack and we need to add it for each processor that supports LPAE until some
// better solution comes around. See Bug 27340895
"-D__ARM_FEATURE_LPAE=1",
},
} }
armClangCpuVariantCflags = copyVariantFlags(armCpuVariantCflags) armClangCpuVariantCflags = copyVariantFlags(armCpuVariantCflags)
@@ -156,6 +164,7 @@ func init() {
"cortex_a53", "cortex_a53",
"cortex_a53_a57", "cortex_a53_a57",
"krait", "krait",
"kryo",
"denver") "denver")
replaceFirst := func(slice []string, from, to string) { replaceFirst := func(slice []string, from, to string) {
@@ -169,6 +178,9 @@ func init() {
replaceFirst(armClangCpuVariantCflags["krait"], "-mcpu=cortex-a15", "-mcpu=krait") replaceFirst(armClangCpuVariantCflags["krait"], "-mcpu=cortex-a15", "-mcpu=krait")
armClangCpuVariantCflags["krait"] = append(armClangCpuVariantCflags["krait"], "-mfpu=neon-vfpv4") armClangCpuVariantCflags["krait"] = append(armClangCpuVariantCflags["krait"], "-mfpu=neon-vfpv4")
replaceFirst(armClangCpuVariantCflags["kryo"], "-mcpu=cortex-a15", "-mcpu=krait")
armClangCpuVariantCflags["kryo"] = append(armClangCpuVariantCflags["kryo"], "-mfpu=neon-vfpv4")
pctx.StaticVariable("armGccVersion", armGccVersion) pctx.StaticVariable("armGccVersion", armGccVersion)
pctx.SourcePathVariable("ArmGccRoot", pctx.SourcePathVariable("ArmGccRoot",
@@ -197,6 +209,7 @@ func init() {
pctx.StaticVariable("ArmCortexA8Cflags", strings.Join(armCpuVariantCflags["cortex-a8"], " ")) pctx.StaticVariable("ArmCortexA8Cflags", strings.Join(armCpuVariantCflags["cortex-a8"], " "))
pctx.StaticVariable("ArmCortexA15Cflags", strings.Join(armCpuVariantCflags["cortex-a15"], " ")) pctx.StaticVariable("ArmCortexA15Cflags", strings.Join(armCpuVariantCflags["cortex-a15"], " "))
pctx.StaticVariable("ArmKraitCflags", strings.Join(armCpuVariantCflags["krait"], " ")) pctx.StaticVariable("ArmKraitCflags", strings.Join(armCpuVariantCflags["krait"], " "))
pctx.StaticVariable("ArmKryoCflags", strings.Join(armCpuVariantCflags["kryo"], " "))
// Clang cflags // Clang cflags
pctx.StaticVariable("ArmToolchainClangCflags", strings.Join(ClangFilterUnknownCflags(armToolchainCflags), " ")) pctx.StaticVariable("ArmToolchainClangCflags", strings.Join(ClangFilterUnknownCflags(armToolchainCflags), " "))
@@ -227,6 +240,8 @@ func init() {
strings.Join(armClangCpuVariantCflags["cortex-a15"], " ")) strings.Join(armClangCpuVariantCflags["cortex-a15"], " "))
pctx.StaticVariable("ArmClangKraitCflags", pctx.StaticVariable("ArmClangKraitCflags",
strings.Join(armClangCpuVariantCflags["krait"], " ")) strings.Join(armClangCpuVariantCflags["krait"], " "))
pctx.StaticVariable("ArmClangKryoCflags",
strings.Join(armClangCpuVariantCflags["kryo"], " "))
} }
var ( var (
@@ -244,6 +259,7 @@ var (
"cortex-a53": "${config.ArmCortexA7Cflags}", "cortex-a53": "${config.ArmCortexA7Cflags}",
"cortex-a53.a57": "${config.ArmCortexA7Cflags}", "cortex-a53.a57": "${config.ArmCortexA7Cflags}",
"krait": "${config.ArmKraitCflags}", "krait": "${config.ArmKraitCflags}",
"kryo": "${config.ArmKryoCflags}",
"denver": "${config.ArmCortexA15Cflags}", "denver": "${config.ArmCortexA15Cflags}",
} }
@@ -261,6 +277,7 @@ var (
"cortex-a53": "${config.ArmClangCortexA7Cflags}", "cortex-a53": "${config.ArmClangCortexA7Cflags}",
"cortex-a53.a57": "${config.ArmClangCortexA7Cflags}", "cortex-a53.a57": "${config.ArmClangCortexA7Cflags}",
"krait": "${config.ArmClangKraitCflags}", "krait": "${config.ArmClangKraitCflags}",
"kryo": "${config.ArmClangKryoCflags}",
"denver": "${config.ArmClangCortexA15Cflags}", "denver": "${config.ArmClangCortexA15Cflags}",
} }
) )