xref: /optee_os/scripts/tee_bin_parser.py (revision e06fa0254525c6b129262cfd2225085a5b45980f)
109871a7aSJoakim Bech#!/usr/bin/env python
21bb92983SJerome Forissier# SPDX-License-Identifier: BSD-2-Clause
309871a7aSJoakim Bech#
409871a7aSJoakim Bech# Copyright (c) 2016, Linaro Limited
509871a7aSJoakim Bechimport struct
609871a7aSJoakim Bech
7*e06fa025SJerome Forissier
809871a7aSJoakim Bechdef main():
909871a7aSJoakim Bech    with open("../out/arm/core/tee.bin", "rb") as f:
1009871a7aSJoakim Bech        data = f.read(4)
1109871a7aSJoakim Bech        magic = struct.unpack('<I', data)
1209871a7aSJoakim Bech        print("Magic: \t\t0x%08x" % magic)
1309871a7aSJoakim Bech
1409871a7aSJoakim Bech        data = f.read(1)
1509871a7aSJoakim Bech        version = struct.unpack('<B', data)
1609871a7aSJoakim Bech        print("Version: \t0x%02x" % version)
1709871a7aSJoakim Bech
1809871a7aSJoakim Bech        data = f.read(1)
1909871a7aSJoakim Bech        arch_id = struct.unpack('<B', data)
2009871a7aSJoakim Bech        print("ArchID: \t0x%02x" % arch_id)
2109871a7aSJoakim Bech
2209871a7aSJoakim Bech        data = f.read(2)
2309871a7aSJoakim Bech        flags = struct.unpack('<H', data)
2409871a7aSJoakim Bech        print("Arch Flags: \t0x%04x" % arch_id)
2509871a7aSJoakim Bech
2609871a7aSJoakim Bech        data = f.read(4)
2709871a7aSJoakim Bech        init_size = struct.unpack('<I', data)
2809871a7aSJoakim Bech        print("Init size: \t0x%04x" % init_size)
2909871a7aSJoakim Bech
3009871a7aSJoakim Bech        data = f.read(4)
3109871a7aSJoakim Bech        laddr_h = struct.unpack('<I', data)
3209871a7aSJoakim Bech        print("Load addr high:\t0x%04x" % laddr_h)
3309871a7aSJoakim Bech
3409871a7aSJoakim Bech        data = f.read(4)
3509871a7aSJoakim Bech        laddr_l = struct.unpack('<I', data)
3609871a7aSJoakim Bech        print("Load addr low: \t0x%04x" % laddr_l)
3709871a7aSJoakim Bech
3809871a7aSJoakim Bech        data = f.read(4)
3909871a7aSJoakim Bech        mem_usage = struct.unpack('<I', data)
4009871a7aSJoakim Bech        print("Mem usage: \t0x%04x" % mem_usage)
4109871a7aSJoakim Bech
4209871a7aSJoakim Bech        data = f.read(4)
4309871a7aSJoakim Bech        pgd_size = struct.unpack('<I', data)
4409871a7aSJoakim Bech        print("Pages size: \t0x%04x" % pgd_size)
4509871a7aSJoakim Bech
46*e06fa025SJerome Forissier
4709871a7aSJoakim Bechif __name__ == "__main__":
4809871a7aSJoakim Bech    main()
49