1#!/usr/bin/env python3 2# SPDX-License-Identifier: BSD-2-Clause 3# 4# Copyright (c) 2016, Linaro Limited 5import struct 6import argparse 7 8 9def get_args(): 10 parser = argparse.ArgumentParser() 11 12 parser.add_argument('--input', required=False, dest='inf', 13 default='../out/arm/core/tee.bin', 14 help='The input tee.bin') 15 16 return parser.parse_args() 17 18 19def main(): 20 args = get_args() 21 22 with open(args.inf, "rb") as f: 23 data = f.read(4) 24 magic = struct.unpack('<I', data)[0] 25 print("Magic: \t\t0x{:08x}".format(magic)) 26 27 data = f.read(1) 28 version = struct.unpack('<B', data)[0] 29 print("Version: \t0x{:02x}".format(version)) 30 31 data = f.read(1) 32 arch_id = struct.unpack('<B', data)[0] 33 print("ArchID: \t0x{:02x}".format(arch_id)) 34 35 data = f.read(2) 36 flags = struct.unpack('<H', data)[0] 37 print("Arch Flags: \t0x{:04x}".format(arch_id)) 38 39 data = f.read(4) 40 init_size = struct.unpack('<I', data)[0] 41 print("Init size: \t0x{:04x}".format(init_size)) 42 43 data = f.read(4) 44 laddr_h = struct.unpack('<I', data)[0] 45 print("Load addr high:\t0x{:04x}".format(laddr_h)) 46 47 data = f.read(4) 48 laddr_l = struct.unpack('<I', data)[0] 49 print("Load addr low: \t0x{:04x}".format(laddr_l)) 50 51 data = f.read(4) 52 mem_usage = struct.unpack('<I', data)[0] 53 print("Mem usage: \t0x{:04x}".format(mem_usage)) 54 55 data = f.read(4) 56 pgd_size = struct.unpack('<I', data)[0] 57 print("Pages size: \t0x{:04x}".format(pgd_size)) 58 59 60if __name__ == "__main__": 61 main() 62