All pastes #1512565 Raw Edit

Anonymous

public diff v1 · immutable
#1512565 ·published 2009-07-30 18:42 UTC
rendered paste body
Index: tools/firmware-utils/src/addpattern.c===================================================================--- tools/firmware-utils/src/addpattern.c	(revision 17037)+++ tools/firmware-utils/src/addpattern.c	(working copy)@@ -29,11 +29,11 @@  */  /* January 12, 2005- * + *  * Modified by rodent at rodent dot za dot net  * Support added for the new WRT54G v2.2 and WRT54GS v1.1 "flags"  * Without the flags set to 0x7, the above units will refuse to flash.- * + *  * Extensions:  *  -{0|1|2} sets {0|1} sets hw_ver flag to 0/1. {2} sets hw_ver to 1  *     and adds the new hardware "flags" for the v2.2/v1.1 units@@ -87,16 +87,48 @@ 	unsigned char res2[10]; } ; +struct board_info {+	char	*id;+	char	*pattern;+	char	hw_ver;+	char	unused;+	char	flags[2];+};++struct board_info boards[] = {+	{+		.id		= "WRT160NL",+		.pattern	= "NL16",+		.hw_ver		= 0x00,+		.unused		= 0x0f,+		.flags		= {0x3f, 0x00},+	}, {+		/* Terminating entry */+		.id	= NULL,+	}+};+ /**********************************************************************/  void usage(void) __attribute__ (( __noreturn__ ));  void usage(void) {-	fprintf(stderr, "Usage: addpattern [-i trxfile] [-o binfile] [-p pattern] [-g] [-b] [-v v#.#.#] [-r #.#] [-{0|1|2|4}] -h\n");+	fprintf(stderr, "Usage: addpattern [-i trxfile] [-o binfile] [-B board_id] [-p pattern] [-g] [-b] [-v v#.#.#] [-r #.#] [-{0|1|2|4}] -h\n"); 	exit(EXIT_FAILURE); } +struct board_info *find_board(char *id)+{+	struct board_info *board;++	for (board = boards; board->id != NULL; board++)+		if (strcasecmp(id, board->id) == 0)+			return board;++	return NULL;+}+ int main(int argc, char **argv) { 	char buf[1024];	/* keep this at 1k or adjust garbage calc below */@@ -108,6 +140,8 @@ 	char *pattern = CODE_PATTERN; 	char *pbotpat = PBOT_PATTERN; 	char *version = CYBERTAN_VERSION;+	char *board_id = NULL;+	struct board_info *board = NULL; 	int gflag = 0; 	int pbotflag = 0; 	int c;@@ -121,7 +155,7 @@ 	hdr = (struct code_header *) buf; 	memset(hdr, 0, sizeof(struct code_header)); -	while ((c = getopt(argc, argv, "i:o:p:gbv:0124hr:")) != -1) {+	while ((c = getopt(argc, argv, "i:o:p:gbv:0124hr:B:")) != -1) { 		switch (c) { 			case 'i': 				ifn = optarg;@@ -161,6 +195,9 @@                         case 'r':                                 hdr->hw_ver = (char)(atof(optarg)*10)+0x30;                                 break;+                        case 'B':+                                board_id = optarg;+                                break;                          case 'h': 			default:@@ -173,6 +210,19 @@ 		usage(); 	} +	if (board_id) {+		board = find_board(board_id);+		if (board == NULL) {+			fprintf(stderr, "unknown board \"%s\"\n", board_id);+			usage();+		}+		pattern = board->pattern;+		hdr->hw_ver = board->hw_ver;+		hdr->unused = board->unused;+		hdr->flags[0] = board->flags[0];+		hdr->flags[1] = board->flags[1];+	}+ 	if (strlen(pattern) != 4) { 		fprintf(stderr, "illegal pattern \"%s\": length != 4\n", pattern); 		usage();@@ -239,7 +289,7 @@ 			return EXIT_FAILURE; 		} 	}-	+ 	if (ferror(in)) { 		goto FREAD_ERROR; 	}Index: target/linux/ar71xx/image/Makefile===================================================================--- target/linux/ar71xx/image/Makefile	(revision 17037)+++ target/linux/ar71xx/image/Makefile	(working copy)@@ -159,6 +159,25 @@ 		-o $(call imgname,$(1),$(2)).uni endef +define Image/Build/CyberTAN+	cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(2)+	$(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(2) '$(strip $(3))'+	gzip -9 -c $(KDIR)/vmlinux-$(2) > $(KDIR)/vmlinux-$(2).bin.gzip+	mkimage -A mips -O linux -T kernel -a 0x80060000 -C gzip -e \+		0x80060000 \+		-n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \+		-d $(KDIR)/vmlinux-$(2).bin.gzip $(KDIR)/vmlinux-$(2).uImage+	( \+		dd if=$(KDIR)/vmlinux-$(2).uImage bs=1441732 count=1 conv=sync; \+		dd if=$(KDIR)/root.$(1) bs=64k; \+	) > $(KDIR)/vmlinux-$(2).image+	$(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/vmlinux-$(2).trx \+		-f $(KDIR)/vmlinux-$(2).image+	-$(STAGING_DIR_HOST)/bin/addpattern -B $(2) -v v$(4) -g \+		-i $(KDIR)/vmlinux-$(2).trx \+		-o $(call imgname,$(1),$(2)).bin+endef+ define Image/Build/Template/Compex 	$(call Image/Build/MyLoader,$(1),$(2)) endef@@ -179,6 +198,14 @@ 	$(call Image/Build/Template/WRT400N,jffs2-64k,$(1),$(2),$(3)) endef +define Image/Build/Template/CyberTAN+	$(call Image/Build/CyberTAN,$(1),$(2),$(3),$(4))+endef++define Image/Build/Template/CyberTAN/squashfs+	$(call Image/Build/Template/CyberTAN,squashfs,$(1),$(2),$(3))+endef+ define Image/Build/Template/AP81 	$(call Image/Build/AP81,$(1),$(2),$(3),$(4)) endef@@ -305,6 +332,10 @@ 	$(call Image/Build/Template/WRT400N/$(1),wrt400n,board=WRT400N) endef +define Image/Build/Profile/WRT160NL+	$(call Image/Build/Template/CyberTAN/$(1),wrt160nl,board=WRT160NL,1.00.01)+endef+ define Image/Build/Profile/Default 	$(call Image/Build/Profile/AP83,$(1)) 	$(call Image/Build/Profile/A02RBW300N,$(1))@@ -319,6 +350,7 @@ 	$(call Image/Build/Profile/UBNT,$(1)) 	$(call Image/Build/Profile/WP543,$(1)) 	$(call Image/Build/Profile/WRT400N,$(1))+	$(call Image/Build/Profile/WRT160NL,$(1)) endef  define Image/Build/Profile/Madwifi