1=============== 2v1.3 (Feb 2023) 3=============== 4 5It has been almost three years since our last release. All this time we have been working 6on enhancing the flashrom code base. This new release comes with a lot of new features, programmers, 7improvements, and bug fixes. A detailed but not exhaustive change log is presented below. 8 9New major user-visible features 10=============================== 11 12* Support for the Linux I2C subsystem 13* Option to read/write only region to/from ROM is renamed to :code:`--include` (:code:`--image` option 14 is deprecated and exist only for back compatibility). An optional sub-parameter 15 (:code:`--include <region>[:<file>]`) to allow building the image to be written from multiple files is added 16* Support different SPI modes (Dual IO, Quad IO, Normal, Fast Read) for AMD’s chipsets (>= Bolton) 17* Support for Write Protection configuration (:code:`--wp-disable`, :code:`--wp-enable`, :code:`--wp-list`, 18 :code:`--wp-status`, :code:`--wp-range`, :code:`--wp-region`) 19* Add SPI SR2/SR3 read/write support 20* The Intel chipset detection has been improved 21* Bus Pirate SPI 22 23 * New parameter to control the external Vcc state (:code:`psus=<on|off>`) 24 25* Dediprog 26 27 * Add 4BA support on SF600 protocol version 3 28 29* Dummyflasher 30 31 * New parameter to allows emulating a bus/chip frequency (:code:`freq`) 32 * New parameter to emulate flash erase with either 0x00 or 0xff (:code:`erase_to_zero`) 33 * Add emulation for S25FL128L chip 34 * SR2, SR3 and WP is emulated for W25Q128FV 35 * Emulate variable-size SPI flash chip (4-byte address format is supported) 36 37* FT2232 SPI dongles 38 39 * New parameter to search FTDI by description, i.e. product string (:code:`description`) 40 41* SEGGER J-Link and compatible devices 42 43 * New parameter to active the 5V power supply during a flash operation (:code:`power`) 44 45* Drop "Promontory" architecture (AMD) support 46* End Of Life (EOL) for ITE IT85* specific code 47* README and man page updated with additional information 48 49The greatest increase in the speed of operations can be seen on the following programmers: 50SPI on Intel NICs, FT2232 SPI dongles 51 52Libflashrom 53=========== 54 55* Add Write Protect functions to the API 56* Add rust Foreign Function Interface bindings for the libflashrom API 57* Move documentation from source file to header 58* Drop :code:`flashrom_system_info()` 59* Drop :code:`flashrom_supported_programmers()` 60* Add :code:`flashrom_layout_get_region_range()` 61* Declaration change from :code:`flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, off_t, size_t)` 62 to :code:`flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, size_t, size_t)` 63* Allow NULL-pointer argument in :code:`flashrom_flash_release()` 64 65Infrastructure expansion 66======================== 67 68* Add blackbox test uber-script 69* Add E2E tester for a specific chip/chipset combo 70* Build script for Jenkins was upgraded and move to repository - :code:`test_build.sh` 71* Add a set of Dockerfiles for build testing - :code:`util/manibuilder` 72* Add a Nix shell file which is able to compile flashrom - :code:`util/shell.nix` 73* Add CMocka unit-test infrastructure into the meson build system (test for drivers available only 74 if its driver is built). The following tests are included: 75 76 * Core logic tests 77 * Basic lifecycle for :code:`dediprog`, :code:`nicrealtek`, :code:`raiden_debug_spi`, :code:`parade_lspcon`, 78 :code:`mediatek_i2c_spi`, :code:`realtek_mst_i2c_spi` 79 * Basic lifecycle + chip probe for :code:`dummyflasher`, :code:`linux_mtd`, :code:`linux_spi` 80 * Layout tests (overlapping, sanity checks, invalid range/address) 81 * Erasing/reading/writing/verifying chip tests 82 * Write Protect tests 83 * And others! 84 85* Introduce :code:`MAINTAINERS` file 86* Rename :code:`z60_flashrom.rules` to :code:`flashrom_udev.rules` 87* Introduce linter for git sign-off-by line 88* Move all header files to the new :code:`include` directory. 89 90Meson 91----- 92 93The minimum version has been increased. Requires at least :code:`0.53.0`. 94 95* Added build instructions - :code:`Documentation/building.md` 96* Allow libflashrom to be built as a static or shared library. 97* Add new options: :code:`print_wiki`, :code:`ich_descriptors_tool`, :code:`classic_cli` 98* Rename :code:`print_wiki` to :code:`classic_cli_print_wiki` option 99* Install the man file 100* Fix compilation under uClibc-ng 101* Add missing config option for J-Link SPI 102* Treat warnings as errors and use the same warning options as in Makefile. 103 104Makefile 105-------- 106 107* Add support for Elbrus (e2k) architecture 108* Make pkg-config mandatory to find :code:`libftdi1`, :code:`libjaylink`, 109 :code:`libusb1`, :code:`libpci` 110 (you still can override detection and set cflags and ldflags manually) 111* Merge :code:`compiler`, :code:`hwlibs`, :code:`features` targets into :code:`config` target 112* Drop :code:`distclean` target 113* Drop STANDALONE mode 114* Summarize systems with the same CPPFLAGS and LDFLAGS 115* Only enable I2C programmers on Linux (linux-specific code) 116* Revise C compiler check, utsname and clock_gettime test, detection of Linux specific headers 117* Since the NI-845x is a Windows only proprietary library, disable it by default. 118* Enable the internal programmer on x86 or linux. 119* Fix building on AArch64 NixOS 120 121Various broken and missing dependencies have been fixed for these two build systems. 122 123New programmers 124=============== 125 126* Chrome EC based debug tools - SuzyQable, Servo V4, C2D2 & uServo 127* Realtek RTD2142 MST 128* Parade lspcon USB-C to HDMI protocol translator 129* DirtyJTAG (a USB-JTAG firmware for STM32 MCUs) 130* MediaTek LCD controller 131* Programmers based on FT4233H FTDI 132* Kristech KT-LINK 133* Variants of STLINK-V3: STLINK-V3E, STLINK-V3S, STLINK-V3 With dual VCP, STLINK-V3 Without MSD 134* Intel Gemini Lake PCH 135* Intel Meteor Lake PCH 136* Intel Elkhart Lake PCH 137* Intel Emmitsburg PCH 138* Intel Comet Lake-U/400-series PCH 139* Intel Tiger Point/500-series PCH 140* Intel Jasper Lake PCH 141* Intel Alder Lake/600-series PCH 142* Intel PCH7 Desktop/Mobile/SFF Sample 143* More Intel PCHs variants (Apollo Lake, Cannon Point, Union Point, Lewisburg) 144 145At some point, flashrom supported ENE LPC interface keyboard controller and Microchip MEC1308 embedded controller. 146But they were dropped before the release because the code was no longer maintained by anyone. If you're interested, 147take a look at git history. 148 149New Boards 150========== 151 152* ASUS P3B-F 153* Jetway P4MDPT 154* ASUS P5W DH Deluxe 155 156New chips 157========= 158 159* AT25SF128A 160* B.25D16A 161* BY25Q128AS 162* FM25F01 163* FM25F02(A) 164* FM25F04(A) 165* FM25F005 166* FM25Q08 167* FM25Q16 168* FM25Q32 169* F29C51001B 170* GD25LQ128E 171* GD25Q256E 172* GD25WQ80E 173* MX25L12833F 174* MX25L12873F 175* MX25L3233F 176* MX25L5121E 177* MX25R3235F 178* MX66L1G45G 179* S25FL128L 180* S25FL128S 181* S25FL129P 182* S25FL256L 183* S25FL256S 184* S25FS128S 185* S29C51001B 186* V29C51001B 187* W25Q32JW...M 188* W25Q64JV 189* W25Q64JW...M 190* W25Q256JW 191* W25Q256JW_DTR 192* W25Q512JV 193* W25Q512NW-IM 194* W25X05(CL) 195* XM25QU64C 196* XM25QU128C 197* XM25QU256C 198* XM25QH64C 199* XM25QH128C 200* XM25QH256C 201 202Download 203======== 204 205flashrom 1.3 can be downloaded in various ways: 206 207Anonymous checkout from the git repository at `<https://review.coreboot.org/flashrom.git>`_ (tag v1.3.0) 208 209A tarball is available for download at 210 211`<https://download.flashrom.org/releases/flashrom-v1.3.0.tar.bz2>`_ (GPG signature), 212fingerprint: :code:`6E6E F9A0 BA47 8006 E277 6E4C C037 BB41 3134 D111` 213 214and more in the "Tags" section of CGit at `<https://review.coreboot.org/cgit/flashrom.git>`_ 215