+static int create_image_layout(const char* kernelfile, const char* rootfsfile, image_info_t* im)
+{
+ part_data_t* kernel = &im->parts[0];
+ part_data_t* rootfs = &im->parts[1];
+
+ strcpy(kernel->partition_name, "kernel");
+ kernel->partition_index = 1;
+ kernel->partition_baseaddr = partition_startaddr;
+ if ( (kernel->partition_length = filelength(kernelfile)) < 0) return (-1);
+ kernel->partition_memaddr = 0x80041000;
+ kernel->partition_entryaddr = 0x80041000;
+ strncpy(kernel->filename, kernelfile, sizeof(kernel->filename));
+
+ if (filelength(rootfsfile) + kernel->partition_length > FIRMWARE_MAX_LENGTH)
+ return (-2);
+
+ strcpy(rootfs->partition_name, "rootfs");
+ rootfs->partition_index = 2;
+ rootfs->partition_baseaddr = partition_startaddr + kernel->partition_length;
+ rootfs->partition_length = FIRMWARE_MAX_LENGTH - kernel->partition_length;
+ rootfs->partition_memaddr = 0x00000000;
+ rootfs->partition_entryaddr = 0x00000000;
+ strncpy(rootfs->filename, rootfsfile, sizeof(rootfs->filename));
+
+ im->part_count = 2;