summaryrefslogtreecommitdiff
path: root/tools/mi4.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mi4.c')
-rw-r--r--tools/mi4.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/mi4.c b/tools/mi4.c
index f466ad779f..b9f7e25393 100644
--- a/tools/mi4.c
+++ b/tools/mi4.c
@@ -102,7 +102,8 @@ static void int2le(unsigned int val, unsigned char* addr)
102 addr[3] = (val >> 24) & 0xff; 102 addr[3] = (val >> 24) & 0xff;
103} 103}
104 104
105int mi4_encode(char *iname, char *oname, int version, int magic) 105int mi4_encode(char *iname, char *oname, int version, int magic,
106 char *model, char *type)
106{ 107{
107 size_t len; 108 size_t len;
108 int length; 109 int length;
@@ -150,7 +151,10 @@ int mi4_encode(char *iname, char *oname, int version, int magic)
150 int2le(length+4, &outbuf[0x2e8]); /* length plus 0xaa55aa55 */ 151 int2le(length+4, &outbuf[0x2e8]); /* length plus 0xaa55aa55 */
151 152
152 int2le(0xaa55aa55, &outbuf[0x200+length]); /* More Magic */ 153 int2le(0xaa55aa55, &outbuf[0x200+length]); /* More Magic */
153 154
155 strncpy((char *)outbuf+0x1f8, type, 4); /* type of binary - RBBL, RBOS, ... */
156 strncpy((char *)outbuf+0x1fc, model, 4); /* type of binary - RBBL, RBOS, ... */
157
154 /* Calculate CRC32 checksum */ 158 /* Calculate CRC32 checksum */
155 chksum_crc32gentab (); 159 chksum_crc32gentab ();
156 crc = chksum_crc32 (outbuf+28,mi4length-28); 160 crc = chksum_crc32 (outbuf+28,mi4length-28);