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)
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
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
$(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))
# 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
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
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
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
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
+++ /dev/null
---- 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')