arch/x86/include/cpu: introduce CPU_TABLE_END CPU table terminator
Instead of having a magic entry in the CPU device ID table list to tell find_cpu_driver that it has reached the end of the list, introduce and use CPU_TABLE_END. Since the vendor entry in the CPU device ID struct is compared against X86_VENDOR_INVALID which is 0, use X86_VENDOR_INVALID instead of the 0 in the CPU_TABLE_END definition. TEST=Timeless build for Mandolin results in identical image. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Suggested-by: Angel Pons <th3fanbus@gmail.com> Change-Id: I0cae6d65b2265cf5ebf90fe1a9d885d0c489eb92 Reviewed-on: https://review.coreboot.org/c/coreboot/+/72888 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
This commit is contained in:
parent
24f3dc8a17
commit
1e78165cdc
|
@ -130,6 +130,8 @@ static inline bool cpuid_match(uint32_t a, uint32_t b, uint32_t mask)
|
|||
return (a & mask) == (b & mask);
|
||||
}
|
||||
|
||||
#define CPU_TABLE_END { X86_VENDOR_INVALID, 0, 0 }
|
||||
|
||||
struct cpu_device_id {
|
||||
unsigned int vendor;
|
||||
uint32_t device;
|
||||
|
|
|
@ -60,7 +60,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static const struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, 0x730F00, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_AMD, 0x730F01, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver model_16 __cpu_driver = {
|
||||
|
|
|
@ -651,7 +651,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, CPUID_BROADWELL_ULT_C0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_BROADWELL_ULT_D0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_BROADWELL_ULT_E0, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -268,7 +268,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x10676, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x10677, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x1067A, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -82,7 +82,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static const struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_INTEL, 0x106c0, CPUID_EXACT_MATCH_MASK }, /* Intel Atom 230 */
|
||||
{ X86_VENDOR_INTEL, 0x106ca, CPUID_EXACT_MATCH_MASK }, /* Intel Atom D5xx */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -180,7 +180,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x20652, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x20654, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x20655, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -429,7 +429,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static const struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_INTEL, 0x206a0, CPUID_ALL_STEPPINGS_MASK }, /* Intel Sandybridge */
|
||||
{ X86_VENDOR_INTEL, 0x306a0, CPUID_ALL_STEPPINGS_MASK }, /* Intel IvyBridge */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -40,7 +40,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
/* PII/Celeron/Xeon, dB0/mdB0/B0 */
|
||||
{ X86_VENDOR_INTEL, 0x0652, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x0653, CPUID_EXACT_MATCH_MASK }, /* PII/Xeon, dB1/B1 */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -38,8 +38,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x0671, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x0672, CPUID_EXACT_MATCH_MASK }, /* PIII, kB0 */
|
||||
{ X86_VENDOR_INTEL, 0x0673, CPUID_EXACT_MATCH_MASK }, /* PIII, kC0 */
|
||||
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -54,8 +54,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x0686, CPUID_EXACT_MATCH_MASK },
|
||||
/* PIII/Celeron, cD0/D0/BD0/PD0 */
|
||||
{ X86_VENDOR_INTEL, 0x068a, CPUID_EXACT_MATCH_MASK },
|
||||
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -42,7 +42,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
/* Pentium III/Celeron, tA1/A1/FPA1 */
|
||||
{ X86_VENDOR_INTEL, 0x06b1, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x06b4, CPUID_EXACT_MATCH_MASK }, /* Pentium III, tB1/FPB1 */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -123,7 +123,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x06e0, CPUID_EXACT_MATCH_MASK }, /* Intel Core Solo/Core Duo */
|
||||
{ X86_VENDOR_INTEL, 0x06e8, CPUID_EXACT_MATCH_MASK }, /* Intel Core Solo/Core Duo */
|
||||
{ X86_VENDOR_INTEL, 0x06ec, CPUID_EXACT_MATCH_MASK }, /* Intel Core Solo/Core Duo */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -142,7 +142,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x06fd, CPUID_EXACT_MATCH_MASK }, /* Intel Core 2 Solo/Core Duo */
|
||||
/* Intel Core 2 Celeron Conroe-L */
|
||||
{ X86_VENDOR_INTEL, 0x10661, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -73,7 +73,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x06a0, CPUID_EXACT_MATCH_MASK }, /* PIII, A0 */
|
||||
{ X86_VENDOR_INTEL, 0x06a1, CPUID_EXACT_MATCH_MASK }, /* PIII, A1 */
|
||||
{ X86_VENDOR_INTEL, 0x06a4, CPUID_EXACT_MATCH_MASK }, /* PIII, B0 */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -22,7 +22,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x0f26, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x0f27, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x0f29, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -19,7 +19,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
|
||||
static const struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_INTEL, 0x0f34, CPUID_EXACT_MATCH_MASK }, /* Xeon */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver model_f3x __cpu_driver = {
|
||||
|
|
|
@ -22,7 +22,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x0f48, CPUID_EXACT_MATCH_MASK }, /* Not tested */
|
||||
{ X86_VENDOR_INTEL, 0x0f49, CPUID_EXACT_MATCH_MASK }, /* Not tested */
|
||||
{ X86_VENDOR_INTEL, 0x0f4a, CPUID_EXACT_MATCH_MASK }, /* Not tested */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver model_f4x __cpu_driver = {
|
||||
|
|
|
@ -13,7 +13,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
|
||||
static const struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_ANY, 0, 0 },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -48,7 +48,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
|
||||
static struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, CEZANNE_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver zen_2_3 __cpu_driver = {
|
||||
|
|
|
@ -51,7 +51,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
|
||||
static struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, GLINDA_A0_CPUID, CPUID_ALL_STEPPINGS_MASK }, /* TODO: Update for Glinda */
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver zen_2_3 __cpu_driver = {
|
||||
|
|
|
@ -49,7 +49,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
|
||||
static struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, MENDOCINO_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver zen_2_3 __cpu_driver = {
|
||||
|
|
|
@ -52,7 +52,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, PHOENIX_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ X86_VENDOR_AMD, PHOENIX2_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver zen_2_3 __cpu_driver = {
|
||||
|
|
|
@ -51,7 +51,7 @@ static struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_AMD, RAVEN1_B0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ X86_VENDOR_AMD, PICASSO_B0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ X86_VENDOR_AMD, RAVEN2_A0_CPUID, CPUID_ALL_STEPPINGS_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver model_17 __cpu_driver = {
|
||||
|
|
|
@ -62,7 +62,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static struct cpu_device_id cpu_table[] = {
|
||||
{ X86_VENDOR_AMD, CPUID_FROM_FMS(0x15, 0x60, 0), CPUID_ALL_STEPPINGS_MASK },
|
||||
{ X86_VENDOR_AMD, CPUID_FROM_FMS(0x15, 0x70, 0), CPUID_ALL_STEPPINGS_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver model_15 __cpu_driver = {
|
||||
|
|
|
@ -116,7 +116,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, CPUID_GLK_A0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_GLK_B0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_GLK_R0, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -62,7 +62,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x30673, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x30678, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x30679, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -62,7 +62,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, 0x406c4, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x406c3, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, 0x406c2, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -81,7 +81,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{ X86_VENDOR_INTEL, CPUID_ALDERLAKE_N_A0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_RAPTORLAKE_P_J0, CPUID_EXACT_MATCH_MASK },
|
||||
{ X86_VENDOR_INTEL, CPUID_RAPTORLAKE_P_Q0, CPUID_EXACT_MATCH_MASK },
|
||||
{ 0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -126,7 +126,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{X86_VENDOR_INTEL, CPUID_DENVERTON_A0_A1, CPUID_EXACT_MATCH_MASK },
|
||||
/* Denverton-NS B0 CPUID */
|
||||
{X86_VENDOR_INTEL, CPUID_DENVERTON_B0, CPUID_EXACT_MATCH_MASK },
|
||||
{0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -129,7 +129,7 @@ static struct device_operations cpu_dev_ops = {
|
|||
static const struct cpu_device_id cpu_table[] = {
|
||||
{X86_VENDOR_INTEL, CPUID_COOPERLAKE_SP_A0, CPUID_EXACT_MATCH_MASK },
|
||||
{X86_VENDOR_INTEL, CPUID_COOPERLAKE_SP_A1, CPUID_EXACT_MATCH_MASK },
|
||||
{0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
|
@ -153,7 +153,7 @@ static const struct cpu_device_id cpu_table[] = {
|
|||
{X86_VENDOR_INTEL, CPUID_SKYLAKE_SP_B0, CPUID_EXACT_MATCH_MASK },
|
||||
/* Skylake-SP 4 CPUID 0x50654*/
|
||||
{X86_VENDOR_INTEL, CPUID_SKYLAKE_SP_4, CPUID_EXACT_MATCH_MASK },
|
||||
{0, 0, 0 },
|
||||
CPU_TABLE_END
|
||||
};
|
||||
|
||||
static const struct cpu_driver driver __cpu_driver = {
|
||||
|
|
Loading…
Reference in New Issue