xref: /optee_os/scripts/tee_bin_parser.py (revision 18c5148d357e51235bc842b7826ff6e8da109902)
1#!/usr/bin/env python
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" % magic)
13
14        data = f.read(1)
15        version = struct.unpack('<B', data)
16        print("Version: \t0x%02x" % version)
17
18        data = f.read(1)
19        arch_id = struct.unpack('<B', data)
20        print("ArchID: \t0x%02x" % arch_id)
21
22        data = f.read(2)
23        flags = struct.unpack('<H', data)
24        print("Arch Flags: \t0x%04x" % arch_id)
25
26        data = f.read(4)
27        init_size = struct.unpack('<I', data)
28        print("Init size: \t0x%04x" % init_size)
29
30        data = f.read(4)
31        laddr_h = struct.unpack('<I', data)
32        print("Load addr high:\t0x%04x" % laddr_h)
33
34        data = f.read(4)
35        laddr_l = struct.unpack('<I', data)
36        print("Load addr low: \t0x%04x" % laddr_l)
37
38        data = f.read(4)
39        mem_usage = struct.unpack('<I', data)
40        print("Mem usage: \t0x%04x" % mem_usage)
41
42        data = f.read(4)
43        pgd_size = struct.unpack('<I', data)
44        print("Pages size: \t0x%04x" % pgd_size)
45
46
47if __name__ == "__main__":
48    main()
49