xref: /aosp_15_r20/external/flashrom/doc/release_notes/v_1_3.rst (revision 0d6140be3aa665ecc836e8907834fcd3e3b018fc)
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