diff options
author | T Michael Turney <mturney@codeaurora.org> | 2018-05-01 15:59:37 -0700 |
---|---|---|
committer | Julius Werner <jwerner@chromium.org> | 2019-05-03 21:59:05 +0000 |
commit | 101098c41a047184e3eceabca2c1baa11141f36e (patch) | |
tree | b6fcf8f46131e4e8fc28554e0c79eda984bb7fca /util/ipqheader/ipqheader.py | |
parent | 61309e39b3c4545f47c9107a0e0ddaedef854505 (diff) |
sdm845: Combine BB with QC-Sec for ROM boot
TEST=build & run
Change-Id: I222a56f1c9b74856a1e1ff8132bab5e041672c5d
Signed-off-by: T Michael Turney <mturney@codeaurora.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/25207
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'util/ipqheader/ipqheader.py')
-rwxr-xr-x | util/ipqheader/ipqheader.py | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/util/ipqheader/ipqheader.py b/util/ipqheader/ipqheader.py deleted file mode 100755 index 7615146499..0000000000 --- a/util/ipqheader/ipqheader.py +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env python2 -# -# Copyright (c) 2013 The Linux Foundation. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived from this -# software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -import os -import struct -import sys - -PROG_NAME = os.path.basename(sys.argv[0]) - -def create_header(base, size): - """Returns a packed MBN header image with the specified base and size. - - @arg base: integer, specifies the image load address in RAM - @arg size: integer, specifies the size of the image - @returns: string, the MBN header - """ - - # SBLs require size to be 4 bytes aligned. - size = (size + 3) & 0xfffffffc - - # We currently do not support appending certificates. Signing GPL - # code might violate the GPL. So U-Boot will never be signed. So - # this is not required for U-Boot. - - header = [ - 0x5, # Type: APPSBL - 0x3, # Version: 3 - 0x0, # Image source pointer - base, # Image destination pointer - size, # Code Size + Cert Size + Signature Size - size, # Code Size - base + size, # Destination + Code Size - 0x0, # Signature Size - base + size, # Destination + Code Size + Signature Size - 0x0, # Cert Size - ] - - header_packed = struct.pack('<10I', *header) - return header_packed - -def mkheader(base_addr, infname, outfname): - """Prepends the image with the MBN header. - - @arg base_addr: integer, specifies the image load address in RAM - @arg infname: string, image filename - @arg outfname: string, output image with header prepended - @raises IOError: if reading/writing input/output file fails - """ - with open(infname, "rb") as infp: - image = infp.read() - insize = len(image) - - if base_addr > 0xFFFFFFFF: - raise ValueError("invalid base address") - - if base_addr + insize > 0xFFFFFFFF: - raise ValueError("invalid destination range") - - header = create_header(base_addr, insize) - with open(outfname, "wb") as outfp: - outfp.write(header) - outfp.write(image) - -def usage(msg=None): - """Print command usage. - - @arg msg: string, error message if any (default: None) - """ - if msg != None: - sys.stderr.write("%s: %s\n" % (PROG_NAME, msg)) - - print "Usage: %s <base-addr> <input-file> <output-file>" % PROG_NAME - - if msg != None: - exit(1) - -def main(): - """Main entry function""" - - if len(sys.argv) != 4: - usage("incorrect number of arguments") - - try: - base_addr = int(sys.argv[1], 0) - infname = sys.argv[2] - outfname = sys.argv[3] - except ValueError as e: - sys.stderr.write("mkheader: invalid base address '%s'\n" % sys.argv[1]) - exit(1) - - try: - mkheader(base_addr, infname, outfname) - except IOError as e: - sys.stderr.write("%s: %s\n" % (PROG_NAME, e)) - exit(1) - except ValueError as e: - sys.stderr.write("%s: %s\n" % (PROG_NAME, e)) - exit(1) - -if __name__ == "__main__": - main() |