Hi devs!
I previously successfully used flashrom to read and patch a MX25L6406E BIOS chip in a late 2013 15" MacBook Pro with a Ch341a programmer, but I am now having issues trying to write to a 25Q064A BIOS chip in a mid 2014 15" MacBook Pro.
I installed flashrom with homebrew. I connected the SOP8 clip to the chip, then the adapter, then the CH341A. I read the chip into an image.bin file 3 times and compared MD5 sums to make sure they were the same. I then patched the file with UEFI Patch to unlock undervolting ( https://github.com/IsmaelHG/UndervoltPatchMacBook).
I then ran the write command in terminal. You can see the command and the output pasted below ending in "Segmentation fault: 11".
Should I try erasing the chip first? I'm scared I will brick it if it still can't write afterward. What else can I try?
Terminal output: sudo flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin flashrom 1.4.0 on Darwin 23.6.0 (x86_64) flashrom is free software, get the source code at https://flashrom.org
flashrom was built with LLVM Clang 15.0.0 (clang-1500.3.9.4), little endian Command line (7 args): flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin Initializing ch341a_spi programmer libusb: info [darwin_detach_kernel_driver] no capture entitlements. may not be able to detach the kernel driver for this device Device revision is 3.0.4 The following protocols are supported: SPI. Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: compare_id: id1 0x20, id2 0xba17 Added layout entry 00000000 - 007fffff named complete flash Found Micron/Numonyx/ST flash chip "N25Q064..3E" (8192 kB, SPI) on ch341a_spi. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Block Protect 3 (BP3) 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 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: WP 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. You can also try to follow the instructions here: https://www.flashrom.org/contrib_howtos/how_to_mark_chip_tested.html Thanks for your help! Reading old flash chip contents... read_flash: region (00000000..0x7fffff) is readable, reading range (00000000..0x7fffff). done. Segmentation fault: 11 Thank you!
Faviu
Are you able to share a core dump with us to be able to see where it's crashing? It looks like if you do `ulimit -c unlimited` in your shell before running flashrom, you should get a core dump in `/cores/core.PID` (where PID is the PID of the flashrom process) when it crashes. If you can share that file (or get a backtrace from it yourself using a debugger) we should at least be able to see what it's trying to do when it crashes.
On Sat, Aug 17, 2024 at 3:18 PM Flaviu Ciobanu flaviu.ciobanu@gmail.com wrote:
Hi devs!
I previously successfully used flashrom to read and patch a MX25L6406E BIOS chip in a late 2013 15" MacBook Pro with a Ch341a programmer, but I am now having issues trying to write to a 25Q064A BIOS chip in a mid 2014 15" MacBook Pro.
I installed flashrom with homebrew. I connected the SOP8 clip to the chip, then the adapter, then the CH341A. I read the chip into an image.bin file 3 times and compared MD5 sums to make sure they were the same. I then patched the file with UEFI Patch to unlock undervolting ( https://github.com/IsmaelHG/UndervoltPatchMacBook).
I then ran the write command in terminal. You can see the command and the output pasted below ending in "Segmentation fault: 11".
Should I try erasing the chip first? I'm scared I will brick it if it still can't write afterward. What else can I try?
Terminal output: sudo flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin flashrom 1.4.0 on Darwin 23.6.0 (x86_64) flashrom is free software, get the source code at https://flashrom.org
flashrom was built with LLVM Clang 15.0.0 (clang-1500.3.9.4), little endian Command line (7 args): flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin Initializing ch341a_spi programmer libusb: info [darwin_detach_kernel_driver] no capture entitlements. may not be able to detach the kernel driver for this device Device revision is 3.0.4 The following protocols are supported: SPI. Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: compare_id: id1 0x20, id2 0xba17 Added layout entry 00000000 - 007fffff named complete flash Found Micron/Numonyx/ST flash chip "N25Q064..3E" (8192 kB, SPI) on ch341a_spi. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Block Protect 3 (BP3) 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 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: WP 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. You can also try to follow the instructions here: https://www.flashrom.org/contrib_howtos/how_to_mark_chip_tested.html Thanks for your help! Reading old flash chip contents... read_flash: region (00000000..0x7fffff) is readable, reading range (00000000..0x7fffff). done. Segmentation fault: 11 Thank you!
Faviu _______________________________________________ flashrom mailing list -- flashrom@flashrom.org To unsubscribe send an email to flashrom-leave@flashrom.org
Sorry for the long delay! I ended up trying to erase first, and that also crashed. Unfortunately I had to move on to a method that worked and no longer have another laptop to try the erase/flash again on the chip inside my main laptop. However, I have another logic board that won't power on that may exhibit the same crash, so I will try it on that. The method that worked by the way was using chp341prog:
https://github.com/setarcos/ch341prog
On Sun, Aug 18, 2024 at 4:20 PM Peter Marheine pmarheine@chromium.org wrote:
Are you able to share a core dump with us to be able to see where it's crashing? It looks like if you do `ulimit -c unlimited` in your shell before running flashrom, you should get a core dump in `/cores/core.PID` (where PID is the PID of the flashrom process) when it crashes. If you can share that file (or get a backtrace from it yourself using a debugger) we should at least be able to see what it's trying to do when it crashes.
On Sat, Aug 17, 2024 at 3:18 PM Flaviu Ciobanu flaviu.ciobanu@gmail.com wrote:
Hi devs!
I previously successfully used flashrom to read and patch a MX25L6406E BIOS chip in a late 2013 15" MacBook Pro with a Ch341a programmer, but I am now having issues trying to write to a 25Q064A BIOS chip in a mid 2014 15" MacBook Pro.
I installed flashrom with homebrew. I connected the SOP8 clip to the chip, then the adapter, then the CH341A. I read the chip into an image.bin file 3 times and compared MD5 sums to make sure they were the same. I then patched the file with UEFI Patch to unlock undervolting ( https://github.com/IsmaelHG/UndervoltPatchMacBook).
I then ran the write command in terminal. You can see the command and the output pasted below ending in "Segmentation fault: 11".
Should I try erasing the chip first? I'm scared I will brick it if it still can't write afterward. What else can I try?
Terminal output: sudo flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin flashrom 1.4.0 on Darwin 23.6.0 (x86_64) flashrom is free software, get the source code at https://flashrom.org
flashrom was built with LLVM Clang 15.0.0 (clang-1500.3.9.4), little endian Command line (7 args): flashrom -V -p ch341a_spi -c N25Q064..3E -w /Users/Flyview/Downloads/UEFIPatch_0.28.0_mac/image.bin Initializing ch341a_spi programmer libusb: info [darwin_detach_kernel_driver] no capture entitlements. may not be able to detach the kernel driver for this device Device revision is 3.0.4 The following protocols are supported: SPI. Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: compare_id: id1 0x20, id2 0xba17 Added layout entry 00000000 - 007fffff named complete flash Found Micron/Numonyx/ST flash chip "N25Q064..3E" (8192 kB, SPI) on ch341a_spi. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Block Protect 3 (BP3) 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 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: WP 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. You can also try to follow the instructions here: https://www.flashrom.org/contrib_howtos/how_to_mark_chip_tested.html Thanks for your help! Reading old flash chip contents... read_flash: region (00000000..0x7fffff) is readable, reading range (00000000..0x7fffff). done. Segmentation fault: 11 Thank you!
Faviu _______________________________________________ flashrom mailing list -- flashrom@flashrom.org To unsubscribe send an email to flashrom-leave@flashrom.org