From patchwork Thu Feb 4 04:20:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Paul Morrison X-Patchwork-Id: 1436026 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.helo=coreboot.org (client-ip=78.46.105.101; helo=coreboot.org; envelope-from=flashrom-bounces@flashrom.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=bogomips.com header.i=@bogomips.com header.a=rsa-sha256 header.s=google header.b=UgFxSyEg; dkim-atps=neutral Received: from coreboot.org (coreboot.org [78.46.105.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DWgHZ5w32z9sXJ for ; Fri, 5 Feb 2021 01:03:06 +1100 (AEDT) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by coreboot.org (Postfix) with ESMTPA id B0C5410C0155; Thu, 4 Feb 2021 14:03:01 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by coreboot.org (Postfix) with ESMTP id 0C71B10C00AA for ; Thu, 4 Feb 2021 04:21:14 +0000 (UTC) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) for ; Wed, 03 Feb 2021 20:21:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bogomips.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=602XWqsbnkLhvzDTjS8YXjyUBSfo3IHRefo7FiM5iAo=; b=UgFxSyEge60QDYCQ929wS9MB/QSuOejMeK9wAN5ramM6rRPZE+DyW5epELH99FOBxO M9/2FP+dBD9pCDw2CZMIsn7IcNo5PmgZJiZxxJ6LbLbybRyYfn+c9y1l9Nw9J9Gw/FKX g3ai81WBJikN+BDHPFOACLTzMJJWsmBLPNVLw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=602XWqsbnkLhvzDTjS8YXjyUBSfo3IHRefo7FiM5iAo=; b=uLA8dM48T/cWJZCzVrrsgSG1WLDmcNDNxeVJe3VFEGAzxE521emsWd7cVx7B9iBldy y2Q3uCtF1ujdjiyWdTc77JfyXoGi4AyfcxrXbn8gG3DhdC8jtRUp46TGe6hx/DDuEDyE Huubaur6Db5a1qR+M453CeAjof9rPk3x0VUUYKpg+O45KmPjMopqnbzuU2QiiwtNQD9f lfVLeMFaou9gFyFoGrn8CGJ3e9crqEv9hAYtAiObDoWH5zyfRh7qU9bIoDP+L3X00RAs erhPDBNtUmuANpiZVX/sTRNaleYUWqP3JlAyW3HVI3pYsPxnzI01GRypYb8s4tRFK+Ey lakA== X-Gm-Message-State: AOAM532o2eSAEoba+bmmhDj960JDUkGLDzFmR2YI8LGO9CmtglPIn7yY 7Py8RUbuDYrnLvqiZVS7xRfeKlNVUfIHzL+H6EyHCp6mXuw2jYDd X-Google-Smtp-Source: ABdhPJyEC/V1bwOotDkhy7LXbVJl5ak1KSKVOnW1iufnh8bAG4cshX0rUnlt8bFW8UK+Kuea5O+ts8BmRzjkjvBzLiE= X-Received: by 2002:a05:600c:204e:: with SMTP id p14mr5504233wmg.157.1612412471538; Wed, 03 Feb 2021 20:21:11 -0800 (PST) MIME-Version: 1.0 From: John Paul Morrison Date: Wed, 3 Feb 2021 20:20:59 -0800 Message-ID: To: flashrom@flashrom.org X-MailFrom: jmorrison@bogomips.com X-Mailman-Rule-Hits: member-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address Message-ID-Hash: JUZRR4JH6QBQD4ZNRQI233LC7AXC7GXK X-Message-ID-Hash: JUZRR4JH6QBQD4ZNRQI233LC7AXC7GXK X-Mailman-Approved-At: Thu, 04 Feb 2021 14:02:17 +0000 X-Mailman-Version: 3.3.2b1 Precedence: list Subject: [flashrom] flash chip FM25Q04 List-Id: flashrom discussion and development mailing list Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Authentication-Results: coreboot.org; auth=pass smtp.auth=mailman@coreboot.org smtp.mailfrom=flashrom-bounces@flashrom.org X-Spamd-Bar: -- I added this chip - I think it's working. The dumped image matches the generic spi output. I copied the FM25Q08 and adjusted for size - the Q08 is 8 Mbit and Q04 is 4 Mbit Flashrom didn't detect the chip until I changed probe_spi_rdid to probe_spi_rdid4 - not sure what's up with that. The Q08 uses probe_spi_rdid log: flashrom unknown on Linux 4.15.0-130-generic (x86_64) flashrom was built with libpci 3.5.2, GCC 7.5.0, little endian Command line (7 args): ./flashrom -VV --programmer vl805 -r test5.img -o test5.log Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Initializing vl805 programmer Found "VIA VL805" (1106:3483, BDF 01:00.0). === This PCI device is UNTESTED. Please report the 'flashrom -p xxxx' output to flashrom@flashrom.org if it works for you. Please add the name of your PCI device to the subject. Thank you for your help! === Requested BAR is of type MEM, 64bit, not prefetchable VL805 firmware version 0x00013600 The following protocols are supported: SPI. Probing for AMIC A25L010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L032, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L05PT, 64 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L05PU, 64 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L10PT, 128 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L10PU, 128 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L16PT, 2048 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L16PU, 2048 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L20PT, 256 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L20PU, 256 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L40PT, 512 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L40PU, 512 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25L512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25L80P, 1024 kB: compare_id: id1 0xa1, id2 0x4013 Probing for AMIC A25LQ032/A25LQ32A, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25LQ16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for AMIC A25LQ64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF021, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF021A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF041A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF081A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF321, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF321A, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DF641(A), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DL081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DL161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25DQ161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25F1024(A), 128 kB: probe_spi_at25f: id1 0x00, id2 0x00 Probing for Atmel AT25F2048, 256 kB: probe_spi_at25f: id1 0x00, id2 0x00 Probing for Atmel AT25F4096, 512 kB: probe_spi_at25f: id1 0x00, id2 0x00 Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0x00, id2 0x00 Probing for Atmel AT25F512A, 64 kB: probe_spi_at25f: id1 0x00, id2 0x00 Probing for Atmel AT25F512B, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25FS010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25FS040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25SF041, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25SF081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25SF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25SF321, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT25SL128A, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT26DF041, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT26DF081A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT26DF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT26DF161A, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT26F004, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45CS1282, 16896 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB011D, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB021D, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB041D, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB081D, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB161D, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB321C, 4224 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB321D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB321E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Atmel AT45DB642D, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Boya Microelectronics BY25Q128AS, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ESI ES25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ESI ES25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ESI ES25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ESMT F25L008A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ESMT F25L32PA, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B05T, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B10T, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B16T, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B20T, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B32T, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B40T, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B64T, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25B80T, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25F80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q32(A/B), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25Q80(A), 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25QH128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25QH16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25QH32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25QH64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon EN25S80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25F005, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25F01, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25F02(A), 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25F04(A), 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25Q04, 512 kB: compare_id: id1 0xa1, id2 0x4013 Found Fudan flash chip "FM25Q04" (512 kB, SPI) on vl805. Chip status register is 0x00. Chip status register: Block Protect Write Disable (BPL) is not set Chip status register: Bit 6 is not set Chip status register: Top/Bottom (TB) is top Chip status register: Block Protect 2 (BP2) is not set Chip status register: Block Protect 1 (BP1) is not set Chip status register: Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set Probing for Fudan FM25Q08, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25Q16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Fudan FM25Q32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25B128B/GD25Q128B, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ128C/GD25LQ128D, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ64(B), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25LQ80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q127C/GD25Q128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q16(B), 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q20(B), 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q256D, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q32(B), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q40(B), 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q64(B), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25Q80(B), 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25T80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25VQ16C, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25VQ21B, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25VQ40C, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25VQ41B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25VQ80C, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for GigaDevice GD25WQ80E, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25LP064, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25LP128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25LP256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25WP032, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25WP064, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25WP128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ISSI IS25WP256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F160S33B8, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F160S33T8, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F320S33B8, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F320S33T8, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F640S33B8, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Intel 25F640S33T8, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX23L12854, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX23L1654, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX23L3254, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX23L6454, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1005(C)/MX25L1006E, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L12805D, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L12835F/MX25L12845E/MX25L12865E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1605, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1605A/MX25L1606E/MX25L1608E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1605D/MX25L1608D/MX25L1673E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1635D, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L1635E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L2005(C)/MX25L2006E, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L25635F/MX25L25645G, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L3205(A), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L3205D/MX25L3208D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L3206E/MX25L3208E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L3235D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L3273E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L4005(A/C)/MX25L4006E, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L512(E)/MX25V512(C), 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L5121E, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L6405, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L6405D, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L6495F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25L8005/MX25L8006E/MX25L8008E/MX25V8005, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25R3235F, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25R6435F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U12835F, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U1635E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U25635F, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U3235E/F, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U51245G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U6435E/F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX25U8032E, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix MX66L51235F/MX25L51245G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P05, 64 kB: Ignoring RES in favour of RDID. Probing for Micron/Numonyx/ST M25P05-A, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P10, 128 kB: Ignoring RES in favour of RDID. Probing for Micron/Numonyx/ST M25P10-A, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P20-old, 256 kB: Ignoring RES in favour of RDID. Probing for Micron/Numonyx/ST M25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. Probing for Micron/Numonyx/ST M25P64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PE10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PE16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PE20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PE40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PE80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PX16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PX32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PX64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M25PX80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M45PE10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M45PE16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M45PE20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M45PE40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST M45PE80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q00A..1G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q00A..3G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q032..1E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q032..3E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q128..1E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q128..3E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q256..1E, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q256..3E, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q512..1G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q512..3G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QL01G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QU01G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QL02G, 262144 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QU02G, 262144 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QU128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QL128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QL256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QU256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QL512, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Micron MT25QU512, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Nantronics N25S10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Nantronics N25S16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Nantronics N25S20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Nantronics N25S40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Nantronics N25S80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LD010(C), 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LD020(C), 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LD040(C), 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LD256C, 32 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LD512(C), 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LQ016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LQ020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LQ032C, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LQ040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LQ080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV010, 128 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for PMC Pm25LV010A, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV016B, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC Pm25LV512(A), 64 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for SST SST25LF020A, 256 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25LF040A, 512 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for SST SST25LF080(A), 1024 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for SST SST25VF010(A), 128 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25VF016B, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF020, 256 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25VF020B, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF032B, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF040, 512 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25VF040B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF040B.REMS, 512 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25VF064C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25VF512(A), 64 kB: compare_id: id1 0xa1, id2 0x12 Probing for SST SST25WF010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF020A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF040B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST25WF512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST26VF016B(A), 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST26VF032B(A), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST SST26VF064B(A), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ST M95M02, 256 kB: probe_spi_st95: id1 0xff, id2 0xffff Probing for Sanyo LE25FU106B, 128 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FU206, 256 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FU206A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Sanyo LE25FU406B, 512 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FU406C/LE25U40CMC, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Sanyo LE25FW106, 128 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FW203A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Sanyo LE25FW403A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Sanyo LE25FW406A, 512 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FW418A, 512 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FW806, 1024 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Sanyo LE25FW808, 1024 kB: probe_spi_res2: id1 0x12, id2 0x12 Probing for Spansion S25FL004A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL008A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL016A, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL032A/P, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL064A/P, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL116K/S25FL216K, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL127S-256kB, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL127S-64kB, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL128P......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL128P......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL128S......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL128S......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL128S_UL Uniform 128 kB Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Spansion S25FL128S_US Uniform 64 kB Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Spansion S25FL129P......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL129P......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL132K, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL164K, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL204K, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL208K, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL256S Large Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Spansion S25FL256S Small Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Spansion S25FL256S......0, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FL512S, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Spansion S25FS128S Large Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Spansion S25FS128S Small Sectors, 16384 kB: Read id bytes: 0xa1 0x40 0x13 0xa1 0x40 0x13. Probing for Winbond W25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q128.V, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q128.V..M, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q128.W, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q128.JW.DTR, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q16.V, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q16.W, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q20.W, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q256.V, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q256JV_M, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q256.W, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q256JW_DTR, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q32.V, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q32.W, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q40.V, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q40BW, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q40EW, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q512JV, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q64.V, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q64.W, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q64JW, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q80.V, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q80BW, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25Q80EW, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond W25X80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QH64C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QU64C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QH128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QU128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QH256C, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for XMC XM25QU256C, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Zetta Device ZD25D20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Zetta Device ZD25D40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Unknown SFDP-capable chip, 0 kB: SFDP revision = 1.0 SFDP number of parameter headers is 1 (NPH = 0). SFDP parameter table header 0/0: ID 0x00, version 1.0 Length 36 B, Parameter Table Pointer 0x000080 Parsing JEDEC flash parameter table... 3-Byte only addressing. Status register is non-volatile and the standard does not allow vendors to tell us whether EWSR/WREN is needed for status register writes - assuming EWSR. Write chunk size is at least 64 B. Flash chip size is 512 kB. Block eraser 0: 128 x 4096 B with opcode 0x20 Tried to add a duplicate block eraser: 128 x 4096 B with opcode 0x20. Block eraser 1: 16 x 32768 B with opcode 0x52 Block eraser 2: 8 x 65536 B with opcode 0xd8 done. Probing for AMIC unknown AMIC SPI chip, 0 kB: compare_id: id1 0xa1, id2 0x4013 Probing for Atmel unknown Atmel SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Eon unknown Eon SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Macronix unknown Macronix SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for PMC unknown PMC SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for SST unknown SST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for ST unknown ST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Sanyo unknown Sanyo SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Generic Variable Size SPI chip, 64 kB: Probing for Generic unknown SPI chip (RDID), 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00 Probing for Generic unknown SPI chip (REMS), 0 kB: compare_id: id1 0xa1, id2 0x12 Found Fudan flash chip "FM25Q04" (512 kB, SPI). This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). === This flash part has status UNTESTED for operations: ERASE WRITE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! Block protection is disabled. Reading flash... done. diff -urw flashrom-vl805/flashchips.c flashrom-vl805-test/flashchips.c --- flashrom-vl805/flashchips.c 2021-02-03 08:47:47.000000000 -0800 +++ flashrom-vl805-test/flashchips.c 2021-02-03 13:39:40.525289552 -0800 @@ -5882,6 +5882,46 @@ { .vendor = "Fudan", + .name = "FM25Q04", + .bustype = BUS_SPI, + .manufacture_id = FUDAN_ID_NOPREFIX, + .model_id = FUDAN_FM25Q04, + .total_size = 512, + .page_size = 256, + /* supports SFDP */ + /* OTP: 1024B total; read 0x48; write 0x42, erase 0x44, read ID 0x4B */ + /* QPI enable 0x38, disable 0xFF */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .tested = TEST_OK_PR, + .probe = probe_spi_rdid4, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 128} }, /* 4 KB Sector erase */ + .block_erase = spi_block_erase_20, + }, { + .eraseblocks = { {32 * 1024, 16} }, /* 32 KB Block erase */ + .block_erase = spi_block_erase_52, + }, { + .eraseblocks = { {64 * 1024, 8} }, /* 64 KB Block erase */ + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {512 * 1024, 1} }, /* Chip erase */ + .block_erase = spi_block_erase_60, + }, { + .eraseblocks = { {512 * 1024, 1} }, /* Chip erase */ + .block_erase = spi_block_erase_c7, + }, + }, + .printlock = spi_prettyprint_status_register_bp2_tb_bpl, /* bit6 selects size of protected blocks; TODO: SR2 */ + .unlock = spi_disable_blockprotect_bp2_srwd, + .write = spi_chip_write_256, + .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {2700, 3600}, + }, + + { + .vendor = "Fudan", .name = "FM25Q08", .bustype = BUS_SPI, .manufacture_id = FUDAN_ID_NOPREFIX, diff -urw flashrom-vl805/flashchips.h flashrom-vl805-test/flashchips.h --- flashrom-vl805/flashchips.h 2021-02-03 08:47:47.000000000 -0800 +++ flashrom-vl805-test/flashchips.h 2021-02-03 12:16:51.186815287 -0800 @@ -339,6 +339,7 @@ #define FUDAN_FM25F01 0x3111 #define FUDAN_FM25F02 0x3112 /* Same as FM25F02A */ #define FUDAN_FM25F04 0x3113 /* Same as FM25F04A */ +#define FUDAN_FM25Q04 0x4013 #define FUDAN_FM25Q08 0x4014 #define FUDAN_FM25Q16 0x4015 #define FUDAN_FM25Q32 0x4016