#!/bin/sh rt2x00_eeprom_die() { echo "rt2x00 eeprom: " "$*" exit 1 } rt2x00_eeprom_extract() { local part=$1 local offset=$2 local count=$3 local mtd . /lib/functions.sh mtd=$(find_mtd_part $part) [ -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 || \ rt2x00_eeprom_die "failed to extract from $mtd" } FW="/lib/firmware/$FIRMWARE" [ -e "$FW" ] && exit 0 . /lib/ramips.sh board=$(ramips_board_name) case "$FIRMWARE" in "soc_wmac.eeprom") case $board in asl26555 | \ dir-300-b1 | \ dir-600-b1 | \ dir-600-b2 | \ dir-610-a1 | \ dir-615-d) rt2x00_eeprom_extract "devdata" 16384 512 ;; dap-1350) rt2x00_eeprom_extract "devdata" 0 512 ;; rt-n10-plus | \ rt-g32-b1) rt2x00_eeprom_extract "devconf" 0 512 ;; f5d8235-v1 | \ f5d8235-v2) rt2x00_eeprom_extract "u-boot" 262144 512 ;; 3g-6200n | \ 3g-6200nl | \ 3g300m | \ air3gii | \ all0239-3g | \ all0256n | \ all5002 | \ all5003 | \ argus-atp52b | \ awm002-evb | \ bc2 | \ br6425 | \ br-6475nd | \ broadway | \ br6524n | \ carambola | \ cy-swr1100 | \ d105 | \ dcs-930 | \ dir-300-b7 | \ dir-320-b1 | \ dir-615-h1 | \ dir-620-a1 | \ dir-620-d1 | \ dir-645 | \ esr-9753 | \ f7c027 | \ fonera20n | \ rt-n13u | \ freestation5 | \ hlk-rm04 | \ hw550-3g | \ mofi3500-3gn | \ mpr-a1 | \ mpr-a2 | \ pwh2004 | \ nbg-419n | \ nw718 | \ omni-emb | \ omni-emb-hpm | \ psr-680w | \ px4885 | \ rt-n15 | \ rt-n56u | \ rut5xx | \ sl-r7205 | \ v11st-fe | \ v22rw-2x2 | \ w306r-v20 | \ w150m | \ w502u | \ wcr-150gn | \ whr-g300n | \ whr-300hp2 | \ whr-600d | \ wl-330n | \ wl-330n3g | \ wl-351 | \ wli-tx4-ag300n | \ wmr300 | \ wnce2001 | \ wr512-3gn | \ wr6202 | \ mzk-w300nh2 | \ ur-326n4g | \ ur-336un | \ xdxrn502j | \ hg255d) rt2x00_eeprom_extract "factory" 0 512 ;; wl341v3) rt2x00_eeprom_extract "board-nvram" 64880 512 ;; *) rt2x00_eeprom_die "board $board is not supported yet" ;; esac ;; "rt2x00pci_1_0.eeprom") case $board in cy-swr1100) rt2x00_eeprom_extract "factory" 8192 512 ;; rt-n56u | whr-600d) rt2x00_eeprom_extract "factory" 32768 512 ;; esac ;; esac