mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 07:02:34 +02:00
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>
This commit is contained in:
parent
e4e0fd0d82
commit
30c85a62c1
@ -4,4 +4,5 @@ Release notes
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
v_1_4
|
||||||
v_1_3
|
v_1_3
|
||||||
|
328
doc/release_notes/v_1_4.rst
Normal file
328
doc/release_notes/v_1_4.rst
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user