Anastasia Klimchuk submitted this change.

View Change

Approvals: Alexander Goncharov: Looks good to me, but someone else must approve build bot (Jenkins): Verified Peter Marheine: Looks good to me, approved
doc: Release notes for version 1.4.0

Change-Id: Ie5597f1c3ae9289e424f54c2d313fef8efbdf1a0
Signed-off-by: Anastasia Klimchuk <aklm@flashrom.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/83359
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-by: Alexander Goncharov <chat@joursoir.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
---
M doc/release_notes/index.rst
A doc/release_notes/v_1_4.rst
2 files changed, 329 insertions(+), 0 deletions(-)

diff --git a/doc/release_notes/index.rst b/doc/release_notes/index.rst
index a8ef58f..1d2e0d9 100644
--- a/doc/release_notes/index.rst
+++ b/doc/release_notes/index.rst
@@ -4,4 +4,5 @@
.. toctree::
:maxdepth: 1

+ v_1_4
v_1_3
diff --git a/doc/release_notes/v_1_4.rst b/doc/release_notes/v_1_4.rst
new file mode 100644
index 0000000..a42f057
--- /dev/null
+++ b/doc/release_notes/v_1_4.rst
@@ -0,0 +1,328 @@
+================
+v1.4 (July 2024)
+================
+
+This document describes the major changes in flashrom version 1.4.0,
+from more than 400 patches contributed by more than 70 authors (thank you!)
+in the 18 months since version 1.3.0 was branched.
+
+Download
+========
+
+flashrom 1.4 can be downloaded in various ways:
+
+Anonymous checkout from the git repository at https://review.coreboot.org/flashrom.git
+(tag v1.4.0)
+
+A tarball is available for download at
+<TODO add link>,
+
+fingerprint: <TODO add>
+
+Known issue
+===========
+
+AMD-based PCs with FCH are unable to read flash contents for internal (BIOS flash)
+chips larger than 16 MB, and attempting to do so may crash the system.
+Systems with AMD "Promontory" IO extenders (mostly "Zen" desktop platforms) are not currently
+supported.
+
+https://ticket.coreboot.org/issues/370
+
+Major updates
+=============
+
+Optimised erase and write logic
+-------------------------------
+
+Significant performance improvements with new logic which is based on:
+the optimal selection of erase blocks for the given logical layout,
+available erase functions, and size of memory area to erase/write.
+
+**Legacy code path still exists in the source tree, but it will be deleted by the next release.**
+
+Optimised delays logic
+----------------------
+
+Optimised logic and refactorings of delays functionality, in particular for SPI chips.
+
+* Flashrom now sleeps more aggressively when a delay is required, rather than
+ polling in a loop. This should reduce power consumption significantly, but
+ may require more time to complete operations on systems experiencing high
+ CPU load.
+* An unconditional 1-second delay was removed for SPI flashes. This is not
+ believed to be needed for any SPI flashes, but may be needed for some old
+ parallel flashes (where it remains in use).
+* Cycle-counting busy loops are now only used on DOS builds of flashrom. All
+ other platforms use OS timers for timed delays, which are expected to be
+ more accurate.
+* Tree-wide refactorings around programmer_delay and internal_delay
+
+Documentation is in the git tree
+--------------------------------
+
+Docs are available in the same repository as the code, in ``doc/`` directory.
+
+Website content is automatically generated from docs in the git tree.
+
+**Patches with code changes and new features can (and should) update documentation
+in the same patch, which makes it a lot easier to maintain up-to-date docs.**
+
+Note: the migration process for documents from flashrom wiki to the git tree is half way.
+Wiki is deprecated now, and will go away once the migration process complete.
+
+Makefile scheduled for removal
+------------------------------
+
+**Future versions of flashrom will drop support for building via Makefile**:
+Meson will become the only supported build system.
+
+The Makefile and meson build systems are currently at feature parity,
+except automated testing is supported only with meson.
+To reduce the maintenance burden, we plan to remove the Makefile after this release.
+
+Write-protect updates
+---------------------
+
+* Support reading security register
+* Support reading/writing configuration register
+* More range functions (with different block sizes and handling of CMP bit)
+
+Protected regions support
+-------------------------
+
+* Support to allow programmers to handle protected regions on the flash.
+* get_region() function is added so that programmers can expose access permissions
+ for multiple regions within the flash.
+* A get_region() implementation is added for the ichspi driver
+
+Chipset support added
+=====================
+
+* Tiger Lake
+* Emmitsburg Chipset SKU
+* Meteor Lake-P/M
+* Panther Lake-U/H 12Xe
+* Panther Lake-H 4Xe
+
+Chip models support added or updated
+====================================
+
+New models support
+------------------
+
+* AT25DF011
+
+* B.25D80A
+* B25Q64AS
+
+* GD25LB128E/GD25LR128E
+* GD25LB256E
+* GD25LF128E
+* GD25Q127C/GD25Q128E
+* GD25LQ255E
+* GD25LR256E
+* GD251R512ME
+
+* IS25LP016
+* IS25LQ016
+* IS25WP016
+* IS25WP020
+* IS25WP040
+* IS25WP080
+* IS25WQ040
+
+* MX25L1633E
+* MX25L1636E
+* MX25L3239E
+* MX25L3255E
+* MX25L3273F
+* MX25L6473F
+* MX25L6436E/MX25L6445E/MX25L6465E
+* MX25L6473E
+* MX25L12850F
+* MX77L25650F
+* MX25R2035F
+* MX25R4035F
+* MX25R8035F
+* MX25U25643G
+* MX25V16066
+
+* P25Q06H
+* P25Q11H
+* P25Q21H
+
+* W25Q16JV_M
+
+* XM25QH128A
+* XM25QH80B
+* XM25QH16C/XM25QH16D
+* XM25QU80B
+* XM25RU256C
+
+* XT25F02E
+* XT25F64B
+* XT25F128B
+
+* ZD25D20
+
+Added write-protect support
+---------------------------
+
+* EN25QH32
+* EN25QH64
+
+* MX25L3206E/MX25L3208E
+* MX25L6405
+* MX25L6405D
+* MX25L6406E/MX25L6408E
+* MX25L12833F
+* MT25QL512
+* MX25R1635F
+* MX25R1635F
+* MX25U25643G
+* MX25V1635F
+* MX25V4035F
+* MX25V8035F
+
+* N25Q032..1E
+* N25Q032..3E
+* N25Q064..1E
+* N25Q064..3E
+
+* W25Q16.V
+* W25Q32BV/W25Q32CV/W25Q32DV
+* W25Q32FV
+* W25Q32JV
+* W25Q32BW/W25Q32CW/W25Q32DW
+* W25Q32FW
+* W25Q32JW...Q
+* W25Q32JW...M
+* W25Q64JW...M
+* W25Q256JW_DTR
+* W25Q512NW-IM
+* W25X05
+* W25X10
+* W25X16
+* W25X20
+* W25X32
+* W25X40
+* W25X64
+* W25X80
+
+Marked as tested
+----------------
+
+* AM29LV040B
+
+* AT29C010A
+
+* FM25F01
+* FM25Q16
+
+* MT25QL128
+
+* S25FL128L
+
+* W25Q128.V
+
+* XM25QH64C
+* XM25QH256C
+* XM25QU256C
+
+Programmers support added or updated
+====================================
+
+* New programmer for ASM106x SATA controllers
+* New programmer for WCH CH347, supports CH347T and CH347F packaging.
+
+* buspirate: Add option for setting the aux pin
+* jlink_spi: add cs=tms option to jlink_spi programmer
+* raiden: Support target index with generic REQ_ENABLE
+* buspirate_spi: add support for hiz output with pullups=off
+* serprog: Add support for multiple SPI chip selects
+
+Utilities
+=========
+
+* Bash completion (enabled by default with command line interface)
+
+* CI checks for Signed-off-by line in commit message
+
+* CI builds documentation
+
+Unit tests
+==========
+
+Added coverage for erase and write logic
+----------------------------------------
+
+20 test cases for each operation, with various logical layouts and chip memory states,
+and additional 6 for each, with protected regions configured.
+The test for erase and write is set up so that new test cases can be added whenever needed.
+
+selfcheck
+---------
+
+selfcheck is now also implemented as a unit test.
+
+selfcheck provides critical sanity checks for the programmer table, board matches table,
+and array of flashchip definitions.
+
+Note that selfcheck currently, by default, still runs on flashrom init,
+because at the moment we can't run unit tests on all supported platforms,
+and we don't have continuous integration for all platforms.
+
+This gives an opportunity for performance improvement for developers or companies
+who build their own flashrom binary and, importantly,
+can run unit tests with the build (Linux, BSD).
+For their own binary, it is possible to disable selfcheck on init and save some time
+(**under their own responsibility to run unit tests**).
+
+Coverage report
+---------------
+
+Unit tests coverage report can be generated with gcov or lcov / llvm.
+
+ch341a_spi test
+---------------
+
+Unit test which covers initialization-probing-shutdown of ch341a_spi.
+
+Reduces the risk of breakage for the very popular programmer.
+
+Write-protect
+-------------
+
+Added coverage for write-protect operation
+
+Some of the other misc fixes and improvements
+=============================================
+
+* bitbang_spi.c: Fix unchecked heap allocation
+* writeprotect.c: skip unnecessary writes
+* writeprotect.c: refuse to work with chip if OTP WPS == 1
+* flashrom.c: Drop redundant chip read validation in verify_range()
+* ichspi: Clear Fast SPI HSFC register before HW seq operation
+* ichspi: Fix number of bytes for HW seq operations
+* writeprotect,ichspi,spi25: handle register access constraints
+* tree/: Make heap alloc checks err msg consistent
+* flashrom.c: Replace 'exit(1)' leaks with return codes on err paths
+* flashrom: Check for flash access restricitons in read_flash()
+* flashrom: Check for flash access restricitons in verify_range()
+* flashrom: Check for flash access restricitons in write_flash()
+* flashrom: Check for flash access restrictions in erase path
+* flashrom: Use WP-based unlocking on opaque masters
+* ni845x_spi: Fix signed - unsigned comparisons
+* flashrom: only perform WP unlock for write/erase operations
+* tree: Rename master branch to main
+* serial: Fix sp_flush_incoming for serprog TCP connections
+* Makefile,meson.build: Add support for Sphinx versions prior to 4.x
+* Makefile: Fix cleanup for Sphinx versions prior to 4.x
+* Makefile: Fix version string for non-Git builds
+* serprog protocol: Add SPI Mode and CS Mode commands
+* util/list_yet_unsupported_chips.h: Fix path
+* flashrom_udev.rules: Add rule for CH347
+* Add documentation for pico-serprog
+* cli_classic: Defer flashrom_init calibration until after options parsing
+* hwaccess_x86_io: Fix Android compilation with bionic libc

To view, visit change 83359. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: flashrom
Gerrit-Branch: main
Gerrit-Change-Id: Ie5597f1c3ae9289e424f54c2d313fef8efbdf1a0
Gerrit-Change-Number: 83359
Gerrit-PatchSet: 5
Gerrit-Owner: Anastasia Klimchuk <aklm@chromium.org>
Gerrit-Reviewer: Alexander Goncharov <chat@joursoir.net>
Gerrit-Reviewer: Anastasia Klimchuk <aklm@chromium.org>
Gerrit-Reviewer: Nikolai Artemiev <nartemiev@google.com>
Gerrit-Reviewer: Peter Marheine <pmarheine@chromium.org>
Gerrit-Reviewer: Stefan Reinauer <stefan.reinauer@coreboot.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>