#!/usr/bin/perl
######################################################################
# 
# File: makepxhdr
# 
# Description: Generate secondary boot header for .px kernel
#              binary format.
# 
# Copyright (c) 2004 TiVo Inc.
# 
######################################################################

if ($#ARGV != 1) {
    die "usage: makepxhdr <kernel info file> <px header output file>";
}

$infofile = $ARGV[0];

open infofile or die "Couldn't open info file: $infofile\n";

$kerneloffset = <infofile>;
$kernelsize = <infofile>;
$kernelentry = <infofile>;
close infofile;

$kerneloffset -= 32;
$kernelsize += 32;

printf "Kernel   load address is 0x%08X\n", $kerneloffset;
printf "Kernel   image length is 0x%08X\n", $kernelsize;

#
# Write boot header
#
$header = pack "H8NNNNNNN", "54434431", $kerneloffset, $kernelentry,
    $kernelsize, 0, 0, 0, 0;

open ofile, "> $ARGV[1]" or die "no output file\n";
syswrite ofile, $header, length($header) or die "couldnt write header to output file";
close ofile;

