aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2007-03-21 15:04:07 +0000
committerFlorian Fainelli <florian@openwrt.org>2007-03-21 15:04:07 +0000
commit9881eea43e05cd063266f7e3fa6c9c7d822c70f4 (patch)
tree56f60cc676d7ff4685af71ee7272014d32a9f096 /tools
parentce65b07441aa8bd6efb9908991b1b50cdf8d9781 (diff)
downloadmaster-187ad058-9881eea43e05cd063266f7e3fa6c9c7d822c70f4.tar.gz
master-187ad058-9881eea43e05cd063266f7e3fa6c9c7d822c70f4.tar.bz2
master-187ad058-9881eea43e05cd063266f7e3fa6c9c7d822c70f4.zip
Add image generation for edimax routers
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6627 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'tools')
-rw-r--r--tools/firmware-utils/Makefile1
-rw-r--r--tools/firmware-utils/src/mksyshdr.c44
2 files changed, 45 insertions, 0 deletions
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
index 9f5346b449..88e3a4964c 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 0000000000..8f6604c6a0
--- /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;
+}
+