[OpenWrt-Devel] [PATCH] ramips: Speed up eeprom read/write

Adrian Schmutzler freifunk at adrianschmutzler.de
Sun Mar 17 19:07:31 EDT 2019

Reading and writing to and from flash storage is slowed down
enormously by some functions which use a block size of 1.

This patch reworks the extraction scripts to be much faster and
efficient by reading and writing in possibly one big block.

This is based on the initial commit a69e101 for ipq40xx by
Christian Lamparter <chunkeey at gmail.com>.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>


This is NOT TESTED (in this separate version). However, I hope
someone will test it, as it would be an enormous boot speed gain
also to ramips.
 .../linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 13a4687251..96a2397191 100644
--- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -15,7 +15,7 @@ rt2x00_eeprom_extract() {
 	[ -n "$mtd" ] || \
 		rt2x00_eeprom_die "no mtd device found for partition $part"
-	dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
+	dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
 		rt2x00_eeprom_die "failed to extract from $mtd"
@@ -39,7 +39,7 @@ rt2x00_eeprom_set_macaddr() {
 		rt2x00_eeprom_die "invalid wlan mac address"
 	macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
-				conv=notrunc bs=1 seek=4 count=6 2>/dev/null || \
+				conv=notrunc oflag=seek_bytes bs=6 seek=4 count=1 2>/dev/null || \
 		rt2x00_eeprom_die "failed to write mac address to eeprom file"

openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list