From 456380bb272d3a301c887eee513a3937cc1f48e1 Mon Sep 17 00:00:00 2001 From: "Jason M. Bills" Date: Tue, 22 Oct 2019 14:01:54 -0700 Subject: Update to internal 10-22-19 Signed-off-by: Jason M. Bills --- .../recipes-phosphor/fru/default-fru/create_fru.py | 154 --------------------- 1 file changed, 154 deletions(-) delete mode 100755 meta-openbmc-mods/meta-ast2500/recipes-phosphor/fru/default-fru/create_fru.py (limited to 'meta-openbmc-mods/meta-ast2500/recipes-phosphor/fru/default-fru/create_fru.py') diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/fru/default-fru/create_fru.py b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/fru/default-fru/create_fru.py deleted file mode 100755 index 7f11cbf2d..000000000 --- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/fru/default-fru/create_fru.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/python3 - -""" -This script generates a default baseboard fru file. -""" - - -def create_fru(name): - if len(name) > 16: - raise Exception('Product Name Too Large: {}'.format(name)) - - fill_char = ord('.') - eof = 0xC1 - - filename = '{}.fru.bin'.format(name) - name = name.encode('ascii') - - name_len = (0x3 << 6) | len(name) - - # internal area - internal = [0x01] + ([0] * 6) + [0x01] - - # chassis area - chassis = [0x01, # Chassis Info Area Format Version Bit Fields - 0xFF, # Chassis Info Area Length (in multiples of 8 bytes) - 0x17] # Chassis Type (Main Server Chassis) - - fill_len = 18 - - # Chassis Part Number - chassis += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - # Chassis Serial Number - chassis += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - fill_len = 31 - chassis += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) # Info AM1 - chassis += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) # Info AM2 - - chassis.append(eof) - - chassis.append(0) # need room for checksum - - while len(chassis) % 8: # pad - chassis.append(0) - - chassis[1] = int(len(chassis) / 8) # populate length - chassis[-1] = (256 - sum(chassis)) & 0xFF # populate checksum - - # board area - board = [0x1, # Board Info Area Format Version Bit Fields - 0xFF, # Board Info Area Length (in multiples of 8 bytes) - 0x0, # Language Code - 0x0, # Mfg. Date/Time - 0x0, # Mfg. Date/Time - 0x0, # Mfg. Date/Time - 0xD1] # Product Manufacturer Name Len - - corp = b'Intel Corporation' - board += bytearray(corp) # Manufacturer Name - - board.append(name_len) - board += bytearray(name) # Board Product Name - - fill_len = 12 - board += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) # board SN - - fill_len = 10 - board += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) # board PN - - version = b'FRU Ver 0.01' - - board += [0x3 << 6 | len(version)] # FRU File version ID string - board += bytearray(version) - - board.append(eof) - - board.append(0) # need room for checksum - - while len(board) % 8: - board.append(0) - - board[1] = int(len(board) / 8) # populate length - board[-1] = (256 - sum(board)) & 0xFF # populate checksum - - # product area - product = [1, # Product Info Area Format Version Bit Fields - 0xFF, # Product Info Area Length (in multiples of 8 bytes) - 0x0, # Language Code - 0xD1] # Product Manufacturer Name Len - - product += bytearray(corp) # Manufacturer Name - - product.append(name_len) # Product Name Len - product += bytearray(name) # Product Name - - fill_len = 10 - - # Product Part Number - product += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - # Product Version - fill_len = 20 - product += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - # Product Serial Number - fill_len = 12 - product += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - # Asset Tag - fill_len = 20 - product += [0x3 << 6 | fill_len] + ([fill_char] * fill_len) - - product.append(0xC0) # FRU File ID (Not used) - product.append(eof) - - product.append(0) # need room for checksum - - while len(product) % 8: - product.append(0) - - product[1] = int(len(product) / 8) - product[-1] = (256 - sum(product)) & 0xFF - - header = [0x1] - length = 1 # internal - header.append(length) - length += int(len(internal) / 8) - header.append(length) - length += int(len(chassis) / 8) - header.append(length) - length += int(len(board) / 8) - header.append(length) - header.append(0) - header.append(0) - header.append((256 - sum(header)) & 0xFF) - - result = header + internal + chassis + board + product - - while len(result) < 0x1FF: - result.append(0) - - result = bytearray(result) - - # print(result) - - with open(filename, 'wb') as out: - out.write(result) - - -if __name__ == '__main__': - product_name = input('Enter Product Name: ') - create_fru(product_name) - -- cgit v1.2.3