add pspboot support, cleanup in ar7 board support

SVN-Revision: 1611
This commit is contained in:
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
$(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) | \
$(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
endef
@ -72,6 +72,7 @@ endef
$(eval $(call pattern_template,WA22))
$(eval $(call pattern_template,WAG2))
$(eval $(call pattern_template,WA21))
$(eval $(call pattern_template,WA32,-b))
clean:
rm -rf $(PKG_BUILD_DIR)

View file

@ -50,6 +50,7 @@
#define CODE_ID "U2ND" /* 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 */
@ -75,7 +76,7 @@ void usage(void) __attribute__ (( __noreturn__ ));
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);
}
@ -88,8 +89,10 @@ int main(int argc, char **argv)
char *ifn = NULL;
char *ofn = NULL;
char *pattern = CODE_PATTERN;
char *pbotpat = PBOT_PATTERN;
char *version = CYBERTAN_VERSION;
int gflag = 0;
int pbotflag = 0;
int c;
int v0, v1, v2;
size_t off, n;
@ -101,7 +104,7 @@ int main(int argc, char **argv)
hdr = (struct code_header *) buf;
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) {
case 'i':
ifn = optarg;
@ -115,6 +118,9 @@ int main(int argc, char **argv)
case 'g':
gflag = 1;
break;
case 'b':
pbotflag = 1;
break;
case 'v': /* extension to allow setting version */
version = optarg;
break;
@ -169,6 +175,8 @@ int main(int argc, char **argv)
}
memcpy(&hdr->magic, pattern, 4);
if (pbotflag)
memcpy(&hdr->res1, pbotpat, 4);
hdr->fwdate[0] = ptm->tm_year % 100;
hdr->fwdate[1] = ptm->tm_mon + 1;
hdr->fwdate[2] = ptm->tm_mday;