Apple EFI Patcher written in Swift with Flashrom integration. This application was developed out of a need for a simple user-friendly and native macOS based approach to working with Apple EFI roms. The result is an all-in-one application capable of utilizing affordable SPI / eeprom chip reading hardware for reading/dumping from, patching and writing to EFI Rom chips. This application integrates flashrom support in order to communicate with hardware, thus incorporating a lot of the methodologies and current hardware already utilized by technicians.[…]
Steven Ellis of Red Hat has a new article on OpenSource.com on updating firmware and UEFI, with lots of good stuff to read. He mentions his next article will be on the topic of patching SSD firmware, which sounds very interesting. Spoiler alert: I’m exerpting his Recommendations from the end of the post:
[…] In this article, I’ll walk through my recent firmware update on Linux, and I’ll share a few recommendations based on that experience. […]
* More vendors should allow UEFI BIOS updates directly from the BIOS-style interface. UEFI shell command-line isn’t for the casual user.
* If your vendor supplies a bootable image, try to use that first.
* Investigate what supported tools are available, but consider using a live image for patching. I’m somewhat wary of tools that build and install their own kernel modules.
* Assist projects—like flashrom—to avoid these issues in the future.
Wow, the coreboot blog is busy, a lot of GSoC activity to catch up to!
Jneuschaefer is doing RISC-V updates to coreboot….
[GSoC] Better RISC-V support, week #2
[GSoC] Better RISC-V support, week #3
Hatim Kanchwala is working on FlashROM…
[GSoC] Multiple status register support, week #1 and #2
Antonello Dettori is working on SerialICE:
[GSOC] Panic Room, week #2
Darmawan Salihun has posted a new blog about WinFlashROM, a Windows port of FlashROM he did, and is moving it from Google Code to Github:
“This is old news because the code haven’t been updated for years. However, it might still relevant for those who want to port flashrom or other similar utility to present day Windows. I haven’t developed Windows driver anymore since Windows Server 2003. I’m not even sure if WDM-style driver is still in use in Windows. But, I might be returning to develop Windows driver this year. So, yeah, you (and I) never know.”
(I haven’t looked into this, but I wonder if the CHIPSEC HAL for Windows (and Linux) might be useful in such a port. At least the kernel driver is maintained by Intel….)
After a year since the last release, FlashROM 0.9.9 has been released. Excerpt from announcement follows:
New major user-visible features:
* Allow to link flashrom statically (with make CONFIG_STATIC=yes)
* Ease debugging of build problems with libraries
– Output way more debug information to build_details.txt
– Provide list of set make configuration variables that make builds fail
– Allow to easily disable groups of programmers depending on a library (make CONFIG_ENABLE_LIBUSB0_PROGRAMMERS=no CONFIG_ENABLE_LIBUSB1_PROGRAMMERS=no CONFIG_ENABLE_LIBPCI_PROGRAMMERS=no)
* Ignore 0x00 as a flash chip manufacturer ID in the generic match to avoid ambiguous messages
* Various improvements for serprog-based programmers
* Support arbitrary UART baud rates on Windows
* ESI ES25P40, ES25P80 and ES25P16
* GigaDevice GD25VQ41B and GD25Q128C
* More GigaDevice GD25LQ chips (GD25LQ40, GD25LQ80, GD25LQ16, GD25LQ64(B), GD25LQ128)
* PMC Pm25LQ020, Pm25LQ040, Pm25LQ080, Pm25LQ016, Pm25LQ032C
* Sanyo LE25FU406C/LE25U40CMC
* SST SST25WF020A, SST25WF040B, SST25WF080B
* Winbond W29C512A/W29EE512
Infrastructural improvements and fixes:
* Add support for libftdi1 (previous libftdi support still in place for backward compatibility but will eventually be removed)
* Add infrastructure for libusb1 and use it for new programmers (existing code will be migrated from libusb0 continuously in the future)
* Many cross-platform and cross-architecture improvements:
– Fix compilation on OSX and Solaris-based systems
– Add support for musl libc
– Use nanosleep() instead of usleep() where available (enables building with uclibc)
– Support compilation on Android (bionic libc)
* Rigorously check integrity of I/O stream data (e.g. to notice full filesystems when writing flash data to a file)