diff options
-rw-r--r-- | target/linux/adm5120-2.6/image/Makefile | 13 | ||||
-rw-r--r-- | tools/firmware-utils/Makefile | 1 | ||||
-rw-r--r-- | tools/firmware-utils/src/mksyshdr.c | 44 |
3 files changed, 58 insertions, 0 deletions
diff --git a/target/linux/adm5120-2.6/image/Makefile b/target/linux/adm5120-2.6/image/Makefile index 2043ffa9e..a41fde933 100644 --- a/target/linux/adm5120-2.6/image/Makefile +++ b/target/linux/adm5120-2.6/image/Makefile @@ -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)) diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile index 9f5346b44..88e3a4964 100644 --- a/tools/firmware-utils/Makefile +++ b/tools/firmware-utils/Makefile @@ -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 index 000000000..8f6604c6a --- /dev/null +++ b/tools/firmware-utils/src/mksyshdr.c @@ -0,0 +1,44 @@ +#include <stdlib.h>
+#include <stdio.h>
+int main(int argc, char* argv[])
+{
+ FILE* fp;
+ long nImgSize;
+ char* pHeader1 = "CSYS";
+ long nHeader2 = 0x80500000;
+
+ if (argc != 3)
+ {
+ printf("Usage: mksyshdr <header file> <image file>\n");
+ return -1;
+ }
+
+ fp = fopen(argv[2], "rb");
+ if (fp != NULL)
+ {
+ fseek(fp, 0, SEEK_END);
+ nImgSize = ftell(fp);
+ fclose(fp);
+ fp = fopen(argv[1], "wb+");
+ if (fp != NULL)
+ {
+ fwrite(pHeader1, sizeof(char), 4, fp);
+ fwrite(&nHeader2, sizeof(long), 1, fp);
+ fwrite(&nImgSize, sizeof(long), 1, fp);
+ fclose(fp);
+ }
+ else
+ {
+ printf("Cannot create %s.\n", argv[1]);
+ return -1;
+ }
+ }
+ else
+ {
+ printf("Cannot open %s.\n", argv[2]);
+ return -1;
+ }
+
+ return 0;
+}
+
|