You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1755 lines
51 KiB
1755 lines
51 KiB
#include <gtest/gtest.h>
|
|
|
|
#include <cstdint>
|
|
|
|
#include <cpuinfo.h>
|
|
extern "C" {
|
|
#include <arm/api.h>
|
|
}
|
|
|
|
|
|
TEST(QUALCOMM, snapdragon_410_msm) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8916,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD030),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_410_apq) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_apq,
|
|
.model = 8016,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD030),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_415) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8929,
|
|
};
|
|
|
|
for (uint32_t cluster = 0; cluster < 2; cluster++) {
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD031),
|
|
&chipset, cluster, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_425) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8917,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_427) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8920,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_430) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8937,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_435) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8940,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_450) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
|
|
.model = 450,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_617) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8952,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(256 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_625) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8953,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_626) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8953,
|
|
.suffix = {
|
|
[0] = 'P',
|
|
[1] = 'R',
|
|
[2] = 'O',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_630) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
|
|
.model = 630,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_636) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
|
|
.model = 636,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8002),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_650) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8956,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_652) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8976,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_653) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8976,
|
|
.suffix = {
|
|
[0] = 'P',
|
|
[1] = 'R',
|
|
[2] = 'O',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_660) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
|
|
.model = 660,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8002),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_808) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8992,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a57, 2, UINT32_C(0x410FD033),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_810) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8994,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a57, 4, UINT32_C(0x410FD033),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_820) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8996,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_kryo, 4, UINT32_C(0x511F2052),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_kryo, 4, UINT32_C(0x511F2112),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(24 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(24 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_821) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8996,
|
|
.suffix = {
|
|
[0] = 'P',
|
|
[1] = 'R',
|
|
[2] = 'O',
|
|
[3] = '-',
|
|
[4] = 'A',
|
|
[5] = 'C',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_kryo, 4, UINT32_C(0x512F2051),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_kryo, 4, UINT32_C(0x512F2011),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(24 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(24 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_835) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_msm,
|
|
.model = 8998,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x51AF8001),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x51AF8014),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(QUALCOMM, snapdragon_845) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_qualcomm,
|
|
.series = cpuinfo_arm_chipset_series_qualcomm_snapdragon,
|
|
.model = 845,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a75, 4, UINT32_C(0x518F802D),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a55r0, 4, UINT32_C(0x518F803C),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(256 * 1024, big_l2.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(128 * 1024, little_l2.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, little_l3.size);
|
|
}
|
|
|
|
TEST(SAMSUNG, exynos_7885) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_samsung,
|
|
.series = cpuinfo_arm_chipset_series_samsung_exynos,
|
|
.model = 7885,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 2, UINT32_C(0x410FD092),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 6, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(256 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(SAMSUNG, exynos_8890) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_samsung,
|
|
.series = cpuinfo_arm_chipset_series_samsung_exynos,
|
|
.model = 8890,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_exynos_m1, 4, UINT32_C(0x531F0011),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(256 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(SAMSUNG, exynos_8895) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_samsung,
|
|
.series = cpuinfo_arm_chipset_series_samsung_exynos,
|
|
.model = 8890,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_exynos_m2, 4, UINT32_C(0x534F0010),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(256 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(SAMSUNG, exynos_9810) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_samsung,
|
|
.series = cpuinfo_arm_chipset_series_samsung_exynos,
|
|
.model = 9810,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_exynos_m3, 4, UINT32_C(0x531F0020),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a55r0, 4, UINT32_C(0x410FD051),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(4 * 1024 * 1024, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(MEDIATEK, mediatek_mt8173) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_mediatek,
|
|
.series = cpuinfo_arm_chipset_series_mediatek_mt,
|
|
.model = 8173,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
|
|
&chipset, 0, 4,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 2, UINT32_C(0x410FD032),
|
|
&chipset, 1, 4,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(MEDIATEK, mediatek_mt8173c) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_mediatek,
|
|
.series = cpuinfo_arm_chipset_series_mediatek_mt,
|
|
.model = 8173,
|
|
.suffix = {
|
|
[0] = 'C',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 2, UINT32_C(0x410FD080),
|
|
&chipset, 0, 4,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 2, UINT32_C(0x410FD032),
|
|
&chipset, 1, 4,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_650) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 650,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_659) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 659,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
#if CPUINFO_ARCH_ARM
|
|
TEST(HISILICON, kirin_920) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 920,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
|
|
EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_925) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 925,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
|
|
EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_928) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 928,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size); /* TODO: verify */
|
|
EXPECT_EQ(32 * 1024, little_l1d.size); /* TODO: verify */
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
#endif /* CPUINFO_ARCH_ARM */
|
|
|
|
TEST(HISILICON, kirin_950) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 950,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_955) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 955,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD080),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(48 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_960) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 960,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x410FD091),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(512 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_970) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 970,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a73, 4, UINT32_C(0x410FD092),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(1024 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(HISILICON, kirin_980) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_hisilicon,
|
|
.series = cpuinfo_arm_chipset_series_hisilicon_kirin,
|
|
.model = 980,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a76, 2, UINT32_C(0x481FD400),
|
|
&chipset, 0, 2,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache middle_l1i = { 0 };
|
|
struct cpuinfo_cache middle_l1d = { 0 };
|
|
struct cpuinfo_cache middle_l2 = { 0 };
|
|
struct cpuinfo_cache middle_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a76, 2, UINT32_C(0x481FD400),
|
|
&chipset, 1, 2,
|
|
&middle_l1i, &middle_l1d, &middle_l2, &middle_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a55, 4, UINT32_C(0x411FD050),
|
|
&chipset, 2, 4,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(64 * 1024, big_l1i.size);
|
|
EXPECT_EQ(64 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(4 * 1024 * 1024, big_l3.size);
|
|
|
|
EXPECT_EQ(64 * 1024, middle_l1i.size);
|
|
EXPECT_EQ(64 * 1024, middle_l1d.size);
|
|
EXPECT_EQ(512 * 1024, middle_l2.size);
|
|
EXPECT_EQ(4 * 1024 * 1024, middle_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(128 * 1024, little_l2.size);
|
|
EXPECT_EQ(4 * 1024 * 1024, little_l3.size);
|
|
}
|
|
|
|
#if CPUINFO_ARCH_ARM
|
|
TEST(NVIDIA, tegra_ap20h) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_ap,
|
|
.model = 20,
|
|
.suffix = {
|
|
[0] = 'H',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 2, UINT32_C(0x411FC090),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t20) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 20,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 2, UINT32_C(0x411FC090),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t30l) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 30,
|
|
.suffix = {
|
|
[0] = 'L',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t30) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 30,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t33) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 33,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_ap33) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_ap,
|
|
.model = 33,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x412FC099),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t114) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 114,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x412FC0F2),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_sl460n) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_sl,
|
|
.model = 460,
|
|
.suffix = {
|
|
[0] = 'N',
|
|
},
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a9, 4, UINT32_C(0x414FC091),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1 * 1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t124) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 124,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a15, 4, UINT32_C(0x413FC0F3),
|
|
&chipset, 0, 7,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
#endif /* CPUINFO_ARCH_ARM */
|
|
|
|
TEST(NVIDIA, tegra_t132) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 132,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_denver, 2, UINT32_C(0x4E0F0000),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(128 * 1024, l1i.size);
|
|
EXPECT_EQ(64 * 1024, l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(NVIDIA, tegra_t210) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_nvidia,
|
|
.series = cpuinfo_arm_chipset_series_nvidia_tegra_t,
|
|
.model = 210,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a57, 4, UINT32_C(0x411FD071),
|
|
&chipset, 0, 8,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(48 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(2 * 1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, l3.size);
|
|
}
|
|
|
|
TEST(ROCKCHIP, rk3368) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_rockchip,
|
|
.series = cpuinfo_arm_chipset_series_rockchip_rk,
|
|
.model = 3368,
|
|
};
|
|
|
|
struct cpuinfo_cache big_l1i = { 0 };
|
|
struct cpuinfo_cache big_l1d = { 0 };
|
|
struct cpuinfo_cache big_l2 = { 0 };
|
|
struct cpuinfo_cache big_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
|
|
&chipset, 0, 8,
|
|
&big_l1i, &big_l1d, &big_l2, &big_l3);
|
|
|
|
struct cpuinfo_cache little_l1i = { 0 };
|
|
struct cpuinfo_cache little_l1d = { 0 };
|
|
struct cpuinfo_cache little_l2 = { 0 };
|
|
struct cpuinfo_cache little_l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD033),
|
|
&chipset, 1, 8,
|
|
&little_l1i, &little_l1d, &little_l2, &little_l3);
|
|
|
|
EXPECT_EQ(32 * 1024, big_l1i.size);
|
|
EXPECT_EQ(32 * 1024, big_l1d.size);
|
|
EXPECT_EQ(512 * 1024, big_l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
|
|
EXPECT_EQ(32 * 1024, little_l1i.size);
|
|
EXPECT_EQ(32 * 1024, little_l1d.size);
|
|
EXPECT_EQ(256 * 1024, little_l2.size);
|
|
EXPECT_EQ(0, little_l3.size);
|
|
}
|
|
|
|
TEST(BROADCOM, bcm2835) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_broadcom,
|
|
.series = cpuinfo_arm_chipset_series_broadcom_bcm,
|
|
.model = 2835,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_arm11, 4, UINT32_C(0x410FB767),
|
|
&chipset, 0, 4,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(16 * 1024, l1i.size);
|
|
EXPECT_EQ(16 * 1024, l1d.size);
|
|
EXPECT_EQ(0, l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
}
|
|
|
|
TEST(BROADCOM, bcm2836) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_broadcom,
|
|
.series = cpuinfo_arm_chipset_series_broadcom_bcm,
|
|
.model = 2836,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a7, 4, UINT32_C(0x410FC075),
|
|
&chipset, 0, 4,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(32 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
}
|
|
|
|
TEST(BROADCOM, bcm2837) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_broadcom,
|
|
.series = cpuinfo_arm_chipset_series_broadcom_bcm,
|
|
.model = 2837,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a53, 4, UINT32_C(0x410FD034),
|
|
&chipset, 0, 4,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(16 * 1024, l1i.size);
|
|
EXPECT_EQ(16 * 1024, l1d.size);
|
|
EXPECT_EQ(512 * 1024, l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
}
|
|
|
|
TEST(BROADCOM, bcm2711) {
|
|
const struct cpuinfo_arm_chipset chipset = {
|
|
.vendor = cpuinfo_arm_chipset_vendor_broadcom,
|
|
.series = cpuinfo_arm_chipset_series_broadcom_bcm,
|
|
.model = 2711,
|
|
};
|
|
|
|
struct cpuinfo_cache l1i = { 0 };
|
|
struct cpuinfo_cache l1d = { 0 };
|
|
struct cpuinfo_cache l2 = { 0 };
|
|
struct cpuinfo_cache l3 = { 0 };
|
|
cpuinfo_arm_decode_cache(
|
|
cpuinfo_uarch_cortex_a72, 4, UINT32_C(0x410FD083),
|
|
&chipset, 0, 4,
|
|
&l1i, &l1d, &l2, &l3);
|
|
|
|
EXPECT_EQ(48 * 1024, l1i.size);
|
|
EXPECT_EQ(32 * 1024, l1d.size);
|
|
EXPECT_EQ(1024 * 1024, l2.size);
|
|
EXPECT_EQ(0, big_l3.size);
|
|
}
|