[flashrom] Regression in r1833

Roman Lebedev lebedev.ri at gmail.com
Mon Dec 1 21:55:07 CET 2014


Hello.

I had a segfault with current version of flashrom, and with some help
from stefanct at IRC i was able to bisect it down to r1833.

I attach backtraces.

Roman.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20141202/f3c5dd20/attachment.html>
-------------- next part --------------
(gdb) r --programmer internal -r 1002.bin
Starting program: /usr/local/sbin/flashrom --programmer internal -r 1002.bin
flashrom v0.9.7-r1833 on Linux 3.16.0-4-686-pae (i686)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Active config mode, unknown reg 0x20 ID: 00.
Please send the output of "flashrom -V -p internal" to
flashrom at flashrom.org with W836xx: your board name: flashrom -V
as the subject to help us finish support for your Super I/O. Thanks.
Found chipset "Intel 6300ESB". Enabling flash write... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) at physical address 0xfff80000.
===
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 part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!

Program received signal SIGSEGV, Segmentation fault.
0x08066afe in mmio_readb (addr=0x6f79e004) at hwaccess.c:135
135             return *(volatile uint8_t *) addr;
(gdb) thread apply all bt full

Thread 1 (process 4321):
#0  0x08066afe in mmio_readb (addr=0x6f79e004) at hwaccess.c:135
No locals.
#1  0x08057585 in internal_chip_readb (flash=0xbffffc40, addr=1870258180) at internal.c:389
No locals.
#2  0x08067ea2 in chip_readb (flash=0xbffffc40, addr=1870258180) at flashrom.c:509
No locals.
#3  0x0804c574 in unlock_regspace2_block (flash=0xbffffc40, off=3082612738) at jedec.c:658
        wrprotect = <optimized out>
        old = <optimized out>
#4  0x0804be35 in regspace2_walk_unlockblocks (flash=flash at entry=0xbffffc40, block=block at entry=0xbffffb70, func=func at entry=0x804c558 <unlock_regspace2_block>) at jedec.c:527
        j = 0
        off = 3082612738
#5  0x0804beee in unlock_regspace2_uniform (flash=flash at entry=0xbffffc40, block_size=block_size at entry=65536) at jedec.c:667
        elems = <optimized out>
        blocks = {{size = 65536, count = 8}, {size = 0, count = 0}}
#6  0x0804cdfc in unlock_regspace2_uniform_64k (flash=0xbffffc40) at jedec.c:672
No locals.
#7  0x080698cb in doit (flash=0xbffffc40, force=0, filename=0x80c0008 "1002.bin", read_it=1, write_it=0, erase_it=0, verify_it=0) at flashrom.c:1950
        oldcontents = <optimized out>
        newcontents = <optimized out>
        ret = 0
        size = 524288
#8  0x0804a68c in main (argc=5, argv=0xbffffd34) at cli_classic.c:525
        size = <optimized out>
        chip = 0x0
        flashes = {{chip = 0x80c0180, virtual_memory = 3083137024, virtual_registers = 3082612736, mst = 0x80bff00 <registered_masters>}, {chip = 0x0, virtual_memory = 0, virtual_registers = 0, mst = 0x80bff00 <registered_masters>}, {chip = 0x0, virtual_memory = 0,
            virtual_registers = 0, mst = 0x0}}
        fill_flash = 0xbffffc40
        name = <optimized out>
        namelen = <optimized out>
        opt = <optimized out>
        i = <optimized out>
        j = <optimized out>
        startchip = <optimized out>
        chipcount = 1
        option_index = 12
        force = <optimized out>
        read_it = <optimized out>
        write_it = <optimized out>
        erase_it = <optimized out>
        verify_it = <optimized out>
        dont_verify_it = <optimized out>
        list_supported = <optimized out>
        operation_specified = <optimized out>
        prog = <optimized out>
        ret = 0
        optstring = "r:Rw:v:nVEfc:l:i:p:Lzho:"
        long_options = {{name = 0x80a289b "read", has_arg = 1, flag = 0x0, val = 114}, {name = 0x809fc4a "write", has_arg = 1, flag = 0x0, val = 119}, {name = 0x806abf2 "erase", has_arg = 0, flag = 0x0, val = 69}, {name = 0x806abfa "verify", has_arg = 1, flag = 0x0,
            val = 118}, {name = 0x806abf8 "noverify", has_arg = 0, flag = 0x0, val = 110}, {name = 0x80949f5 "chip", has_arg = 1, flag = 0x0, val = 99}, {name = 0x806ac01 "verbose", has_arg = 0, flag = 0x0, val = 86}, {name = 0x809eebf "force", has_arg = 0, flag = 0x0,
            val = 102}, {name = 0x806abc8 "layout", has_arg = 1, flag = 0x0, val = 108}, {name = 0x806abc2 "image", has_arg = 1, flag = 0x0, val = 105}, {name = 0x806ac09 "list-supported", has_arg = 0, flag = 0x0, val = 76}, {name = 0x806ac18 "list-supported-wiki",
            has_arg = 0, flag = 0x0, val = 122}, {name = 0x806ac2c "programmer", has_arg = 1, flag = 0x0, val = 112}, {name = 0x806ac37 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x80a1a02 "version", has_arg = 0, flag = 0x0, val = 82}, {
            name = 0x806ac3c "output", has_arg = 1, flag = 0x0, val = 111}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        filename = <optimized out>
        layoutfile = <optimized out>
        logfile = <optimized out>
        tempstr = <optimized out>
        pparam = <optimized out>
(gdb)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: r1832-good,txt
Type: application/octet-stream
Size: 728 bytes
Desc: not available
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20141202/f3c5dd20/attachment.obj>
-------------- next part --------------
Program received signal SIGSEGV, Segmentation fault.
0x080674aa in mmio_readb (addr=0x6f79e004) at hwaccess.c:135
135             return *(volatile uint8_t *) addr;
(gdb) thread apply all bt full

Thread 1 (process 2109):
#0  0x080674aa in mmio_readb (addr=0x6f79e004) at hwaccess.c:135
No locals.
#1  0x08057ca4 in internal_chip_readb (flash=0xbffffbe0, addr=1870258180) at internal.c:382
No locals.
#2  0x08068908 in chip_readb (flash=0xbffffbe0, addr=1870258180) at flashrom.c:513
No locals.
#3  0x0804ca82 in unlock_regspace2_block (flash=0xbffffbe0, off=3082612738) at jedec.c:710
        wrprotect = <optimized out>
        old = <optimized out>
#4  0x0804c1a1 in regspace2_walk_unlockblocks (flash=flash at entry=0xbffffbe0, block=block at entry=0xbffffb10, func=func at entry=0x804ca66 <unlock_regspace2_block>) at jedec.c:579
        j = 0
        off = 3082612738
#5  0x0804c25a in unlock_regspace2_uniform (flash=flash at entry=0xbffffbe0, block_size=block_size at entry=65536) at jedec.c:719
        elems = <optimized out>
        blocks = {{size = 65536, count = 8}, {size = 0, count = 0}}
#6  0x0804d564 in unlock_regspace2_uniform_64k (flash=0xbffffbe0) at jedec.c:724
No locals.
#7  0x0806a1df in doit (flash=0xbffffbe0, force=0, filename=0x80c3008 "1002.bin", read_it=1, write_it=0, erase_it=0, verify_it=0) at flashrom.c:1925
        oldcontents = <optimized out>
        newcontents = <optimized out>
        ret = 0
        size = 524288
#8  0x0804a801 in main (argc=5, argv=0xbffffd34) at cli_classic.c:545
        chip = 0x0
        flashes = {{chip = 0x80c3180, physical_memory = 4294443008, virtual_memory = 3083137024, physical_registers = 4290248704, virtual_registers = 3082612736, mst = 0x80c2e00 <registered_masters>}, {chip = 0x0, physical_memory = 0, virtual_memory = 4294967295,
            physical_registers = 0, virtual_registers = 4294967295, mst = 0x80c2e00 <registered_masters>}, {chip = 0x0, physical_memory = 0, virtual_memory = 0, physical_registers = 0, virtual_registers = 0, mst = 0x0}, {chip = 0x0, physical_memory = 0,
            virtual_memory = 0, physical_registers = 0, virtual_registers = 0, mst = 0x0}, {chip = 0x0, physical_memory = 0, virtual_memory = 0, physical_registers = 0, virtual_registers = 0, mst = 0x0}, {chip = 0x0, physical_memory = 0, virtual_memory = 0,
            physical_registers = 0, virtual_registers = 0, mst = 0x0}}
        fill_flash = 0xbffffbe0
        name = <optimized out>
        namelen = <optimized out>
        opt = <optimized out>
        i = <optimized out>
        j = <optimized out>
        startchip = <optimized out>
        chipcount = 1
        option_index = 12
        force = <optimized out>
        read_it = <optimized out>
        write_it = <optimized out>
        erase_it = <optimized out>
        verify_it = <optimized out>
        dont_verify_it = <optimized out>
        list_supported = <optimized out>
        operation_specified = <optimized out>
        prog = <optimized out>
        ret = 0
        optstring = "r:Rw:v:nVEfc:l:i:p:Lzho:"
        long_options = {{name = 0x80a685b "read", has_arg = 1, flag = 0x0, val = 114}, {name = 0x80a3be3 "write", has_arg = 1, flag = 0x0, val = 119}, {name = 0x806b532 "erase", has_arg = 0, flag = 0x0, val = 69}, {name = 0x806b53a "verify", has_arg = 1, flag = 0x0,
            val = 118}, {name = 0x806b538 "noverify", has_arg = 0, flag = 0x0, val = 110}, {name = 0x8098673 "chip", has_arg = 1, flag = 0x0, val = 99}, {name = 0x806b541 "verbose", has_arg = 0, flag = 0x0, val = 86}, {name = 0x80a2e3f "force", has_arg = 0, flag = 0x0,
            val = 102}, {name = 0x806b508 "layout", has_arg = 1, flag = 0x0, val = 108}, {name = 0x806b502 "image", has_arg = 1, flag = 0x0, val = 105}, {name = 0x806b549 "list-supported", has_arg = 0, flag = 0x0, val = 76}, {name = 0x806b558 "list-supported-wiki",
            has_arg = 0, flag = 0x0, val = 122}, {name = 0x806b56c "programmer", has_arg = 1, flag = 0x0, val = 112}, {name = 0x806b577 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x80a59f8 "version", has_arg = 0, flag = 0x0, val = 82}, {
            name = 0x806b57c "output", has_arg = 1, flag = 0x0, val = 111}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        filename = <optimized out>
        layoutfile = <optimized out>
        logfile = <optimized out>
        tempstr = <optimized out>
        pparam = <optimized out>
        limitexceeded = <optimized out>
(gdb)


More information about the flashrom mailing list