diff options
Diffstat (limited to 'src/build/security/securityRegListGen.py')
-rw-r--r-- | src/build/security/securityRegListGen.py | 94 |
1 files changed, 48 insertions, 46 deletions
diff --git a/src/build/security/securityRegListGen.py b/src/build/security/securityRegListGen.py index c4324498..78d09fea 100644 --- a/src/build/security/securityRegListGen.py +++ b/src/build/security/securityRegListGen.py @@ -22,6 +22,7 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG +from __future__ import print_function import getopt import sys import os @@ -52,29 +53,30 @@ TAG_NAME_GREYLIST = 'write_greylist' TAG_NAME_BLACKLIST = 'read_blacklist' def usage(): - print "usage: p9_security_list_gen.py [-h] [-f <security_list_path>] [-0 <output directory] [i] [-d] [-v]\n\ + print( +'''usage: p9_security_list_gen.py [-h] [-f <security_list_path>] [-0 <output directory] [i] [-d] [-v] arguments:\n\ --h, --help show this help message and exit\n\ --f, --file path to the security list csv file\n\ --o, --output output directory\n\ --w, --whitelist print whitelist read from csv\n\ --b, --blacklist print blacklist read from csv\n\ --g, --greylist print greylist read from csv\n\ --i, --info get version info of the security list\n\ --d, --debug enable debug traces\n\ --v, --verbose enable verbose traces" +-h, --help show this help message and exit +-f, --file path to the security list csv file +-o, --output output directory +-w, --whitelist print whitelist read from csv +-b, --blacklist print blacklist read from csv +-g, --greylist print greylist read from csv +-i, --info get version info of the security list +-d, --debug enable debug traces +-v, --verbose enable verbose traces''') def exit(error, msg = ''): if(error == SUCCESS): return 0 elif(error == INVALID_USAGE): - print msg + print(msg) usage() elif(error == PRINT_AND_EXIT): - print msg + print(msg) else: if(DEBUG): - print "unknown error:exiting" + print("unknown error:exiting") sys.exit(1) def remove_duplicates(xlist): @@ -466,16 +468,16 @@ def get_tables(id, list): # for each range and key combination in order table3 += temp_keys if(VERBOSE): - print id+" table3 keys len ["+s_list_len(table3)+"]" + print(id+" table3 keys len ["+s_list_len(table3)+"]") if(VERBOSE): - print id,"table1:", ['0x%04x:0x%02x' % ele for ele in table1] - print id,"table2:", ['0x%02x:0x%02x' % ele for ele in table2] - print id,"table3:", ['0x%04x' % ele for ele in table3] + print(id,"table1:", ['0x%04x:0x%02x' % ele for ele in table1]) + print(id,"table2:", ['0x%02x:0x%02x' % ele for ele in table2]) + print(id,"table3:", ['0x%04x' % ele for ele in table3]) if(DEBUG): - print id,"table1 len ["+s_list_len(table1)+"]" - print id,"table2 len ["+s_list_len(table2)+"]" - print id+" table3 len ["+s_list_len(table3)+"]" + print(id,"table1 len ["+s_list_len(table1)+"]") + print(id,"table2 len ["+s_list_len(table2)+"]") + print(id+" table3 len ["+s_list_len(table3)+"]") return (table1, table2, table3) @@ -491,8 +493,8 @@ def s_table1_gen(id, table): str_table1 += '\n' str_table1 = str_table1[:-1] if(VERBOSE): - print id+" generated table1" - print str_table1 + print(id+" generated table1") + print(str_table1) return str_table1 def s_table2_gen(id, table): @@ -505,8 +507,8 @@ def s_table2_gen(id, table): str_table2 += '\n' str_table2 = str_table2[:-1] if(VERBOSE): - print id+" generated table2" - print str_table2 + print(id+" generated table2") + print(str_table2) return str_table2 def s_table3_gen(id, table): @@ -519,8 +521,8 @@ def s_table3_gen(id, table): str_table3 += '\n' str_table3 = str_table3[:-1] if(VERBOSE): - print id+" generated table3" - print str_table3 + print(id+" generated table3") + print(str_table3) return str_table3 def s_greylist_table_gen( greyList): @@ -530,8 +532,8 @@ def s_greylist_table_gen( greyList): str_table += '{0x%08x, 0x%016xull}, ' % (ele[0], ele[1]) str_table = str_table[:-1] if(VERBOSE): - print " greylist table" - print str_table + print(" greylist table") + print(str_table) return str_table def main(argv): @@ -578,8 +580,8 @@ def main(argv): GEN_FILE = str(arg)+"/"+GEN_FILE if(DEBUG): - print "file ["+str(SECURITY_LIST)+"]" - print "output ["+str(GEN_FILE)+"]" + print("file ["+str(SECURITY_LIST)+"]") + print("output ["+str(GEN_FILE)+"]") # Read the security list file version = 'unknown' @@ -599,7 +601,7 @@ def main(argv): base_addr = base_addr[len(base_addr)-8:] base_addr = int(base_addr, 16) if(VERBOSE): - print "base["+'0x%08x' % base_addr + "]" + print("base["+'0x%08x' % base_addr + "]") bit_mask = row[TAG_BIT_MASK].strip() if not bit_mask: bit_mask = 0 @@ -612,9 +614,9 @@ def main(argv): exit(PRINT_AND_EXIT, "Missing chiplet id range") if(chiplet_range[0].strip().lower() != '0x00'): if(chiplet_range[0].strip().lower() != '0x%02x' % (get_chiplet(base_addr))): - print "base_addr",hex(base_addr) - print "get_chiplet(base_addr)",hex(get_chiplet(base_addr)) - print "chiplet_range[0]", chiplet_range[0] + print("base_addr",hex(base_addr)) + print("get_chiplet(base_addr)",hex(get_chiplet(base_addr))) + print("chiplet_range[0]", chiplet_range[0]) exit(PRINT_AND_EXIT, "Base address is not consistent") base_addr = base_addr & 0x00FFFFFF chiplet_range = [int(ele, 16) for ele in chiplet_range] @@ -625,29 +627,29 @@ def main(argv): expanded_line = [(base_addr + ele) for ele in expanded_range] expanded_line = get_effective_address(row[TAG_CHIPLET], expanded_line) if(VERBOSE): - print s_list_hex("range:", expanded_range, 8) + print(s_list_hex("range:", expanded_range, 8)) if(row[TAG_TYPE].strip().lower() == TAG_NAME_GREYLIST): if(( bit_mask == 0 ) or ( bit_mask == 0xffffffffffffffff)): exit(PRINT_AND_EXIT, "Wrong mask for Greylist") greylist_line = expanded_line if(VERBOSE): - print s_list_hex("greylist_line:", greylist_line, 8) - print "mask:", bit_mask + print(s_list_hex("greylist_line:", greylist_line, 8)) + print("mask:", bit_mask) for ele in greylist_line: greylist.append((ele, bit_mask)) elif(row[TAG_TYPE].strip().lower() == TAG_NAME_WHITELIST): whitelist_line = expanded_line if(VERBOSE): - print s_list_hex("whitelist_line:", whitelist_line, 8) + print(s_list_hex("whitelist_line:", whitelist_line, 8)) whitelist += whitelist_line elif(row[TAG_TYPE].strip().lower() == TAG_NAME_BLACKLIST): blacklist_line = expanded_line if(VERBOSE): - print s_list_hex("blacklist_line:", blacklist_line, 8) + print(s_list_hex("blacklist_line:", blacklist_line, 8)) blacklist += blacklist_line except: - print "Error in line ["+str(idx+2)+"]" + print("Error in line ["+str(idx+2)+"]") exit(PRINT_AND_EXIT, sys.exc_info()[0]) whitelist = remove_duplicates(whitelist) @@ -669,13 +671,13 @@ def main(argv): exit(PRINT_AND_EXIT, greylist) if(VERBOSE): - print s_list_hex("whitelist:", whitelist, 8) - print s_list_hex("blacklist:", blacklist, 8) + print(s_list_hex("whitelist:", whitelist, 8)) + print(s_list_hex("blacklist:", blacklist, 8)) if(DEBUG): - print "security list version ["+version+"]" - print "Whitelist len ["+s_list_len(whitelist)+"]" - print "Blacklist len ["+s_list_len(blacklist)+"]" - print "Greylist len ["+s_list_len(greylist)+"]" + print("security list version ["+version+"]") + print("Whitelist len ["+s_list_len(whitelist)+"]") + print("Blacklist len ["+s_list_len(blacklist)+"]") + print("Greylist len ["+s_list_len(greylist)+"]") whitelist_tables = get_tables("Whitelist", whitelist) blacklist_tables = get_tables("Blacklist", blacklist) |