diff options
13 files changed, 132 insertions, 26 deletions
diff --git a/multitech/recipes/base-files/base-files/mt100eocg-pcie-dk/fstab b/multitech/recipes/base-files/base-files/mt100eocg-pcie-dk/fstab index da00b50..24a586e 100644 --- a/multitech/recipes/base-files/base-files/mt100eocg-pcie-dk/fstab +++ b/multitech/recipes/base-files/base-files/mt100eocg-pcie-dk/fstab @@ -7,3 +7,4 @@ tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /media/ram tmpfs defaults 0 0 /dev/mtdblock6 /var/config jffs2 defaults 0 0 +/dev/mtdblock7 /var/oem jffs2 defaults,ro 0 0 diff --git a/multitech/recipes/base-files/base-files/mtocgd3/fstab b/multitech/recipes/base-files/base-files/mtocgd3/fstab index 84dc1f0..1d60d52 100644 --- a/multitech/recipes/base-files/base-files/mtocgd3/fstab +++ b/multitech/recipes/base-files/base-files/mtocgd3/fstab @@ -7,6 +7,7 @@ tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /media/ram tmpfs defaults 0 0 /dev/mtdblock6 /var/config jffs2 defaults 0 0 +/dev/mtdblock7 /var/oem jffs2 defaults,ro 0 0 # SD card /dev/mmcblk0p1 /media/card auto defaults,sync 0 0 diff --git a/multitech/recipes/images/corecdp-base-image.bb b/multitech/recipes/images/corecdp-base-image.bb index fb6dd94..25fbf5e 100644 --- a/multitech/recipes/images/corecdp-base-image.bb +++ b/multitech/recipes/images/corecdp-base-image.bb @@ -39,6 +39,7 @@ WIFI_FEATURES = " \ WL1271_SUPPORT = " \ ti-compat-wireless-wl12xx wl12xx-firmware \ ti-wifi-utils \ + wl12xx-scripts \ " BLUETOOTH_FEATURES = "bluez4" diff --git a/multitech/recipes/linux/linux-2.6.39.4/mt100eocg-pcie-dk/defconfig b/multitech/recipes/linux/linux-2.6.39.4/mt100eocg-pcie-dk/defconfig index a3e1956..a53ae33 100644 --- a/multitech/recipes/linux/linux-2.6.39.4/mt100eocg-pcie-dk/defconfig +++ b/multitech/recipes/linux/linux-2.6.39.4/mt100eocg-pcie-dk/defconfig @@ -1764,8 +1764,8 @@ CONFIG_MMC_BLOCK_BOUNCE=y # MMC/SD/SDIO Host Controller Drivers # # CONFIG_MMC_SDHCI is not set -CONFIG_MMC_AT91=m -# CONFIG_MMC_ATMELMCI is not set +# CONFIG_MMC_AT91 is not set +CONFIG_MMC_ATMELMCI=m # CONFIG_MMC_SPI is not set # CONFIG_MMC_DW is not set # CONFIG_MMC_USHC is not set diff --git a/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-atmel-mci-module-alias.patch b/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-atmel-mci-module-alias.patch deleted file mode 100644 index 8081bb9..0000000 --- a/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-atmel-mci-module-alias.patch +++ /dev/null @@ -1,9 +0,0 @@ -Index: linux-2.6.39.4/drivers/mmc/host/atmel-mci.c -=================================================================== ---- linux-2.6.39.4.orig/drivers/mmc/host/atmel-mci.c 2013-03-08 10:25:21.024073265 -0600 -+++ linux-2.6.39.4/drivers/mmc/host/atmel-mci.c 2013-03-08 10:25:25.523819243 -0600 -@@ -1973,3 +1973,4 @@ - MODULE_DESCRIPTION("Atmel Multimedia Card Interface driver"); - MODULE_AUTHOR("Haavard Skinnemoen <haavard.skinnemoen@atmel.com>"); - MODULE_LICENSE("GPL v2"); -+MODULE_ALIAS("platform:atmel_mci"); diff --git a/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch b/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch index 6fd737b..5c1ae8f 100644 --- a/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch +++ b/multitech/recipes/linux/linux-2.6.39.4/mtocgd3/linux-2.6.39.4-mach-at91-mtocgd3.patch @@ -1,7 +1,7 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5cm.c =================================================================== ---- linux-2.6.39.4.orig/arch/arm/mach-at91/board-sam9x5cm.c 2013-03-07 17:07:04.793136604 -0600 -+++ linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5cm.c 2013-03-07 17:07:04.793136604 -0600 +--- linux-2.6.39.4.orig/arch/arm/mach-at91/board-sam9x5cm.c 2013-02-19 09:38:45.180035681 -0600 ++++ linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5cm.c 2013-02-27 16:36:25.684073131 -0600 @@ -18,6 +18,9 @@ #include <linux/platform_device.h> #include <linux/spi/flash.h> @@ -205,8 +205,8 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5cm.c } Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c =================================================================== ---- linux-2.6.39.4.orig/arch/arm/mach-at91/board-sam9x5ek.c 2013-03-07 17:07:03.293174822 -0600 -+++ linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c 2013-03-08 10:11:42.653155621 -0600 +--- linux-2.6.39.4.orig/arch/arm/mach-at91/board-sam9x5ek.c 2013-02-19 09:38:43.680033046 -0600 ++++ linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c 2013-02-19 09:38:45.180035681 -0600 @@ -23,6 +23,7 @@ #include <linux/leds.h> #include <linux/clk.h> @@ -340,7 +340,7 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c at91_add_device_mci(0, &mci0_data); /* I2C */ if (cm_config & CM_CONFIG_I2C0_ENABLE) -@@ -405,6 +443,18 @@ +@@ -405,6 +443,15 @@ at91_add_device_i2c(0, ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices)); @@ -351,15 +351,12 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c + if (wl12xx_set_platform_data(&mtr_wlan_data)) + pr_err("error setting wl12xx data\n"); + -+ // MTOCGD3: enable wl1271 chip so it is detected by SDIO scan on start up -+ wl12xx_enable(1); -+ +/* MTOCGD3: no LCD */ +#if 0 if (cpu_is_at91sam9g25()) { /* ISI */ /* NOTE: PCK0 provides ISI_MCK to the ISI module. -@@ -430,13 +480,10 @@ +@@ -430,13 +477,10 @@ /* Touch Screen */ at91_add_device_tsadcc(&ek_tsadcc_data); } @@ -376,7 +373,7 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c #if 0 if (cpu_is_at91sam9x25() || cpu_is_at91sam9x35()) -@@ -448,6 +495,8 @@ +@@ -448,6 +492,8 @@ at91_add_device_can(0, NULL); #endif @@ -385,7 +382,7 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c if (cpu_is_at91sam9x25() || cpu_is_at91sam9x35()) /* this conflicts with usart.1 */ at91_add_device_can(1, NULL); -@@ -474,6 +523,9 @@ +@@ -474,6 +520,9 @@ else if (config_isi_enabled) printk(KERN_CRIT "AT91: ISI conficts with MCI1, disable MCI1\n"); @@ -397,8 +394,8 @@ Index: linux-2.6.39.4/arch/arm/mach-at91/board-sam9x5ek.c MACHINE_START(AT91SAM9X5EK, "Atmel AT91SAM9X5-EK") Index: linux-2.6.39.4/arch/arm/mach-at91/at91sam9x5_devices.c =================================================================== ---- linux-2.6.39.4.orig/arch/arm/mach-at91/at91sam9x5_devices.c 2013-03-07 17:07:03.793204785 -0600 -+++ linux-2.6.39.4/arch/arm/mach-at91/at91sam9x5_devices.c 2013-03-07 17:07:04.793136604 -0600 +--- linux-2.6.39.4.orig/arch/arm/mach-at91/at91sam9x5_devices.c 2013-02-19 09:38:44.680033189 -0600 ++++ linux-2.6.39.4/arch/arm/mach-at91/at91sam9x5_devices.c 2013-02-19 15:28:04.792006181 -0600 @@ -543,11 +543,11 @@ #endif diff --git a/multitech/recipes/linux/linux_2.6.39.4.bb b/multitech/recipes/linux/linux_2.6.39.4.bb index 67c5640..0bb15e2 100644 --- a/multitech/recipes/linux/linux_2.6.39.4.bb +++ b/multitech/recipes/linux/linux_2.6.39.4.bb @@ -145,7 +145,6 @@ SRC_URI_append_mtocgd3 = " \ file://linux-2.6.39.4-ledtrig-netdev.patch \ file://linux-2.6.39.4-at91sam9x5-extreset.patch \ file://linux-2.6.39.4-atmel-mci-force-detect.patch \ - file://linux-2.6.39.4-atmel-mci-module-alias.patch \ file://linux-2.6.39.4-wl12xx-sdio-irq.patch \ file://linux-2.6.35.14-at91-gpio-pullup.patch \ file://linux-2.6.32.3-atmel_spi.patch \ diff --git a/multitech/recipes/multitech/config/config.init b/multitech/recipes/multitech/config/config.init index 770be18..11233c0 100644 --- a/multitech/recipes/multitech/config/config.init +++ b/multitech/recipes/multitech/config/config.init @@ -2,6 +2,7 @@ CONFIG_MTDC=/dev/mtd6 CONFIG_DIR=/var/config +OEM_DIR=/var/oem FILES="network/interfaces \ ppp/options \ @@ -16,6 +17,9 @@ case $1 in echo "Mounting ${CONFIG_DIR}" mkdir -p ${CONFIG_DIR} mount ${CONFIG_DIR} + echo "Mounting ${OEM_DIR}" + mkdir -p ${OEM_DIR} + mount ${OEM_DIR} # Prepare flash for JFFS2 if mount fails if [ $? -ne 0 ]; then diff --git a/multitech/recipes/wl12xx-firmware/wl12xx-firmware_1.0.bb b/multitech/recipes/wl12xx-firmware/wl12xx-firmware_1.0.bb index 9b8c59f..b601b86 100644 --- a/multitech/recipes/wl12xx-firmware/wl12xx-firmware_1.0.bb +++ b/multitech/recipes/wl12xx-firmware/wl12xx-firmware_1.0.bb @@ -20,7 +20,7 @@ do_install() { # wifi firmware install ${WORKDIR}/wifi/wl1271-fw*.bin ${D}/lib/firmware/ti-connectivity # factory nvs file - install ${WORKDIR}/wifi/wl1271-nvs.bin ${D}/lib/firmware/ti-connectivity/wl1271-nvs.bin + install ${WORKDIR}/wifi/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 } diff --git a/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/calibrate-wifi.sh b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/calibrate-wifi.sh new file mode 100644 index 0000000..b57e0bb --- /dev/null +++ b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/calibrate-wifi.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +if [[ $# -ne 1 ]]; then + echo "usage: $0 <wifi-mac-address>" + exit 1 +fi + +WIFIMAC=$1 +OEM_DIR="/var/oem" +NVS_DIR="mts" +NVS_OEM_FILE="$OEM_DIR/$NVS_DIR/wl1271-nvs.bin" +NVS_FILE="/lib/firmware/ti-connectivity/wl1271-nvs.bin" +NVS_DEFAULT_FILE="$NVS_FILE.factory" + +echo "starting wifi calibration..." + +killall hostapd +killall wpa_supplicant + +modprobe -r wl12xx_sdio +modprobe -r atmel_mci + +mts-io-sysfs store wlan-enabled 0 +sleep 1 +mts-io-sysfs store wlan-enabled 1 +sleep 1 + +mount -o remount,rw /var/oem +echo "removing $NVS_OEM_FILE" +rm -f $NVS_OEM_FILE + +modprobe atmel_mci +sleep 1 +rmmod wl12xx_sdio + +echo "calibrating..." +calibrator plt autocalibrate wlan0 \ + /lib/modules/2.6.39.4/updates/drivers/net/wireless/wl12xx/wl12xx_sdio.ko \ + /usr/share/ti/wifi-utils/ini_files/127x/TQS_S_2.6.ini \ + $NVS_FILE $WIFIMAC + +mount -o remount,ro /var/oem + +echo "...calibration finished" diff --git a/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/enable-wifi.sh b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/enable-wifi.sh new file mode 100644 index 0000000..2da1e24 --- /dev/null +++ b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/enable-wifi.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +source /etc/default/wifi + +OEM_DIR="/var/oem" +NVS_DIR="mts" +NVS_OEM_FILE="$OEM_DIR/$NVS_DIR/wl1271-nvs.bin" +NVS_FILE="/lib/firmware/ti-connectivity/wl1271-nvs.bin" +NVS_DEFAULT_FILE="$NVS_FILE.factory" + +if [[ $WIFIENABLED == "yes" ]]; then + echo "Wifi: enabling" + + # make sure nvs file exists in /var/oem/mts/ + if [[ ! -f $NVS_OEM_FILE ]]; then + echo "copying nvs file to $OEM_DIR" + mount -o remount,rw $OEM_DIR + mkdir -p $OEM_DIR/$NVS_DIR + cp $NVS_DEFAULT_FILE $NVS_OEM_FILE + mount -o remount,ro $OEM_DIR + fi + + # make sure nvs file exists in /lib/firmware/ti-connectivity/ + echo "creating $NVS_FILE" + ln -fs $NVS_OEM_FILE $NVS_FILE + + # probe wifi chip + mts-io-sysfs store wlan-enabled 0 + usleep 50000 + echo "starting up wifi chip" + mts-io-sysfs store wlan-enabled 1 + sleep 1 + echo "loading atmel_mci driver" + modprobe atmel_mci + sleep 3 +else + echo "Wifi: disabled" + mts-io-sysfs store wlan-enabled 0 + modprobe atmel_mci +fi diff --git a/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/wifi b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/wifi new file mode 100644 index 0000000..9d52c22 --- /dev/null +++ b/multitech/recipes/wl12xx-scripts/wl12xx-scripts-1.0/wifi @@ -0,0 +1 @@ +WIFIENABLED=yes diff --git a/multitech/recipes/wl12xx-scripts/wl12xx-scripts_1.0.bb b/multitech/recipes/wl12xx-scripts/wl12xx-scripts_1.0.bb new file mode 100644 index 0000000..98a6797 --- /dev/null +++ b/multitech/recipes/wl12xx-scripts/wl12xx-scripts_1.0.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "Scripts to enable and calibrate the wifi chip on the OCG" +HOMEPAGE = "http://www.multitech.net/" +LICENSE = "GPL" + +PR = "r3" + +inherit update-rc.d + +SRC_URI = "file://wl12xx-scripts-1.0/calibrate-wifi.sh \ + file://wl12xx-scripts-1.0/wifi \ + file://wl12xx-scripts-1.0/enable-wifi.sh" + +CONFFILES_${PN} += "${sysconfdir}/default/wifi" + +INITSCRIPT_NAME = "enable-wifi.sh" +INITSCRIPT_PARAMS = "start 40 S ." + +S = ${WORKDIR}/wl12xx-scripts-1.0/ + +do_install() { + install -d ${D}${sbindir} + install -m 755 ${WORKDIR}/wl12xx-scripts-1.0/calibrate-wifi.sh ${D}${sbindir} + install -d ${D}${sysconfdir}/init.d + install -m 755 ${WORKDIR}/wl12xx-scripts-1.0/enable-wifi.sh ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install -m 644 ${WORKDIR}/wl12xx-scripts-1.0/wifi ${D}${sysconfdir}/default/ +} |