Flashrom/1.3: Difference between revisions

From flashrom
Jump to navigation Jump to search
(Created page with "{{DISPLAYTITLE:flashrom/1.3}} TODO: description === New major user-visible features === * Support for the Linux I2C subsystem * Option to read/write only region to/from ROM is renamed to <code>--include</code> (<code>--image</code> option is deprecated and exist only for back compatibility) === Infrastructure expansion === * Add blackbox test uber-script * Add E2E tester for a specific chip/chipset combo * Build script for Jenkins was upgraded and move to repository -...")
 
No edit summary
Line 6: Line 6:
* Support for the Linux I2C subsystem
* Support for the Linux I2C subsystem
* Option to read/write only region to/from ROM is renamed to <code>--include</code> (<code>--image</code> option is deprecated and exist only for back compatibility)
* Option to read/write only region to/from ROM is renamed to <code>--include</code> (<code>--image</code> option is deprecated and exist only for back compatibility)
* End Of Life (EOL) for ITE IT85* specific code.
* Support different SPI modes (Dual IO, Quad IO, Normal, Fast Read) for AMD’s SB600 (>= Bolton)
* Support for Write Protection configuration
=== Libflashrom ===
* Move documentation from source file to header
* Drop `flashrom_system_info()`
* Drop `flashrom_supported_programmers()`
* Add `flashrom_layout_get_region_range()`
* Declaration change from `flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, off_t, size_t)` to `flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, size_t, size_t)`
* Allow NULL-pointer argument in `flashrom_flash_release()`
* Introduce Write Protect API


=== Infrastructure expansion ===
=== Infrastructure expansion ===
Line 12: Line 25:
* Build script for Jenkins was upgraded and move to repository - <code>test_build.sh</code>  
* Build script for Jenkins was upgraded and move to repository - <code>test_build.sh</code>  
* Add a set of Dockerfiles for build testing - <code>util/manibuilder</code>
* Add a set of Dockerfiles for build testing - <code>util/manibuilder</code>
* Add a Nix shell file which is able to compile flashrom - <code>util/shell.nix</code>
* Add CMocka unit-test infrastructure into the meson build system (test for drivers available only if its driver is built). The following tests are included:
* Add CMocka unit-test infrastructure into the meson build system (test for drivers available only if its driver is built). The following tests are included:
** Core logic tests
** Core logic tests
Line 21: Line 35:
** And others!
** And others!
* Introduce MAINTAINERS file
* Introduce MAINTAINERS file
* Rename <code>z60_flashrom.rules</code> to <code>flashrom_udev.rules</code>
* Introduce linter for git sign-off-by line
* Move all header files to the new <code>include</code> directory.


==== Meson ====
==== Meson ====
Line 38: Line 55:
* Merge <code>compiler</code>, <code>hwlibs</code>, <code>features</code> targets into <code>config</code> target
* Merge <code>compiler</code>, <code>hwlibs</code>, <code>features</code> targets into <code>config</code> target
* Drop <code>distclean</code> target
* Drop <code>distclean</code> target
* Drop STANDALONE mode
* Summarize systems with the same CPPFLAGS and LDFLAGS
* Summarize systems with the same CPPFLAGS and LDFLAGS
* Only enable I2C programmers on Linux (linux-specific code)
* Only enable I2C programmers on Linux (linux-specific code)
Line 47: Line 65:
Various broken and missing dependencies have been fixed for these two build systems.
Various broken and missing dependencies have been fixed for these two build systems.


===New programmers===
=== New programmers ===
* Chrome EC based debug tools - SuzyQable, Servo V4, C2D2 & uServo
* Chrome EC based debug tools - SuzyQable, Servo V4, C2D2 & uServo
* Realtek RTD2142 MST
* Realtek RTD2142 MST
* Parade lspcon USB-C to HDMI protocol translator
* Parade lspcon USB-C to HDMI protocol translator
* DirtyJTAG (a USB-JTAG firmware for STM32 MCUs)
* DirtyJTAG (a USB-JTAG firmware for STM32 MCUs)
* Variants of STLINK-V3: STLINK-V3E, STLINK-V3S, STLINK-V3 With dual VCP, STLINK-V3 Without MSD
* Intel Gemini Lake PCH
* Intel Meteor Lake PCH
* Intel Elkhart Lake PCH
* Intel Comet Lake-U/400-series PCH
* Intel Tiger Point/500-series PCH
* Intel Jasper Lake PCH
* Intel Alder Lake/600-series PCH
* Intel PCH7 Desktop/Mobile/SFF Sample
* More Intel PCHs variants (Apollo Lake, Cannon Point, Union Point, Lewisburg)


At some point, flashrom supported ENE LPC interface keyboard controller and Microchip MEC1308 embedded controller. But they were dropped before the release because the code was no longer maintained by anyone. If you're interested, take a look at git history.
At some point, flashrom supported ENE LPC interface keyboard controller and Microchip MEC1308 embedded controller. But they were dropped before the release because the code was no longer maintained by anyone. If you're interested, take a look at git history.


===New chips===
== New Boards ==
* ASUS P3B-F
* Jetway P4MDPT
* ASUS P5W DH Deluxe
 
=== New chips ===
* AT25SF128A
* B.25D16A
* B.25D16A
* BY25Q128AS
* BY25Q128AS

Revision as of 08:56, 23 February 2023


TODO: description

New major user-visible features

  • Support for the Linux I2C subsystem
  • Option to read/write only region to/from ROM is renamed to --include (--image option is deprecated and exist only for back compatibility)
  • End Of Life (EOL) for ITE IT85* specific code.
  • Support different SPI modes (Dual IO, Quad IO, Normal, Fast Read) for AMD’s SB600 (>= Bolton)
  • Support for Write Protection configuration

Libflashrom

  • Move documentation from source file to header
  • Drop `flashrom_system_info()`
  • Drop `flashrom_supported_programmers()`
  • Add `flashrom_layout_get_region_range()`
  • Declaration change from `flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, off_t, size_t)` to `flashrom_layout_read_fmap_from_rom(struct flashrom_layout **const, struct flashctx *const, size_t, size_t)`
  • Allow NULL-pointer argument in `flashrom_flash_release()`
  • Introduce Write Protect API

Infrastructure expansion

  • Add blackbox test uber-script
  • Add E2E tester for a specific chip/chipset combo
  • Build script for Jenkins was upgraded and move to repository - test_build.sh
  • Add a set of Dockerfiles for build testing - util/manibuilder
  • Add a Nix shell file which is able to compile flashrom - util/shell.nix
  • Add CMocka unit-test infrastructure into the meson build system (test for drivers available only if its driver is built). The following tests are included:
    • Core logic tests
    • Basic lifecycle for dediprog, nicrealtek, raiden_debug_spi, parade_lspcon, mediatek_i2c_spi, realtek_mst_i2c_spi
    • Basic lifecycle + chip probe for dummyflasher, linux_mtd, linux_spi
    • Layout tests (overlapping, sanity checks, invalid range/address)
    • Erasing/reading/writing/verifying chip tests
    • Write Protect tests
    • And others!
  • Introduce MAINTAINERS file
  • Rename z60_flashrom.rules to flashrom_udev.rules
  • Introduce linter for git sign-off-by line
  • Move all header files to the new include directory.

Meson

The minimum version has been increased. Requires at least 0.53.0.

  • Allow libflashrom to be built as a static or shared library.
  • Add new options: print_wiki, ich_descriptors_tool, classic_cli
  • Rename print_wiki to classic_cli_print_wiki option
  • Install the man file
  • Fix compilation under uClibc-ng
  • Add missing config option for J-Link SPI
  • Treat warnings as errors and use the same warning options as in Makefile.

Makefile

  • Add support for Elbrus (e2k) architecture
  • Make pkg-config mandatory to find libftdi1, libjaylink, libusb1, libpci (you still can override detection and set cflags and ldflags manually)
  • Merge compiler, hwlibs, features targets into config target
  • Drop distclean target
  • Drop STANDALONE mode
  • Summarize systems with the same CPPFLAGS and LDFLAGS
  • Only enable I2C programmers on Linux (linux-specific code)
  • Revise C compiler check, utsname and clock_gettime test, detection of Linux specific headers
  • Since the NI-845x is a Windows only proprietary library, disable it by default.
  • Enable the internal programmer on x86 or linux.
  • Fix building on AArch64 NixOS

Various broken and missing dependencies have been fixed for these two build systems.

New programmers

  • Chrome EC based debug tools - SuzyQable, Servo V4, C2D2 & uServo
  • Realtek RTD2142 MST
  • Parade lspcon USB-C to HDMI protocol translator
  • DirtyJTAG (a USB-JTAG firmware for STM32 MCUs)
  • Variants of STLINK-V3: STLINK-V3E, STLINK-V3S, STLINK-V3 With dual VCP, STLINK-V3 Without MSD
  • Intel Gemini Lake PCH
  • Intel Meteor Lake PCH
  • Intel Elkhart Lake PCH
  • Intel Comet Lake-U/400-series PCH
  • Intel Tiger Point/500-series PCH
  • Intel Jasper Lake PCH
  • Intel Alder Lake/600-series PCH
  • Intel PCH7 Desktop/Mobile/SFF Sample
  • More Intel PCHs variants (Apollo Lake, Cannon Point, Union Point, Lewisburg)

At some point, flashrom supported ENE LPC interface keyboard controller and Microchip MEC1308 embedded controller. But they were dropped before the release because the code was no longer maintained by anyone. If you're interested, take a look at git history.

New Boards

  • ASUS P3B-F
  • Jetway P4MDPT
  • ASUS P5W DH Deluxe

New chips

  • AT25SF128A
  • B.25D16A
  • BY25Q128AS
  • FM25F01
  • FM25F02(A)
  • FM25F04(A)
  • FM25F005
  • FM25Q08
  • FM25Q16
  • FM25Q32
  • F29C51001B
  • GD25LQ128E
  • GD25Q256E
  • GD25WQ80E
  • MX25L12833F
  • MX25L12873F
  • MX25L3233F
  • MX25L5121E
  • MX25R3235F
  • MX66L1G45G
  • S25FL128L
  • S25FL128S
  • S25FL129P
  • S25FL256L
  • S25FL256S
  • S25FS128S
  • S29C51001B
  • V29C51001B
  • W25Q32JW...M
  • W25Q64JV
  • W25Q64JW...M
  • W25Q256JW
  • W25Q256JW_DTR
  • W25Q512JV
  • W25Q512NW-IM
  • W25X05(CL)
  • XM25QU64C
  • XM25QU128C
  • XM25QU256C
  • XM25QH64C
  • XM25QH128C
  • XM25QH256C

Download

flashrom 1.3 can be downloaded in various ways:

Anonymous checkout from the git repository at https://review.coreboot.org/flashrom.git (tag v1.3.0)

A tarball is available for download at

https://download.flashrom.org/releases/flashrom-v1.3.0.tar.bz2 (GPG signature), fingerprint: 6E6E F9A0 BA47 8006 E277 6E4C C037 BB41 3134 D111

and more in the "Tags" section of CGit at

https://review.coreboot.org/cgit/flashrom.git