Skip to content

Commit

Permalink
MEA v1.76.2 r149
Browse files Browse the repository at this point in the history
v1.76.2

Improved $FPT and BPDT empty partition detection
Improved CSE Extension 0x15 support

r149

CSME 12.0.20.1307_CON_H_BA_PRD_EXTR
CSME 11.8.60.3561_CON_H_D0_PRD_RGN
CSTXE 4.0.0.1249_B_PRD_RGN
CSSPS 04.01.02.200_PU_SKU3_PRD_REC
CSSPS 04.01.02.200_PU_SKU3_PRD_OPR
  • Loading branch information
platomav committed Dec 22, 2018
1 parent 08dee34 commit f2d9677
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 17 deletions.
8 changes: 8 additions & 0 deletions Changelog DB.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
r149

CSME 12.0.20.1307_CON_H_BA_PRD_EXTR
CSME 11.8.60.3561_CON_H_D0_PRD_RGN
CSTXE 4.0.0.1249_B_PRD_RGN
CSSPS 04.01.02.200_PU_SKU3_PRD_REC
CSSPS 04.01.02.200_PU_SKU3_PRD_OPR

r148

CSME 12.0.20.1303_CON_H_BA_PRD_EXTR
Expand Down
5 changes: 5 additions & 0 deletions Changelog MEA.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
v1.76.2 r149

Improved $FPT and BPDT empty partition detection
Improved CSE Extension 0x15 support

v1.76.1 r148.1

Added CSE PMC Security Version Number detection
Expand Down
15 changes: 10 additions & 5 deletions MEA.dat
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
*** ME Analyzer Engine Firmware Repository Database ***
*** Revision r148.1 (2018-12-17 , 18:41) ***
*** Revision r149 (2018-12-19 , 19:12) ***

*** Converged Security Management Engine (CSME) ***

*** Version_SKU_Stepping_Release_Type_FTPR-RSASIG-SHA256 ***
*** 11 LP: Version_SKU_Stepping_Release_PDM_Type_FTPR-RSASIG-SHA256 ***

12.0.20.1307_CON_H_BA_PRD_EXTR_2326F1DC365AB03290697D4F74ED363C5AEF8C85D8E062F83AE1B3E0752A9C88
12.0.20.1307_COR_LP_C_PRE_EXTR_E2757B7750C8D7E93D7410D155030E2E62F755F84A3CFC2C0620F3120B826A8E
12.0.20.1303_CON_H_BA_PRD_EXTR_0B7D81F73547D683F6FF54DBA6180D64250238A512580D2E7B26EAB066CB3FB9
12.0.20.1301_COR_H_BA_PRE_RGN_8B5377B140D66C58DC99EDDFF78D6ADE025474C7B3F9397A0EE2A42DD81AD2E5
Expand Down Expand Up @@ -105,6 +106,7 @@
11.10.0.1300_COR_H_D0_PRD_RGN_06034E3A0FBFADCBF4EE7D9FE5406A40909FF7A8D889B1AD8C2D2F220DA70D9D
11.10.0.1287_CON_H_D0_PRD_RGN_80EF89179DB9140064219EE18C690B7C3D463468A5E8352D8A7AE37098A5BCB6

11.8.60.3561_CON_H_D0_PRD_RGN_F44C08C0724FBA6C28837D9113B34447DA261C4FC59614369B06ADFC667EF909
11.8.60.3561_CON_LP_C0_NPDM_PRD_RGN_A559A85CAA286B94C10417B36654059231FC66E9424CA4470AFCD039AEB5F8EA
11.8.60.3561_COR_LP_C0_NPDM_PRD_RGN_7056D96CA8A6F4655C7C23A6F324F4930963F64D056FC972D928EB966852F9F3
11.8.60.3560_CON_H_D0_PRD_EXTR_D700F09233705C4BF77FDEEC579E6B48D74C0F374663F6B67DD2AB026A7EAA1D
Expand Down Expand Up @@ -565,7 +567,7 @@
*** Version_Stepping_Release_Type_FTPR-RSASIG-SHA256 ***

4.0.5.1280_B_PRD_EXTR_5FE3CDF27E1E1E86C4C954190176D82FC11E8F86226B661A2BE84C92185CA582
4.0.0.1249_B_PRD_EXTR_AD0E1132688364925F324C702FC8DBF347C653BEE5FF3027D7337EDA487DD848
4.0.0.1249_B_PRD_RGN_AD0E1132688364925F324C702FC8DBF347C653BEE5FF3027D7337EDA487DD848
4.0.0.1245_B_PRD_EXTR_AAA4F2B044AC75222E87BEAD34955D6083AA57C8DDB602472E8F1CD07EB5567B
4.0.0.1242_B_PRD_RGN_C733E8C7FDDAB04513D3066CF568F1FF717AE471D2A32FE92B65D83C6592FE0E
4.0.0.1235_B_PRD_RGN_3BD5A19FE4179F55AECBA6DBFAA47263545E123B956AA8D25B7EE63F67A16BD5
Expand Down Expand Up @@ -624,6 +626,9 @@
04.01.03.017_XX_SKU2_PRD_REC_2DEF781C60A741DDEE2B8D04541EF21F2E158193BC2C566D7939C9C505AE1677
04.01.03.017_XX_SKU2_PRD_OPR_AC80E629873B3B409FEFB69D4DFC152F9F6DC3BC6145479B2A7551FD0A2B4ED8
04.01.03.017_XX_SKU2_PRD_EXTR_AC80E629873B3B409FEFB69D4DFC152F9F6DC3BC6145479B2A7551FD0A2B4ED8
04.01.02.200_PU_SKU3_PRD_EXTR_B5E950A3877FC6F8ADFBC157EE30DDF0D4E6F99E89B559238A59E93116D380C6
04.01.02.200_PU_SKU3_PRD_OPR_B5E950A3877FC6F8ADFBC157EE30DDF0D4E6F99E89B559238A59E93116D380C6
04.01.02.200_PU_SKU3_PRD_REC_513AB145660D0A6C223AAEC2CF38E23E9AB398BA11B45E0BB7E21E3C78717610
04.00.04.401_PU_SKU3_PRD_EXTR_EC5AE4DCA4631A5CDD34C69A3A7007E243F04C19DA1C7DE388476BDCDF911048
04.00.04.401_PU_SKU3_PRD_OPR_EC5AE4DCA4631A5CDD34C69A3A7007E243F04C19DA1C7DE388476BDCDF911048
04.00.04.401_PU_SKU3_PRD_REC_AE5875DE2BB333FAE031950737CA23EEC8FDE3BAAC44CEB662426185D79B4316
Expand Down Expand Up @@ -1968,17 +1973,17 @@ RSAPKEY_TBD1_86C0E5EF0CFEFF6D810D68D83D8C6ECB68306A644C03C0446B646A3971D37894 (M

*** MEA-ID_Family_MajorMinor_SKU__Version ***

Latest_CSME_120_CONH__12.0.20.1303
Latest_CSME_120_CONH__12.0.20.1307
Latest_CSME_120_CORH__12.0.20.1301
Latest_CSME_120_CONLP__12.0.10.1128
Latest_CSME_120_CORLP__12.0.0.0000
Latest_CSME_120_SLMH__12.0.11.1130
Latest_CSME_120_SLMLP__12.0.5.1117
Latest_CSME_1121_CORH__11.21.55.1508
Latest_CSME_1122_CORH__11.22.0.1543
Latest_CSME_1111_CONH__11.11.55.1509
Latest_CSME_1111_CORH__11.11.55.1509
Latest_CSME_1111_SLMH__11.11.50.1433
Latest_CSME_118_CONH__11.8.60.3560
Latest_CSME_118_CONH__11.8.60.3561
Latest_CSME_118_CORH__11.8.55.3510
Latest_CSME_118_CONLP__11.8.60.3561
Latest_CSME_118_CORLP__11.8.60.3561
Expand Down
24 changes: 12 additions & 12 deletions MEA.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Copyright (C) 2014-2018 Plato Mavropoulos
"""

title = 'ME Analyzer v1.76.1'
title = 'ME Analyzer v1.76.2'

import os
import re
Expand Down Expand Up @@ -2808,6 +2808,7 @@ def ext_print(self) :
0x80860032 : ['ISH FW Authentication', ['Enforced', 'Allow RnD Keys', 'Disabled']],
0x80860033 : ['IUNIT FW Authentication', ['Enforced', 'Allow RnD Keys', 'Disabled']],
0x80860040 : ['Anti-Rollback', ['Enabled', 'Disabled']], # (BtGuardArbOemKeyManifest)
0x80860050 : ['PSF and System Agent Debug', ['PSF & System Agent Disabled', 'System Agent Enabled', 'PSF Enabled', 'PSF & System Agent Enabled']], # (KnobIdValues)
0x80860051 : ['OEM BIOS Payload', ['Enabled', 'Disabled']], # (KnobIdValues)
0x80860101 : ['Change Device Lifecycle', ['No', 'Customer Care', 'RnD', 'Refurbish']],
0x80860201 : ['Co-Signing', ['Enabled', 'Disabled']]
Expand Down Expand Up @@ -6483,8 +6484,7 @@ def mass_scan(f_path) :
p_type_values = {0: 'Code', 1: 'Data', 2: 'NVRAM', 3: 'Generic', 4: 'EFFS', 5: 'ROM'} # Only 0 & 1 for CSE
p_type_print = p_type_values[p_type] if p_type in p_type_values else 'Unknown'

if p_offset in [4294967295, 0] or p_size == 0 or (
p_size != 4294967295 and reading[p_offset_spi:p_offset_spi + p_size] == p_size * b'\xFF') :
if p_offset in (0xFFFFFFFF, 0) or p_size == 0 or p_size != 0xFFFFFFFF and reading[p_offset_spi:p_offset_spi + p_size] in (b'', p_size * b'\xFF') :
p_empty = True
else :
p_empty = False
Expand Down Expand Up @@ -6516,10 +6516,10 @@ def mass_scan(f_path) :
if p_owner in [b'\xFF\xFF\xFF\xFF', b''] : p_owner = '' # Missing
else : p_owner = p_owner.decode('utf-8', 'ignore')

if p_offset in [4294967295, 0] : p_offset_print = ''
if p_offset in [0xFFFFFFFF, 0] : p_offset_print = ''
else : p_offset_print = '0x%0.6X' % p_offset_spi

if p_size in [4294967295, 0] : p_size_print = ''
if p_size in [0xFFFFFFFF, 0] : p_size_print = ''
else : p_size_print = '0x%0.6X' % p_size

if p_offset_print == '' or p_size_print == '' : p_end_print = ''
Expand Down Expand Up @@ -6649,7 +6649,7 @@ def mass_scan(f_path) :
p_offset_spi = start_fw_start_match + p_offset
p_size = bpdt_entry.Size

if reading[p_offset_spi:p_offset_spi + p_size] == p_size * b'\xFF' : p_empty = True
if p_offset in (0xFFFFFFFF, 0) or p_size in (0xFFFFFFFF, 0) or reading[p_offset_spi:p_offset_spi + p_size] in (b'', p_size * b'\xFF') : p_empty = True
else : p_empty = False

if p_type in bpdt_dict : p_name = bpdt_dict[p_type]
Expand All @@ -6661,10 +6661,10 @@ def mass_scan(f_path) :

# Store BPDT Partition info for -dfpt
if param.fpt_disp :
if p_offset in [4294967295, 0] : p_offset_print = ''
if p_offset in [0xFFFFFFFF, 0] : p_offset_print = ''
else : p_offset_print = '0x%0.6X' % p_offset_spi

if p_size in [4294967295, 0] : p_size_print = ''
if p_size in [0xFFFFFFFF, 0] : p_size_print = ''
else : p_size_print = '0x%0.6X' % p_size

if p_offset_print == '' or p_size_print == '' : p_end_print = ''
Expand Down Expand Up @@ -6705,7 +6705,7 @@ def mass_scan(f_path) :
s_p_offset_spi = start_fw_start_match + s_p_offset
s_p_size = s_bpdt_entry.Size

if s_p_offset in [4294967295, 0] or s_p_size in [4294967295, 0] or reading[s_p_offset_spi:s_p_offset_spi + s_p_size] == s_p_size * b'\xFF' :
if s_p_offset in (0xFFFFFFFF, 0) or s_p_size in (0xFFFFFFFF, 0) or reading[s_p_offset_spi:s_p_offset_spi + s_p_size] in (b'', s_p_size * b'\xFF') :
s_p_empty = True
else :
s_p_empty = False
Expand All @@ -6718,10 +6718,10 @@ def mass_scan(f_path) :

# Store BPDT Partition info for -dfpt
if param.fpt_disp :
if s_p_offset in [4294967295, 0] : s_p_offset_print = ''
if s_p_offset in [0xFFFFFFFF, 0] : s_p_offset_print = ''
else : s_p_offset_print = '0x%0.6X' % s_p_offset_spi

if s_p_size in [4294967295, 0] : s_p_size_print = ''
if s_p_size in [0xFFFFFFFF, 0] : s_p_size_print = ''
else : s_p_size_print = '0x%0.6X' % s_p_size

if s_p_offset_print == '' or s_p_size_print == '' : s_p_end_print = ''
Expand Down Expand Up @@ -7663,7 +7663,7 @@ def mass_scan(f_path) :
elif minor in [10,11] : platform = 'BSF' # Basin Falls
elif minor in [20,21,22] : platform = 'LBG' # Lewisburg

if minor in [0,5,6,7,10,20] : upd_found = True # INTEL-SA-00086
if minor in [0,5,6,7,10,20,21] : upd_found = True

# Power Down Mitigation (PDM) is a SPT-LP C0 erratum, first fixed at ~11.0.0.1183
# Hardcoded in FTPR > BUP, Huffman decompression required to detect NPDM or YPDM
Expand Down

0 comments on commit f2d9677

Please sign in to comment.