diff options
11 files changed, 461 insertions, 0 deletions
diff --git a/multitech/conf/distro/corecdp.conf b/multitech/conf/distro/corecdp.conf index c8eec44..c1e1da6 100644 --- a/multitech/conf/distro/corecdp.conf +++ b/multitech/conf/distro/corecdp.conf @@ -56,3 +56,7 @@ PREFERRED_PROVIDER_libpcap = "libpcap-nobluetooth" PREFERRED_VERSION_iw = "0.9.20" PREFERRED_VERSION_wpa-supplicant = "1.0" PREFERRED_VERSION_hostap-daemon = "1.0" + +PREFERRED_VERSION_wl12xx-firmware = "r5.sp7.01" +PREFERRED_VERSION_ti-compat-wireless-wl12xx = "r5.sp7.01" +PREFERRED_VERSION_ti-wifi-utils = "r5.sp7.01" diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-compat-wireless-add-pm_runtime_enabled.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-compat-wireless-add-pm_runtime_enabled.patch new file mode 100644 index 0000000..ba73dd8 --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-compat-wireless-add-pm_runtime_enabled.patch @@ -0,0 +1,36 @@ +From 0f11fd034274c795d9c506faa83a9fa947ba358a Mon Sep 17 00:00:00 2001 +From: Moosa <moosab@ti.com> +Date: Thu, 3 May 2012 17:37:17 +0300 +Subject: [PATCH] compat-wireless: add pm_runtime_enabled + +* Add pm_runtime definition to header file + +Upstream-Status: Pending + +Signed-off-by: Moosa Baransi <moosab@ti.com> +--- + include/linux/compat-2.6.38.h | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/include/linux/compat-2.6.38.h b/include/linux/compat-2.6.38.h +index 63f9dd6..94ee602 100644 +--- a/include/linux/compat-2.6.38.h ++++ b/include/linux/compat-2.6.38.h +@@ -9,6 +9,15 @@ + #include <linux/skbuff.h> + #include <linux/etherdevice.h> + ++#ifdef CONFIG_PM_RUNTIME ++static inline bool pm_runtime_enabled(struct device *dev) ++{ ++ return !dev->power.disable_depth; ++} ++#else ++ static inline bool pm_runtime_enabled(struct device *dev) { return false; } ++#endif ++ + /* rename member in struct mmc_host in include/linux/mmc/host.h */ + #define max_segs max_hw_segs + +-- +1.7.1 diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-git-version-use-compat-base-tree.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-git-version-use-compat-base-tree.patch new file mode 100755 index 0000000..61fe912 --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-git-version-use-compat-base-tree.patch @@ -0,0 +1,29 @@ +For compat-wireless based builds use compat_base_tree_version in version.h +When building with compat-wireless mechanism, the version info captured in version.h reflects target kernel and not the wl12xx version. +Signed-off-by: Vishal Mahaveer <vishalm@ti.com> + +diff a/drivers/net/wireless/wl12xx/Makefile b/drivers/net/wireless/wl12xx/Makefile + +--- a/drivers/net/wireless/wl12xx/Makefile 2012-08-12 18:18:10.000000000 +0300 ++++ b/drivers/net/wireless/wl12xx/Makefile 2012-08-13 13:55:11.000000000 +0300 +@@ -3,12 +3,16 @@ + + define filechk_version.h + (echo 'static const char *wl12xx_timestamp = __TIMESTAMP__;'; \ +- echo 'static const char *wl12xx_git_head = \ +- "$(shell git describe --dirty)";') ++ echo '#ifdef COMPAT_BASE_TREE_VERSION'; \ ++ echo 'static const char *wl12xx_git_head = COMPAT_BASE_TREE_VERSION;'; \ ++ echo '#else'; \ ++ echo 'static const char *wl12xx_git_head = \ ++ "$(shell git describe --dirty)";'; \ ++ echo '#endif') + endef + +-$(obj)/version.h: .git/HEAD .git/index .git/refs/tags +- @$(call filechk,version.h) ++#$(obj)/version.h: .git/HEAD .git/index .git/refs/tags ++# @$(call filechk,version.h) + + $(obj)/main.c: $(src)/version.h + diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-Decrease-number-of-RX-transactions.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-Decrease-number-of-RX-transactions.patch new file mode 100755 index 0000000..90aec78 --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-Decrease-number-of-RX-transactions.patch @@ -0,0 +1,34 @@ +From 5cd7de59a61168b784ea7f51c09e64f847e81c92 Mon Sep 17 00:00:00 2001 +From: Ido Yariv <ido@wizery.com> +Date: Tue, 13 Dec 2011 23:16:01 +0200 +Subject: [PATCH 1/2] wl12xx: Decrease number of RX transactions + +On weak platforms, it is crucial to keep the number of SDIO transactions +to a bare minimum. It is probably more important to keep CPU utilization +low, than to handle FW events asap. + +In order to decrease the number of RX transactions, set the FW to only +wake up the host when it has at least 4 pending packets. In addition, +increase the relevant timeout, so the FW could actually reach this +threshold. +--- + drivers/net/wireless/wl12xx/main.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c +index bdb7166..f90b96a 100644 +--- a/drivers/net/wireless/wl12xx/main.c ++++ b/drivers/net/wireless/wl12xx/main.c +@@ -130,8 +130,8 @@ static struct conf_drv_settings default_conf = { + .rts_threshold = IEEE80211_MAX_RTS_THRESHOLD, + .rx_cca_threshold = 0, + .irq_blk_threshold = 0xFFFF, +- .irq_pkt_threshold = 0, +- .irq_timeout = 600, ++ .irq_pkt_threshold = 4, ++ .irq_timeout = 1200, + .queue_type = CONF_RX_QUEUE_TYPE_LOW_PRIORITY, + }, + .tx = { +-- +1.7.7.6 diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-additional-two-members-for-wl12xx_platform_da.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-additional-two-members-for-wl12xx_platform_da.patch new file mode 100644 index 0000000..69863cb --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0001-wl12xx-additional-two-members-for-wl12xx_platform_da.patch @@ -0,0 +1,30 @@ +From 351a513dabfb55c3aab448613c2b10b7b5788d93 Mon Sep 17 00:00:00 2001 +From: Vita Preskovsky <vitap@ti.com> +Date: Sun, 1 Jul 2012 11:49:30 +0300 +Subject: [PATCH] wl12xx: additional two members for wl12xx_platform_data + + * Adding bt_enable_gpio and wlan_enable_gpio to wl12xx_platform_data. + This is needed in order to align this structure + with the one which is part of the linux kernel + + +Signed-off-by: Vita Preskovsky <vitap@ti.com> +--- + include/linux/wl12xx.h | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/include/linux/wl12xx.h b/include/linux/wl12xx.h +index 0d63731..535058e 100644 +--- a/include/linux/wl12xx.h ++++ b/include/linux/wl12xx.h +@@ -54,6 +54,8 @@ struct wl12xx_platform_data { + int board_ref_clock; + int board_tcxo_clock; + unsigned long platform_quirks; ++ int bt_enable_gpio; ++ int wlan_enable_gpio; + bool pwr_in_suspend; + + struct wl1271_if_operations *ops; +-- +1.7.0.4 diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0002-wl12xx-Decrease-number-of-TX-transactions.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0002-wl12xx-Decrease-number-of-TX-transactions.patch new file mode 100755 index 0000000..3e2185a --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/0002-wl12xx-Decrease-number-of-TX-transactions.patch @@ -0,0 +1,139 @@ +From a7807fffc76117a9d0a40fdcc85b56644e81f34c Mon Sep 17 00:00:00 2001 +From: Eyal Reizer <eyalr@ti.com> +Date: Tue, 27 Nov 2012 16:05:20 +0200 +Subject: [PATCH] wl12xx: Decrease number of TX transactions + +On weak platforms, it is crucial to keep the number of SDIO transactions +to a bare minimum. It is probably more important to keep CPU utilization +low, than to handle FW events asap. + +In order to decrease the number of TX transactions, don't schedule tx +work right away for every outgoing packet. Instead, try to wait for a +short period before scheduling tx work if there aren't enough pending +packets. + +In addition, increase the TX pacing timeout, so the FW will have enough +free memory blocks for larger transfers. + +Adapted from original patch made by Ido Yariv <ido@wizery.com> +Signed-off-by: Eyal Reizer <eyalr@ti.com> +--- + drivers/net/wireless/wl12xx/main.c | 39 ++++++++++++++++++++++++++++++---- + drivers/net/wireless/wl12xx/wl12xx.h | 3 +++ + 2 files changed, 38 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c +index c9888f4..a59ac43 100644 +--- a/drivers/net/wireless/wl12xx/main.c ++++ b/drivers/net/wireless/wl12xx/main.c +@@ -218,8 +218,8 @@ static struct conf_drv_settings default_conf = { + }, + }, + .frag_threshold = IEEE80211_MAX_FRAG_THRESHOLD, +- .tx_compl_timeout = 700, +- .tx_compl_threshold = 4, ++ .tx_compl_timeout = 1500, ++ .tx_compl_threshold = 6, + .basic_rate = CONF_HW_BIT_RATE_1MBPS, + .basic_rate_5 = CONF_HW_BIT_RATE_6MBPS, + .tmpl_short_retry_limit = 10, +@@ -1199,6 +1199,8 @@ static int wl12xx_irq_locked(struct wl1271 *wl) + spin_lock_irqsave(&wl->wl_lock, flags); + if (!test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags) && + wl1271_tx_total_queue_count(wl) > 0) { ++ hrtimer_try_to_cancel(&wl->tx_timer); ++ clear_bit(WL1271_FLAG_TX_TIMER_SET, &wl->flags); + spin_unlock_irqrestore(&wl->wl_lock, flags); + /* + * In order to avoid starvation of the TX path, +@@ -2056,6 +2058,9 @@ out: + return ret; + } + ++#define TX_PACKETS_THRESHOLD 6 ++#define TX_WORK_DELAY_NS (1500 * 1000) ++ + static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + { + struct wl1271 *wl = hw->priv; +@@ -2113,14 +2118,37 @@ static void wl1271_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) + * before that, the tx_work will not be initialized! + */ + +- if (!test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags) && +- !test_bit(WL1271_FLAG_TX_PENDING, &wl->flags)) ++ if (test_bit(WL1271_FLAG_FW_TX_BUSY, &wl->flags) || ++ test_bit(WL1271_FLAG_TX_PENDING, &wl->flags)) ++ goto out; ++ ++ if (wl1271_tx_total_queue_count(wl) < TX_PACKETS_THRESHOLD) { ++ if (!test_and_set_bit(WL1271_FLAG_TX_TIMER_SET, &wl->flags)) ++ hrtimer_start(&wl->tx_timer, ++ ktime_set(0, TX_WORK_DELAY_NS), ++ HRTIMER_MODE_REL); ++ } else { ++ hrtimer_try_to_cancel(&wl->tx_timer); ++ clear_bit(WL1271_FLAG_TX_TIMER_SET, &wl->flags); + ieee80211_queue_work(wl->hw, &wl->tx_work); ++ } + + out: + spin_unlock_irqrestore(&wl->wl_lock, flags); + } + ++enum hrtimer_restart wl12xx_tx_timer(struct hrtimer *timer) ++{ ++ struct wl1271 *wl = container_of(timer, struct wl1271, tx_timer); ++ unsigned long flags; ++ ++ spin_lock_irqsave(&wl->wl_lock, flags); ++ clear_bit(WL1271_FLAG_TX_TIMER_SET, &wl->flags); ++ ieee80211_queue_work(wl->hw, &wl->tx_work); ++ spin_unlock_irqrestore(&wl->wl_lock, flags); ++ return HRTIMER_NORESTART; ++} ++ + int wl1271_tx_dummy_packet(struct wl1271 *wl) + { + unsigned long flags; +@@ -2740,6 +2768,7 @@ static void wl1271_op_stop_locked(struct wl1271 *wl) + * held while doing so without deadlocking. + */ + wlcore_disable_interrupts_nosync(wl); ++ hrtimer_cancel(&wl->tx_timer); + mutex_unlock(&wl->mutex); + + mutex_lock(&wl_list_mutex); +@@ -6798,6 +6827,8 @@ static struct ieee80211_hw *wl1271_alloc_hw(void) + wl->active_sta_count = 0; + wl->fwlog_size = 0; + init_waitqueue_head(&wl->fwlog_waitq); ++ hrtimer_init(&wl->tx_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); ++ wl->tx_timer.function = wl12xx_tx_timer; + + /* The system link is always allocated */ + __set_bit(WL12XX_SYSTEM_HLID, wl->links_map); +diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h +index 9c00dbf..e34f095 100644 +--- a/drivers/net/wireless/wl12xx/wl12xx.h ++++ b/drivers/net/wireless/wl12xx/wl12xx.h +@@ -275,6 +275,7 @@ enum wl12xx_flags { + WL1271_FLAG_VIF_CHANGE_IN_PROGRESS, + WL1271_FLAG_INTENDED_FW_RECOVERY, + WL1271_FLAG_IO_FAILED, ++ WL1271_FLAG_TX_TIMER_SET, + }; + + enum wl12xx_vif_flags { +@@ -594,6 +595,8 @@ struct wl1271 { + + /* Patterns configured with set_rx_filters */ + struct cfg80211_wowlan *wowlan_patterns; ++ ++ struct hrtimer tx_timer; + }; + + struct wl1271_station { +-- +1.7.9.5 + diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/wl12xx-set-power-r5.sp7.01.patch b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/wl12xx-set-power-r5.sp7.01.patch new file mode 100644 index 0000000..fba5b90 --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx-r5.sp7.01/wl12xx-set-power-r5.sp7.01.patch @@ -0,0 +1,53 @@ +Index: wl12xx-ol_R5.SP7.01/drivers/net/wireless/wl12xx/sdio.c +=================================================================== +--- wl12xx-ol_R5.SP7.01.orig/drivers/net/wireless/wl12xx/sdio.c 2013-12-14 23:41:55.000000000 -0600 ++++ wl12xx-ol_R5.SP7.01/drivers/net/wireless/wl12xx/sdio.c 2014-02-04 13:26:44.612614307 -0600 +@@ -48,6 +48,7 @@ + struct wl12xx_sdio_glue { + struct device *dev; + struct platform_device *core; ++ void (*set_power)(bool enable); // PVK + }; + + static const struct sdio_device_id wl1271_devices[] __devinitconst = { +@@ -135,6 +136,10 @@ + struct sdio_func *func = dev_to_sdio_func(glue->dev); + struct mmc_card *card = func->card; + ++ // MTS: enable chip on power on ++ if (glue->set_power) ++ glue->set_power(1); ++ + ret = pm_runtime_get_sync(&card->dev); + if (ret) { + /* +@@ -163,6 +168,10 @@ + struct sdio_func *func = dev_to_sdio_func(glue->dev); + struct mmc_card *card = func->card; + ++ // MTS: disable chip on power off ++ if (glue->set_power) ++ glue->set_power(0); ++ + sdio_claim_host(func); + sdio_disable_func(func); + sdio_release_host(func); +@@ -277,6 +286,11 @@ + dev_err(glue->dev, "can't add platform device\n"); + goto out_dev_put; + } ++ ++ // MTS: add set_power to control enable pin ++ if (wlan_data->set_power) ++ glue->set_power = wlan_data->set_power; ++ + return 0; + + out_dev_put: +@@ -383,4 +397,4 @@ + MODULE_FIRMWARE(WL128X_FW_NAME_SINGLE); + MODULE_FIRMWARE(WL128X_FW_NAME_MULTI); + MODULE_FIRMWARE(WL127X_PLT_FW_NAME); +-MODULE_FIRMWARE(WL128X_PLT_FW_NAME); +\ No newline at end of file ++MODULE_FIRMWARE(WL128X_PLT_FW_NAME); diff --git a/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx_r5.sp7.01.bb b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx_r5.sp7.01.bb new file mode 100644 index 0000000..c8a9bd5 --- /dev/null +++ b/multitech/recipes/compat-wireless/ti-compat-wireless-wl12xx_r5.sp7.01.bb @@ -0,0 +1,63 @@ +# This is a TI specific version of the compat-wireless recipe using a +# compat-wireless package created from the TI Systems Tested mac80211 releases. + +DESCRIPTION = "ti compat-wireless drivers" +HOMEPAGE = "https://github.com/TI-OpenLink" +SECTION = "kernel/modules" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d7810fab7487fb0aad327b76f1be7cd7" + +RDEPENDS_${PN} = "wireless-tools" + +inherit module + +LOCAL_PR = ".1" +MACHINE_KERNEL_PR_append = "${LOCAL_PR}" + +TAG="ol_R5.SP7.01" + +S = "${WORKDIR}/compat-wireless-${TAG}" + +SRC_URI = "http://www.multitech.net/corecdp/sources/TI-OpenLink.compat-wireless_${TAG}.tar.gz;name=compat-wireless \ + http://www.multitech.net/corecdp/sources/TI-OpenLink.compat_${TAG}.tar.gz;name=compat \ + http://www.multitech.net/corecdp/sources/TI-OpenLink.wl12xx_${TAG}.tar.gz;name=wl12xx \ + file://0001-git-version-use-compat-base-tree.patch;patchdir=../wl12xx-${TAG} \ + file://0001-compat-wireless-add-pm_runtime_enabled.patch;patchdir=../compat-${TAG} \ + file://0001-wl12xx-additional-two-members-for-wl12xx_platform_da.patch;patchdir=../wl12xx-${TAG} \ + " + +SRC_URI[compat-wireless.md5sum] = "935fa394ac9ad9d1673808f424b62b03" +SRC_URI[compat-wireless.sha256sum] = "3481171a67b58b6637675a94701fd23c8716b431b76a9403061afe47fc256604" +SRC_URI[compat.md5sum] = "9ef6945e22c296008dbdea8a544ec3f3" +SRC_URI[compat.sha256sum] = "c33b1d73b4e6381d67255174ff37dc1ff2a81594f43903b22c56943437ae4443" +SRC_URI[wl12xx.md5sum] = "3301da0ab7eeedf5d942d78652b84650" +SRC_URI[wl12xx.sha256sum] = "98137f9ced94de839abef86eb1cbee068f362bd28c5190449ca15165dcad0ca5" + +#SRC_URI_append = "file://0001-wl12xx-Decrease-number-of-RX-transactions.patch;patchdir=../wl12xx-${TAG} \ +# file://0002-wl12xx-Decrease-number-of-TX-transactions.patch;patchdir=../wl12xx-${TAG} \ +#" + +# mts patches +SRC_URI_append = "file://wl12xx-set-power-r5.sp7.01.patch;patchdir=../wl12xx-${TAG}" + +EXTRA_OEMAKE = "KLIB_BUILD=${STAGING_KERNEL_DIR} KLIB=${D}" + +do_configure() { + cd ${S} + GIT_TREE="${WORKDIR}/wl12xx-${TAG}" GIT_COMPAT_TREE="${WORKDIR}/compat-${TAG}" ./scripts/admin-refresh.sh + + # create versions manually since we aren't working in git repos so admin-refresh.sh doesn't set them + echo -e "${TAG}" > compat_version + echo -e "${TAG}" > compat_base_tree_version + echo "" > compat_base_tree + + ./scripts/driver-select wl12xx +} + +do_configure_append() { + sed -i "s#@./scripts/update-initramfs## " Makefile +} + +do_install() { + oe_runmake DEPMOD=echo DESTDIR="${D}" INSTALL_MOD_PATH="${D}" LDFLAGS="" install-modules +} diff --git a/multitech/recipes/ti/ti-wifi-utils.inc b/multitech/recipes/ti/ti-wifi-utils.inc new file mode 100644 index 0000000..cdb3746 --- /dev/null +++ b/multitech/recipes/ti/ti-wifi-utils.inc @@ -0,0 +1,29 @@ +DESCRIPTION = "The calibrator and other useful utilities for TI wireless solution based on wl12xx driver" +LICENSE = "BSD" + +DEPENDS = "libnl" +RDEPENDS_${PN} = "ti-compat-wireless-wl12xx wl12xx-firmware" + +PR ="r1" + +SRC_URI = "git://github.com/TI-OpenLink/ti-utils.git;protocol=git" + +S = "${WORKDIR}/git" + +export CROSS_COMPILE = "${TARGET_PREFIX}" +CFLAGS += " -DCONFIG_LIBNL20" + +do_install() { + install -d ${D}${bindir} + install -d ${D}${datadir}/ti/wifi-utils/ini_files/127x + install -d ${D}${datadir}/ti/wifi-utils/ini_files/128x + + install -m 0755 calibrator ${D}${bindir}/ + install -m 0755 ${S}/hw/ini_files/127x/* ${D}${datadir}/ti/wifi-utils/ini_files/127x + install -m 0755 ${S}/hw/ini_files/128x/* ${D}${datadir}/ti/wifi-utils/ini_files/128x +} + +FILES_${PN} += " \ + ${datadir}/ti/wifi-utils/ini_files/127x \ + ${datadir}/ti/wifi-utils/ini_files/128x \ +" diff --git a/multitech/recipes/ti/ti-wifi-utils_r5.sp7.01.bb b/multitech/recipes/ti/ti-wifi-utils_r5.sp7.01.bb new file mode 100644 index 0000000..a1768a6 --- /dev/null +++ b/multitech/recipes/ti/ti-wifi-utils_r5.sp7.01.bb @@ -0,0 +1,7 @@ +require ti-wifi-utils.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=4725015cb0be7be389cf06deeae3683d" + +PR_append ="c+gitr${SRCPV}" + +SRCREV = "ol_R5.SP7.01" diff --git a/multitech/recipes/wl12xx-firmware/wl12xx-firmware_r5.sp7.01.bb b/multitech/recipes/wl12xx-firmware/wl12xx-firmware_r5.sp7.01.bb new file mode 100644 index 0000000..42c718a --- /dev/null +++ b/multitech/recipes/wl12xx-firmware/wl12xx-firmware_r5.sp7.01.bb @@ -0,0 +1,37 @@ +DESCRIPTION = "TI wl1271 firmware" +HOMEPAGE = "http://processors.wiki.ti.com/index.php/ARM_Processor_Open_Source_Wireless_Connectivity" +PR="r1" + +# bluetooth firmware from TI wiki: +# http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_BTS_files_overview +# http://processors.wiki.ti.com/images/a/a2/BTS_files_v1.zip + +# wifi firmware from TI-OpenLink on github.com +# git://github.com/TI-OpenLink/ti-utils.git + +SRCREV = "ol_R5.SP7.01" + +SRC_URI = "git://github.com/TI-OpenLink/ti-utils.git \ + file://bluetooth/3M/WL127xL_BT_Service_Pack_2.4.bts \ + " + +S = "${WORKDIR}/git" + +# nothing to compile +do_configure() { +} +do_compile() { +} + +do_install() { + install -d ${D}/lib/firmware + install -d ${D}/lib/firmware/ti-connectivity + # wifi firmware + install ${S}/hw/firmware/wl127*-fw-*.bin ${D}/lib/firmware/ti-connectivity + # factory nvs file + install ${S}/hw/firmware/wl1271-nvs.bin ${D}/lib/firmware/ti-connectivity/wl1271-nvs.bin.factory + # bluetooth firmware + install ${WORKDIR}/bluetooth/3M/WL127xL_BT_Service_Pack_2.4.bts ${D}/lib/firmware/TIInit_7.6.15.bts +} + +FILES_${PN} = "/lib/firmware" |