This adds an option to set the recovery flag of newer TP-Link MediaTek boards and remove it after a successful write. To make use of this feature, add the '-t' option to mtd-write. The '-t' option takes the mtd partition containing the recovery flag (usually 'romfile') as an argument. Make sure this partition is not flagged as read-only! Example: > mtd -t romfile write owrt.bin firmware This command writes the recovery-flag before it begins writing the image to the firmware partition. After the image-write has been successful, the recovery flag is removed. This way, the TP-Link web-recovery is automatically enabled on an unsucessful flash (e.g. power loss). This option is only available if the mtd package is compiled for the ramips target. Signed-off-by: David Bauer <mail@david-bauer.net>
35 lines
1.5 KiB
C
35 lines
1.5 KiB
C
#ifndef __mtd_h
|
|
#define __mtd_h
|
|
|
|
#include <stdbool.h>
|
|
|
|
#if defined(target_brcm47xx) || defined(target_bcm53xx)
|
|
#define target_brcm 1
|
|
#endif
|
|
|
|
#define JFFS2_EOF "\xde\xad\xc0\xde"
|
|
|
|
extern int quiet;
|
|
extern int mtdsize;
|
|
extern int erasesize;
|
|
|
|
extern int mtd_open(const char *mtd, bool block);
|
|
extern int mtd_check_open(const char *mtd);
|
|
extern int mtd_block_is_bad(int fd, int offset);
|
|
extern int mtd_erase_block(int fd, int offset);
|
|
extern int mtd_write_buffer(int fd, const char *buf, int offset, int length);
|
|
extern int mtd_write_jffs2(const char *mtd, const char *filename, const char *dir);
|
|
extern int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename);
|
|
extern void mtd_parse_jffs2data(const char *buf, const char *dir);
|
|
|
|
/* target specific functions */
|
|
extern int trx_fixup(int fd, const char *name) __attribute__ ((weak));
|
|
extern int trx_check(int imagefd, const char *mtd, char *buf, int *len) __attribute__ ((weak));
|
|
extern int mtd_fixtrx(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
|
|
extern int mtd_fixseama(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
|
|
extern int mtd_fixwrg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
|
|
extern int mtd_fixwrgg(const char *mtd, size_t offset, size_t data_size) __attribute__ ((weak));
|
|
extern int mtd_resetbc(const char *mtd) __attribute__ ((weak));
|
|
extern int mtd_tpl_recoverflag_write(const char *mtd, const bool recovery_active) __attribute__ ((weak));
|
|
#endif /* __mtd_h */
|