diff --git a/scripts/mkbootimg b/scripts/mkbootimg index 934f28e43029..c3e09aba3499 100755 --- a/scripts/mkbootimg +++ b/scripts/mkbootimg @@ -70,13 +70,15 @@ def write_header(args): raise ValueError('Boot header version %d not supported' % args.header_version) args.output.write(pack('8s', BOOT_MAGIC)) + final_ramdisk_offset = (args.base + args.ramdisk_offset) if filesize(args.ramdisk) > 0 else 0 + final_second_offset = (args.base + args.second_offset) if filesize(args.second) > 0 else 0 args.output.write(pack('10I', filesize(args.kernel), # size in bytes args.base + args.kernel_offset, # physical load addr filesize(args.ramdisk), # size in bytes - args.base + args.ramdisk_offset, # physical load addr + final_ramdisk_offset, # physical load addr filesize(args.second), # size in bytes - args.base + args.second_offset, # physical load addr + final_second_offset, # physical load addr args.base + args.tags_offset, # physical addr for kernel tags args.pagesize, # flash page size we assume args.header_version, # version of bootimage header @@ -113,10 +115,6 @@ def write_header(args): args.output.write(pack('I', BOOT_IMAGE_HEADER_V2_SIZE)) if args.header_version > 1: - - if filesize(args.dtb) == 0: - raise ValueError("DTB image must not be empty.") - args.output.write(pack('I', filesize(args.dtb))) # size in bytes args.output.write(pack('Q', args.base + args.dtb_offset)) # dtb physical load address pad_file(args.output, args.pagesize)