blob: 635b18edc1b2d4c2f1cb5ce0a83c6c969cc16620 [file] [log] [blame]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +02001#!/usr/bin/env python3
Jerome Forissier1bb92982017-12-15 14:27:02 +01002# SPDX-License-Identifier: BSD-2-Clause
Joakim Bech09871a72016-07-29 21:24:49 +02003#
4# Copyright (c) 2016, Linaro Limited
Joakim Bech09871a72016-07-29 21:24:49 +02005import struct
6
Jerome Forissiere06fa022018-11-14 11:02:49 +01007
Joakim Bech09871a72016-07-29 21:24:49 +02008def main():
Jerome Forissiere06fa022018-11-14 11:02:49 +01009 with open("../out/arm/core/tee.bin", "rb") as f:
Joakim Bech09871a72016-07-29 21:24:49 +020010 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010011 magic = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020012 print("Magic: \t\t0x{:08x}".format(magic))
Joakim Bech09871a72016-07-29 21:24:49 +020013
14 data = f.read(1)
Jens Wiklander8108ed32019-12-17 10:00:54 +010015 version = struct.unpack('<B', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020016 print("Version: \t0x{:02x}".format(version))
Joakim Bech09871a72016-07-29 21:24:49 +020017
18 data = f.read(1)
Jens Wiklander8108ed32019-12-17 10:00:54 +010019 arch_id = struct.unpack('<B', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020020 print("ArchID: \t0x{:02x}".format(arch_id))
Joakim Bech09871a72016-07-29 21:24:49 +020021
22 data = f.read(2)
Jens Wiklander8108ed32019-12-17 10:00:54 +010023 flags = struct.unpack('<H', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020024 print("Arch Flags: \t0x{:04x}".format(arch_id))
Joakim Bech09871a72016-07-29 21:24:49 +020025
26 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010027 init_size = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020028 print("Init size: \t0x{:04x}".format(init_size))
Joakim Bech09871a72016-07-29 21:24:49 +020029
30 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010031 laddr_h = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020032 print("Load addr high:\t0x{:04x}".format(laddr_h))
Joakim Bech09871a72016-07-29 21:24:49 +020033
34 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010035 laddr_l = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020036 print("Load addr low: \t0x{:04x}".format(laddr_l))
Joakim Bech09871a72016-07-29 21:24:49 +020037
38 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010039 mem_usage = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020040 print("Mem usage: \t0x{:04x}".format(mem_usage))
Joakim Bech09871a72016-07-29 21:24:49 +020041
42 data = f.read(4)
Jens Wiklander8108ed32019-12-17 10:00:54 +010043 pgd_size = struct.unpack('<I', data)[0]
Rouven Czerwinskibbaeed42019-08-07 20:07:00 +020044 print("Pages size: \t0x{:04x}".format(pgd_size))
Joakim Bech09871a72016-07-29 21:24:49 +020045
Jerome Forissiere06fa022018-11-14 11:02:49 +010046
Joakim Bech09871a72016-07-29 21:24:49 +020047if __name__ == "__main__":
Jerome Forissiere06fa022018-11-14 11:02:49 +010048 main()