+ printf("board = %s\n", p->name);
+ strcpy(kernel->partition_name, "kernel");
+ kernel->partition_index = 1;
+ kernel->partition_baseaddr = p->kern_start;
+ if ( (kernel->partition_length = filelength(kernelfile)) < 0) return (-1);
+ kernel->partition_memaddr = p->kern_entry;
+ kernel->partition_entryaddr = p->kern_entry;
+ strncpy(kernel->filename, kernelfile, sizeof(kernel->filename));
+
+ if (filelength(rootfsfile) + kernel->partition_length > p->firmware_max_length)
+ return (-2);
+
+ strcpy(rootfs->partition_name, "rootfs");
+ rootfs->partition_index = 2;
+ rootfs->partition_baseaddr = kernel->partition_baseaddr + kernel->partition_length;
+ rootfs->partition_length = p->firmware_max_length - kernel->partition_length;
+ rootfs->partition_memaddr = 0x00000000;
+ rootfs->partition_entryaddr = 0x00000000;
+ strncpy(rootfs->filename, rootfsfile, sizeof(rootfs->filename));
+
+printf("kernel: %d 0x%08x\n", kernel->partition_length, kernel->partition_baseaddr);
+printf("root: %d 0x%08x\n", rootfs->partition_length, rootfs->partition_baseaddr);
+ im->part_count = 2;