------------------------------------------------------------------------------- flashrom README ------------------------------------------------------------------------------- flashrom is a utility for detecting, reading, writing, verifying and erasing flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images in-system using a supported mainboard, but it also supports flashing of network cards (NICs), SATA controller cards, and other external devices which can program flash chips. It supports a wide range of flash chips (most commonly found in SOIC8, DIP8, SOIC16, WSON8, PLCC32, DIP32, TSOP32, and TSOP40 packages), which use various protocols such as LPC, FWH, parallel flash, or SPI. Do not use flashrom on laptops (yet)! The embedded controller (EC) present in many laptops might interact badly with any attempts to communicate with the flash chip and may brick your laptop. Please make a backup of your flash chip before writing to it. Please see the flashrom(8) manpage. Packaging --------- To package flashrom and remove dependencies on Git, either use make export or make tarball 'make export' will export all flashrom files from the Git repository at revision HEAD into a directory named "$EXPORTDIR/flashrom-$RELEASENAME" and will additionally add a "versioninfo.inc" file in that directory to contain the Git revision of the exported tree and a date for the manual page. 'make tarball' will simply tar up the result of make export and compress it with bzip2. The snapshot tarballs are the result of 'make tarball' and require no further processing. Build Instructions ------------------ To build flashrom you need to install the following software: * pciutils+libpci (if you want support for mainboard or PCI device flashing) * libusb (if you want FT2232, Dediprog or USB-Blaster support) * libftdi (if you want FT2232 or USB-Blaster support) * libjaylink (if you want support for SEGGER J-Link and compatible devices) Linux et al: * pciutils / libpci * pciutils-devel / pciutils-dev / libpci-dev * zlib-devel / zlib1g-dev (needed if libpci was compiled with libz support) On FreeBSD, you need the following ports: * devel/gmake * devel/libpci On OpenBSD, you need the following ports: * devel/gmake * sysutils/pciutils To compile on Linux, use: make To compile on FreeBSD, OpenBSD or DragonFly BSD, use: gmake To compile on Nexenta, use: make To compile on Solaris, use: gmake LDFLAGS="-L$pathtolibpci" CC="gcc -I$pathtopciheaders" CFLAGS=-O2 To compile on NetBSD (with pciutils, libftdi, libusb installed in /usr/pkg/), use: gmake To compile and run on Darwin/Mac OS X: Install DirectHW from coresystems GmbH. DirectHW is available at http://www.coreboot.org/DirectHW . To cross-compile on Linux for DOS: Get packages of the DJGPP cross compiler and install them: djgpp-filesystem djgpp-gcc djgpp-cpp djgpp-runtime djgpp-binutils As an alternative, the DJGPP web site offers packages for download as well: djcross-binutils-2.29.1-1ap.x86_64.rpm djcross-gcc-7.2.0-1ap.x86_64.rpm djcrx-2.05-5.x86_64.rpm The cross toolchain packages for your distribution may have slightly different names (look for packages named *djgpp*). Alternatively, you could use a script to build it from scratch: https://github.com/andrewwutw/build-djgpp You will need the libpci and libgetopt library source trees and their compiled static libraries and header files installed in some directory say libpci-libgetopt/, which will be later specified with LIBS_BASE parameter during flashrom compilation. Easiest way to handle it is to put pciutils, libgetopt and flashrom directories in one subdirectory. There will be an extra subdirectory libpci-libgetopt created, which will contain compiled libpci and libgetopt. Download pciutils 3.5.6 and apply http://flashrom.org/File:Pciutils-3.5.6.patch.gz Compile pciutils, using following command line: make ZLIB=no DNS=no HOST=i386-djgpp-djgpp CROSS_COMPILE=i586-pc-msdosdjgpp- \ PREFIX=/ DESTDIR=$PWD/../libpci-libgetopt \ STRIP="--strip-program=i586-pc-msdosdjgpp-strip -s" install install-lib Download and compile with 'make' http://flashrom.org/File:Libgetopt.tar.gz Copy the libgetopt.a to ../libpci-libgetopt/lib and getopt.h to ../libpci-libgetopt/include Enter the flashrom directory. make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip LIBS_BASE=../libpci-libgetopt/ strip If you like, you can compress the resulting executable with UPX: upx -9 flashrom.exe To run flashrom.exe, download http://flashrom.org/File:Csdpmi7b.zip and unpack CWSDPMI.EXE into the current directory or one in PATH. To cross-compile on Linux for Windows: Get packages of the MinGW cross compiler and install them: mingw32-filesystem mingw32-cross-cpp mingw32-cross-binutils mingw32-cross-gcc mingw32-runtime mingw32-headers The cross toolchain packages for your distribution may have slightly different names (look for packages named *mingw*). PCI-based programmers (internal etc.) are not supported on Windows. Run (change CC= and STRIP= settings where appropriate) make CC=i686-w64-mingw32-gcc STRIP=i686-w64-mingw32-strip Processor architecture dependent features: On non-x86 architectures a few programmers don't work (yet) because they use port-based I/O which is not directly available on non-x86. Those programmers will be disabled automatically if you run "make". Compiler quirks: If you are using clang and if you want to enable only one driver, you may hit an overzealous compiler warning from clang. Compile with "make WARNERROR=no" to force it to continue and enjoy. Installation ------------ In order to install flashrom and the manpage into /usr/local, type: make install For installation in a different directory use DESTDIR, e.g. like this: make DESTDIR=/usr install If you have insufficient permissions for the destination directory, use sudo by adding sudo in front of the commands above. Contact ------- The official flashrom website is: http://www.flashrom.org/ Available contact methods are https://www.flashrom.org/Contact
flashrom is a utility for detecting, reading, writing, verifying and erasing flash chips
Overview
Comments
-
mec1308.c build failed
septs@CBDesktop02 ~ $ brew install flashrom --HEAD Updating Homebrew... ==> Cloning https://review.coreboot.org/flashrom.git Updating /Users/septs/Library/Caches/Homebrew/flashrom--git ==> Checking out branch master Already on 'master' Your branch is up to date with 'origin/master'. HEAD is now at 06ca247 flashrom.c,flash.h: Kill dead fn shutdown_free() ==> make DESTDIR=/usr/local/Cellar/flashrom/HEAD-06ca247 PREFIX=/ install Last 15 lines from /Users/septs/Library/Logs/Homebrew/flashrom/01.make: 2 errors generated. make: *** [ene_lpc.o] Error 1 make: *** Waiting for unfinished jobs.... mec1308.c:512:2: error: use of undeclared identifier 'internal_buses_supported'; did you mean 'get_buses_supported'? internal_buses_supported |= BUS_LPC; /* for LPC <--> SPI bridging */ ^~~~~~~~~~~~~~~~~~~~~~~~ get_buses_supported ./flash.h:424:18: note: 'get_buses_supported' declared here enum chipbustype get_buses_supported(void); ^ mec1308.c:512:27: error: invalid operands to binary expression ('enum chipbustype (void)' and 'int') internal_buses_supported |= BUS_LPC; /* for LPC <--> SPI bridging */ ~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~ 2 errors generated. make: *** [mec1308.o] Error 1 READ THIS: https://docs.brew.sh/Troubleshooting Please create pull requests instead of asking for help on Homebrew's GitHub, Discourse, Twitter or IRC.
follow commit: https://github.com/flashrom/flashrom/commit/821e44cb4dc23ca1261a92b3ee3cdf591c1da91b ?
OS: macOS Catalina, clang 12
-
Option to force write if image file is smaller than target chip.
Tested with 25 series SPI flash on various TV boards, STBs and routers. It even somehow pass verification. Unused area got filled with hex 00, though it doesn't matter, at least for my applications. I don't really like my text messages and key "-S", so change it, if you have better ideas.
-
Debugger outputting 512kB instead of 256kB?
Referencing: https://github.com/kreyware/repairs/issues/1
I have CH341A trying to flash GV-RXVEGA56GAMING with VBIOS 016.001.001.000.033736 which is 256kB, but flashrom [flashrom v1.2-204-gb05c9b1-dirty on Linux 5.10.0-3-amd64 (x86_64)] reads it as 512kB which would make it one of a kind Vega 56 and refuses to write.
Can you provide more info?
Saving the read ROM gives me 512kB image.
LOG: https://gist.github.com/Kreyren/3c2582bb6f01aa6cf5da8be68e3cbb41
-
hwaccess: use __asm__ as is done elsewhere
Fixes compilation under powerpc platform. Made the change for the SPARC platform as well.
../hwaccess.c: In function 'sync_primitive': ../hwaccess.c:74:2: warning: implicit declaration of function 'asm' [-Wimplicit-function-declaration] 74 | asm("eieio" : : : "memory"); | ^~~ ../hwaccess.c:74:13: error: expected ')' before ':' token 74 | asm("eieio" : : : "memory");
Signed-off-by: Rosen Penev [email protected]
-
Some Meson fixes and enhancements
A handful of changes I have noticed Meson scripts still needed to get closer to feature parity with the Makefile:
- make it actually possible to build flashrom with the bitbang_spi back-end disabled;
- fix dependencies of drivers utilising raw hardware access;
- fix dependencies of stlinkv3_spi and usbblaster_spi;
- make it possible to enable jlink_spi;
- make the group-wide off switches for libusb and libpci programmers stay more in sync with options for individual programmers;
- introduce similar group logic for libftdi programmers.
-
Reading old flash chip contents... Transaction error
System Information
Manufacturer: Inspur Product Name: SA5212M5 Version: 00001
Base Board Information
Manufacturer: Inspur Product Name: NF5280M5 Version: NF5280M5
BIOS Information
Vendor: Inspur Version: 4.0.6 Release Date: 03/07/2019
run log
[root@T64 ~/rt_flash_rom]# ./flashrom -p internal -r flashrom_backup.bin flashrom on Linux 3.10.107-1-tlinux2_nosign_test1-0047 (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found chipset "Intel C622 Series Chipset (QS/PRQ)". This chipset is marked as untested. If you are using an up-to-date version of flashrom *and* were (not) able to successfully update your firmware with it, then please email a report to [email protected] including a verbose (-V) log. Thank you! Enabling flash write... SPI Configuration is locked down. FREG2: Management Engine region (0x00003000-0x007dffff) is locked. Not all flash regions are freely accessible by flashrom. This is most likely due to an active ME. Please see https://flashrom.org/ME for details. At least some flash regions are read protected. You have to use a flash layout and include only accessible regions. For write operations, you'll additionally need the --noverify-all switch. See manpage for more details. Enabling hardware sequencing because some important opcode is locked. OK. Found Programmer flash chip "Opaque flash chip" (32768 kB, Programmer-specific) mapped at physical address 0x0000000000000000. Reading flash... Transaction error between offset 0x00003000 and 0x0000303f (= 0x00003000 + 63)! Read operation failed! FAILED. [root@T64 ~/rt_flash_rom]# ./flashrom -p internal -w ./Fake_for_flash.bin flashrom on Linux 3.10.107-1-tlinux2_nosign_test1-0047 (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found chipset "Intel C622 Series Chipset (QS/PRQ)". This chipset is marked as untested. If you are using an up-to-date version of flashrom *and* were (not) able to successfully update your firmware with it, then please email a report to [email protected] including a verbose (-V) log. Thank you! Enabling flash write... SPI Configuration is locked down. FREG2: Management Engine region (0x00003000-0x007dffff) is locked. Not all flash regions are freely accessible by flashrom. This is most likely due to an active ME. Please see https://flashrom.org/ME for details. At least some flash regions are read protected. You have to use a flash layout and include only accessible regions. For write operations, you'll additionally need the --noverify-all switch. See manpage for more details. Enabling hardware sequencing because some important opcode is locked. OK. Found Programmer flash chip "Opaque flash chip" (32768 kB, Programmer-specific) mapped at physical address 0x0000000000000000. Reading old flash chip contents... Transaction error between offset 0x00003000 and 0x0000303f (= 0x00003000 + 63)! FAILED. [root@T64 ~/rt_flash_rom]#
-
[patch] Support for MB ASUS P4P800SE
--- flashrom.orig/board_enable.c 2018-01-23 23:30:42.346381000 +0300 +++ flashrom/board_enable.c 2018-01-24 01:20:30.603030000 +0300 @@ -2360,6 +2360,7 @@ {0x8086, 0x2570, 0x1043, 0x80f2, 0x8086, 0x24d3, 0x1043, 0x80a6, "^P4P800-E$", NULL, NULL, P3, "ASUS", "P4P800-E Deluxe", 0, OK, intel_ich_gpio21_raise}, {0x8086, 0x2570, 0x1043, 0x80a5, 0x8086, 0x24d3, 0x1043, 0x80a6, "^P4P800-VM$", NULL, NULL, P3, "ASUS", "P4P800-VM", 0, OK, intel_ich_gpio21_raise}, {0x8086, 0x2570, 0x1043, 0x80f2, 0x8086, 0x24d3, 0x1043, 0x80a6, "^P4P800-X$", NULL, NULL, P3, "ASUS", "P4P800-X", 0, OK, intel_ich_gpio21_raise}, + {0x8086, 0x2570, 0x1043, 0x80f2, 0x8086, 0x24d3, 0, 0, "^P4P800SE$", NULL, NULL, P3, "ASUS", "P4P800SE", 0, OK, intel_ich_gpio21_raise}, {0x8086, 0x2570, 0x1043, 0x80b2, 0x8086, 0x24c3, 0x1043, 0x8089, "^P4PE-X/TE$",NULL, NULL, P3, "ASUS", "P4PE-X/TE", 0, NT, intel_ich_gpio21_raise}, {0x1039, 0x0651, 0x1043, 0x8081, 0x1039, 0x0962, 0, 0, NULL, NULL, NULL, P3, "ASUS", "P4SC-E", 0, OK, it8707f_write_enable_2e}, {0x8086, 0x2570, 0x1043, 0x80A5, 0x105A, 0x24D3, 0x1043, 0x80A6, NULL, NULL, NULL, P3, "ASUS", "P4SD-LA", 0, NT, intel_ich_gpio32_raise}, diff -ur flashrom.orig/print.c flashrom/print.c --- flashrom.orig/print.c 2018-01-23 23:30:42.376649000 +0300 +++ flashrom/print.c 2018-01-24 00:10:02.819518000 +0300 @@ -679,6 +679,7 @@ B("ASUS", "P4P800-E Deluxe", OK, "http://www.asus.com/Motherboards/Intel_Socket_478/P4P800E_Deluxe/", NULL), B("ASUS", "P4P800-VM", OK, "http://www.asus.com/Motherboards/Intel_Socket_478/P4P800VM/", NULL), B("ASUS", "P4P800-X", OK, "http://www.asus.com/Motherboards/Intel_Socket_478/P4P800X/", NULL), + B("ASUS", "P4P800SE", OK, "https://www.asus.com/supportonly/P4P800 SE/", NULL), B("ASUS", "P4PE-X/TE", NT, "http://www.asus.com/999/html/events/mb/socket478/p4pe-x-te/overview.htm", NULL), B("ASUS", "P4S533-X", OK, NULL, NULL), B("ASUS", "P4S800-MX", OK, "http://www.asus.com/Motherboards/Intel_Socket_478/P4S800MX/", NULL),
# flashrom/flashrom -p internal -w P4P800SE-ASUS-1012.001 flashrom 0.9.9-115-g25fde40-dirty on FreeBSD 11.1-RELEASE (i386) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 4, resolution: 1ns). Found chipset "Intel ICH5/ICH5R". Enabling flash write... OK. Enabling full flash access for board "ASUS P4P800SE"... OK. Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0xfff80000. Reading old flash chip contents... done. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED.
-
Request support for RISC-V architecture platform
I encountered an architecture unsupported error when I tried to build flashrom on archlinux-riscv
❯ rv64build ==> 获取源代码... -> 找到 flashrom-v1.2.tar.bz2 -> 找到 flashrom-v1.2.tar.bz2.asc ==> 正在为源代码文件创建完整性检查值... [sudo] password for taotieren: :: Synchronizing package databases... core downloading... extra downloading... community downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (1) Old Version New Version Net Change Download Size core/libxcrypt 4.4.28-1 4.4.28-2 0.00 MiB 0.09 MiB Total Download Size: 0.09 MiB Total Installed Size: 0.18 MiB Net Upgrade Size: 0.00 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... libxcrypt-4.4.28-2-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading libxcrypt... ==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [taotieren]...done ==> Making package: flashrom 1.2-2 (Sat Feb 26 16:06:54 2022) ==> Retrieving sources... -> Found flashrom-v1.2.tar.bz2 -> Found flashrom-v1.2.tar.bz2.asc ==> Validating source files with sha256sums... flashrom-v1.2.tar.bz2 ... Passed flashrom-v1.2.tar.bz2.asc ... Skipped ==> Verifying source file signatures with gpg... flashrom-v1.2.tar.bz2 ... Passed ==> Making package: flashrom 1.2-2 (Sat 26 Feb 2022 04:07:07 PM CST) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (7) New Version Net Change community/confuse 3.3-3 0.12 MiB core/hwdata 0.356-1 1.98 MiB core/kmod 29-1 0.21 MiB core/libusb 1.0.25-2 0.18 MiB community/libftdi 1.5-4 0.47 MiB extra/libusb-compat 0.1.7-1 0.03 MiB core/pciutils 3.7.0-2 0.24 MiB Total Installed Size: 3.24 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libusb... installing confuse... installing libftdi... Optional dependencies for libftdi python: library bindings installing hwdata... installing kmod... installing pciutils... installing libusb-compat... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (14) New Version Net Change core/libnsl 2.0.0-2 0.06 MiB community/ninja 1.10.2-1 0.21 MiB extra/perl-error 0.17029-3 0.04 MiB extra/perl-mailtools 2.21-5 0.11 MiB extra/perl-timedate 2.33-3 0.08 MiB core/python 3.10.1-2 79.11 MiB extra/python-appdirs 1.4.4-6 0.07 MiB community/python-more-itertools 8.10.0-4 0.32 MiB extra/python-ordered-set 4.0.2-6 0.06 MiB extra/python-packaging 21.0-1 0.26 MiB extra/python-pyparsing 3.0.0-1 0.93 MiB extra/python-setuptools 1:59.1.0-1 2.95 MiB extra/git 2.35.1-1 29.55 MiB extra/meson 0.61.2-1 7.61 MiB Total Installed Size: 121.37 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libnsl... installing python... Optional dependencies for python python-setuptools [pending] python-pip sqlite [installed] mpdecimal: for decimal xz: for lzma [installed] tk: for tkinter installing python-appdirs... installing python-more-itertools... installing python-ordered-set... installing python-pyparsing... Optional dependencies for python-pyparsing python-railroad-diagrams: for generating Railroad Diagrams python-jinja: for generating Railroad Diagrams installing python-packaging... installing python-setuptools... installing ninja... installing meson... installing perl-error... installing perl-timedate... installing perl-mailtools... installing git... Optional dependencies for git tk: gitk and git gui perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] :: Running post-transaction hooks... (1/1) Warn about old perl modules ==> Retrieving sources... -> Found flashrom-v1.2.tar.bz2 -> Found flashrom-v1.2.tar.bz2.asc ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting flashrom-v1.2.tar.bz2 with bsdtar ==> Starting build()... + exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_lto=true -D b_pie=true ../build The Meson build system Version: 0.61.2 Source dir: /build/flashrom/src/flashrom-v1.2 Build dir: /build/flashrom/src/build Build type: native build WARNING: You should add the boolean check kwarg to the run_command call. It currently defaults to false, but it will default to true in future releases of meson. See also: https://github.com/mesonbuild/meson/issues/9300 Project name: flashromutils Project version: v1.2 C compiler for the host machine: cc (gcc 11.2.0 "cc (GCC) 11.2.0") C linker for the host machine: cc ld.bfd 2.38 Host machine cpu family: riscv64 Host machine cpu: riscv64 Compiler for C supports arguments -Wwrite-strings: YES Compiler for C supports arguments -Wno-unused-parameter: YES Compiler for C supports arguments -Wno-address-of-packed-member: YES Compiler for C supports arguments -Wno-enum-conversion: YES Compiler for C supports arguments -Wno-missing-braces: YES Checking for function "clock_gettime" : YES Checking for function "strnlen" : YES Check usable header "sys/utsname.h" : YES Found pkg-config: /usr/bin/pkg-config (1.8.0) Run-time dependency libusb-1.0 found: YES 1.0.25 Run-time dependency libpci found: YES 3.7.0 Run-time dependency libftdi1 found: YES 1.5 Build targets in project: 3 flashromutils v1.2 User defined options auto_features: enabled buildtype : plain libexecdir : lib prefix : /usr sbindir : bin wrap_mode : nodownload b_lto : true b_pie : true Found ninja-1.10.2 at /usr/bin/ninja ninja: Entering directory `../build' [1/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/drkaiser.c.o -MF libflashrom.so.1.0.0.p/drkaiser.c.o.d -o libflashrom.so.1.0.0.p/drkaiser.c.o -c ../flashrom-v1.2/drkaiser.c FAILED: libflashrom.so.1.0.0.p/drkaiser.c.o cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/drkaiser.c.o -MF libflashrom.so.1.0.0.p/drkaiser.c.o.d -o libflashrom.so.1.0.0.p/drkaiser.c.o -c ../flashrom-v1.2/drkaiser.c In file included from ../flashrom-v1.2/drkaiser.c:20: ../flashrom-v1.2/hwaccess.h:300:2: error: #error Unknown architecture, please check if it supports PCI port IO. 300 | #error Unknown architecture, please check if it supports PCI port IO. | ^~~~~ [2/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/atavia.c.o -MF libflashrom.so.1.0.0.p/atavia.c.o.d -o libflashrom.so.1.0.0.p/atavia.c.o -c ../flashrom-v1.2/atavia.c FAILED: libflashrom.so.1.0.0.p/atavia.c.o cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/atavia.c.o -MF libflashrom.so.1.0.0.p/atavia.c.o.d -o libflashrom.so.1.0.0.p/atavia.c.o -c ../flashrom-v1.2/atavia.c In file included from ../flashrom-v1.2/atavia.c:23: ../flashrom-v1.2/hwaccess.h:300:2: error: #error Unknown architecture, please check if it supports PCI port IO. 300 | #error Unknown architecture, please check if it supports PCI port IO. | ^~~~~ [3/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/pcidev.c.o -MF libflashrom.so.1.0.0.p/pcidev.c.o.d -o libflashrom.so.1.0.0.p/pcidev.c.o -c ../flashrom-v1.2/pcidev.c FAILED: libflashrom.so.1.0.0.p/pcidev.c.o cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/pcidev.c.o -MF libflashrom.so.1.0.0.p/pcidev.c.o.d -o libflashrom.so.1.0.0.p/pcidev.c.o -c ../flashrom-v1.2/pcidev.c In file included from ../flashrom-v1.2/pcidev.c:22: ../flashrom-v1.2/hwaccess.h:300:2: error: #error Unknown architecture, please check if it supports PCI port IO. 300 | #error Unknown architecture, please check if it supports PCI port IO. | ^~~~~ [4/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/usbdev.c.o -MF libflashrom.so.1.0.0.p/usbdev.c.o.d -o libflashrom.so.1.0.0.p/usbdev.c.o -c ../flashrom-v1.2/usbdev.c [5/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/developerbox_spi.c.o -MF libflashrom.so.1.0.0.p/developerbox_spi.c.o.d -o libflashrom.so.1.0.0.p/developerbox_spi.c.o -c ../flashrom-v1.2/developerbox_spi.c [6/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/ch341a_spi.c.o -MF libflashrom.so.1.0.0.p/ch341a_spi.c.o.d -o libflashrom.so.1.0.0.p/ch341a_spi.c.o -c ../flashrom-v1.2/ch341a_spi.c [7/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/digilent_spi.c.o -MF libflashrom.so.1.0.0.p/digilent_spi.c.o.d -o libflashrom.so.1.0.0.p/digilent_spi.c.o -c ../flashrom-v1.2/digilent_spi.c [8/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/buspirate_spi.c.o -MF libflashrom.so.1.0.0.p/buspirate_spi.c.o.d -o libflashrom.so.1.0.0.p/buspirate_spi.c.o -c ../flashrom-v1.2/buspirate_spi.c [9/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/dummyflasher.c.o -MF libflashrom.so.1.0.0.p/dummyflasher.c.o.d -o libflashrom.so.1.0.0.p/dummyflasher.c.o -c ../flashrom-v1.2/dummyflasher.c [10/140] cc -Ilibflashrom.so.1.0.0.p -I. -I../flashrom-v1.2 -I/usr/include/libusb-1.0 -I/usr/include/libftdi1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c99 -Wwrite-strings -Wno-unused-parameter -Wno-address-of-packed-member -Wno-enum-conversion -Wno-missing-braces -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE -D_BSD_SOURCE '-DFLASHROM_VERSION="v1.2"' -DHAVE_CLOCK_GETTIME=1 -DHAVE_STRNLEN=1 -DHAVE_UTSNAME=1 -march=rv64gc -mabi=lp64d -O2 -pipe -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -flto -fPIC -DNEED_PCI=1 -DCONFIG_ATAVIA=1 -DCONFIG_BUSPIRATE_SPI=1 -DCONFIG_CH341A_SPI=1 -DCONFIG_DEDIPROG=1 -DCONFIG_DEVELOPERBOX_SPI=1 -DCONFIG_DIGILENT_SPI=1 -DCONFIG_DRKAISER=1 -DCONFIG_DUMMY=1 -DCONFIG_FT2232_SPI=1 -DHAVE_FT232H=1 -DCONFIG_GFXNVIDIA=1 -DCONFIG_INTERNAL=1 -DCONFIG_INTERNAL_DMI=1 -DCONFIG_IT8212=1 -DCONFIG_LINUX_MTD=1 -DCONFIG_LINUX_SPI=1 -DCONFIG_NIC3COM=1 -DCONFIG_NICINTEL=1 -DCONFIG_NICINTEL_EEPROM=1 -DCONFIG_NICINTEL_SPI=1 -DCONFIG_NICREALTEK=1 -DCONFIG_OGP_SPI=1 -DCONFIG_PICKIT2_SPI=1 -DCONFIG_PONY_SPI=1 -DCONFIG_RAYER_SPI=1 -DCONFIG_SATAMV=1 -DCONFIG_SATASII=1 -DCONFIG_SERPROG=1 -DCONFIG_USBBLASTER_SPI=1 -DCONFIG_STLINKV3_SPI=1 -DCONFIG_BITBANG_SPI=1 -DNEED_RAW_ACCESS=1 -MD -MQ libflashrom.so.1.0.0.p/dediprog.c.o -MF libflashrom.so.1.0.0.p/dediprog.c.o.d -o libflashrom.so.1.0.0.p/dediprog.c.o -c ../flashrom-v1.2/dediprog.c ninja: build stopped: subcommand failed. ==> ERROR: A failure occurred in build(). Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/taotieren/build
-
Add support for Winbond W25X05CL
This commit adds support for the Winbond W25X05CL SPI flash chip. The Winbond W25X05CL is a 512K-BIT SPI flash chip with 4KB sectors. I have tested this patch with a Bus Pirate (v3b) and an in-circuit W25X05CL flash chip using a test clip. Reading, erasing, and writing all function as expected.
Datasheet: http://www.winbond.com/resource-files/w25x05cl_f%2004252017.pdf
Change-Id: I3d387b4bd711e7d80f0e912a7236e5a75515a1c7 Signed-off-by: Jacob Appelbaum [email protected]
-
Tag a new flashrom release
Any chance at tagged a new release soon? Since https://github.com/flashrom/flashrom/commit/cb97368328bc68698ab7e58a6d692635dfb1b1c7#diff-969b60ad3d206fd45c208e266ccfed38 happened and fwupd grew flashrom support it would be good to start pushing distros to adopt it in library form so it can be used in more places.
Right now it's off by default in fwupd other than CI, but it would be good to expand. (https://github.com/fwupd/fwupd/pull/1327)
-
Erase fails on some W25Q128FV and W25Q128JV using Raspberry Pi 2
EDIT: See the solution at the bottom. Can someone update the Wiki, please?
My programmer is a Raspberry Pi 2. I have two batches of W25Q128FVs and one of W25Q128JVs. One of the W25Q128FV batches can be erased and written perfectly using flashrom. The other one and the W25Q128JV batch fail to erase the chip. All of these chips can be erased and written on OpenWrt routers. Even stranger: The batch that can be erased using flashrom can't be erased using a TL866 II Plus, while the others work perfectly fine.
-
Documentation at https://www.flashrom.org/Per_region_file_arguments
I have read https://www.flashrom.org/Per_region_file_arguments but have problems with it.
It lists alternatives rather than stating what is implemented. For example the filename after the -w option is mandatory.
I see there is a Chromium fork. Please document the relationship between this repository and the Chromium fork and say whether that one considered better or what.
I simply want to write a region with a region-sized file yet none of the alternative syntaxes in the table actually work. I see that way back in the time of 0.9.8 the error about the file supplied being to short was commented out.
-
cli_classic.c:718:13: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'}
Compiling on Raspberry Pi using Debian Bullseye fails with this error:
root@raspberrypi:~/flashrom# make Replacing all version templates with v1.2-642-g4bee256. C compiler found: cc (Raspbian 10.2.1-6+rpi1) 10.2.1 20210110 Target arch: arm Target OS: Linux Target endian: little Dependency libpci found: yes Checking for old "pci_get_dev()": no CFLAGS: -I/usr/include/arm-linux-gnueabihf LDFLAGS: -lpci -lz -lresolv -ludev Dependency libusb1 found: no Dependency libjaylink found: no Dependency NI-845x found: no Dependency libftdi1 found: no Checking for header "mtd/mtd-user.h": yes Checking for header "linux/spi/spidev.h": yes Checking for header "linux/i2c-dev.h": yes Checking for header "linux/i2c.h": yes Checking for header "sys/utsname.h": yes Checking for function "clock_gettime": yes Checking for external "librt": yes cc -MMD -Os -Wall -Wextra -Wno-unused-parameter -Wshadow -Wmissing-prototypes -Wwrite-strings -Werror -I/usr/include/arm-linux-gnueabihf -D'IS_WINDOWS=0' -D'__FLASHROM_LITTLE_ENDIAN__=1' -D'USE_IOPL=1' -D'USE_DEV_IO=0' -D'USE_IOPERM=0' -D'CONFIG_DEFAULT_PROGRAMMER_NAME=NULL' -D'CONFIG_DEFAULT_PROGRAMMER_ARGS=""' -D'CONFIG_INTERNAL=1' -D'CONFIG_INTERNAL_DMI=1' -D'CONFIG_SERPROG=1' -D'CONFIG_PONY_SPI=1' -D'CONFIG_BITBANG_SPI=1' -D'CONFIG_GFXNVIDIA=1' -D'CONFIG_SATASII=1' -D'CONFIG_ATAVIA=1' -D'CONFIG_IT8212=1' -D'CONFIG_DUMMY=1' -D'CONFIG_DRKAISER=1' -D'CONFIG_NICINTEL=1' -D'CONFIG_NICINTEL_SPI=1' -D'CONFIG_NICINTEL_EEPROM=1' -D'CONFIG_OGP_SPI=1' -D'CONFIG_BUSPIRATE_SPI=1' -D'CONFIG_LINUX_MTD=1' -D'CONFIG_LINUX_SPI=1' -D'NEED_PCI=1' -D'HAVE_UTSNAME=1' -D'HAVE_CLOCK_GETTIME=1' -D'FLASHROM_VERSION="v1.2-642-g4bee256"' -o cli_classic.o -c cli_classic.c cli_classic.c: In function 'main': cli_classic.c:718:13: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=] 718 | printf("%ld\n", flashrom_flash_getsize(fill_flash)); | ~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | | | size_t {aka unsigned int} | long int | %d cc1: all warnings being treated as errors make: *** [Makefile:968: cli_classic.o] Fehler 1
-
Simplify disabling incompatible programmers on Windows
Background
As it stands, there are four categories of programmer that are unsupported by Flashrom on Windows. They are:
- Linux-specific programmers:
linux_mtd
andlinux_spi
- PCI programmers:
atahpt
,atapromise
,atavia
,drkaiser
,gfxnvidia
,internal
,it8212
,nic3com
,nicintel
,nicintel_eeprom
,nicintel_spi
,nicnatsemi
,nicrealtek
,ogp_spi
,satamv
, andsatasii
- Programmers that need x86 MSR or port IO:
internal
,atahpt
,atapromise
,nic3com
,nicnatsemi
,nicrealtek
,rayer_spi
, andsatamv
- I²C programmers:
lspcon_i2c_spi
,mediatek_i2c_spi
, andrealtek_mst_i2c_spi
Perhaps some of these should be supported in the future! However, at the moment, they're incompatible with Windows.
The problem
In the latest stable version of Flashrom, v1.2, it sufficed to specify
-Dpciutils=false
,-Dconfig_linux_mtd=false
, and-Dconfig_linux_spi=false
. Disablingpciutils
automatically disabled PCI programmers. However, when building the latest commit (b9e8b89), it requires you to manually disable each programmer – otherwise it'll error out, either saying “one or more enabled programmer requires PCI access”, or producing a mysterious compiler or linker error. Thus, the command currently required to build at all on Windows is the unwieldy:meson \ -Dpciutils=false \ -Dconfig_atahpt=false \ -Dconfig_atapromise=false \ -Dconfig_atavia=false \ -Dconfig_drkaiser=false \ -Dconfig_gfxnvidia=false \ -Dconfig_internal=false \ -Dconfig_it8212=false \ -Dconfig_linux_mtd=false \ -Dconfig_linux_spi=false \ -Dconfig_lspcon_i2c_spi=false \ -Dconfig_mediatek_i2c_spi=false \ -Dconfig_nic3com=false \ -Dconfig_nicintel=false \ -Dconfig_nicintel_eeprom=false \ -Dconfig_nicintel_spi=false \ -Dconfig_nicnatsemi=false \ -Dconfig_nicrealtek=false \ -Dconfig_ogp_spi=false \ -Dconfig_rayer_spi=false \ -Dconfig_realtek_mst_i2c_spi=false \ -Dconfig_satamv=false \ -Dconfig_satasii=false \ --prefix="${MINGW_PREFIX}" \ --wrap-mode=nodownload \ --auto-features=enabled \ --buildtype=plain \ build meson compile
I personally wrestled with this for days before I managed to find a combination of options that worked (creating #243 and #244, now closed, in the process). It's clear that it's not the most user-friendly build flow!
The fix
I suggest doing one of the following:
- Automatically disable incompatible programmers when the system is detected to be Windows.
- Provide override options to disable whole categories at once (say,
-Dconfig_no_libpci=true
, etc., or even-Dconfig_windows_programmers_only=true
).
Which would you rather be implemented?
Build instructions
To build on Windows to test this, go through the following steps:
- Install MSYS2 on Windows.
- Open the “MSYS2 MinGW x64” shell.
- Run
pacman -S git base-devel pactoys
. - Run
pacboy -S meson cc pkg-config libftdi libusb
. - Clone the repo and
cd
into it:git clone https://github.com/flashrom/flashrom.git && cd flashrom
. - Run the following command to attempt to build:
meson \ -Dpciutils=false \ -Dconfig_atahpt=false \ -Dconfig_atapromise=false \ -Dconfig_atavia=false \ -Dconfig_drkaiser=false \ -Dconfig_gfxnvidia=false \ -Dconfig_internal=false \ -Dconfig_it8212=false \ -Dconfig_linux_mtd=false \ -Dconfig_linux_spi=false \ -Dconfig_lspcon_i2c_spi=false \ -Dconfig_mediatek_i2c_spi=false \ -Dconfig_nic3com=false \ -Dconfig_nicintel=false \ -Dconfig_nicintel_eeprom=false \ -Dconfig_nicintel_spi=false \ -Dconfig_nicnatsemi=false \ -Dconfig_nicrealtek=false \ -Dconfig_ogp_spi=false \ -Dconfig_rayer_spi=false \ -Dconfig_realtek_mst_i2c_spi=false \ -Dconfig_satamv=false \ -Dconfig_satasii=false \ --prefix="${MINGW_PREFIX}" \ --wrap-mode=nodownload \ --auto-features=enabled \ --buildtype=plain \ ./build cd build && meson compile
- Linux-specific programmers:
-
New Windows build instructions?
I recently spent about a full day trying to build Flashrom on Windows! I initially attempted to follow the instructions on the wiki, but they work neither for the latest stable release (1.2) nor the latest commit (ff4c624) – instead yielding errors like
Checking for libpci headers... not found.
andChecking for libusb-1.0 headers... not found.
. The instructions allude to using MSYS2 rather than the ancient version of MinGW recommended, but doesn't specify instructions on how.Eventually, I managed to build Flashrom 1.2 via MSYS2 by doing the following:
- Install MSYS2.
- Run the “MSYS2 MinGW x64” shell.
- Run
pacman -Syu
to update packages. - Run
pacman -S binutils
. - MSYS2 has a Flashrom package now, so run
wget https://raw.githubusercontent.com/msys2/MINGW-packages/master/mingw-w64-flashrom/PKGBUILD
. - Run
makepkg-mingw -sCLf
. - Manually copy
libusb-1.0.dll
,libftdi1.dll
, andlibwinpthread-1.dll
from/mingw64/bin
into the build directorypkg/mingw-w64-x86_64-flashrom/mingw64/bin/flashrom.exe
and deletelibflashrom-1.dll
. - The build directory
pkg/mingw-w64-x86_64-flashrom/mingw64/bin/
now containsflashrom.exe
and everything needed to run it on Windows.
This was a bit of an involved process, and I'm not sure manually copying DLLs is the best way to do things, so I wouldn't be comfortable saying these are the build instructions to recommend, but… either way, I think Flashrom needs new build instructions for Windows!
-
"Intel Apollo Lake"
Warning: unexpected second chipset match: "Intel Apollo Lake" ignoring, please report lspci and board URL to [email protected] with 'CHIPSET: your board name' in the subject line. Found Winbond flash chip "W25Q128.JW.DTR" (16384 kB, Programmer-specific) mapped at physical address 0x0000000000000000. Block protection could not be disabled! Reading flash... done. SUCCESS FMAP REGION: RW_LEGACY Name Offset Type Size Comp payload 0x0 simple elf 53662 none seavgabios.rom 0xd200 optionrom 28672 none links 0x14240 raw 796 none bootorder 0x145c0 raw 465 none etc/boot-menu-key 0x14800 raw 8 none etc/boot-menu-message 0x14880 raw 28 none etc/boot-menu-wait 0x14900 raw 8 none (empty) 0x14980 null 2012696 none
Flashrom/serprog compatible firmware for the Raspberry Pi Pico
pico-serprog This is a very basic flashrom/serprog compatible SPI flash reader/writer for the Raspberry Pi Pico. It does not require a custom version
A tool for detecting manual/direct syscalls in x86 and x64 processes using Nirvana Hooks.
manual-syscall-detect A tool for detecting manual/direct syscalls in x86 and x64 processes using Nirvana Hooks. Description A full write-up of this to
PoC capable of detecting manual syscalls from usermode.
syscall-detect PoC capable of detecting manual syscalls from usermode. More information available at: https://winternl.com/detecting-manual-syscalls-f
Gesture-Detecting-Macro-Keyboard - Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32.
Gesture detection tldr; Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32. Main feat
Tool for detecting violations of ordering axioms in STL comparators
SortChecker++ is an extension of SortChecker tool to C++ sorting APIs like std::sort or std::binary_search. It verifies that comparators satisfy the S
Arduino-controlled bed that helps in reducing rate of disease infection by detecting whether a person accessed the safe space of a subject who is infected
Infection Control Bed BACKGROUND Spread of COVID-19 occurs via airborne parricels and droplets. People who are infected with COVID an release particle
bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of RISC-V based chips in the future.
bl mcu sdk is an MCU software development kit provided by the Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of chips in the future
Get the current average CPU frequency on Apple M1 chips.
M1 CPU Frequency Get the current average CPU frequency on Apple M1 chips. Usage Download the precompiled binary from the releases and run it in the te
Experiments with Mozzi, mostly on SAMD21 chips
mozzi_experiments Experiments with Mozzi, mostly on SAMD21 chips Sketches eighties_dystopia - A swirling ominous wub that evolves over time Demos "eig
This software brings you the possibility to Read and Write the internal Flash of the Nordic nRF52 series with an ESP32
ESP32 nRF52 SWD flasher This software brings you the possibility to Read and Write the internal Flash of the Nordic nRF52 series with an ESP32 using t
pre-built coreboot images and documentation on how to flash them for Thinkpad Laptops
Skulls - not quite Heads pre-built coreboot images with an easy installation process Skulls makes it easy to install an unlocked, up-to-date and easy
NightDriverStrip is a source code package for building a flash program that you upload to the ESP32 microcontroller.
NightDriverStrip is a source code package for building a flash program that you upload to the ESP32 microcontroller.
Open Source STC8G/STC8H ISP flash tool
stc8prog - STC MCU ISP flash tool stc8prog is a command line flash programming tool for STC 8051 series microcontrollers, Currently, only STC8H/STC8G/
Flash-DBSim Simulation System
Flash-DBSim Simulation System Flash-DBSim is a simulation tool for evaluating Flash-based database algorithms used for flash-based researches, we'd li
Everdrive application for backup/restore XBAND SRAM & (Flash) ROM
XBAND Swiss Army knife (xband_sak) xband_sak is an Everdrive MD (including clones) RAM application for the Sega Mega Drive/Genesis with the following
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.
______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __
Reading ADC of NodeMCU and sending data to QT Application over UDP
QT-NodeMCU-Application Reading ADC of NodeMCU and sending data to QT Application over UDP The following program should be used to run Lua Script: http
Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file.
ExecFS Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file. $ ./ex
A place to collaborate on code for the Embedded.fm book club. Currently reading "STM32 ARM Programming for Embedded Systems".
Welcome to the Book Club Code site! This is a place for the Embedded.fm book club to collaborate and learn together. Repo Structure Guide Top-level fo