From: hschang Date: Wed, 17 Jul 2013 04:22:49 +0000 (+0900) Subject: Support WOL in duo2(needs a CFE update) X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_openvuplus_3.0;a=commitdiff_plain;h=7054d38de3a80d433981df6d89c5936a2cae02c8 Support WOL in duo2(needs a CFE update) - 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 --- diff --git a/meta-bsp/vuduo2/conf/machine/vuduo2.conf b/meta-bsp/vuduo2/conf/machine/vuduo2.conf index 50024f7..1eb9568 100644 --- a/meta-bsp/vuduo2/conf/machine/vuduo2.conf +++ b/meta-bsp/vuduo2/conf/machine/vuduo2.conf @@ -17,6 +17,7 @@ VUPLUS_FEATURES += "webif" VUPLUS_FEATURES += "autoshutdown" VUPLUS_FEATURES += "transcoding" VUPLUS_FEATURES += "webmanual" +VUPLUS_FEATURES += "wol" 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 index 0000000..dcfc5f7 --- /dev/null +++ b/meta-bsp/vuduo2/recipes/linux/linux-vuplus-3.3.8/brcm_s3_wol.patch @@ -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); diff --git a/meta-bsp/vuduo2/recipes/linux/linux-vuplus_3.3.8.bbappend b/meta-bsp/vuduo2/recipes/linux/linux-vuplus_3.3.8.bbappend index f6a2ab5..faf81bd 100644 --- a/meta-bsp/vuduo2/recipes/linux/linux-vuplus_3.3.8.bbappend +++ b/meta-bsp/vuduo2/recipes/linux/linux-vuplus_3.3.8.bbappend @@ -1,7 +1,8 @@ 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 \ + file://brcm_s3_wol.patch;patch=1;pnum=1 \ " diff --git a/meta-bsp/vuduo2/recipes/vuplus/vuplus-dvb-modules.bbappend b/meta-bsp/vuduo2/recipes/vuplus/vuplus-dvb-modules.bbappend index c1bad62..f15d647 100644 --- a/meta-bsp/vuduo2/recipes/vuplus/vuplus-dvb-modules.bbappend +++ b/meta-bsp/vuduo2/recipes/vuplus/vuplus-dvb-modules.bbappend @@ -1,6 +1,6 @@ -SRCDATE = "20130711" +SRCDATE = "20130716" MODULES_NAME = "procmk\ndvb-bcm7424\nbrcmfb\nfpga_directc" -SRC_URI[md5sum] = "ac1583a300f2707a591c8def871e72fb" -SRC_URI[sha256sum] = "a0d6ecf6cbdcfdd72ab49d2bb6850d2a197ccd477d8e49d2c031cd4c51fb8c2d" +SRC_URI[md5sum] = "f1ccddbea1af75a56dbb4a80bcfcc40c" +SRC_URI[sha256sum] = "3884a71ab0afae59651e797aae02e22dd02bc216a0da5449858f7c1346bb586d" diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb index 831ab21..d09e536 100644 --- a/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb +++ b/meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb @@ -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" -PR = "r23" +PR = "r24" SRCDATE = "20121128" #SRCDATE is NOT used by git to checkout a specific revision diff --git a/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-base.inc b/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-base.inc index ae9f3be..799a14f 100644 --- a/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-base.inc +++ b/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-base.inc @@ -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" -INC_PR = "r7" +INC_PR = "r8" inherit task @@ -62,6 +62,7 @@ VUPLUS_BASE_RECOMMENDS = "\ 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 = "\ diff --git a/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-enigma2.inc b/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-enigma2.inc index 60f9fea..c080bb8 100644 --- a/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-enigma2.inc +++ b/meta-openvuplus/recipes-vuplus/tasks/task-vuplus-enigma2.inc @@ -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" -INC_PR = "r9" +INC_PR = "r10" 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", "wol", "enigma2-plugin-systemplugins-wolsetup", "", 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 index 0000000..df15ed7 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot.bb @@ -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 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 index 0000000..0be7192 --- /dev/null +++ b/meta-openvuplus/recipes-vuplus/vuplus-coldboot/vuplus-coldboot/coldboot.sh @@ -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 +