* Copyright (C) 2007 OpenWrt.org
* Copyright (C) Gabor Juhos <juhosg at openwrt.org>
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
*/
#include <linux/module.h>
u32 offsets[TRX_MAX_OFFSET]; /* Offsets of partitions */
};
-#define BLOCK_LEN_MIN 0x10000
+#define TRX_ALIGN 0x1000
static int trx_nr_parts;
static unsigned long trx_offset;
static void trxsplit_findtrx(struct mtd_info *mtd)
{
unsigned long offset;
- unsigned long blocklen;
int err;
- blocklen = mtd->erasesize;
- if (blocklen < BLOCK_LEN_MIN)
- blocklen = BLOCK_LEN_MIN;
-
printk(KERN_INFO PFX "searching TRX header in '%s'\n", mtd->name);
err = 0;
- for (offset = 0; offset < mtd->size; offset += blocklen) {
+ for (offset = 0; offset < mtd->size; offset += TRX_ALIGN) {
err = trxsplit_checktrx(mtd, offset);
if (err == 0)
break;
static void __init trxsplit_add_mtd(struct mtd_info *mtd)
{
+ if (mtd->type != MTD_NORFLASH) {
+ printk(KERN_INFO PFX "'%s' is not a NOR flash, skipped\n",
+ mtd->name);
+ return;
+ }
+
if (!trx_mtd)
trxsplit_findtrx(mtd);
}