Add image generation for edimax routers
authorFlorian Fainelli <florian@openwrt.org>
Wed, 21 Mar 2007 15:04:07 +0000 (15:04 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Wed, 21 Mar 2007 15:04:07 +0000 (15:04 +0000)
SVN-Revision: 6627

target/linux/adm5120-2.6/image/Makefile
tools/firmware-utils/Makefile
tools/firmware-utils/src/mksyshdr.c [new file with mode: 0644]

index 2043ffa..a41fde9 100644 (file)
@@ -34,8 +34,21 @@ define trxalign/squashfs
 -a 1024
 endef
 
+define Image/Build/Compex
+       $(CP) $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).trx
+endef
+
+define Image/Build/Edimax
+       $(STAGING_DIR)/bin/mksyshdr csys $(KDIR)/vmlinux
+       cat csys $(KDIR)/vmlinux $(KDIR)/root.$(1) > $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(3)-$(2).img
+endef
+
 define Image/Build
        $(STAGING_DIR)/bin/trx -o $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(1).trx -f $(KDIR)/loader.gz -f $(KDIR)/vmlinux.lzma $(call trxalign/$(1)) -f $(KDIR)/root.$(1)
+ifneq ($(1),jffs2-128K)
+       $(call Image/Build/Compex,$(1),wp54g,$(patsubst jffs2-%,jffs2,$(1)))
+       $(call Image/Build/Edimax,$(1),br6104,$(patsubst jffs2-%,jffs2,$(1)))
+endif
 endef
 
 $(eval $(call BuildImage))
index 9f5346b..88e3a49 100644 (file)
@@ -26,6 +26,7 @@ define Build/Compile
        $(call cc,ptgen)
        $(call cc,airlink)
        $(call cc,srec2bin)
+       $(call cc,mksyshdr)
 endef
 
 define Build/Install
diff --git a/tools/firmware-utils/src/mksyshdr.c b/tools/firmware-utils/src/mksyshdr.c
new file mode 100644 (file)
index 0000000..8f6604c
--- /dev/null
@@ -0,0 +1,44 @@
+#include <stdlib.h>\r
+#include <stdio.h>\r
+int main(int argc, char* argv[])\r
+{\r
+       FILE* fp;\r
+       long  nImgSize;\r
+       char* pHeader1 = "CSYS";\r
+       long  nHeader2 = 0x80500000;\r
+\r
+       if (argc != 3)\r
+       {\r
+               printf("Usage: mksyshdr <header file> <image file>\n");\r
+               return -1;\r
+       }\r
+\r
+       fp = fopen(argv[2], "rb");\r
+       if (fp != NULL)\r
+       {\r
+               fseek(fp, 0, SEEK_END);\r
+               nImgSize = ftell(fp);\r
+               fclose(fp);\r
+               fp = fopen(argv[1], "wb+");\r
+               if (fp != NULL)\r
+               {\r
+                       fwrite(pHeader1,  sizeof(char), 4, fp);\r
+                       fwrite(&nHeader2, sizeof(long), 1, fp);\r
+                       fwrite(&nImgSize, sizeof(long), 1, fp);\r
+                       fclose(fp);\r
+               }\r
+               else\r
+               {\r
+                       printf("Cannot create %s.\n", argv[1]);\r
+                       return -1;\r
+               }\r
+       }\r
+       else\r
+       {\r
+               printf("Cannot open %s.\n", argv[2]);\r
+               return -1;\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r