diff options
Diffstat (limited to 'target/linux/etrax/image')
-rw-r--r-- | target/linux/etrax/image/Makefile | 28 | ||||
-rw-r--r-- | target/linux/etrax/image/mkfimage/Makefile | 2 | ||||
-rw-r--r-- | target/linux/etrax/image/mkfimage/src/mkfimage.c | 20 |
3 files changed, 19 insertions, 31 deletions
diff --git a/target/linux/etrax/image/Makefile b/target/linux/etrax/image/Makefile index 592cea5..9f71620 100644 --- a/target/linux/etrax/image/Makefile +++ b/target/linux/etrax/image/Makefile @@ -8,44 +8,32 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk -FOXBOARD:=custom MCM 416 816 832 -FOXBOARD_4MB:=MCM 416 -FOXBOARD_8MB:=custom 816 832 - define Image/BuildKernel - for f in $(FOXBOARD); do \ - cp $(KDIR)/vmlinuz_$$$$f $(BIN_DIR)/openwrt-$(BOARD)-zImage_$$$$f; \ - done + cp $(KDIR)/vmlinuz $(BIN_DIR)/openwrt-$(BOARD)-zImage endef define Image/Prepare - for f in $(FOXBOARD); do \ - cp $(LINUX_DIR)/arch/cris/boot/zImage_$$$$f $(KDIR)/vmlinuz_$$$$f; \ - done + cp $(LINUX_DIR)/arch/cris/boot/zImage $(KDIR)/vmlinuz $(MAKE) -C e100boot compile $(MAKE) -C mkfimage compile $(INSTALL_BIN) ./boot_linux $(BIN_DIR) endef define Image/Build/generic - for f in $(2); do \ - mkfimage $(KDIR)/vmlinuz_$$$$f $(KDIR)/vmlinuz_$$$$f.tmp ; \ - cat $(KDIR)/vmlinuz_$$$$f.tmp $(KDIR)/root.$(1) > $(KDIR)/fimage.$(1)_$$$$f.tmp; \ - dd if=$(KDIR)/fimage.$(1)_$$$$f.tmp of=$(KDIR)/fimage.$(1)_$$$$f bs=$(3) conv=sync; \ - cp $(KDIR)/fimage.$(1)_$$$$f $(BIN_DIR)/openwrt-$(BOARD)-$(1)-fimage_$$$$f; \ - done + mkfimage $(KDIR)/vmlinuz $(KDIR)/vmlinuz.tmp + cat $(KDIR)/vmlinuz.tmp $(KDIR)/root.$(1) > $(KDIR)/fimage.$(1).tmp + dd if=$(KDIR)/fimage.$(1).tmp of=$(KDIR)/fimage.$(1) bs=$(2) conv=sync + cp $(KDIR)/fimage.$(1) $(BIN_DIR)/openwrt-$(BOARD)-$(1)-fimage endef define Image/Build/jffs2-64k $(call prepare_generic_jffs-64k,$(KDIR)/root.jff2-64k) - $(call Image/Build/generic,$(1),$(FOXBOARD_4MB),4194304) - $(call Image/Build/generic,$(1),$(FOXBOARD_8MB),8388608) + $(call Image/Build/generic,$(1),4194304) endef define Image/Build/squashfs $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) - $(call Image/Build/generic,$(1),$(FOXBOARD_4MB),4194304) - $(call Image/Build/generic,$(1),$(FOXBOARD_8MB),8388608) + $(call Image/Build/generic,$(1),4194304) endef define Image/Build diff --git a/target/linux/etrax/image/mkfimage/Makefile b/target/linux/etrax/image/mkfimage/Makefile index e907e73..f97d098 100644 --- a/target/linux/etrax/image/mkfimage/Makefile +++ b/target/linux/etrax/image/mkfimage/Makefile @@ -24,7 +24,7 @@ define Build/Compile endef define Build/InstallDev - $(INSTALL_BIN) $(PKG_BUILD_DIR)/mkfimage $(STAGING_DIR)/bin/mkfimage + $(INSTALL_BIN) $(PKG_BUILD_DIR)/mkfimage $(STAGING_DIR_HOST)/bin/mkfimage endef $(eval $(call Build/DefaultTargets)) diff --git a/target/linux/etrax/image/mkfimage/src/mkfimage.c b/target/linux/etrax/image/mkfimage/src/mkfimage.c index 51b8192..6904170 100644 --- a/target/linux/etrax/image/mkfimage/src/mkfimage.c +++ b/target/linux/etrax/image/mkfimage/src/mkfimage.c @@ -17,49 +17,49 @@ int main(int argc, char **argv){ printf("%s in out\n", argv[0]); return 1; } - + printf("Generating image\n"); - + FILE *vmlinux = fopen(argv[1], "r"); FILE *vmlinux_out = fopen(argv[2], "w"); if((!vmlinux) || (!vmlinux_out)){ printf("Error opening a file\n"); return 1; } - + stat(argv[1], &s); size_vmlinux = s.st_size; real_size_vmlinux = (size_vmlinux & 0xffff0000) + 0x10000; printf("vmlinux = 0x%.08X / 0x%.08X\n", size_vmlinux, real_size_vmlinux); - + unsigned int t = fread(buffer, 1, 64 * 1024, vmlinux); for(loop = 0; loop < (64 * 1024) - sizeof(magic_str); loop++){ if(buffer[loop] == magic_str[0]){ if((magic = strstr(&buffer[loop], magic_str))){ - printf("Magic at 0x%.08X %p %p\n", magic - buffer, magic, buffer); + printf("Magic at 0x%.08X %p %p\n", magic - buffer, magic, buffer); printf("Found Magic %X%X%X%X\n", buffer[loop + strlen(magic_str)], buffer[loop + strlen(magic_str) + 2], buffer[loop + strlen(magic_str) + 1], buffer[loop + strlen(magic_str) + 3]); - + buffer[loop + strlen(magic_str)] = real_size_vmlinux >> 24; buffer[loop + strlen(magic_str) + 2] = (real_size_vmlinux >> 16) & 0xff; buffer[loop + strlen(magic_str) + 1] = (real_size_vmlinux >> 8) & 0xff; buffer[loop + strlen(magic_str) + 3] = (real_size_vmlinux) & 0xff; - + printf("Replaced with %.02X%.02X%.02X%.02X\n", buffer[loop + strlen(magic_str)], buffer[loop + strlen(magic_str) + 2], buffer[loop + strlen(magic_str) + 1], buffer[loop + strlen(magic_str) + 3]); - + } } } - - fwrite(buffer, 1, 64 * 1024, vmlinux_out); + + fwrite(buffer, 1, 64 * 1024, vmlinux_out); real_size_vmlinux -= 64 * 1024; do { real_size_vmlinux -= 64 * 1024; |