diff --git a/utils/flashrom/Makefile b/utils/flashrom/Makefile index 6fee21da1f..e75add75ed 100644 --- a/utils/flashrom/Makefile +++ b/utils/flashrom/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=flashrom -PKG_VERSION:=1.2.1 +PKG_VERSION:=1.3.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://download.flashrom.org/releases -PKG_HASH:=89a7ff5beb08c89b8795bbd253a51b9453547a864c31793302296b56bbc56d65 +PKG_HASH:=a053234453ccd012e79f3443bdcc61625cf97b7fd7cb4cdd8bfbffbe8b149623 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-v$(PKG_VERSION) PKG_MAINTAINER:=Álvaro Fernández Rojas @@ -67,6 +67,17 @@ define Package/flashrom-usb VARIANT:=usb endef +define Package/libflashrom + $(Package/flashrom/default) + TITLE+= (library) + DEPENDS+= \ + +(TARGET_x86||TARGET_x86_64):dmidecode \ + +libftdi1 \ + +libusb-1.0 \ + +pciutils + VARIANT:=full +endef + define Package/flashrom/default/description flashrom is an utility for identifying, reading, writing, verifying and erasing flash chips. It's often used to flash BIOS/EFI/coreboot @@ -76,6 +87,16 @@ Package/flashrom/description = $(Package/flashrom/default/description) Package/flashrom-pci/description = $(Package/flashrom/default/description) Package/flashrom-spi/description = $(Package/flashrom/default/description) Package/flashrom-usb/description = $(Package/flashrom/default/description) +Package/libflashrom/description = $(Package/flashrom/default/description) + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libflashrom.so* $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/flashrom.pc $(1)/usr/lib/pkgconfig/ +endef define Package/flashrom/install $(INSTALL_DIR) $(1)/usr/sbin @@ -93,8 +114,13 @@ define Package/flashrom-usb/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-usb endef +define Package/libflashrom/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libflashrom.so* $(1)/usr/lib/ +endef $(eval $(call BuildPackage,flashrom)) $(eval $(call BuildPackage,flashrom-pci)) $(eval $(call BuildPackage,flashrom-spi)) $(eval $(call BuildPackage,flashrom-usb)) +$(eval $(call BuildPackage,libflashrom)) diff --git a/utils/flashrom/flashrom.mk b/utils/flashrom/flashrom.mk index f0fdff539a..5ee91a8f06 100644 --- a/utils/flashrom/flashrom.mk +++ b/utils/flashrom/flashrom.mk @@ -1,11 +1,7 @@ # Flashrom variants -define DefaultProgrammer - MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=PROGRAMMER_$(1) -endef - ifeq ($(BUILD_VARIANT),full) - $(eval $(call DefaultProgrammer,LINUX_SPI)) + DEFAULT_PROGRAMMER_NAME := linux_spi FLASHROM_BASIC := true FLASHROM_FTDI := true FLASHROM_PCI := true @@ -14,7 +10,7 @@ ifeq ($(BUILD_VARIANT),full) FLASHROM_USB := true endif ifeq ($(BUILD_VARIANT),pci) - $(eval $(call DefaultProgrammer,INTERNAL)) + DEFAULT_PROGRAMMER_NAME := internal FLASHROM_BASIC := true FLASHROM_FTDI := false FLASHROM_PCI := true @@ -23,7 +19,7 @@ ifeq ($(BUILD_VARIANT),pci) FLASHROM_USB := false endif ifeq ($(BUILD_VARIANT),spi) - $(eval $(call DefaultProgrammer,LINUX_SPI)) + DEFAULT_PROGRAMMER_NAME := linux_spi FLASHROM_BASIC := true FLASHROM_FTDI := false FLASHROM_PCI := false @@ -32,7 +28,7 @@ ifeq ($(BUILD_VARIANT),spi) FLASHROM_USB := false endif ifeq ($(BUILD_VARIANT),usb) - $(eval $(call DefaultProgrammer,SERPROG)) + DEFAULT_PROGRAMMER_NAME := serprog FLASHROM_BASIC := true FLASHROM_FTDI := true FLASHROM_PCI := false @@ -41,59 +37,68 @@ ifeq ($(BUILD_VARIANT),usb) FLASHROM_USB := true endif -MESON_ARGS += \ - -Dconfig_dummy=$(FLASHROM_BASIC) \ - -Dconfig_linux_mtd=$(FLASHROM_BASIC) \ - -Dconfig_linux_spi=$(FLASHROM_BASIC) \ - -Dconfig_mstarddc_spi=$(FLASHROM_BASIC) \ - \ - -Dconfig_ft2232_spi=$(FLASHROM_FTDI) \ - -Dconfig_usbblaster_spi=$(FLASHROM_FTDI) \ - \ - -Dpciutils=$(FLASHROM_PCI) \ - -Dconfig_atavia=$(FLASHROM_PCI) \ - -Dconfig_drkaiser=$(FLASHROM_PCI) \ - -Dconfig_gfxnvidia=$(FLASHROM_PCI) \ - -Dconfig_internal=$(FLASHROM_PCI) \ - -Dconfig_it8212=$(FLASHROM_PCI) \ - -Dconfig_nicintel=$(FLASHROM_PCI) \ - -Dconfig_nicintel_spi=$(FLASHROM_PCI) \ - -Dconfig_nicintel_eeprom=$(FLASHROM_PCI) \ - -Dconfig_ogp_spi=$(FLASHROM_PCI) \ - -Dconfig_satasii=$(FLASHROM_PCI) \ - \ - -Dconfig_bitbang_spi=$(FLASHROM_RAW) \ - -Dconfig_rayer_spi=$(FLASHROM_RAW) \ - \ - -Dconfig_buspirate_spi=$(FLASHROM_SERIAL) \ - -Dconfig_pony_spi=$(FLASHROM_SERIAL) \ - -Dconfig_serprog=$(FLASHROM_SERIAL) \ - \ - -Dusb=$(FLASHROM_USB) \ - -Dconfig_ch341a_spi=$(FLASHROM_USB) \ - -Dconfig_dediprog=$(FLASHROM_USB) \ - -Dconfig_developerbox_spi=$(FLASHROM_USB) \ - -Dconfig_digilent_spi=$(FLASHROM_USB) \ - -Dconfig_pickit2_spi=$(FLASHROM_USB) \ - -Dconfig_stlinkv3_spi=$(FLASHROM_USB) +PROGRAMMER_ARGS := + +define Programmer + ifeq ($(2),true) + PROGRAMMER_ARGS += $(1) + endif +endef + +$(eval $(call Programmer,dummy,$(FLASHROM_BASIC))) +$(eval $(call Programmer,linux_mtd,$(FLASHROM_BASIC))) +$(eval $(call Programmer,linux_spi,$(FLASHROM_BASIC))) +$(eval $(call Programmer,mstarddc_spi,$(FLASHROM_BASIC))) + +$(eval $(call Programmer,ft2232_spi,$(FLASHROM_FTDI))) +$(eval $(call Programmer,usbblaster_spi,$(FLASHROM_FTDI))) + +$(eval $(call Programmer,atavia,$(FLASHROM_PCI))) +$(eval $(call Programmer,drkaiser,$(FLASHROM_PCI))) +$(eval $(call Programmer,gfxnvidia,$(FLASHROM_PCI))) +$(eval $(call Programmer,internal,$(FLASHROM_PCI))) +$(eval $(call Programmer,it8212,$(FLASHROM_PCI))) +$(eval $(call Programmer,nicintel,$(FLASHROM_PCI))) +$(eval $(call Programmer,nicintel_spi,$(FLASHROM_PCI))) +$(eval $(call Programmer,nicintel_eeprom,$(FLASHROM_PCI))) +$(eval $(call Programmer,ogp_spi,$(FLASHROM_PCI))) +$(eval $(call Programmer,satasii,$(FLASHROM_PCI))) + +$(eval $(call Programmer,rayer_spi,$(FLASHROM_RAW))) + +$(eval $(call Programmer,buspirate_spi,$(FLASHROM_SERIAL))) +$(eval $(call Programmer,pony_spi,$(FLASHROM_SERIAL))) +$(eval $(call Programmer,serprog,$(FLASHROM_SERIAL))) + +$(eval $(call Programmer,ch341a_spi,$(FLASHROM_USB))) +$(eval $(call Programmer,dediprog,$(FLASHROM_USB))) +$(eval $(call Programmer,developerbox_spi,$(FLASHROM_USB))) +$(eval $(call Programmer,digilent_spi,$(FLASHROM_USB))) +$(eval $(call Programmer,pickit2_spi,$(FLASHROM_USB))) +$(eval $(call Programmer,stlinkv3_spi,$(FLASHROM_USB))) # PCI ifeq ($(findstring i386,$(CONFIG_ARCH))$(findstring x86,$(CONFIG_ARCH)),) -MESON_ARGS += \ - -Dconfig_atahpt=false \ - -Dconfig_atapromise=false \ - -Dconfig_internal_dmi=true \ - -Dconfig_nic3com=false \ - -Dconfig_nicnatsemi=false \ - -Dconfig_nicrealtek=false \ - -Dconfig_satamv=false + MESON_ARGS += -Duse_internal_dmi=true + $(eval $(call Programmer,atahpt,false)) + $(eval $(call Programmer,atapromise,false)) + $(eval $(call Programmer,nic3com,false)) + $(eval $(call Programmer,nicnatsemi,false)) + $(eval $(call Programmer,nicrealtek,false)) + $(eval $(call Programmer,satamv,false)) else -MESON_ARGS += \ - -Dconfig_atahpt=$(FLASHROM_PCI) \ - -Dconfig_atapromise=$(FLASHROM_PCI) \ - -Dconfig_internal_dmi=$(if $(FLASHROM_PCI),false,true) - -Dconfig_nic3com=$(FLASHROM_PCI) \ - -Dconfig_nicnatsemi=$(FLASHROM_PCI) \ - -Dconfig_nicrealtek=$(FLASHROM_PCI) \ - -Dconfig_satamv=$(FLASHROM_PCI) + MESON_ARGS += -Duse_internal_dmi=$(if $(FLASHROM_PCI),false,true) + $(eval $(call Programmer,atahpt,$(FLASHROM_PCI))) + $(eval $(call Programmer,atapromise,$(FLASHROM_PCI))) + $(eval $(call Programmer,nic3com,$(FLASHROM_PCI))) + $(eval $(call Programmer,nicnatsemi,$(FLASHROM_PCI))) + $(eval $(call Programmer,nicrealtek,$(FLASHROM_PCI))) + $(eval $(call Programmer,satamv,$(FLASHROM_PCI))) endif + +comma := , +MESON_ARGS += \ + -Ddefault_programmer_name=$(DEFAULT_PROGRAMMER_NAME) \ + -Dprogrammer=$(subst $() $(),$(comma),$(PROGRAMMER_ARGS)) \ + -Dwerror=false \ + -Dtests=disabled diff --git a/utils/flashrom/patches/010-bitbang.patch b/utils/flashrom/patches/010-bitbang.patch deleted file mode 100644 index b5ff7cd3bf..0000000000 --- a/utils/flashrom/patches/010-bitbang.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/meson.build -+++ b/meson.build -@@ -33,6 +33,7 @@ add_project_arguments('-DFLASHROM_VERSIO - config_atahpt = get_option('config_atahpt') - config_atapromise = get_option('config_atapromise') - config_atavia = get_option('config_atavia') -+config_bitbang_spi = get_option('config_bitbang_spi') - config_buspirate_spi = get_option('config_buspirate_spi') - config_ch341a_spi = get_option('config_ch341a_spi') - config_dediprog = get_option('config_dediprog') ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -4,6 +4,7 @@ option('usb', type : 'boolean', value : - 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') -+option('config_bitbang_spi', type : 'boolean', value : true, description : 'Bitbang') - option('config_buspirate_spi', type : 'boolean', value : true, description : 'Bus Pirate SPI') - option('config_ch341a_spi', type : 'boolean', value : true, description : 'Winchiphead CH341A') - option('config_dediprog', type : 'boolean', value : true, description : 'Dediprog SF100') diff --git a/utils/flashrom/patches/020-raw-access.patch b/utils/flashrom/patches/020-raw-access.patch deleted file mode 100644 index 5550550a55..0000000000 --- a/utils/flashrom/patches/020-raw-access.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/meson.build -+++ b/meson.build -@@ -263,6 +263,7 @@ endif - if config_satasii - srcs += 'satasii.c' - cargs += '-DCONFIG_SATASII=1' -+ need_raw_access = true - endif - if config_serprog - srcs += 'serprog.c' diff --git a/utils/flashrom/patches/030-ppc.patch b/utils/flashrom/patches/030-ppc.patch deleted file mode 100644 index 41095fd63c..0000000000 --- a/utils/flashrom/patches/030-ppc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/hwaccess.c -+++ b/hwaccess.c -@@ -71,7 +71,7 @@ static inline void sync_primitive(void) - * See also https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/memory-barriers.txt - */ - #if IS_PPC // cf. http://lxr.free-electrons.com/source/arch/powerpc/include/asm/barrier.h -- asm("eieio" : : : "memory"); -+ __asm__ ("eieio" : : : "memory"); - #elif IS_SPARC - #if defined(__sparc_v9__) || defined(__sparcv9) - /* Sparc V9 CPUs support three different memory orderings that range from x86-like TSO to PowerPC-like diff --git a/utils/flashrom/patches/040-uclibc.patch b/utils/flashrom/patches/040-uclibc.patch deleted file mode 100644 index c07361de3d..0000000000 --- a/utils/flashrom/patches/040-uclibc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/meson.build -+++ b/meson.build -@@ -25,7 +25,7 @@ conf = configuration_data() - cc = meson.get_compiler('c') - add_project_arguments(cc.get_supported_arguments(warning_flags), language : 'c') - add_project_arguments('-D_DEFAULT_SOURCE', language : 'c') --add_project_arguments('-D_POSIX_C_SOURCE', language : 'c') # required for fileno -+add_project_arguments('-D_POSIX_C_SOURCE=200809L', language : 'c') # required for fileno, nanosleep, and strndup - add_project_arguments('-D_BSD_SOURCE', language : 'c') # required for glibc < v2.19 - add_project_arguments('-DFLASHROM_VERSION="' + meson.project_version() + '"', language : 'c') -