summaryrefslogtreecommitdiff
path: root/sys-apps/flashrom
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
committerV3n3RiX <venerix@koprulu.sector>2022-03-20 00:40:44 +0000
commit4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch)
tree356496503d52354aa6d9f2d36126302fed5f3a73 /sys-apps/flashrom
parentfcc5224904648a8e6eb528d7603154160a20022f (diff)
gentoo resync : 20.03.2022
Diffstat (limited to 'sys-apps/flashrom')
-rw-r--r--sys-apps/flashrom/Manifest4
-rw-r--r--sys-apps/flashrom/files/flashrom-9999_meson-fixes.patch281
-rw-r--r--sys-apps/flashrom/flashrom-9999.ebuild159
-rw-r--r--sys-apps/flashrom/metadata.xml6
4 files changed, 2 insertions, 448 deletions
diff --git a/sys-apps/flashrom/Manifest b/sys-apps/flashrom/Manifest
index 3f9d3e2bace8..129ec1fc2c91 100644
--- a/sys-apps/flashrom/Manifest
+++ b/sys-apps/flashrom/Manifest
@@ -1,7 +1,5 @@
AUX flashrom-1.2_meson-fixes.patch 7977 BLAKE2B 5ac9e09c6fbcf08f36da1fc874511f7023338b0bffe775c61be9f7c253d6d8343833ec64ff86dc3b4733e90e67435e3cc0d52e6ae11c8d368fe2f21b6a85bc59 SHA512 a0e30c2a87775342302fabfd594c91015b6ea9fba71a7d1b294c399a8336167f85b07fdcc2ff80174cc43362ef5ca28965571ca52e1a76922ef59dcb15991664
AUX flashrom-1.2_meson-install-manpage.patch 1208 BLAKE2B a4290c046d82a7c8b8dbfba0d58abed2384506d761272929ca7972c68a92a314de2ad17af5bd49cb86af5fea119d36fb126c45febdd5ac99210949158d33fc75 SHA512 1345bc880317e37d028bc3d40c98e5b5b4b17c7cde18d3b17762c9792cf0e4ac19613702ae1d367937f86dd3dbb02732851774d91ef1372e5bbb8f998346526d
-AUX flashrom-9999_meson-fixes.patch 7589 BLAKE2B a4c5475cb4574a3571514205ce62765faaf667ef8e08e8f7bfd8cb0c6b3fa61b914bb0f19f65f74c614bff5cad8b35eea3d69a1cb80ffa1af3c3fbe621f2ee2c SHA512 64711cb2483e9fe47d6d1cf7c8229dd97fe41bc41bde06e4fe876d7d1e128dc01e61eeece9d31ac36f200a8f510be6a4f855269a0d9c3302cf4e081a39d0ca9b
DIST flashrom-v1.2.tar.bz2 366995 BLAKE2B 091e01a91e12b486154ace334a5e74bccbb5f5311ad76e37f43a28167080757873d8c78b8f549d2e77eb984922c830895ba955b23eb6ee4fc24f1ffed259954b SHA512 8e01395a54d0d1344bc55e7e4975f43bb8e59ebe83fb5f2766d14f76756d718b487254ce9a19ef4093aed04fb9d40fff5fe8f709b18c512f6e6fad894f83d7b8
EBUILD flashrom-1.2-r3.ebuild 4348 BLAKE2B f1df27a4ad207fbb91a7a599b6d2a08357d5a3060774bc11916b4f5d1380765f0c5301c987cf68440ffbc50533a79c17b0087139f0eff106c487a1b085ce8ef7 SHA512 a9460ba8104096b4abe257211a321ae824c71c2e7aef5f064ef16088f6f4592472da8ce969688ec695c2e9420a85187a8111fb055af3b7f307e5b42afb7e75d3
-EBUILD flashrom-9999.ebuild 4722 BLAKE2B 8e275122e1d8d9c963c6d90bbf4364a63a49a0e5140079893b15e687fbd95a1a2364c5637a71d4f9a43d3874316b1ddf8cd480745532f6e069d461f6dd897153 SHA512 86d2fa477378033fce754ddb15cbbbb03a301136a8ae852bc041f8bf51f1253d8be02dfe1e7705b352ca73f46ff6f174c82cb2fc59f2cb6e28b8349a9059c5e2
-MISC metadata.xml 4876 BLAKE2B ad38e149e01f382b38aef8a5be73df52654e835665621f4e02696d9b837ce62206da16a6a1ee2b1c08b7e7f1c23329395fee81c9f319404aaf339a2a149b0362 SHA512 166e5d58869cc571872559ffb01a3c645ee4524aa81478c74a680b35bc53f472b55dfda78e49eb25f5438c1841bc58e796cdf8918f63c25d2aa7ea8c2ab807d1
+MISC metadata.xml 4515 BLAKE2B ed7a5069b47796b2464794d904412b2ad6ed27e2ce82e8bca3336626006ae0e575f7cb48d6ad002f9758ea7fff177c810bd2eaa1f27a13f3401abbeadd3500c4 SHA512 743b3c2f4f345771241a4d326559658b89d1a5881099a6f468fff32f6ae8b38fcc883e798d0e429fdbae08449e5285926891e9b9b7e9c4ab9b7db9eb77bf7b20
diff --git a/sys-apps/flashrom/files/flashrom-9999_meson-fixes.patch b/sys-apps/flashrom/files/flashrom-9999_meson-fixes.patch
deleted file mode 100644
index 7651585f4f6a..000000000000
--- a/sys-apps/flashrom/files/flashrom-9999_meson-fixes.patch
+++ /dev/null
@@ -1,281 +0,0 @@
---- a/meson.build
-+++ b/meson.build
-@@ -2,7 +2,7 @@ project('flashromutils', 'c',
- version : run_command('util/getversion.sh', '-v').stdout().strip(),
- license : 'GPL-2.0',
- meson_version : '>=0.50.0',
-- default_options : ['warning_level=2', 'c_std=c99'],
-+ default_options : ['warning_level=2', 'c_std=gnu99'],
- )
-
- # libtool versioning
-@@ -105,6 +105,10 @@ cargs = []
- deps = []
- srcs = []
-
-+config_bitbang_spi = false
-+need_libftdi = false
-+need_libpci = false
-+need_libusb = false
- need_raw_access = false
- need_serial = false
-
-@@ -119,27 +123,25 @@ if cc.check_header('sys/utsname.h')
- add_project_arguments('-DHAVE_UTSNAME=1', language : 'c')
- endif
-
--# some programmers require libusb
--if get_option('usb')
-- srcs += 'usbdev.c'
-- srcs += 'usb_device.c'
-- deps += dependency('libusb-1.0')
--else
-+if get_option('no_libftdi_programmers')
-+ message('Disabling ALL libftdi-based programmers')
-+ config_ft2232_spi = false
-+ config_usbblaster_spi = false
-+endif
-+
-+if get_option('no_libusb_programmers')
-+ message('Disabling ALL libusb-based programmers')
- config_ch341a_spi = false
- config_dediprog = false
- config_digilent_spi = false
- config_developerbox_spi = false
- config_pickit2_spi = false
- config_raiden_debug_spi = false
-+ config_stlinkv3_spi = false
- endif
-
--# some programmers require libpci
--if get_option('pciutils')
-- srcs += 'pcidev.c'
-- deps += dependency('libpci')
-- need_raw_access = true
-- cargs += '-DNEED_PCI=1'
--else
-+if get_option('no_libpci_programmers')
-+ message('Disabling ALL libpci-based programmers')
- config_atahpt = false
- config_atapromise = false
- config_atavia = false
-@@ -161,14 +163,17 @@ endif
- # set defines for configured programmers
- if config_atahpt
- srcs += 'atahpt.c'
-+ need_libpci = true
- cargs += '-DCONFIG_ATAHPT=1'
- endif
- if config_atapromise
- srcs += 'atapromise.c'
-+ need_libpci = true
- cargs += '-DCONFIG_ATAPROMISE=1'
- endif
- if config_atavia
- srcs += 'atavia.c'
-+ need_libpci = true
- cargs += '-DCONFIG_ATAVIA=1'
- endif
- if config_buspirate_spi
-@@ -178,18 +183,22 @@ if config_buspirate_spi
- endif
- if config_ch341a_spi
- srcs += 'ch341a_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_CH341A_SPI=1'
- endif
- if config_dediprog
- srcs += 'dediprog.c'
-+ need_libusb = true
- cargs += '-DCONFIG_DEDIPROG=1'
- endif
- if config_developerbox_spi
- srcs += 'developerbox_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_DEVELOPERBOX_SPI=1'
- endif
- if config_digilent_spi
- srcs += 'digilent_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_DIGILENT_SPI=1'
- endif
- if config_jlink_spi
-@@ -199,6 +208,7 @@ if config_jlink_spi
- endif
- if config_drkaiser
- srcs += 'drkaiser.c'
-+ need_libpci = true
- cargs += '-DCONFIG_DRKAISER=1'
- endif
- if config_dummy
-@@ -207,16 +217,18 @@ if config_dummy
- endif
- if config_ft2232_spi
- srcs += 'ft2232_spi.c'
-+ need_libftdi = true
- cargs += '-DCONFIG_FT2232_SPI=1'
-- deps += dependency('libftdi1')
- cargs += '-DHAVE_FT232H=1'
- endif
- if config_gfxnvidia
- srcs += 'gfxnvidia.c'
-+ need_libpci = true
- cargs += '-DCONFIG_GFXNVIDIA=1'
- endif
- if config_raiden_debug_spi
- srcs += 'raiden_debug_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_RAIDEN_DEBUG_SPI=1'
- endif
- if config_internal
-@@ -235,6 +247,7 @@ if config_internal
- srcs += 'sb600spi.c'
- srcs += 'wbsio_spi.c'
- endif
-+ need_libpci = true
- config_bitbang_spi = true
- cargs += '-DCONFIG_INTERNAL=1'
- if get_option('config_internal_dmi')
-@@ -244,6 +257,7 @@ if config_internal
- endif
- if config_it8212
- srcs += 'it8212.c'
-+ need_libpci = true
- cargs += '-DCONFIG_IT8212=1'
- endif
- if config_linux_mtd
-@@ -260,36 +274,44 @@ if config_mstarddc_spi
- endif
- if config_nic3com
- srcs += 'nic3com.c'
-+ need_libpci = true
- cargs += '-DCONFIG_NIC3COM=1'
- endif
- if config_nicintel
- srcs += 'nicintel.c'
-+ need_libpci = true
- cargs += '-DCONFIG_NICINTEL=1'
- endif
- if config_nicintel_eeprom
- srcs += 'nicintel_eeprom.c'
-+ need_libpci = true
- cargs += '-DCONFIG_NICINTEL_EEPROM=1'
- endif
- if config_nicintel_spi
- srcs += 'nicintel_spi.c'
-+ need_libpci = true
- config_bitbang_spi = true
- cargs += '-DCONFIG_NICINTEL_SPI=1'
- endif
- if config_nicnatsemi
- srcs += 'nicnatsemi.c'
-+ need_libpci = true
- cargs += '-DCONFIG_NICNATSEMI=1'
- endif
- if config_nicrealtek
- srcs += 'nicrealtek.c'
-+ need_libpci = true
- cargs += '-DCONFIG_NICREALTEK=1'
- endif
- if config_ogp_spi
- config_bitbang_spi = true
- srcs += 'ogp_spi.c'
-+ need_libpci = true
- cargs += '-DCONFIG_OGP_SPI=1'
- endif
- if config_pickit2_spi
- srcs += 'pickit2_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_PICKIT2_SPI=1'
- endif
- if config_pony_spi
-@@ -306,10 +328,12 @@ if config_rayer_spi
- endif
- if config_satamv
- srcs += 'satamv.c'
-+ need_libpci = true
- cargs += '-DCONFIG_SATAMV=1'
- endif
- if config_satasii
- srcs += 'satasii.c'
-+ need_libpci = true
- cargs += '-DCONFIG_SATASII=1'
- endif
- if config_serprog
-@@ -319,10 +343,12 @@ if config_serprog
- endif
- if config_usbblaster_spi
- srcs += 'usbblaster_spi.c'
-+ need_libftdi = true
- cargs += '-DCONFIG_USBBLASTER_SPI=1'
- endif
- if config_stlinkv3_spi
- srcs += 'stlinkv3_spi.c'
-+ need_libusb = true
- cargs += '-DCONFIG_STLINKV3_SPI=1'
- endif
- if config_lspcon_i2c_spi
-@@ -344,6 +370,26 @@ if host_machine.system() == 'linux'
- srcs += 'i2c_helper_linux.c'
- endif
-
-+# some programmers require libftdi
-+if need_libftdi
-+ deps += dependency('libftdi1')
-+endif
-+
-+# some programmers require libpci
-+if need_libpci
-+ srcs += 'pcidev.c'
-+ deps += dependency('libpci')
-+ need_raw_access = true
-+ cargs += '-DNEED_PCI=1'
-+endif
-+
-+# some programmers require libusb
-+if need_libusb
-+ srcs += 'usbdev.c'
-+ srcs += 'usb_device.c'
-+ deps += dependency('libusb-1.0')
-+endif
-+
- # raw memory, MSR or PCI port I/O access
- if need_raw_access
- srcs += 'hwaccess.c'
-@@ -493,10 +539,12 @@ executable(
- subdir('util')
-
- # unit-test framework
-+if get_option('build_tests')
-+
- cmocka_dep = dependency(
- 'cmocka',
- fallback: ['cmocka', 'cmocka_dep'],
-- required: false
-+ required: true
- )
- flashrom_test_dep = declare_dependency(
- include_directories : include_directories('.'),
-@@ -519,3 +567,5 @@ flashrom_test_dep = declare_dependency(
- if cmocka_dep.found()
- subdir('tests')
- endif
-+
-+endif
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -1,9 +1,12 @@
--option('pciutils', type : 'boolean', value : true, description : 'use pciutils')
--option('usb', type : 'boolean', value : true, description : 'use libusb1')
-+option('no_libftdi_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libftdi')
-+option('no_libpci_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libpci')
-+option('no_libusb_programmers', type : 'boolean', value : false, description : 'disable all programmers depending on libusb')
- option('print_wiki', type : 'boolean', value : true, description : 'Print Wiki')
- option('default_programmer_name', type : 'string', description : 'default programmer')
- option('default_programmer_args', type : 'string', description : 'default programmer arguments')
-
-+option('build_tests', type : 'boolean', value : false, description : 'build the test suite')
-+
- option('config_atahpt', type : 'boolean', value : false, description : 'Highpoint (HPT) ATA/RAID controllers')
- option('config_atapromise', type : 'boolean', value : false, description : 'Promise ATA controller')
- option('config_atavia', type : 'boolean', value : true, description : 'VIA VT6421A LPC memory')
diff --git a/sys-apps/flashrom/flashrom-9999.ebuild b/sys-apps/flashrom/flashrom-9999.ebuild
deleted file mode 100644
index 58c8150f039c..000000000000
--- a/sys-apps/flashrom/flashrom-9999.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit meson
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://review.coreboot.org/flashrom.git"
- inherit git-r3
-else
- MY_P="${PN}-v${PV}"
- SRC_URI="https://download.flashrom.org/releases/${MY_P}.tar.bz2"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
- S="${WORKDIR}/${MY_P}"
-fi
-
-DESCRIPTION="Utility for reading, writing, erasing and verifying flash ROM chips"
-HOMEPAGE="https://flashrom.org/Flashrom"
-
-LICENSE="GPL-2"
-SLOT="0"
-
-# The defaults match the upstream meson_options.txt.
-IUSE_PROGRAMMERS="
- atahpt
- atapromise
- +atavia
- +buspirate-spi
- +ch341a-spi
- +dediprog
- +developerbox-spi
- +digilent-spi
- +drkaiser
- +dummy
- +ft2232-spi
- +gfxnvidia
- +internal
- +it8212
- jlink-spi
- +linux-mtd
- +linux-spi
- lspcon-i2c-spi
- mstarddc-spi
- +nic3com
- +nicintel
- +nicintel-eeprom
- +nicintel-spi
- nicnatsemi
- +nicrealtek
- +ogp-spi
- +pickit2-spi
- +pony-spi
- +raiden-debug-spi
- +rayer-spi
- realtek-mst-i2c-spi
- +satamv
- +satasii
- +serprog
- +stlinkv3-spi
- +usbblaster-spi
-"
-IUSE="${IUSE_PROGRAMMERS} +internal-dmi test tools +wiki"
-
-RESTRICT="!test? ( test )"
-
-LIB_DEPEND="
- atahpt? ( sys-apps/pciutils[static-libs(+)] )
- atapromise? ( sys-apps/pciutils[static-libs(+)] )
- atavia? ( sys-apps/pciutils[static-libs(+)] )
- ch341a-spi? ( virtual/libusb:1[static-libs(+)] )
- dediprog? ( virtual/libusb:1[static-libs(+)] )
- developerbox-spi? ( virtual/libusb:1[static-libs(+)] )
- digilent-spi? ( virtual/libusb:1[static-libs(+)] )
- drkaiser? ( sys-apps/pciutils[static-libs(+)] )
- ft2232-spi? ( dev-embedded/libftdi:1=[static-libs(+)] )
- gfxnvidia? ( sys-apps/pciutils[static-libs(+)] )
- internal? ( sys-apps/pciutils[static-libs(+)] )
- it8212? ( sys-apps/pciutils[static-libs(+)] )
- jlink-spi? ( dev-embedded/libjaylink[static-libs(+)] )
- nic3com? ( sys-apps/pciutils[static-libs(+)] )
- nicintel-eeprom? ( sys-apps/pciutils[static-libs(+)] )
- nicintel-spi? ( sys-apps/pciutils[static-libs(+)] )
- nicintel? ( sys-apps/pciutils[static-libs(+)] )
- nicnatsemi? ( sys-apps/pciutils[static-libs(+)] )
- nicrealtek? ( sys-apps/pciutils[static-libs(+)] )
- ogp-spi? ( sys-apps/pciutils[static-libs(+)] )
- pickit2-spi? ( virtual/libusb:0[static-libs(+)] )
- raiden-debug-spi? ( virtual/libusb:0[static-libs(+)] )
- rayer-spi? ( sys-apps/pciutils[static-libs(+)] )
- satamv? ( sys-apps/pciutils[static-libs(+)] )
- satasii? ( sys-apps/pciutils[static-libs(+)] )
- stlinkv3-spi? ( virtual/libusb:1[static-libs(+)] )
- usbblaster-spi? ( dev-embedded/libftdi:1=[static-libs(+)] )
-"
-RDEPEND="${LIB_DEPEND//\[static-libs(+)]}"
-DEPEND="${RDEPEND}
- sys-apps/diffutils"
-RDEPEND+=" !internal-dmi? ( sys-apps/dmidecode )"
-BDEPEND="test? ( dev-util/cmocka )"
-
-DOCS=( README Documentation/ )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-9999_meson-fixes.patch
-)
-
-src_configure() {
- local emesonargs=(
- $(meson_use test build_tests)
- $(meson_use atahpt config_atahpt)
- $(meson_use atapromise config_atapromise)
- $(meson_use atavia config_atavia)
- $(meson_use buspirate-spi config_buspirate_spi)
- $(meson_use ch341a-spi config_ch341a_spi)
- $(meson_use dediprog config_dediprog)
- $(meson_use developerbox-spi config_developerbox_spi)
- $(meson_use digilent-spi config_digilent_spi)
- $(meson_use drkaiser config_drkaiser)
- $(meson_use dummy config_dummy)
- $(meson_use ft2232-spi config_ft2232_spi)
- $(meson_use gfxnvidia config_gfxnvidia)
- $(meson_use internal config_internal)
- $(meson_use internal-dmi config_internal_dmi)
- $(meson_use it8212 config_it8212)
- $(meson_use jlink-spi config_jlink_spi)
- $(meson_use linux-mtd config_linux_mtd)
- $(meson_use linux-spi config_linux_spi)
- $(meson_use lspcon-i2c-spi config_lspcon_i2c_spi)
- $(meson_use mstarddc-spi config_mstarddc_spi)
- $(meson_use nic3com config_nic3com)
- $(meson_use nicintel-eeprom config_nicintel_eeprom)
- $(meson_use nicintel-spi config_nicintel_spi)
- $(meson_use nicintel config_nicintel)
- $(meson_use nicnatsemi config_nicnatsemi)
- $(meson_use nicrealtek config_nicrealtek)
- $(meson_use ogp-spi config_ogp_spi)
- $(meson_use pickit2-spi config_pickit2_spi)
- $(meson_use pony-spi config_pony_spi)
- $(meson_use raiden-debug-spi config_raiden_debug_spi)
- $(meson_use rayer-spi config_rayer_spi)
- $(meson_use realtek-mst-i2c-spi config_realtek_mst_i2c_spi)
- $(meson_use satamv config_satamv)
- $(meson_use satasii config_satasii)
- $(meson_use stlinkv3-spi config_stlinkv3_spi)
- $(meson_use serprog config_serprog)
- $(meson_use usbblaster-spi config_usbblaster_spi)
- $(meson_use wiki print_wiki)
- )
- meson_src_configure
-}
-
-src_install() {
- meson_src_install
-
- if use tools; then
- dosbin "${BUILD_DIR}"/util/ich_descriptors_tool/ich_descriptors_tool
- fi
-}
diff --git a/sys-apps/flashrom/metadata.xml b/sys-apps/flashrom/metadata.xml
index a60db379da54..efb5ba4405d1 100644
--- a/sys-apps/flashrom/metadata.xml
+++ b/sys-apps/flashrom/metadata.xml
@@ -24,7 +24,6 @@
<flag name="jlink-spi">Support for SEGGER J-Link and compatible devices</flag>
<flag name="linux-mtd">Enable support for Linux mtd SPI flash devices</flag>
<flag name="linux-spi">Enable support for Linux userspace spidev interface</flag>
- <flag name="lspcon-i2c-spi">Enable support for Parade lspcon USB-C to HDMI protocol translator</flag>
<flag name="mstarddc-spi">Support for SPI flash ROMs accessible through DDC in MSTAR-equipped displays</flag>
<flag name="nic3com">Enable 3Com NIC programmer</flag>
<flag name="nicintel">Support for Intel NICs</flag>
@@ -35,16 +34,13 @@
<flag name="ogp-spi">Enable support for OGP (Open Graphics Project) SPI flashing</flag>
<flag name="pickit2-spi">SUpport for SPI flash ROMs accessible via Microchip PICkit2</flag>
<flag name="pony-spi">Enable support for SI-Prog like hardware by Lancos</flag>
- <flag name="raiden-debug-spi">Enable ChromiumOS Servo DUT debug board</flag>
<flag name="rayer-spi">RayeR SPIPGM hardware support</flag>
- <flag name="realtek-mst-i2c-spi">Enable support for Realtek MultiStream Transport (MST)</flag>
- <flag name="satasii">Enable programmer for SiI SATA controllers</flag>
<flag name="satamv">Enable programmer for Marvell SATA controllers</flag>
+ <flag name="satasii">Enable programmer for SiI SATA controllers</flag>
<flag name="stlinkv3-spi">Enable SPI programmer using STLINK-V3</flag>
<flag name="serprog">Enable Serial Flasher programmer</flag>
<flag name="tools">Install ich_descriptor_tool, a tool for reading descriptor-mode SPI-flash images for Intel chipsets</flag>
<flag name="usbblaster-spi">Enable support for Altera USB-Blaster dongles</flag>
- <flag name="wiki">Enable wiki informations, like supported devices etc.</flag>
</use>
<longdescription lang="en">
flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips. It is designed to flash BIOS/EFI/coreboot/firmware/optionROM images on mainboards, network/graphics/storage controller cards, and various other programmer devices.