summaryrefslogtreecommitdiff
path: root/tools/firmware-utils/src/mkzynfw.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/firmware-utils/src/mkzynfw.c')
-rw-r--r--tools/firmware-utils/src/mkzynfw.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/tools/firmware-utils/src/mkzynfw.c b/tools/firmware-utils/src/mkzynfw.c
index f8c7159..9009d50 100644
--- a/tools/firmware-utils/src/mkzynfw.c
+++ b/tools/firmware-utils/src/mkzynfw.c
@@ -1,8 +1,8 @@
/*
* $Id$
*
- * Copyright (C) 2007 OpenWrt.org
- * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
+ * Copyright (C) 2007-2008 OpenWrt.org
+ * Copyright (C) 2007-2008 Gabor Juhos <juhosg at openwrt.org>
*
* This code was based on the information of the ZyXEL's firmware
* image format written by Kolja Waschk, can be found at:
@@ -95,7 +95,7 @@ struct board_info {
uint32_t flash_base; /* flash base address */
uint32_t flash_size; /* board flash size */
uint32_t code_start; /* code start address */
- uint32_t fw_offs; /* offset of the firmware within the flash */
+ uint32_t romio_offs; /* offset of the firmware within the flash */
};
/*
@@ -125,7 +125,7 @@ int num_blocks = 0;
.name = (n), .desc=(d), \
.vendor = (v), .model = (m), \
.flash_base = (fb), .flash_size = (fs)<<20, \
- .code_start = (cs), .fw_offs = (fo) \
+ .code_start = (cs), .romio_offs = (fo) \
}
#define ADMBOARD1(n, d, m, fs) BOARD(n, d, ZYNOS_VENDOR_ID_ZYXEL, m, \
@@ -164,6 +164,17 @@ static struct board_info boards[] = {
ADMBOARD1("P-335U", "ZyXEL Prestige 335U", ZYNOS_MODEL_P_335U, 4),
ADMBOARD1("P-335WT", "ZyXEL Prestige 335WT", ZYNOS_MODEL_P_335WT, 4),
+ {
+ .name = "P-2602HW-D1A",
+ .desc = "ZyXEL P-2602HW-D1A",
+ .vendor = ZYNOS_VENDOR_ID_ZYXEL,
+ .model = ZYNOS_MODEL_P_2602HW_D1A,
+ .flash_base = AR7_FLASH_BASE,
+ .flash_size = 4*1024*1024,
+ .code_start = 0x94008000,
+ .romio_offs = 0x20000,
+ },
+
#if 0
/*
* Texas Instruments AR7 based boards
@@ -193,7 +204,7 @@ static struct board_info boards[] = {
.flash_base = AR7_FLASH_BASE,
.flash_size = 8*1024*1024,
.code_start = 0x94014000,
- .fw_offs = 0x40000,
+ .romio_offs = 0x40000,
},
/*
@@ -710,7 +721,7 @@ write_out_image(FILE *outfile)
offset += padlen;
- mmap.addr = board->flash_base + board->fw_offs + offset;
+ mmap.addr = board->flash_base + board->romio_offs + offset;
hdr.mmap_addr = mmap.addr;
res = write_out_mmap(outfile, &mmap, &css);
if (res)
@@ -887,7 +898,7 @@ calc_block_offsets(int type, uint32_t *offset)
continue;
next_offs = ALIGN(*offset, block->align);
- avail = board->flash_size - board->fw_offs - next_offs;
+ avail = board->flash_size - board->romio_offs - next_offs;
if (next_offs + block->file_size > avail) {
ERR("file %s is too big, offset = %u, size=%u,"
" align = %u", block->file_name,
@@ -921,7 +932,7 @@ process_blocks(void)
return res;
}
- offset = board->fw_offs + bootext_block->file_size;
+ offset = board->romio_offs + bootext_block->file_size;
res = calc_block_offsets(BLOCK_TYPE_RAW, &offset);
return res;