+typedef struct
+{
+ u8 model;
+ u8 stepping;
+ u8 has_stepping;
+ char *filename;
+} file_by_model_and_stepping_t;
+
+/* Created by parsing mapfile.csv, see mapfile_tool.c */
+
+static const file_by_model_and_stepping_t fms_table[] = {
+ /* model, stepping, stepping valid, file */
+ {0x2E, 0x0, 0, "NehalemEX_core_V2.json"},
+ {0x1E, 0x0, 0, "NehalemEP_core_V2.json"},
+ {0x1F, 0x0, 0, "NehalemEP_core_V2.json"},
+ {0x1A, 0x0, 0, "NehalemEP_core_V2.json"},
+ {0x2F, 0x0, 0, "WestmereEX_core_V2.json"},
+ {0x25, 0x0, 0, "WestmereEP-SP_core_V2.json"},
+ {0x2C, 0x0, 0, "WestmereEP-DP_core_V2.json"},
+ {0x37, 0x0, 0, "Silvermont_core_V14.json"},
+ {0x4D, 0x0, 0, "Silvermont_core_V14.json"},
+ {0x4C, 0x0, 0, "Silvermont_core_V14.json"},
+ {0x5C, 0x0, 0, "goldmont_core_v13.json"},
+ {0x5F, 0x0, 0, "goldmont_core_v13.json"},
+ {0x1C, 0x0, 0, "Bonnell_core_V4.json"},
+ {0x26, 0x0, 0, "Bonnell_core_V4.json"},
+ {0x27, 0x0, 0, "Bonnell_core_V4.json"},
+ {0x36, 0x0, 0, "Bonnell_core_V4.json"},
+ {0x35, 0x0, 0, "Bonnell_core_V4.json"},
+ {0x2A, 0x0, 0, "sandybridge_core_v16.json"},
+ {0x2D, 0x0, 0, "Jaketown_core_V20.json"},
+ {0x3A, 0x0, 0, "ivybridge_core_v21.json"},
+ {0x3E, 0x0, 0, "ivytown_core_v20.json"},
+ {0x3C, 0x0, 0, "haswell_core_v28.json"},
+ {0x45, 0x0, 0, "haswell_core_v28.json"},
+ {0x46, 0x0, 0, "haswell_core_v28.json"},
+ {0x3F, 0x0, 0, "haswellx_core_v20.json"},
+ {0x3D, 0x0, 0, "broadwell_core_v23.json"},
+ {0x47, 0x0, 0, "broadwell_core_v23.json"},
+ {0x4F, 0x0, 0, "broadwellx_core_v14.json"},
+ {0x56, 0x0, 0, "broadwellde_core_v7.json"},
+ {0x4E, 0x0, 0, "skylake_core_v42.json"},
+ {0x5E, 0x0, 0, "skylake_core_v42.json"},
+ {0x8E, 0x0, 0, "skylake_core_v42.json"},
+ {0x9E, 0x0, 0, "skylake_core_v42.json"},
+ {0x57, 0x0, 0, "KnightsLanding_core_V9.json"},
+ {0x85, 0x0, 0, "KnightsLanding_core_V9.json"},
+ {0x55, 0x0, 1, "skylakex_core_v1.12.json"},
+ {0x55, 0x1, 1, "skylakex_core_v1.12.json"},
+ {0x55, 0x2, 1, "skylakex_core_v1.12.json"},
+ {0x55, 0x3, 1, "skylakex_core_v1.12.json"},
+ {0x55, 0x4, 1, "skylakex_core_v1.12.json"},
+ {0x55, 0x5, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0x6, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0x7, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0x8, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0x9, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xA, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xB, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xC, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xD, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xE, 1, "cascadelakex_core_v1.00.json"},
+ {0x55, 0xF, 1, "cascadelakex_core_v1.00.json"},
+ {0x7A, 0x0, 0, "goldmontplus_core_v1.01.json"},
+};
+