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.
(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 [email protected] 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 [email protected] 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@entry=0xbffffc40, block=block@entry=0xbffffb70, func=func@entry=0x804c558 <unlock_regspace2_block>) at jedec.c:527 j = 0 off = 3082612738 #5 0x0804beee in unlock_regspace2_uniform (flash=flash@entry=0xbffffc40, block_size=block_size@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)
r1832-good,txt
Description: Binary data
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@entry=0xbffffbe0,
block=block@entry=0xbffffb10, func=func@entry=0x804ca66
<unlock_regspace2_block>) at jedec.c:579
j = 0
off = 3082612738
#5 0x0804c25a in unlock_regspace2_uniform (flash=flash@entry=0xbffffbe0,
block_size=block_size@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)
_______________________________________________ flashrom mailing list [email protected] http://www.flashrom.org/mailman/listinfo/flashrom
