ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
1410034 Топик полностью
framer (03.03.2024 20:43, просмотров: 126) ответил pavel2000 на Я смотрел код функции do_erase_oneblock() в cfi_cmdset_0001.c в исходнике дистрибутивного ядра той же версии, что и ПО донора.
Посмотрел последнюю версиею ядра и явно не видно такого чипа. Скорей всего это AT49BV32X. 

./linux/drivers/mtd/chips/jedec_probe.c:#define AT49BV512 0x0003

./linux/drivers/mtd/chips/jedec_probe.c:#define AT49BV16X 0x00C0

./linux/drivers/mtd/chips/jedec_probe.c:#define AT49BV16XT 0x00C2

./linux/drivers/mtd/chips/jedec_probe.c:#define AT49BV32X 0x00C8

./linux/drivers/mtd/chips/jedec_probe.c:#define AT49BV32XT 0x00C9

./linux/drivers/mtd/chips/jedec_probe.c: .dev_id = AT49BV512,

./linux/drivers/mtd/chips/jedec_probe.c: .name = "Atmel AT49BV512",

./linux/drivers/mtd/chips/jedec_probe.c: .dev_id = AT49BV16X,

./linux/drivers/mtd/chips/jedec_probe.c: .name = "Atmel AT49BV16X",

./linux/drivers/mtd/chips/jedec_probe.c: .dev_id = AT49BV16XT,

./linux/drivers/mtd/chips/jedec_probe.c: .name = "Atmel AT49BV16XT",

./linux/drivers/mtd/chips/jedec_probe.c: .dev_id = AT49BV32X,

./linux/drivers/mtd/chips/jedec_probe.c: .name = "Atmel AT49BV32X",

./linux/drivers/mtd/chips/jedec_probe.c: .dev_id = AT49BV32XT,

./linux/drivers/mtd/chips/jedec_probe.c: .name = "Atmel AT49BV32XT",

./linux/drivers/mtd/chips/cfi_cmdset_0001.c:#define AT49BV640D 0x02de

./linux/drivers/mtd/chips/cfi_cmdset_0001.c:#define AT49BV640DT 0x02db

./linux/drivers/mtd/chips/cfi_cmdset_0001.c: { CFI_MFR_ATMEL, AT49BV640D, fixup_at49bv640dx_lock },

./linux/drivers/mtd/chips/cfi_cmdset_0001.c: { CFI_MFR_ATMEL, AT49BV640DT, fixup_at49bv640dx_lock },

./linux/drivers/mtd/chips/cfi_cmdset_0002.c:#define AT49BV6416 0x00d6

./linux/drivers/mtd/chips/cfi_cmdset_0002.c: if (cfi->id == AT49BV6416) {

./linux/drivers/mtd/chips/cfi_cmdset_0002.c: * Some Atmel chips (e.g. the AT49BV6416) power-up with all sectors

./linux/drivers/mtd/chips/cfi_cmdset_0002.c: { CFI_MFR_ATMEL, AT49BV6416, fixup_use_atmel_lock },

Нестыковки с флешем нормальное дело. Возможно производитель накатил patch. Проверьте какой "Device Code" и соответствуют ли параметры в ./linux/drivers/mtd/chips/jedec_probe.c

.mfr_id = CFI_MFR_ATMEL,

.dev_id = AT49BV32X,

.name = "Atmel AT49BV32X",

.devtypes = CFI_DEVICETYPE_X16|CFI_DEVICETYPE_X8,

.uaddr = MTD_UADDR_0x0555_0x0AAA, /* ???? */

.dev_size = SIZE_4MiB,

.cmd_set = P_ID_AMD_STD,

.nr_regions = 2,

.regions = {

ERASEINFO(0x02000,8),

ERASEINFO(0x10000,63)

}