[flashrom] Abit KN9 board enable method, lspci -nnv

Georg Sauthoff mail at georg.so
Sat Feb 21 20:31:37 CET 2015


Hi,

as discussed on IRC (#flashrom) today, current flashrom trunk fails
writing the flash chip on an Abit KN9 Ultra/SLI board. Reading works, though.

The failure message is:

    flashrom/trunk/flashrom --programmer internal -c Pm49FL004 -w M520A_23.BIN 
    flashrom v0.9.8-rc1-r1885 on Linux 3.2.0-4-amd64 (x86_64)
    flashrom is free software, get the source code at http://www.flashrom.org

    Calibrating delay loop... OK.
    Found chipset "NVIDIA MCP55".
    Enabling flash write... OK.
    Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
    ===
    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 at 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!
    Reading old flash chip contents... done.
    Erasing and writing flash chip... FAILED at 0x00000000! Expected=0xff, Found=0x49, failed byte count from 0x00000000-0x00000fff: 0x730
    ERASE FAILED!
    Reading current flash chip contents... done. Looking for another erase function.
    FAILED at 0x00000000! Expected=0xff, Found=0x49, failed byte count from 0x00000000-0x0000ffff: 0x730
    ERASE FAILED!
    Reading current flash chip contents... done. Looking for another erase function.
    FAILED at 0x00000000! Expected=0xff, Found=0x49, failed byte count from 0x00000000-0x0007ffff: 0x57f07
    ERASE FAILED!
    Looking for another erase function.
    No usable erase functions left.
    FAILED!
    Uh oh. Erase/write failed. Checking if anything has changed.
    Reading current flash chip contents... done.
    Good, writing to the flash chip apparently didn't do anything.
    This means we have to add special support for your board, programmer or flash
    chip. Please report this on IRC at chat.freenode.net (channel #flashrom) or
    mail flashrom at flashrom.org, thanks!


It fails because the chip is write protected, by default.

It turns out that the board enable method for the Abit KN9 Ultra is the
same as for the Abit KN8 Ultra - which is already included in flashrom
(nvidia_mcp_gpio2_lower()).

That means that I could successfully flash that chip multiple times with
flashrom using that board enable code.

For illustration, I include the ghetto-style patch I've used:

    @@ -2313,7 +2313,7 @@
            {0x8086, 0x24d3, 0x147b, 0x1014,  0x8086, 0x2578, 0x147b, 0x1014, NULL,         NULL, NULL,           P3, "abit",        "IC7",                   0,   NT, intel_ich_gpio23_raise},
            {0x8086, 0x2930, 0x147b, 0x1084,  0x11ab, 0x4364, 0x147b, 0x1084, NULL,         NULL, NULL,           P3, "abit",        "IP35",                  0,   OK, intel_ich_gpio16_raise},
            {0x8086, 0x2930, 0x147b, 0x1083,  0x10ec, 0x8167, 0x147b, 0x1083, NULL,         NULL, NULL,           P3, "abit",        "IP35 Pro",              0,   OK, intel_ich_gpio16_raise},
    -       {0x10de, 0x0050, 0x147b, 0x1c1a,  0x10de, 0x0052, 0x147b, 0x1c1a, NULL,         NULL, NULL,           P3, "abit",        "KN8 Ultra",             0,   NT, nvidia_mcp_gpio2_lower},
    +       {0x10de, 0x0050, 0x147b, 0x1c1a,  0x10de, 0x0052, 0x147b, 0x1c1a, NULL,         NULL, NULL,           P3, "abit",        "KN8 Ultra",             0,   OK, nvidia_mcp_gpio2_lower},
            {0x10de, 0x01e0, 0x147b, 0x1c00,  0x10de, 0x0060, 0x147B, 0x1c00, NULL,         NULL, NULL,           P3, "abit",        "NF7-S",                 0,   OK, nvidia_mcp_gpio8_raise},
            {0x10de, 0x02f0, 0x147b, 0x1c26,  0x10de, 0x0260, 0x147b, 0x1c26, NULL,         NULL, NULL,           P3, "abit",        "NF-M2 nView",           0,   OK, nvidia_mcp_gpio4_lower},
            {0x1106, 0x0691,      0,      0,  0x1106, 0x3057,      0,      0, "(VA6)$",     NULL, NULL,           P3, "abit",        "VA6",                   0,   OK, via_apollo_gpo4_lower},
    @@ -2578,6 +2578,8 @@
      */
     const static struct board_match *board_match_pci_ids(enum board_match_phase phase)
     {
    +  return board_matches + 7;
    +
            const struct board_match *board = board_matches;
     
            for (; board->vendor_name; board++) {


Of course, for inclusion, proper PCI ids should be configured for the Abit KN9
Ultra board via that table.

For that, the `lspci -nnv` output is attached.

Best regards
Georg

-- 
'There have been no suggestions that Jay-Z's fellow rapper 50
Cent could be considering a move into a different currency.' (
Rapper Jay-Z dissing the dollar.
http://news.bbc.co.uk/2/hi/7097736.stm )
-------------- next part --------------
00:00.0 RAM memory [0500]: NVIDIA Corporation MCP55 Memory Controller [10de:0369] (rev a1)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0
	Capabilities: [44] HyperTransport: Slave or Primary Interface
	Capabilities: [e0] #00 [fee0]

00:01.0 ISA bridge [0601]: NVIDIA Corporation MCP55 LPC Bridge [10de:0360] (rev a2)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0

00:01.1 SMBus [0c05]: NVIDIA Corporation MCP55 SMBus [10de:0368] (rev a2)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: 66MHz, fast devsel, IRQ 10
	I/O ports at fc00 [size=64]
	I/O ports at 1c00 [size=64]
	I/O ports at 1c40 [size=64]
	Capabilities: [44] Power Management version 2
	Kernel driver in use: nForce2_smbus

00:02.0 USB controller [0c03]: NVIDIA Corporation MCP55 USB Controller [10de:036c] (rev a1) (prog-if 10 [OHCI])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
	Memory at fe02f000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2
	Kernel driver in use: ohci_hcd

00:02.1 USB controller [0c03]: NVIDIA Corporation MCP55 USB Controller [10de:036d] (rev a2) (prog-if 20 [EHCI])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
	Memory at fe02e000 (32-bit, non-prefetchable) [size=256]
	Capabilities: [44] Debug port: BAR=1 offset=0098
	Capabilities: [80] Power Management version 2
	Kernel driver in use: ehci_hcd

00:04.0 IDE interface [0101]: NVIDIA Corporation MCP55 IDE [10de:036e] (rev a1) (prog-if 8a [Master SecP PriP])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0
	[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
	[virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
	[virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
	[virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
	I/O ports at f000 [size=16]
	Capabilities: [44] Power Management version 2
	Kernel driver in use: pata_amd

00:05.0 IDE interface [0101]: NVIDIA Corporation MCP55 SATA Controller [10de:037f] (rev a2) (prog-if 85 [Master SecO PriO])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
	I/O ports at 09f0 [size=8]
	I/O ports at 0bf0 [size=4]
	I/O ports at 0970 [size=8]
	I/O ports at 0b70 [size=4]
	I/O ports at dc00 [size=16]
	Memory at fe02d000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2
	Capabilities: [b0] MSI: Enable- Count=1/4 Maskable- 64bit+
	Capabilities: [cc] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: sata_nv

00:05.1 IDE interface [0101]: NVIDIA Corporation MCP55 SATA Controller [10de:037f] (rev a2) (prog-if 85 [Master SecO PriO])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
	I/O ports at 09e0 [size=8]
	I/O ports at 0be0 [size=4]
	I/O ports at 0960 [size=8]
	I/O ports at 0b60 [size=4]
	I/O ports at c800 [size=16]
	Memory at fe02c000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2
	Capabilities: [b0] MSI: Enable- Count=1/4 Maskable- 64bit+
	Capabilities: [cc] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: sata_nv

00:05.2 IDE interface [0101]: NVIDIA Corporation MCP55 SATA Controller [10de:037f] (rev a2) (prog-if 85 [Master SecO PriO])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 21
	I/O ports at c400 [size=8]
	I/O ports at c000 [size=4]
	I/O ports at bc00 [size=8]
	I/O ports at b800 [size=4]
	I/O ports at b400 [size=16]
	Memory at fe02b000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [44] Power Management version 2
	Capabilities: [b0] MSI: Enable- Count=1/4 Maskable- 64bit+
	Capabilities: [cc] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: sata_nv

00:06.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI bridge [10de:0370] (rev a2) (prog-if 01 [Subtractive decode])
	Flags: bus master, 66MHz, fast devsel, latency 0
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=32
	I/O behind bridge: 00008000-00009fff
	Memory behind bridge: fdd00000-fddfffff
	Prefetchable memory behind bridge: fde00000-fdefffff
	Capabilities: [b8] Subsystem: NVIDIA Corporation Device [10de:cb84]
	Capabilities: [8c] HyperTransport: MSI Mapping Enable+ Fixed-

00:06.1 Audio device [0403]: NVIDIA Corporation MCP55 High Definition Audio [10de:0371] (rev a2)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 20
	Memory at fe020000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: [44] Power Management version 2
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
	Capabilities: [6c] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: snd_hda_intel

00:08.0 Bridge [0680]: NVIDIA Corporation MCP55 Ethernet [10de:0373] (rev a2)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 45
	Memory at fe02a000 (32-bit, non-prefetchable) [size=4K]
	I/O ports at b000 [size=8]
	Memory at fe029000 (32-bit, non-prefetchable) [size=256]
	Memory at fe028000 (32-bit, non-prefetchable) [size=16]
	Capabilities: [44] Power Management version 2
	Capabilities: [70] MSI-X: Enable- Count=8 Masked-
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
	Capabilities: [6c] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: forcedeth

00:09.0 Bridge [0680]: NVIDIA Corporation MCP55 Ethernet [10de:0373] (rev a2)
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 46
	Memory at fe027000 (32-bit, non-prefetchable) [size=4K]
	I/O ports at ac00 [size=8]
	Memory at fe026000 (32-bit, non-prefetchable) [size=256]
	Memory at fe025000 (32-bit, non-prefetchable) [size=16]
	Capabilities: [44] Power Management version 2
	Capabilities: [70] MSI-X: Enable- Count=8 Masked-
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+
	Capabilities: [6c] HyperTransport: MSI Mapping Enable+ Fixed+
	Kernel driver in use: forcedeth

00:0a.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI Express bridge [10de:0376] (rev a2) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	I/O behind bridge: 00007000-00007fff
	Memory behind bridge: fdc00000-fdcfffff
	Prefetchable memory behind bridge: 00000000fdb00000-00000000fdbfffff
	Capabilities: [40] Subsystem: NVIDIA Corporation Device [10de:0000]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
	Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
	Capabilities: [80] Express Root Port (Slot+), MSI 00
	Capabilities: [100] Virtual Channel
	Kernel driver in use: pcieport

00:0c.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI Express bridge [10de:0374] (rev a2) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 00006000-00006fff
	Memory behind bridge: fda00000-fdafffff
	Prefetchable memory behind bridge: 00000000fd900000-00000000fd9fffff
	Capabilities: [40] Subsystem: NVIDIA Corporation Device [10de:0000]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
	Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
	Capabilities: [80] Express Root Port (Slot+), MSI 00
	Capabilities: [100] Virtual Channel
	Kernel driver in use: pcieport

00:0d.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI Express bridge [10de:0378] (rev a2) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
	I/O behind bridge: 00005000-00005fff
	Memory behind bridge: fd800000-fd8fffff
	Prefetchable memory behind bridge: 00000000fd700000-00000000fd7fffff
	Capabilities: [40] Subsystem: NVIDIA Corporation Device [10de:0000]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
	Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
	Capabilities: [80] Express Root Port (Slot+), MSI 00
	Capabilities: [100] Virtual Channel
	Kernel driver in use: pcieport

00:0e.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI Express bridge [10de:0375] (rev a2) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
	I/O behind bridge: 00004000-00004fff
	Memory behind bridge: fd600000-fd6fffff
	Prefetchable memory behind bridge: 00000000fd500000-00000000fd5fffff
	Capabilities: [40] Subsystem: NVIDIA Corporation Device [10de:0000]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
	Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
	Capabilities: [80] Express Root Port (Slot+), MSI 00
	Capabilities: [100] Virtual Channel
	Kernel driver in use: pcieport

00:0f.0 PCI bridge [0604]: NVIDIA Corporation MCP55 PCI Express bridge [10de:0377] (rev a2) (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0
	Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
	I/O behind bridge: 00003000-00003fff
	Memory behind bridge: fa000000-fcffffff
	Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
	Capabilities: [40] Subsystem: NVIDIA Corporation Device [10de:0000]
	Capabilities: [48] Power Management version 2
	Capabilities: [50] MSI: Enable+ Count=1/2 Maskable- 64bit+
	Capabilities: [60] HyperTransport: MSI Mapping Enable+ Fixed-
	Capabilities: [80] Express Root Port (Slot+), MSI 00
	Capabilities: [100] Virtual Channel
	Kernel driver in use: pcieport

00:18.0 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
	Flags: fast devsel
	Capabilities: [80] HyperTransport: Host or Secondary Interface

00:18.1 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
	Flags: fast devsel

00:18.2 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
	Flags: fast devsel

00:18.3 Host bridge [0600]: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
	Flags: fast devsel
	Capabilities: [f0] Secure device <?>
	Kernel driver in use: k8temp

01:08.0 FireWire (IEEE 1394) [0c00]: Texas Instruments TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] [104c:8023] (prog-if 10 [OHCI])
	Subsystem: ABIT Computer Corp. Device [147b:1c20]
	Flags: bus master, medium devsel, latency 64, IRQ 16
	Memory at fddff000 (32-bit, non-prefetchable) [size=2K]
	Memory at fddf8000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: [44] Power Management version 2
	Kernel driver in use: firewire_ohci

01:09.0 Mass storage controller [0180]: Promise Technology, Inc. 20269 [105a:4d69] (rev 02) (prog-if 85)
	Subsystem: Promise Technology, Inc. Ultra133TX2 [105a:4d68]
	Flags: bus master, 66MHz, slow devsel, latency 64, IRQ 17
	I/O ports at 9c00 [size=8]
	I/O ports at 9800 [size=4]
	I/O ports at 9400 [size=8]
	I/O ports at 9000 [size=4]
	I/O ports at 8c00 [size=16]
	Memory at fddf4000 (32-bit, non-prefetchable) [size=16K]
	[virtual] Expansion ROM at fde00000 [disabled] [size=16K]
	Capabilities: [60] Power Management version 1
	Kernel driver in use: pata_pdc2027x

05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03) (prog-if 30 [XHCI])
	Flags: fast devsel, IRQ 16
	Memory at fd6fe000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
	Capabilities: [90] MSI-X: Enable- Count=8 Masked-
	Capabilities: [a0] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [150] Latency Tolerance Reporting

06:00.0 VGA compatible controller [0300]: NVIDIA Corporation NV44 [GeForce 6200 LE] [10de:0163] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: ASUSTeK Computer Inc. Device [1043:820b]
	Flags: bus master, fast devsel, latency 0, IRQ 16
	Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
	Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Memory at fb000000 (64-bit, non-prefetchable) [size=16M]
	[virtual] Expansion ROM at fc000000 [disabled] [size=128K]
	Capabilities: [60] Power Management version 2
	Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [78] Express Endpoint, MSI 00
	Capabilities: [100] Virtual Channel
	Capabilities: [128] Power Budgeting <?>
	Kernel driver in use: nouveau



More information about the flashrom mailing list