xref: /optee_os/scripts/tee_bin_parser.py (revision bbaeed4dc6258006e846543197b8aff95d80abbf)
1#!/usr/bin/env python3
2# SPDX-License-Identifier: BSD-2-Clause
3#
4# Copyright (c) 2016, Linaro Limited
5import struct
6
7
8def main():
9    with open("../out/arm/core/tee.bin", "rb") as f:
10        data = f.read(4)
11        magic = struct.unpack('<I', data)
12        print("Magic: \t\t0x{:08x}".format(magic))
13
14        data = f.read(1)
15        version = struct.unpack('<B', data)
16        print("Version: \t0x{:02x}".format(version))
17
18        data = f.read(1)
19        arch_id = struct.unpack('<B', data)
20        print("ArchID: \t0x{:02x}".format(arch_id))
21
22        data = f.read(2)
23        flags = struct.unpack('<H', data)
24        print("Arch Flags: \t0x{:04x}".format(arch_id))
25
26        data = f.read(4)
27        init_size = struct.unpack('<I', data)
28        print("Init size: \t0x{:04x}".format(init_size))
29
30        data = f.read(4)
31        laddr_h = struct.unpack('<I', data)
32        print("Load addr high:\t0x{:04x}".format(laddr_h))
33
34        data = f.read(4)
35        laddr_l = struct.unpack('<I', data)
36        print("Load addr low: \t0x{:04x}".format(laddr_l))
37
38        data = f.read(4)
39        mem_usage = struct.unpack('<I', data)
40        print("Mem usage: \t0x{:04x}".format(mem_usage))
41
42        data = f.read(4)
43        pgd_size = struct.unpack('<I', data)
44        print("Pages size: \t0x{:04x}".format(pgd_size))
45
46
47if __name__ == "__main__":
48    main()
49