Browse Source

Add image generation for edimax routers

SVN-Revision: 6627
Florian Fainelli 19 years ago
parent
commit
5e7833d044

+ 13 - 0
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))

+ 1 - 0
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

+ 44 - 0
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;
+}
+