diff --git a/chipsec/chipset.py b/chipsec/chipset.py index 488b4c8b..b58f20cb 100644 --- a/chipsec/chipset.py +++ b/chipsec/chipset.py @@ -128,135 +128,134 @@ CHIPSET_FAMILY_QUARK = [CHIPSET_ID_QRK] VID_INTEL = 0x8086 # PCI 0/0/0 Device IDs -Chipset_Dictionary = { +Chipset_Dictionary = collections.defaultdict(list) # DID : Data Dictionary # 2nd Generation Core Processor Family (Sandy Bridge) -0x0100 : {'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Desktop 2nd Generation Core Processor (Sandy Bridge CPU / Cougar Point PCH)' }, -0x0104 : {'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Mobile 2nd Generation Core Processor (Sandy Bridge CPU / Cougar Point PCH)' }, -0x0108 : {'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Intel Xeon Processor E3-1200 (Sandy Bridge CPU, C200 Series PCH)' }, +Chipset_Dictionary[0x0100].append({'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Desktop 2nd Generation Core Processor (Sandy Bridge CPU / Cougar Point PCH)' }) +Chipset_Dictionary[0x0104].append({'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Mobile 2nd Generation Core Processor (Sandy Bridge CPU / Cougar Point PCH)' }) +Chipset_Dictionary[0x0108].append({'name' : 'Sandy Bridge', 'id' : CHIPSET_ID_SNB , 'code' : CHIPSET_CODE_SNB, 'longname' : 'Intel Xeon Processor E3-1200 (Sandy Bridge CPU, C200 Series PCH)' }) # Xeon v1 Processor (Jaketown/Sandy Bridge - EP) -0x3C00 : {'name' : 'Jaketown', 'id' : CHIPSET_ID_JKT, 'code' : CHIPSET_CODE_JKT, 'longname' : 'Server 2nd Generation Core Processor (Jaketown CPU / Patsburg PCH)'}, +Chipset_Dictionary[0x3C00].append({'name' : 'Jaketown', 'id' : CHIPSET_ID_JKT, 'code' : CHIPSET_CODE_JKT, 'longname' : 'Server 2nd Generation Core Processor (Jaketown CPU / Patsburg PCH)'}) # 3rd Generation Core Processor Family (Ivy Bridge) -0x0150 : {'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Desktop 3rd Generation Core Processor (Ivy Bridge CPU / Panther Point PCH)' }, -0x0154 : {'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Mobile 3rd Generation Core Processor (Ivy Bridge CPU / Panther Point PCH)' }, -0x0158 : {'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Intel Xeon Processor E3-1200 v2 (Ivy Bridge CPU, C200/C216 Series PCH)' }, +Chipset_Dictionary[0x0150].append({'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Desktop 3rd Generation Core Processor (Ivy Bridge CPU / Panther Point PCH)' }) +Chipset_Dictionary[0x0154].append({'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Mobile 3rd Generation Core Processor (Ivy Bridge CPU / Panther Point PCH)' }) +Chipset_Dictionary[0x0158].append({'name' : 'Ivy Bridge', 'id' : CHIPSET_ID_IVB , 'code' : CHIPSET_CODE_IVB, 'longname' : 'Intel Xeon Processor E3-1200 v2 (Ivy Bridge CPU, C200/C216 Series PCH)' }) # Xeon v2 Processor (Ivy Town/Ivy Bridge - EP) -0x0E00 : {'name' : 'Ivytown', 'id' : CHIPSET_ID_IVT, 'code' : CHIPSET_CODE_IVT, 'longname' : 'Server 3rd Generation Core Procesor (Ivytown CPU / Patsburg PCH)'}, +Chipset_Dictionary[0x0E00].append({'name' : 'Ivytown', 'id' : CHIPSET_ID_IVT, 'code' : CHIPSET_CODE_IVT, 'longname' : 'Server 3rd Generation Core Procesor (Ivytown CPU / Patsburg PCH)'}) # 4th Generation Core Processor Family (Haswell) -0x0C00 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Desktop 4th Generation Core Processor (Haswell CPU / Lynx Point PCH)' }, -0x0C04 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Mobile 4th Generation Core Processor (Haswell M/H / Lynx Point PCH)' }, -0x0C08 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Intel Xeon Processor E3-1200 v3 (Haswell CPU, C220 Series PCH)' }, -0x0D00 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Desktop 4th Generation Core Processor (Haswell)' }, -0x0D04 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Mobile 4th Generation Core Processor (Haswell)' }, -0x0D08 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell)' }, -0x0A00 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }, -0x0A04 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }, -0x0A08 : {'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }, +Chipset_Dictionary[0x0C00].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Desktop 4th Generation Core Processor (Haswell CPU / Lynx Point PCH)' }) +Chipset_Dictionary[0x0C04].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Mobile 4th Generation Core Processor (Haswell M/H / Lynx Point PCH)' }) +Chipset_Dictionary[0x0C08].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Intel Xeon Processor E3-1200 v3 (Haswell CPU, C220 Series PCH)' }) +Chipset_Dictionary[0x0D00].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Desktop 4th Generation Core Processor (Haswell)' }) +Chipset_Dictionary[0x0D04].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : 'Mobile 4th Generation Core Processor (Haswell)' }) +Chipset_Dictionary[0x0D08].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell)' }) +Chipset_Dictionary[0x0A00].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }) +Chipset_Dictionary[0x0A04].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }) +Chipset_Dictionary[0x0A08].append({'name' : 'Haswell', 'id' : CHIPSET_ID_HSW , 'code' : CHIPSET_CODE_HSW, 'longname' : '4th Generation Core Processor (Haswell U/Y)' }) # 5th Generation Core Processor Family (Broadwell) -0x1600 : {'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Desktop 5th Generation Core Processor (Broadwell CPU / Wildcat Point PCH)' }, -0x1604 : {'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Mobile 5th Generation Core Processor (Broadwell M/H / Wildcat Point PCH)' }, -0x1610 : {'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Desktop 5th Generation Core Processor (Broadwell H / Wildcat Point PCH)' }, -0x1614 : {'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Mobile 5th Generation Core Processor (Broadwell H / Wildcat Point PCH)' }, +Chipset_Dictionary[0x1600].append({'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Desktop 5th Generation Core Processor (Broadwell CPU / Wildcat Point PCH)' }) +Chipset_Dictionary[0x1604].append({'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Mobile 5th Generation Core Processor (Broadwell M/H / Wildcat Point PCH)' }) +Chipset_Dictionary[0x1610].append({'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Desktop 5th Generation Core Processor (Broadwell H / Wildcat Point PCH)' }) +Chipset_Dictionary[0x1614].append({'name' : 'Broadwell', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Mobile 5th Generation Core Processor (Broadwell H / Wildcat Point PCH)' }) # 6th Generation Core Processor Family (Skylake) -0x1904 : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor (Skylake U)' }, -0x190C : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor (Skylake Y)' }, -0x1900 : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor Dual Core (Skylake H)' }, -0x1910 : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor Quad Core (Skylake H)' }, -0x190F : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Desktop 6th Generation Core Processor Dual Core (Skylake CPU / Sunrise Point PCH)' }, -0x191F : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Desktop 6th Generation Core Processor Quad Core (Skylake CPU / Sunrise Point PCH)' }, +Chipset_Dictionary[0x1904].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor (Skylake U)' }) +Chipset_Dictionary[0x190C].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor (Skylake Y)' }) +Chipset_Dictionary[0x1900].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor Dual Core (Skylake H)' }) +Chipset_Dictionary[0x1910].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Mobile 6th Generation Core Processor Quad Core (Skylake H)' }) +Chipset_Dictionary[0x190F].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Desktop 6th Generation Core Processor Dual Core (Skylake CPU / Sunrise Point PCH)' }) +Chipset_Dictionary[0x191F].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKL , 'code' : CHIPSET_CODE_SKL, 'longname' : 'Desktop 6th Generation Core Processor Quad Core (Skylake CPU / Sunrise Point PCH)' }) # 7th Generation Core Processor Family (Kabylake) -0x5900 : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }, -0x5904 : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake U)' }, -0x590C : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake Y)' }, -0x590F : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Desktop 7th Generation Core Processor (Kabylake S)' }, -0x5910 : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }, -0x5914 : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 8th Generation Core Processor (Kabylake U-Quad Core)' }, -0x591F : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Desktop 7th Generation Core Processor (Kabylake S)' }, -0x5918 : {'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }, +Chipset_Dictionary[0x5900].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }) +Chipset_Dictionary[0x5904].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake U)' }) +Chipset_Dictionary[0x590C].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake Y)' }) +Chipset_Dictionary[0x590F].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Desktop 7th Generation Core Processor (Kabylake S)' }) +Chipset_Dictionary[0x5910].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }) +Chipset_Dictionary[0x5914].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 8th Generation Core Processor (Kabylake U-Quad Core)' }) +Chipset_Dictionary[0x591F].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Desktop 7th Generation Core Processor (Kabylake S)' }) +Chipset_Dictionary[0x5918].append({'name' : 'Kabylake', 'id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Mobile 7th Generation Core Processor (Kabylake H)' }) # 8th Generation Core Processor Family (Coffeelake) -0x3E0F : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake S 2 Cores)' }, -0x3E1F : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (Coffeelake S 4 Cores)' }, -0x3EC2 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (Coffeelake S 6 Cores)' }, -0x3E30 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake S 8 Cores)' }, -0x3ECC : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake U 2 Cores)' }, -0x3ED0 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake U 4 Cores)' }, -0x3E10 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake H 4 Cores)' }, -0x3EC4 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake H 6 Cores)' }, -0x3E18 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 4 Cores)' }, -0x3EC6 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 6 Cores)' }, -0x3E31 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 8 Cores)' }, -0x3E33 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 4 Cores)' }, -0x3ECA : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 6 Cores)' }, -0x3E32 : {'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 8 Cores)' }, +Chipset_Dictionary[0x3E0F].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake S 2 Cores)' }) +Chipset_Dictionary[0x3E1F].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (Coffeelake S 4 Cores)' }) +Chipset_Dictionary[0x3EC2].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (Coffeelake S 6 Cores)' }) +Chipset_Dictionary[0x3E30].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake S 8 Cores)' }) +Chipset_Dictionary[0x3ECC].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake U 2 Cores)' }) +Chipset_Dictionary[0x3ED0].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake U 4 Cores)' }) +Chipset_Dictionary[0x3E10].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake H 4 Cores)' }) +Chipset_Dictionary[0x3EC4].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake H 6 Cores)' }) +Chipset_Dictionary[0x3E18].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 4 Cores)' }) +Chipset_Dictionary[0x3EC6].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 6 Cores)' }) +Chipset_Dictionary[0x3E31].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Workstation 8 Cores)' }) +Chipset_Dictionary[0x3E33].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 4 Cores)' }) +Chipset_Dictionary[0x3ECA].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 6 Cores)' }) +Chipset_Dictionary[0x3E32].append({'name' : 'CoffeeLake', 'id' : CHIPSET_ID_CFL , 'code' : CHIPSET_CODE_CFL, 'longname' : 'Desktop 8th Generation Core Processor (CoffeeLake Server 8 Cores)' }) # 8th Generation Core Processor Family (Whiskey Lake) -0x3E34 : {'name': 'Whiskey Lake', 'id' : CHIPSET_ID_WHL , 'code' : CHIPSET_CODE_WHL, 'longname' : 'Mobile 8th Generation Core Processor (Whiskey Lake U 4 Cores)' }, +Chipset_Dictionary[0x3E34].append({'name': 'Whiskey Lake', 'id' : CHIPSET_ID_WHL , 'code' : CHIPSET_CODE_WHL, 'longname' : 'Mobile 8th Generation Core Processor (Whiskey Lake U 4 Cores)' }) # Xeon v3 Processor (Haswell Server) -0x2F00 : {'name' : 'Haswell Server', 'id' : CHIPSET_ID_HSX, 'code' : CHIPSET_CODE_HSX, 'longname' : 'Server 4th Generation Core Processor (Haswell Server CPU / Wellsburg PCH)'}, +Chipset_Dictionary[0x2F00].append({'name' : 'Haswell Server', 'id' : CHIPSET_ID_HSX, 'code' : CHIPSET_CODE_HSX, 'longname' : 'Server 4th Generation Core Processor (Haswell Server CPU / Wellsburg PCH)'}) # Xeon v4 Processor (Broadwell Server) -0x1618 : {'name' : 'Broadwell Server', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Intel Xeon Processor E3 v4 (Broadwell CPU)' }, -0x6F00 : {'name' : 'Broadwell Server', 'id' : CHIPSET_ID_BDX, 'code' : CHIPSET_CODE_BDX, 'longname' : 'Intel Xeon Processor E5/E7 v4 (Broadwell Server CPU / Wellsburg PCH)'}, +Chipset_Dictionary[0x1618].append({'name' : 'Broadwell Server', 'id' : CHIPSET_ID_BDW , 'code' : CHIPSET_CODE_BDW, 'longname' : 'Intel Xeon Processor E3 v4 (Broadwell CPU)' }) +Chipset_Dictionary[0x6F00].append({'name' : 'Broadwell Server', 'id' : CHIPSET_ID_BDX, 'code' : CHIPSET_CODE_BDX, 'longname' : 'Intel Xeon Processor E5/E7 v4 (Broadwell Server CPU / Wellsburg PCH)'}) # Xeon v5 Processor (Skylake Server) -0x1918 : {'name' : 'Skylake Server', 'id' : CHIPSET_ID_SKL, 'code' : CHIPSET_CODE_SKL, 'longname' : 'Intel Xeon Processor E3 v5 (Skylake CPU / Sunrise Point PCH)'}, -0x2020 : {'name' : 'Skylake', 'id' : CHIPSET_ID_SKX , 'code' : CHIPSET_CODE_SKX, 'longname' : 'Intel Xeon Processor E5/E7 v5 (Skylake)' }, +Chipset_Dictionary[0x1918].append({'name' : 'Skylake Server', 'id' : CHIPSET_ID_SKL, 'code' : CHIPSET_CODE_SKL, 'longname' : 'Intel Xeon Processor E3 v5 (Skylake CPU / Sunrise Point PCH)'}) +Chipset_Dictionary[0x2020].append({'name' : 'Skylake', 'id' : CHIPSET_ID_SKX , 'code' : CHIPSET_CODE_SKX, 'longname' : 'Intel Xeon Processor E5/E7 v5 (Skylake)' }) # Xeon v6 Processor (Kabylake Server) -0x5918 : {'name' : 'Kabylake','id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Intel Xeon Processor E3 v6 (Kabylake CPU)' }, +Chipset_Dictionary[0x5918].append({'name' : 'Kabylake','id' : CHIPSET_ID_KBL , 'code' : CHIPSET_CODE_KBL, 'longname' : 'Intel Xeon Processor E3 v6 (Kabylake CPU)' }) # # Atom based SoC platforms # # Bay Trail SoC -0x0F00 : {'name' : 'Baytrail', 'id' : CHIPSET_ID_BYT , 'code' : CHIPSET_CODE_BYT, 'longname' : 'Bay Trail SoC' }, +Chipset_Dictionary[0x0F00].append({'name' : 'Baytrail', 'id' : CHIPSET_ID_BYT , 'code' : CHIPSET_CODE_BYT, 'longname' : 'Bay Trail SoC' }) # Denverton -0x1980 : {'name' : 'Denverton', 'id' : CHIPSET_ID_DNV , 'code' : CHIPSET_CODE_DNV, 'longname' : 'Intel Atom Processor C3000 Product Family' }, +Chipset_Dictionary[0x1980].append({'name' : 'Denverton', 'id' : CHIPSET_ID_DNV , 'code' : CHIPSET_CODE_DNV, 'longname' : 'Intel Atom Processor C3000 Product Family' }) # Atom C2000 Processor Family (Avoton) -0x1F00 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F01 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F02 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F03 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F04 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F05 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F06 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F07 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F08 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F09 : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0A : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0B : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0C : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0D : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0E : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, -0x1F0F : {'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }, +Chipset_Dictionary[0x1F00].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F01].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F02].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F03].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F04].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F05].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F06].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F07].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F08].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F09].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0A].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0B].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0C].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0D].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0E].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) +Chipset_Dictionary[0x1F0F].append({'name' : 'Avoton ', 'id' : CHIPSET_ID_AVN , 'code' : CHIPSET_CODE_AVN, 'longname' : 'Intel Avoton' }) # Cherry Trail SoC -0x2280 : {'name' : 'Braswell/Cherry Trail', 'id' : CHIPSET_ID_CHT, 'code' : CHIPSET_CODE_CHT, 'longname' : 'Braswell/Cherry Trail SoC' }, +Chipset_Dictionary[0x2280].append({'name' : 'Braswell/Cherry Trail', 'id' : CHIPSET_ID_CHT, 'code' : CHIPSET_CODE_CHT, 'longname' : 'Braswell/Cherry Trail SoC' }) # Apollo Lake -0x5AF0 : {'name' : 'Apollo Lake','id' : CHIPSET_ID_APL , 'code' : CHIPSET_CODE_APL, 'longname' : 'Apollo Lake' }, +Chipset_Dictionary[0x5AF0].append({'name' : 'Apollo Lake','id' : CHIPSET_ID_APL , 'code' : CHIPSET_CODE_APL, 'longname' : 'Apollo Lake' }) # # Quark based SoC platforms # # Galileo Board -0x0958 : {'name' : 'Galileo ', 'id' : CHIPSET_ID_QRK , 'code' : CHIPSET_CODE_QRK, 'longname' : 'Intel Quark SoC X1000' }, +Chipset_Dictionary[0x0958].append({'name' : 'Galileo ', 'id' : CHIPSET_ID_QRK , 'code' : CHIPSET_CODE_QRK, 'longname' : 'Intel Quark SoC X1000' }) -} PCH_ID_1xx = 10001 PCH_ID_2xx = 10002 @@ -273,85 +272,85 @@ PCH_CODE_C620 = 'PCH_C620' PCH_CODE_C60x = 'PCH_C60X' PCH_CODE_C61x = 'PCH_C61X' -pch_dictionary = { +pch_dictionary = collections.defaultdict(list) + # 100 series PCH and 7th/8th gen mobile (U/Y) -0xA143 : {'name' : 'H110', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel H110 (100 series) PCH'}, -0xA144 : {'name' : 'H170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel H170 (100 series) PCH'}, -0xA145 : {'name' : 'Z170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Z170 (100 series) PCH'}, -0xA146 : {'name' : 'Q170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Q170 (100 series) PCH'}, -0xA147 : {'name' : 'Q150', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Q150 (100 series) PCH'}, -0xA148 : {'name' : 'B150', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel B150 (100 series) PCH'}, -0xA149 : {'name' : 'C236', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel C236 (100 series) PCH'}, -0xA14A : {'name' : 'C232', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel C232 (100 series) PCH'}, -0xA14D : {'name' : 'CQM170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CQM170 (100 series) PCH'}, -0xA14E : {'name' : 'HM170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel HM170 (100 series) PCH'}, -0xA150 : {'name' : 'CM236', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CM236 (100 series) PCH'}, -0xA151 : {'name' : 'QMS180', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QMS180 (100 series) PCH'}, -0xA152 : {'name' : 'HM175', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel HM175 (100 series) PCH'}, -0xA153 : {'name' : 'QM175', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QM175 (100 series) PCH'}, -0xA154 : {'name' : 'CM238', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CM238 (100 series) PCH'}, -0xA155 : {'name' : 'QMU185', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QMU185 (100 series) PCH'}, -0x9D43 : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Baseline'}, -0x9D48 : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Premium'}, -0x9D4B : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-Y with iHDCP 2.2 Premium'}, -0x9D4E : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U with iHDCP 2.2 Premium'}, -0x9D50 : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U with iHDCP 2.2 Base'}, -0x9D53 : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Base'}, -0x9D56 : {'name' : 'PCH-Y', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-Y Premium'}, -0x9D58 : {'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Premium'}, +pch_dictionary[0xA143].append({'name' : 'H110', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel H110 (100 series) PCH'}) +pch_dictionary[0xA144].append({'name' : 'H170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel H170 (100 series) PCH'}) +pch_dictionary[0xA145].append({'name' : 'Z170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Z170 (100 series) PCH'}) +pch_dictionary[0xA146].append({'name' : 'Q170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Q170 (100 series) PCH'}) +pch_dictionary[0xA147].append({'name' : 'Q150', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel Q150 (100 series) PCH'}) +pch_dictionary[0xA148].append({'name' : 'B150', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel B150 (100 series) PCH'}) +pch_dictionary[0xA149].append({'name' : 'C236', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel C236 (100 series) PCH'}) +pch_dictionary[0xA14A].append({'name' : 'C232', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel C232 (100 series) PCH'}) +pch_dictionary[0xA14D].append({'name' : 'CQM170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CQM170 (100 series) PCH'}) +pch_dictionary[0xA14E].append({'name' : 'HM170', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel HM170 (100 series) PCH'}) +pch_dictionary[0xA150].append({'name' : 'CM236', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CM236 (100 series) PCH'}) +pch_dictionary[0xA151].append({'name' : 'QMS180', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QMS180 (100 series) PCH'}) +pch_dictionary[0xA152].append({'name' : 'HM175', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel HM175 (100 series) PCH'}) +pch_dictionary[0xA153].append({'name' : 'QM175', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QM175 (100 series) PCH'}) +pch_dictionary[0xA154].append({'name' : 'CM238', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel CM238 (100 series) PCH'}) +pch_dictionary[0xA155].append({'name' : 'QMU185', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'Intel QMU185 (100 series) PCH'}) +pch_dictionary[0x9D43].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Baseline'}) +pch_dictionary[0x9D48].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Premium'}) +pch_dictionary[0x9D4B].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-Y with iHDCP 2.2 Premium'}) +pch_dictionary[0x9D4E].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U with iHDCP 2.2 Premium'}) +pch_dictionary[0x9D50].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U with iHDCP 2.2 Base'}) +pch_dictionary[0x9D53].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Base'}) +pch_dictionary[0x9D56].append({'name' : 'PCH-Y', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-Y Premium'}) +pch_dictionary[0x9D58].append({'name' : 'PCH-U', 'id' : PCH_ID_1xx, 'code' : PCH_CODE_1xx, 'longname' : 'PCH-U Premium'}) # 200 series and Z370 PCH -0xA2C4 : {'name' : 'H270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel H270 (200 series) PCH'}, -0xA2C5 : {'name' : 'Z270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Z270 (200 series) PCH'}, -0xA2C6 : {'name' : 'Q270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Q270 (200 series) PCH'}, -0xA2C7 : {'name' : 'Q250', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Q250 (200 series) PCH'}, -0xA2C8 : {'name' : 'B250', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel B250 (200 series) PCH'}, -0xA2C9 : {'name' : 'Z370', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Z370 (200 series) PCH'}, -0xA2D2 : {'name' : 'X299', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel X299 (200 series) PCH'}, +pch_dictionary[0xA2C4].append({'name' : 'H270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel H270 (200 series) PCH'}) +pch_dictionary[0xA2C5].append({'name' : 'Z270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Z270 (200 series) PCH'}) +pch_dictionary[0xA2C6].append({'name' : 'Q270', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Q270 (200 series) PCH'}) +pch_dictionary[0xA2C7].append({'name' : 'Q250', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Q250 (200 series) PCH'}) +pch_dictionary[0xA2C8].append({'name' : 'B250', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel B250 (200 series) PCH'}) +pch_dictionary[0xA2C9].append({'name' : 'Z370', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel Z370 (200 series) PCH'}) +pch_dictionary[0xA2D2].append({'name' : 'X299', 'id' : PCH_ID_2xx, 'code' : PCH_CODE_2xx, 'longname' : 'Intel X299 (200 series) PCH'}) # 300 series and Z390 PCH -0xA306 : {'name' : 'Q370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel Q370 (300 series) PCH'}, -0xA304 : {'name' : 'H370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel H370 (300 series) PCH'}, -0xA305 : {'name' : 'Z390', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel Z390 (300 series) PCH'}, -0xA308 : {'name' : 'B360', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel B360 (300 series) PCH'}, -0xA303 : {'name' : 'H310', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel H310 (300 series) PCH'}, -0xA30A : {'name' : 'C242', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel C242 (300 series) PCH'}, -0xA309 : {'name' : 'C246', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel C246 (300 series) PCH'}, -0xA30D : {'name' : 'HM370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel HM370 (300 series) PCH'}, -0xA30C : {'name' : 'QM370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel QM370 (300 series) PCH'}, -0xA30E : {'name' : 'CM246', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel CM246 (300 series) PCH'}, -0x9D84 : {'name' : 'PCH-U', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel 300 series On-Package PCH'}, +pch_dictionary[0xA306].append({'name' : 'Q370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel Q370 (300 series) PCH'}) +pch_dictionary[0xA304].append({'name' : 'H370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel H370 (300 series) PCH'}) +pch_dictionary[0xA305].append({'name' : 'Z390', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel Z390 (300 series) PCH'}) +pch_dictionary[0xA308].append({'name' : 'B360', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel B360 (300 series) PCH'}) +pch_dictionary[0xA303].append({'name' : 'H310', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel H310 (300 series) PCH'}) +pch_dictionary[0xA30A].append({'name' : 'C242', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel C242 (300 series) PCH'}) +pch_dictionary[0xA309].append({'name' : 'C246', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel C246 (300 series) PCH'}) +pch_dictionary[0xA30D].append({'name' : 'HM370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel HM370 (300 series) PCH'}) +pch_dictionary[0xA30C].append({'name' : 'QM370', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel QM370 (300 series) PCH'}) +pch_dictionary[0xA30E].append({'name' : 'CM246', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel CM246 (300 series) PCH'}) +pch_dictionary[0x9D84].append({'name' : 'PCH-U', 'id' : PCH_ID_3xx, 'code' : PCH_CODE_3xx, 'longname' : 'Intel 300 series On-Package PCH'}) # C600 and X79 series PCH -0x1D41 : {'name' : 'C600', 'id' : PCH_ID_C60x, 'code' : PCH_CODE_C60x, 'longname' : 'Intel C600/X79 series PCH'}, +pch_dictionary[0x1D41].append({'name' : 'C600', 'id' : PCH_ID_C60x, 'code' : PCH_CODE_C60x, 'longname' : 'Intel C600/X79 series PCH'}) # C610 and X99 series PCH -0x8D40 : {'name' : 'C610', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg (C610/X99 series) PCH'}, -0x8D44 : {'name' : 'C610-G', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg-G (C610/X99 series) PCH'}, -0x8D47 : {'name' : 'C610-X', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg-X (C610/X99 series) PCH'}, +pch_dictionary[0x8D40].append({'name' : 'C610', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg (C610/X99 series) PCH'}) +pch_dictionary[0x8D44].append({'name' : 'C610-G', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg-G (C610/X99 series) PCH'}) +pch_dictionary[0x8D47].append({'name' : 'C610-X', 'id' : PCH_ID_C61x, 'code' : PCH_CODE_C61x, 'longname' : 'Intel Wellsburg-X (C610/X99 series) PCH'}) # C620 series PCH -0xA1C1 : {'name' : 'C621', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C621 (C620 series) PCH'}, -0xA1C2 : {'name' : 'C622', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C622 (C620 series) PCH'}, -0xA1C3 : {'name' : 'C624', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C624 (C620 series) PCH'}, -0xA1C4 : {'name' : 'C625', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C625 (C620 series) PCH'}, -0xA1C5 : {'name' : 'C626', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C626 (C620 series) PCH'}, -0xA1C6 : {'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}, -0xA1C7 : {'name' : 'C628', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C628 (C620 series) PCH'}, -0xA242 : {'name' : 'C624', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C624 (C620 series) PCH'}, -0xA243 : {'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}, -0xA244 : {'name' : 'C621', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C621 (C620 series) PCH'}, -0xA245 : {'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}, -0xA246 : {'name' : 'C628', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C628 (C620 series) PCH'} -} +pch_dictionary[0xA1C1].append({'name' : 'C621', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C621 (C620 series) PCH'}) +pch_dictionary[0xA1C2].append({'name' : 'C622', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C622 (C620 series) PCH'}) +pch_dictionary[0xA1C3].append({'name' : 'C624', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C624 (C620 series) PCH'}) +pch_dictionary[0xA1C4].append({'name' : 'C625', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C625 (C620 series) PCH'}) +pch_dictionary[0xA1C5].append({'name' : 'C626', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C626 (C620 series) PCH'}) +pch_dictionary[0xA1C6].append({'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}) +pch_dictionary[0xA1C7].append({'name' : 'C628', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C628 (C620 series) PCH'}) +pch_dictionary[0xA242].append({'name' : 'C624', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C624 (C620 series) PCH'}) +pch_dictionary[0xA243].append({'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}) +pch_dictionary[0xA244].append({'name' : 'C621', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C621 (C620 series) PCH'}) +pch_dictionary[0xA245].append({'name' : 'C627', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C627 (C620 series) PCH'}) +pch_dictionary[0xA246].append({'name' : 'C628', 'id' : PCH_ID_C620, 'code' : PCH_CODE_C620, 'longname' : 'Intel C628 (C620 series) PCH'}) + try: from chipsec.custom_chipsets import * except ImportError: pass - -Chipset_Code = dict( [(Chipset_Dictionary[ _did ]['code'], _did) for _did in Chipset_Dictionary] ) -pch_codes = dict([(pch_dictionary[_did]['code'], _did) for _did in pch_dictionary]) +Chipset_Code = dict([(dl['code'], _did) for _did in Chipset_Dictionary for dl in Chipset_Dictionary[_did]]) +pch_codes = dict([(dl['code'], _did) for _did in pch_dictionary for dl in pch_dictionary[_did]]) def print_supported_chipsets(): codes_dict = collections.defaultdict(list) @@ -455,6 +454,21 @@ class Chipset: if logger().DEBUG: logger().error("pci.read_dword couldn't read PCH VID/DID") return (vid, did, rid, pch_vid, pch_did, pch_rid) + def get_cpuid(self): + # Get processor version information + (eax, ebx, ecx, edx) = self.cpu.cpuid(0x01, 0x00) + stepping = eax & 0xF + model = (eax >> 4) & 0xF + extmodel = (eax >> 16) & 0xF + family = (eax >> 8) & 0xF + ptype = (eax >>12) & 0x3 + extfamily = (eax >> 20) & 0xFF + ret = '{:01X}{:01X}{:01X}{:01X}{:01X}'.format(extmodel,ptype,family,model,stepping) + if extfamily == 0: + return ret + else: + return '{:02X}{}'.format(extfamily,ret) + def init( self, platform_code, req_pch_code, start_driver, driver_exists=None, to_file=None, from_file=None ): _unknown_platform = False @@ -476,7 +490,20 @@ class Chipset: self.did = 0xFFFF self.rid = 0xFF - if self.did in Chipset_Dictionary: + if self.did in Chipset_Dictionary and len(Chipset_Dictionary[self.did] > 1): + _unknown_platform = True + self.longname = 'UnknownPlatform' + value = self.get_cpuid() + for item in Chipset_Dictionary[self.did]: + if value == item['detection_value']: + #matched setup info + _unknown_platform = False + data_dict = item + self.code = data_dict['code'].lower() + self.longname = data_dict['longname'] + self.id = data_dict['id'] + break + elif self.did in Chipset_Dictionary: data_dict = Chipset_Dictionary[ self.did ] self.code = data_dict['code'].lower() self.longname = data_dict['longname']