add pspboot support, cleanup in ar7 board support

SVN-Revision: 1611
lede-17.01
Felix Fietkau 2005-08-12 13:59:13 +00:00
parent 544736f3e2
commit 6c3d9c2ca8
3 changed files with 1138 additions and 1124 deletions

View File

@ -64,7 +64,7 @@ $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS).bin: $(BIN_DIR)/openwrt-ar7-2.4-kernel.bi
define pattern_template define pattern_template
$(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin: $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS).bin $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin: $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS).bin
(dd if=/dev/zero bs=16 count=1; cat $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS).bin) | \ (dd if=/dev/zero bs=16 count=1; cat $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS).bin) | \
$(STAGING_DIR)/bin/addpattern -p $(1) -o $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin $(STAGING_DIR)/bin/addpattern -p $(1) $(2) -o $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin
install: $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin install: $(BIN_DIR)/openwrt-ar7-$(KERNEL)-$(FS)-$(1).bin
endef endef
@ -72,6 +72,7 @@ endef
$(eval $(call pattern_template,WA22)) $(eval $(call pattern_template,WA22))
$(eval $(call pattern_template,WAG2)) $(eval $(call pattern_template,WAG2))
$(eval $(call pattern_template,WA21)) $(eval $(call pattern_template,WA21))
$(eval $(call pattern_template,WA32,-b))
clean: clean:
rm -rf $(PKG_BUILD_DIR) rm -rf $(PKG_BUILD_DIR)

View File

@ -50,6 +50,7 @@
#define CODE_ID "U2ND" /* from code_pattern.h */ #define CODE_ID "U2ND" /* from code_pattern.h */
#define CODE_PATTERN "W54S" /* from code_pattern.h */ #define CODE_PATTERN "W54S" /* from code_pattern.h */
#define PBOT_PATTERN "PBOT"
#define CYBERTAN_VERSION "v3.37.2" /* from cyutils.h */ #define CYBERTAN_VERSION "v3.37.2" /* from cyutils.h */
@ -75,7 +76,7 @@ void usage(void) __attribute__ (( __noreturn__ ));
void usage(void) void usage(void)
{ {
fprintf(stderr, "Usage: addpattern [-i trxfile] [-o binfile] [-p pattern] [-g] [-v v#.#.#] [-{0|1|2}]\n"); fprintf(stderr, "Usage: addpattern [-i trxfile] [-o binfile] [-p pattern] [-g] [-b] [-v v#.#.#] [-{0|1|2}]\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -88,8 +89,10 @@ int main(int argc, char **argv)
char *ifn = NULL; char *ifn = NULL;
char *ofn = NULL; char *ofn = NULL;
char *pattern = CODE_PATTERN; char *pattern = CODE_PATTERN;
char *pbotpat = PBOT_PATTERN;
char *version = CYBERTAN_VERSION; char *version = CYBERTAN_VERSION;
int gflag = 0; int gflag = 0;
int pbotflag = 0;
int c; int c;
int v0, v1, v2; int v0, v1, v2;
size_t off, n; size_t off, n;
@ -101,7 +104,7 @@ int main(int argc, char **argv)
hdr = (struct code_header *) buf; hdr = (struct code_header *) buf;
memset(hdr, 0, sizeof(struct code_header)); memset(hdr, 0, sizeof(struct code_header));
while ((c = getopt(argc, argv, "i:o:p:gv:012")) != -1) { while ((c = getopt(argc, argv, "i:o:p:gbv:012")) != -1) {
switch (c) { switch (c) {
case 'i': case 'i':
ifn = optarg; ifn = optarg;
@ -115,6 +118,9 @@ int main(int argc, char **argv)
case 'g': case 'g':
gflag = 1; gflag = 1;
break; break;
case 'b':
pbotflag = 1;
break;
case 'v': /* extension to allow setting version */ case 'v': /* extension to allow setting version */
version = optarg; version = optarg;
break; break;
@ -169,6 +175,8 @@ int main(int argc, char **argv)
} }
memcpy(&hdr->magic, pattern, 4); memcpy(&hdr->magic, pattern, 4);
if (pbotflag)
memcpy(&hdr->res1, pbotpat, 4);
hdr->fwdate[0] = ptm->tm_year % 100; hdr->fwdate[0] = ptm->tm_year % 100;
hdr->fwdate[1] = ptm->tm_mon + 1; hdr->fwdate[1] = ptm->tm_mon + 1;
hdr->fwdate[2] = ptm->tm_mday; hdr->fwdate[2] = ptm->tm_mday;