summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2004-11-16 23:26:44 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2004-11-16 23:26:44 +0000
commitdf0d0f1fde36627a8683d1bb10e47006feaaf339 (patch)
tree474863ddbd4baf216c8c1c734a092f5c252837d5 /sys
parentc63f71dcfabdad2096fcbb4dda16459c3f5a8dc6 (diff)
flat firmware file creation and installation
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/microcode/Makefile5
-rw-r--r--sys/dev/microcode/atmel/Makefile19
-rw-r--r--sys/dev/microcode/atmel/build.c47
3 files changed, 71 insertions, 0 deletions
diff --git a/sys/dev/microcode/Makefile b/sys/dev/microcode/Makefile
new file mode 100644
index 00000000000..57fca45c970
--- /dev/null
+++ b/sys/dev/microcode/Makefile
@@ -0,0 +1,5 @@
+# $OpenBSD: Makefile,v 1.1 2004/11/16 23:26:43 deraadt Exp $
+
+SUBDIR= atmel
+
+.include <bsd.subdir.mk>
diff --git a/sys/dev/microcode/atmel/Makefile b/sys/dev/microcode/atmel/Makefile
new file mode 100644
index 00000000000..b0bb024561b
--- /dev/null
+++ b/sys/dev/microcode/atmel/Makefile
@@ -0,0 +1,19 @@
+# $OpenBSD: Makefile,v 1.1 2004/11/16 23:26:43 deraadt Exp $
+
+FIRM= atu-intersil-int atu-rfmd-int atu-rfmd2958-int \
+ atu-intersil-ext atu-rfmd-ext atu-rfmd2958-ext
+CLEANFILES+= ${FIRM} build
+
+all: build
+ ${.OBJDIR}/build
+
+NOPROG=
+NOMAN=
+
+.include <bsd.prog.mk>
+
+afterinstall:
+ ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${FIRM} ${DESTDIR}/etc/firmware
+
+
diff --git a/sys/dev/microcode/atmel/build.c b/sys/dev/microcode/atmel/build.c
new file mode 100644
index 00000000000..f5a33fd054e
--- /dev/null
+++ b/sys/dev/microcode/atmel/build.c
@@ -0,0 +1,47 @@
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include "atuwi_intersil_fw.h"
+#include "atuwi_rfmd2958-smc_fw.h"
+#include "atuwi_rfmd2958_fw.h"
+#include "atuwi_rfmd_fw.h"
+
+void
+output(const char *name, char *buf, int buflen)
+{
+ int i;
+ int fd;
+
+ printf("creating %s length %d\n", name, buflen);
+ fd = open(name, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+ if (fd == -1)
+ err(1, "%s", name);
+
+ write(fd, buf, buflen);
+ close(fd);
+}
+
+
+main(int argc, char *argv[])
+{
+ output("atu-intersil-int", atuwi_fw_intersil_int,
+ sizeof atuwi_fw_intersil_int);
+ output("atu-intersil-ext", atuwi_fw_intersil_ext,
+ sizeof atuwi_fw_intersil_ext);
+
+ output("atu-rfmd2958-int", atuwi_fw_rfmd2958_smc_int,
+ sizeof atuwi_fw_rfmd2958_smc_int);
+ output("atu-rfmd2958-ext", atuwi_fw_rfmd2958_smc_ext,
+ sizeof atuwi_fw_rfmd2958_smc_ext);
+
+ output("atu-rfmd2958-int", atuwi_fw_rfmd2958_int,
+ sizeof atuwi_fw_rfmd2958_int);
+ output("atu-rfmd2958-ext", atuwi_fw_rfmd2958_ext,
+ sizeof atuwi_fw_rfmd2958_ext);
+
+ output("atu-rfmd-int", atuwi_fw_rfmd_int,
+ sizeof atuwi_fw_rfmd_int);
+ output("atu-rfmd-ext", atuwi_fw_rfmd_ext,
+ sizeof atuwi_fw_rfmd_ext);
+
+}