Support WOL in duo2(needs a CFE update)
authorhschang <chang@dev3>
Wed, 17 Jul 2013 04:22:49 +0000 (13:22 +0900)
committerhschang <chang@dev3>
Wed, 17 Jul 2013 04:24:38 +0000 (13:24 +0900)
 - Duo2 CFE V2 URL --> http://archive.vuplus.com/download/cfe/duo2/v2/Duo2_CFE_V2.zip
 - Duo2 CFE V2 Upate HOWTO : http://archive.vuplus.com/download/doc/duo2_cfe_v2_update.txt

meta-bsp/vuduo2/conf/machine/vuduo2.conf
meta-bsp/vuduo2/recipes/linux/linux-vuplus-3.3.8/brcm_s3_wol.patch [new file with mode: 0644]
meta-bsp/vuduo2/recipes/linux/linux-vuplus_3.3.8.bbappend
meta-bsp/vuduo2/recipes/vuplus/vuplus-dvb-modules.bbappend
meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb
meta-openvuplus/recipes-vuplus/tasks/task-vuplus-base.inc
meta-openvuplus/recipes-vuplus/tasks/task-vuplus-enigma2.inc
meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot.bb [new file with mode: 0644]
meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot [new file with mode: 0755]
meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot.sh [new file with mode: 0755]

index 50024f7..1eb9568 100644 (file)
@@ -17,6 +17,7 @@ VUPLUS_FEATURES += "webif"
 VUPLUS_FEATURES += "autoshutdown"
 VUPLUS_FEATURES += "transcoding"
 VUPLUS_FEATURES += "webmanual"
 VUPLUS_FEATURES += "autoshutdown"
 VUPLUS_FEATURES += "transcoding"
 VUPLUS_FEATURES += "webmanual"
+VUPLUS_FEATURES += "wol"
 
 IMAGE_UNPACK_PATH = "vuplus/duo2"
 MKFS_UBI_MAX_ERASE_BLK_COUNT = "4096"
 
 IMAGE_UNPACK_PATH = "vuplus/duo2"
 MKFS_UBI_MAX_ERASE_BLK_COUNT = "4096"
diff --git a/meta-bsp/vuduo2/recipes/linux/linux-vuplus-3.3.8/brcm_s3_wol.patch b/meta-bsp/vuduo2/recipes/linux/linux-vuplus-3.3.8/brcm_s3_wol.patch
new file mode 100644 (file)
index 0000000..dcfc5f7
--- /dev/null
@@ -0,0 +1,67 @@
+diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+old mode 100644
+new mode 100755
+index faf58ab..52e31ed
+--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+@@ -3123,6 +3123,34 @@ static int bcmgenet_set_wol(struct net_device *dev,
+               umac->mpd_ctrl |= MPD_PW_EN;
+       }
++      if (pDevCtrl->phyType == BRCM_PHY_TYPE_EXT_RGMII)
++      {
++              if(wol->wolopts & WAKE_MAGIC)
++              {
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006e);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, dev->dev_addr[1]<<8 | dev->dev_addr[0]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, dev->dev_addr[3]<<8 | dev->dev_addr[2]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x17, dev->dev_addr[5]<<8 | dev->dev_addr[4]);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x1000);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x19, 0x0001);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
++
++              }
++              else
++              {
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0007);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1e, 0x006d);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x16, 0x9fff);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x15, 0x0000);
++                      pDevCtrl->mii.mdio_write(dev, pDevCtrl->phyAddr, 0x1f, 0x0000);
++              }
++      }
++
+       device_set_wakeup_enable(&dev->dev, wol->wolopts);
+       pDevCtrl->wolopts = wol->wolopts;
+       return 0;
+diff --git a/kernel/printk.c b/kernel/printk.c
+index 1af3691..b0b73ff 100644
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -1125,11 +1125,21 @@ MODULE_PARM_DESC(console_suspend, "suspend console during suspend"
+  *
+  * This disables printk() while we go into suspend states
+  */
++void (*brcm_s3_cb)(void);
++
++
++void register_brcm_s3_cb(void (*cb)(void))
++{
++      brcm_s3_cb = cb;
++}
++EXPORT_SYMBOL(register_brcm_s3_cb);
++
+ void suspend_console(void)
+ {
+       if (!console_suspend_enabled)
+               return;
+       printk("Suspending console(s) (use no_console_suspend to debug)\n");
++      if(brcm_s3_cb) brcm_s3_cb();
+       console_lock();
+       console_suspended = 1;
+       up(&console_sem);
index f6a2ab5..faf81bd 100644 (file)
@@ -1,7 +1,8 @@
 FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
 
-PR .= "-bsp2"
+PR .= "-bsp3"
 
 SRC_URI += "file://remove_genet1.patch;patch=1;pnum=1 \
         file://nand_base.patch;patch=1;pnum=1 \
 
 SRC_URI += "file://remove_genet1.patch;patch=1;pnum=1 \
         file://nand_base.patch;patch=1;pnum=1 \
+       file://brcm_s3_wol.patch;patch=1;pnum=1 \
        "
        "
index c1bad62..f15d647 100644 (file)
@@ -1,6 +1,6 @@
-SRCDATE = "20130711"
+SRCDATE = "20130716"
 
 MODULES_NAME = "procmk\ndvb-bcm7424\nbrcmfb\nfpga_directc"
 
 
 MODULES_NAME = "procmk\ndvb-bcm7424\nbrcmfb\nfpga_directc"
 
-SRC_URI[md5sum] = "ac1583a300f2707a591c8def871e72fb"
-SRC_URI[sha256sum] = "a0d6ecf6cbdcfdd72ab49d2bb6850d2a197ccd477d8e49d2c031cd4c51fb8c2d"
+SRC_URI[md5sum] = "f1ccddbea1af75a56dbb4a80bcfcc40c"
+SRC_URI[sha256sum] = "3884a71ab0afae59651e797aae02e22dd02bc216a0da5449858f7c1346bb586d"
index 831ab21..d09e536 100644 (file)
@@ -85,7 +85,7 @@ RDEPENDS_enigma2-plugin-systemplugins-3gmodemmanager = "ppp usb-modeswitch usb-m
 RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-blkid ntfs-3g dosfstools"
 
 PN = "enigma2"
 RDEPENDS_enigma2-plugin-systemplugins-devicemanager = "util-linux-blkid ntfs-3g dosfstools"
 
 PN = "enigma2"
-PR = "r23"
+PR = "r24"
 
 SRCDATE = "20121128"
 #SRCDATE is NOT used by git to checkout a specific revision
 
 SRCDATE = "20121128"
 #SRCDATE is NOT used by git to checkout a specific revision
index ae9f3be..799a14f 100644 (file)
@@ -2,7 +2,7 @@ SUMMARY = "Vuplus: Base Task for Vuplus."
 SECTION = "vuplus/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
 SECTION = "vuplus/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-INC_PR = "r7"
+INC_PR = "r8"
 
 inherit task
 
 
 inherit task
 
@@ -62,6 +62,7 @@ VUPLUS_BASE_RECOMMENDS = "\
   openvpn \
   zeroconf \
   ${@base_contains("VUPLUS_FEATURES", "vuplus-fpga-update", "vuplus-fpga-update", "", d)} \
   openvpn \
   zeroconf \
   ${@base_contains("VUPLUS_FEATURES", "vuplus-fpga-update", "vuplus-fpga-update", "", d)} \
+  ${@base_contains("VUPLUS_FEATURES", "wol", "vuplus-coldboot", "", d)} \
 "
 
 VUPLUS_BASE_OPTIONAL_RECOMMENDS = "\
 "
 
 VUPLUS_BASE_OPTIONAL_RECOMMENDS = "\
index 60f9fea..c080bb8 100644 (file)
@@ -2,7 +2,7 @@ SUMMARY = "Enigma2 Task for Vuplus"
 SECTION = "vuplus/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
 SECTION = "vuplus/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-INC_PR = "r9"
+INC_PR = "r10"
 
 inherit task
 
 
 inherit task
 
@@ -58,6 +58,7 @@ RDEPENDS_${PN} += " \
   ${@base_contains("VUPLUS_FEATURES", "3gmodem", "enigma2-plugin-systemplugins-3gmodemmanager", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "autoshutdown", "enigma2-plugin-systemplugins-autoshutdown", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "transcoding", "enigma2-plugin-systemplugins-transcodingsetup enigma2-transtreamproxy", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "3gmodem", "enigma2-plugin-systemplugins-3gmodemmanager", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "autoshutdown", "enigma2-plugin-systemplugins-autoshutdown", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "transcoding", "enigma2-plugin-systemplugins-transcodingsetup enigma2-transtreamproxy", "", d)} \
+  ${@base_contains("VUPLUS_FEATURES", "wol", "enigma2-plugin-systemplugins-wolsetup", "", d)} \
   ${@base_conditional("MACHINE", "vuduo2", "duo2lcd4linux lcd4linuxsupport", "", d)} \
 "
 
   ${@base_conditional("MACHINE", "vuduo2", "duo2lcd4linux lcd4linuxsupport", "", d)} \
 "
 
diff --git a/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot.bb b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot.bb
new file mode 100644 (file)
index 0000000..df15ed7
--- /dev/null
@@ -0,0 +1,21 @@
+DESCIPTION = "S3 cold boot"
+MAINTAINER = "vuplus team"
+LICENSE = "CLOSED"
+
+
+PV = "1.0"
+PR = "r0"
+SRC_REV = ""
+
+SRC_URI = "file://coldboot \
+          file://coldboot.sh"
+
+do_install() {
+       install -d ${D}/etc/init.d \
+               ${D}/usr/bin \
+               ${D}${sysconfdir}/rc0.d 
+
+       install -m 0755 ${WORKDIR}/coldboot.sh ${D}/etc/init.d/coldboot.sh
+       install -m 0755 ${WORKDIR}/coldboot ${D}/usr/bin/coldboot
+        ln -sf   ../init.d/coldboot.sh ${D}${sysconfdir}/rc0.d/S30coldboot.sh
+}
diff --git a/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot
new file mode 100755 (executable)
index 0000000..33473d5
Binary files /dev/null and b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot differ
diff --git a/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot.sh b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot.sh
new file mode 100755 (executable)
index 0000000..0be7192
--- /dev/null
@@ -0,0 +1,14 @@
+#! /bin/sh
+#
+# coldboot
+#
+# Version:      @(#)coldboot  1.00  10-Jul-2013  
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+#go to S3 cold/warm boot.
+coldboot 1
+
+: exit 0
+