summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2007-06-26 09:36:04 +0000
committerMarcin Juszkiewicz <hrw@openembedded.org>2007-06-26 09:36:04 +0000
commit6887fa041983903966cc0a6800cfd990ece871a0 (patch)
tree2448e5fd3058a22d976618750deae62018f7bcaf
parent4c8c2180d641189cf3c533ad1573b4a98ab1a7cb (diff)
prism-firmware: added support of loading 1.8.4 firmware for Prism2/3 CF cards on insert (from Poky)
This will give possibility of using WPA/WPA2 for users which cards have firmware older then 1.7.4 (which was first version with WPA support). It is alternative to reflashing cards. Tested on Prism2 and Prism3 cards, replace all previous ways of supporting them.
-rw-r--r--packages/misc-binary-only/prism-firmware.bb30
-rw-r--r--packages/misc-binary-only/prism-firmware/.mtn2git_empty0
-rw-r--r--packages/misc-binary-only/prism-firmware/hostap.rules4
-rw-r--r--packages/misc-binary-only/prism-firmware/prism-fw.sh33
4 files changed, 67 insertions, 0 deletions
diff --git a/packages/misc-binary-only/prism-firmware.bb b/packages/misc-binary-only/prism-firmware.bb
new file mode 100644
index 0000000000..4b18d865da
--- /dev/null
+++ b/packages/misc-binary-only/prism-firmware.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Firmware for the Prism 2.x/3 cards"
+SECTION = "base"
+LICENSE = "closed"
+RDEPENDS = "hostap-utils"
+RREPLACES = "prism3-firmware prism3-support"
+RCONFLICTS = "prism3-firmware prism3-support"
+PACKAGE_ARCH = "all"
+PR = "r1"
+
+SRC_URI = "http://www.red-bean.com/~proski/firmware/Latest-prism.tar.bz2 \
+ file://prism-fw.sh \
+ file://hostap.rules"
+
+S = "${WORKDIR}/Latest-prism/"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/
+ install -d ${D}${base_libdir}/udev/
+ install -d ${D}${sysconfdir}/pcmcia/
+ install -d ${D}${sysconfdir}/udev/rules.d/
+
+ install -m 0644 primary-RAM/*.hex ${D}${base_libdir}/firmware/
+ install -m 0644 secondary-RAM/rf010804.hex ${D}${base_libdir}/firmware/
+
+ install -m 0755 ${WORKDIR}/prism-fw.sh ${D}${base_libdir}/udev/
+ install -m 0644 ${WORKDIR}/hostap.rules ${D}${sysconfdir}/udev/rules.d/
+}
+
+PACKAGES = "${PN}"
+FILES_${PN} += "${base_libdir}"
diff --git a/packages/misc-binary-only/prism-firmware/.mtn2git_empty b/packages/misc-binary-only/prism-firmware/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/misc-binary-only/prism-firmware/.mtn2git_empty
diff --git a/packages/misc-binary-only/prism-firmware/hostap.rules b/packages/misc-binary-only/prism-firmware/hostap.rules
new file mode 100644
index 0000000000..dece98ae93
--- /dev/null
+++ b/packages/misc-binary-only/prism-firmware/hostap.rules
@@ -0,0 +1,4 @@
+#
+# update firmware on Prism cards (load it to RAM, not to Flash)
+#
+SUBSYSTEM=="net", KERNEL=="wlan*" RUN="/lib/udev/prism-fw.sh"
diff --git a/packages/misc-binary-only/prism-firmware/prism-fw.sh b/packages/misc-binary-only/prism-firmware/prism-fw.sh
new file mode 100644
index 0000000000..c58600791c
--- /dev/null
+++ b/packages/misc-binary-only/prism-firmware/prism-fw.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+CARD_ID=`/usr/sbin/hostap_diag $INTERFACE|grep NICID|awk '{print $2}'|sed -e 's/id=0x//'`
+
+# 801d cards lack even Primary firmware so we cannot use hostap_diag
+PRI=/lib/firmware/pm010102.hex
+STA=/lib/firmware/rf010804.hex
+
+if [ $CARD_ID = '800c' ] || [ $CARD_ID = '8013' ] || [ $CARD_ID = '8017' ] || \
+ [ $CARD_ID = '801b' ] || [ $CARD_ID = '8022' ] || [ $CARD_ID = '8023' ] ; then
+ PRI=/lib/firmware/ak010104.hex
+elif [ $CARD_ID = '800b' ] || [ $CARD_ID = '8012' ] || [ $CARD_ID = '8016' ] || \
+ [ $CARD_ID = '801a' ] ; then
+ PRI=/lib/firmware/af010104.hex
+elif [ $CARD_ID = '800e' ] || [ $CARD_ID = '8015' ] || [ $CARD_ID = '8019' ] || \
+ [ $CARD_ID = '801d' ] ; then
+ PRI=/lib/firmware/pm010102.hex
+fi
+
+DIR=/proc/net/hostap/wlan0
+
+if [ ! -d $DIR ]; then
+ exit 1
+fi
+
+if grep -q no_pri=1 $DIR/debug; then
+ /usr/sbin/prism2_srec -gs wlan0 $PRI
+ /usr/sbin/prism2_srec -gp wlan0 $PRI
+fi
+
+if grep -q pri_only=0 $DIR/debug; then
+ /usr/sbin/prism2_srec -rp wlan0 $STA
+fi