mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-10 03:09:08 +08:00
fritz-tools: add support for IPQ40xx platform
AVM devices based on Qualcomm IPQ40xx do not store sector health information in the OOB area. Make this check optional to support this platform. Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
parent
d75db67870
commit
5389db72e3
@ -67,6 +67,7 @@ static char *mtddev;
|
|||||||
static char *name_filter = NULL;
|
static char *name_filter = NULL;
|
||||||
static bool show_all = false;
|
static bool show_all = false;
|
||||||
static bool print_all_key_names = false;
|
static bool print_all_key_names = false;
|
||||||
|
static bool read_oob_sector_health = false;
|
||||||
static bool swap_bytes = false;
|
static bool swap_bytes = false;
|
||||||
static uint8_t readbuf[TFFS_SECTOR_SIZE];
|
static uint8_t readbuf[TFFS_SECTOR_SIZE];
|
||||||
static uint8_t oobbuf[TFFS_SECTOR_OOB_SIZE];
|
static uint8_t oobbuf[TFFS_SECTOR_OOB_SIZE];
|
||||||
@ -191,7 +192,7 @@ static int find_entry(uint32_t id, struct tffs_entry *entry)
|
|||||||
uint32_t read_id = read_uint32(readbuf, 0x00);
|
uint32_t read_id = read_uint32(readbuf, 0x00);
|
||||||
uint32_t read_len = read_uint32(readbuf, 0x04);
|
uint32_t read_len = read_uint32(readbuf, 0x04);
|
||||||
uint32_t read_rev = read_uint32(readbuf, 0x0c);
|
uint32_t read_rev = read_uint32(readbuf, 0x0c);
|
||||||
if (oob_id != read_id || oob_len != read_len || oob_rev != read_rev) {
|
if (read_oob_sector_health && (oob_id != read_id || oob_len != read_len || oob_rev != read_rev)) {
|
||||||
fprintf(stderr, "Warning: sector has inconsistent metadata\n");
|
fprintf(stderr, "Warning: sector has inconsistent metadata\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -360,6 +361,9 @@ static int show_matching_key_value(struct tffs_key_name_table *key_names)
|
|||||||
|
|
||||||
static int check_sector(off_t pos)
|
static int check_sector(off_t pos)
|
||||||
{
|
{
|
||||||
|
if (!read_oob_sector_health) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
if (read_sectoroob(pos)) {
|
if (read_sectoroob(pos)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -450,6 +454,7 @@ static void usage(int status)
|
|||||||
" -h show this screen\n"
|
" -h show this screen\n"
|
||||||
" -l list all supported keys\n"
|
" -l list all supported keys\n"
|
||||||
" -n <key name> display the value of the given key\n"
|
" -n <key name> display the value of the given key\n"
|
||||||
|
" -o read OOB information about sector health\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
exit(status);
|
exit(status);
|
||||||
@ -460,7 +465,7 @@ static void parse_options(int argc, char *argv[])
|
|||||||
while (1) {
|
while (1) {
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
c = getopt(argc, argv, "abd:hln:");
|
c = getopt(argc, argv, "abd:hln:o");
|
||||||
if (c == -1)
|
if (c == -1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -489,6 +494,9 @@ static void parse_options(int argc, char *argv[])
|
|||||||
show_all = false;
|
show_all = false;
|
||||||
print_all_key_names = false;
|
print_all_key_names = false;
|
||||||
break;
|
break;
|
||||||
|
case 'o':
|
||||||
|
read_oob_sector_health = true;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
usage(EXIT_FAILURE);
|
usage(EXIT_FAILURE);
|
||||||
break;
|
break;
|
||||||
|
@ -125,7 +125,7 @@ define Device/avm_fritzbox-7530
|
|||||||
$(call Device/FitImageLzma)
|
$(call Device/FitImageLzma)
|
||||||
DEVICE_DTS := qcom-ipq4019-fritzbox-7530
|
DEVICE_DTS := qcom-ipq4019-fritzbox-7530
|
||||||
DEVICE_TITLE := AVM Fritz!Box 7530
|
DEVICE_TITLE := AVM Fritz!Box 7530
|
||||||
DEVICE_PACKAGES := fritz-caldata ipq-wifi-avm_fritzbox-7530
|
DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzbox-7530
|
||||||
IMAGES := sysupgrade.bin
|
IMAGES := sysupgrade.bin
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += avm_fritzbox-7530
|
TARGET_DEVICES += avm_fritzbox-7530
|
||||||
|
@ -169,8 +169,8 @@ avm,fritz7362sl)
|
|||||||
avm,fritz7412)
|
avm,fritz7412)
|
||||||
tffsdev=$(find_mtd_chardev "nand-tffs")
|
tffsdev=$(find_mtd_chardev "nand-tffs")
|
||||||
annex="b"
|
annex="b"
|
||||||
lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca)
|
lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -o)
|
||||||
wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl)
|
wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl -o)
|
||||||
ucidef_set_interface_lan 'eth0'
|
ucidef_set_interface_lan 'eth0'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user