summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp/prism-firmware
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-bsp/prism-firmware')
-rw-r--r--meta/recipes-bsp/prism-firmware/prism-firmware.bb32
-rw-r--r--meta/recipes-bsp/prism-firmware/prism-firmware/hostap.rules4
-rw-r--r--meta/recipes-bsp/prism-firmware/prism-firmware/prism-fw.sh32
3 files changed, 68 insertions, 0 deletions
diff --git a/meta/recipes-bsp/prism-firmware/prism-firmware.bb b/meta/recipes-bsp/prism-firmware/prism-firmware.bb
new file mode 100644
index 0000000000..903c55e15e
--- /dev/null
+++ b/meta/recipes-bsp/prism-firmware/prism-firmware.bb
@@ -0,0 +1,32 @@
1DESCRIPTION = "Firmware for the Prism 2.x/3 cards"
2SECTION = "base"
3LICENSE = "closed"
4RDEPENDS = "hostap-utils"
5RREPLACES = "prism3-firmware prism3-support"
6RCONFLICTS = "prism3-firmware prism3-support"
7PACKAGE_ARCH = "all"
8PR = "r3"
9
10SRC_URI = "http://www.red-bean.com/~proski/firmware/primary.tar.bz2 \
11 http://www.red-bean.com/~proski/firmware/1.7.4.tar.bz2 \
12 file://prism-fw.sh \
13 file://hostap.rules"
14
15do_install() {
16 install -d ${D}${base_libdir}/firmware/
17 install -d ${D}${base_libdir}/udev/
18 install -d ${D}${sysconfdir}/pcmcia/
19 install -d ${D}${sysconfdir}/udev/rules.d/
20
21 install -m 0644 ${WORKDIR}/primary/af010104.hex ${D}${base_libdir}/firmware/
22 install -m 0644 ${WORKDIR}/primary/ak010104.hex ${D}${base_libdir}/firmware/
23 install -m 0644 ${WORKDIR}/primary/pm010102.hex ${D}${base_libdir}/firmware/
24
25 install -m 0644 ${WORKDIR}/1.7.4/rf010704.hex ${D}${base_libdir}/firmware/
26
27 install -m 0755 ${WORKDIR}/prism-fw.sh ${D}${base_libdir}/udev/
28 install -m 0644 ${WORKDIR}/hostap.rules ${D}${sysconfdir}/udev/rules.d/
29}
30
31PACKAGES = "${PN}"
32FILES_${PN} += "${base_libdir}"
diff --git a/meta/recipes-bsp/prism-firmware/prism-firmware/hostap.rules b/meta/recipes-bsp/prism-firmware/prism-firmware/hostap.rules
new file mode 100644
index 0000000000..dece98ae93
--- /dev/null
+++ b/meta/recipes-bsp/prism-firmware/prism-firmware/hostap.rules
@@ -0,0 +1,4 @@
1#
2# update firmware on Prism cards (load it to RAM, not to Flash)
3#
4SUBSYSTEM=="net", KERNEL=="wlan*" RUN="/lib/udev/prism-fw.sh"
diff --git a/meta/recipes-bsp/prism-firmware/prism-firmware/prism-fw.sh b/meta/recipes-bsp/prism-firmware/prism-firmware/prism-fw.sh
new file mode 100644
index 0000000000..619f612be1
--- /dev/null
+++ b/meta/recipes-bsp/prism-firmware/prism-firmware/prism-fw.sh
@@ -0,0 +1,32 @@
1#!/bin/sh
2
3CARD_ID=`/usr/sbin/hostap_diag $INTERFACE|grep NICID|awk '{print $2}'|sed -e 's/id=0x//'`
4
5# 801d cards lack even Primary firmware so we cannot use hostap_diag
6PRI=/lib/firmware/pm010102.hex
7STA=/lib/firmware/rf010704.hex
8
9if [ $CARD_ID = '800c' ] || [ $CARD_ID = '8013' ] || [ $CARD_ID = '8017' ] || \
10 [ $CARD_ID = '801b' ] || [ $CARD_ID = '8022' ] || [ $CARD_ID = '8023' ] ; then
11 PRI=/lib/firmware/ak010104.hex
12elif [ $CARD_ID = '800b' ] || [ $CARD_ID = '8012' ] || [ $CARD_ID = '8016' ] || \
13 [ $CARD_ID = '801a' ] ; then
14 PRI=/lib/firmware/af010104.hex
15elif [ $CARD_ID = '800e' ] || [ $CARD_ID = '8015' ] || [ $CARD_ID = '8019' ] || \
16 [ $CARD_ID = '801d' ] ; then
17 PRI=/lib/firmware/pm010102.hex
18fi
19
20DIR=/proc/net/hostap/wlan0
21
22if [ ! -d $DIR ]; then
23 exit 1
24fi
25
26if grep -q no_pri=1 $DIR/debug; then
27 /usr/sbin/prism2_srec -gs wlan0 $PRI
28 /usr/sbin/prism2_srec -gp wlan0 $PRI
29fi
30
31/usr/sbin/prism2_srec -rp wlan0 $STA
32