Control: tag -1 patch This modifies makefw to generate binaries, calls it at package build time and adds the FPGA bitfiles into dahdi-firmware-nonfree. All the build logic is added to debian/rules since we can't use kbuild at package build time.
I've verified that this produces the same blobs as were previously embedded in the drivers. By the way, the install/dahdi-firmware target is not used. I am *not* intending to upload these changes but will do so if you want me to. Ben. --- /dev/null +++ b/debian/patches/make-binary-bitfiles @@ -0,0 +1,73 @@ +Author: Ben Hutchings <b...@decadent.org.uk> +Description: Add makefw -b option to enable binary output +Bug-Debian: http://bugs.debian.org/699104 + +We can't compile these bitfiles into the drivers in the free +dahdi-source package. Add the -b option to write a binary +instead of a C array. + +--- +--- a/drivers/dahdi/makefw.c ++++ b/drivers/dahdi/makefw.c +@@ -1,6 +1,7 @@ + /* Xilinx firmware convertor program. + * + * Written by Jim Dixon <j...@lambdatel.com>. ++ * Binary output adde by Ben Hutchings <b...@decadent.org.uk>. + * + * Copyright (C) 2001 Jim Dixon / Zapata Telephony. + * Copyright (C) 2001-2008 Digium, Inc. +@@ -34,10 +35,12 @@ FILE *fp; + int i,j,nbytes; + unsigned char c; + char buf[300]; ++int bin; + + if (argc < 3) + { + puts("Usage... makefw filename.rbt array_name"); ++ puts(" makefw filename.rbt -b"); + exit(1); + } + +@@ -47,8 +50,10 @@ char buf[300]; + perror("bit file open"); + exit(1); + } ++ bin = !strcmp(argv[2], "-b"); + nbytes = 0; +- printf("static unsigned char %s[] = {\n",argv[2]); ++ if (!bin) ++ printf("static unsigned char %s[] = {\n",argv[2]); + i = 0; + while(fgets(buf,sizeof(buf) - 1,fp)) + { +@@ -66,17 +71,22 @@ char buf[300]; + if ((j & 7) == 7) + { + nbytes++; +- if (i) printf(","); +- printf("0x%02x",c); +- if (i++ == SWATH) { +- printf(",\n"); +- i = 0; ++ if (bin) { ++ putchar(c); ++ } else { ++ if (i) printf(","); ++ printf("0x%02x",c); ++ if (i++ == SWATH) { ++ printf(",\n"); ++ i = 0; ++ } + } + c = 0; + } + } + } +- printf("\n};\n\n"); ++ if (!bin) ++ printf("\n};\n\n"); + fprintf(stderr,"Loaded %d bytes from file\n",nbytes); + fclose(fp); + exit(0); --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +make-binary-bitfiles --- a/debian/rules +++ b/debian/rules @@ -12,6 +12,24 @@ # included in the tarball. The same tarball is properly built in # dahdi-linux +drivers/dahdi/makefw: drivers/dahdi/makefw.c + $(CC) $(CFLAGS) -Wall -Wextra -o $@ $< + +drivers/dahdi/dahdi-fw-tor2.bin: drivers/dahdi/tormenta2.rbt drivers/dahdi/makefw + drivers/dahdi/makefw $< -b > $@ + +drivers/dahdi/dahdi-fw-pciradio.bin: drivers/dahdi/pciradio.rbt drivers/dahdi/makefw + drivers/dahdi/makefw $< -b > $@ + +build/dahdi-firmware-nonfree:: drivers/dahdi/dahdi-fw-tor2.bin drivers/dahdi/dahdi-fw-pciradio.bin + +clean:: + rm -f drivers/dahdi/makefw drivers/dahdi/dahdi-fw-*.bin + +install/dahdi-firmware-nonfree:: + mkdir -p $(CURDIR)/debian/dahdi-firmware-nonfree/lib/firmware + install -m 644 -t $(CURDIR)/debian/dahdi-firmware-nonfree/lib/firmware/ drivers/dahdi/dahdi-fw-*.bin + install/dahdi-firmware:: chmod +x $(CURDIR)/debian/dahdi-firmware/usr/share/dahdi/get-digium-firmware --- END --- -- Ben Hutchings Experience is what causes a person to make new mistakes instead of old ones.
signature.asc
Description: This is a digitally signed message part