This patch adds support for the Airtight C-60.
SOC: Atheros AR9344 rev 2 (CPU:560.000MHz)
RAM: 128 MiB
NOR: MX25L3205D 4MiB
NAND: ST Micro NAND 32MiB 3,3V 8-bit
SW-NET: AR8327N (2 Ports)
WLAN1: Dual-Band AR9340 Rev:2 (built-in SoC)
WLAN2: Dual-Band AR9300 Rev:4 PCIe Chip
The switch is setup for an accesspoint:
LAN1: (gigabit) is the wan-port.
LAN2: (fast ethernet) is bridged with the br-lan.
Flashing Guide (via initramfs):
1. Connect a PC to the serial port of the C-60.
power up the C-60.
Enter u-boot command prompt:
#> nand erase
#> setenv bootcmd "bootm 0x9f060000"
#> saveenv
#> setenv ipaddr 192.168.1.1
#> setenv netmask 255.255.255.0
#> setenv serverip 192.168.1.100
#> setenv bootfile lede-ar71xx-nand-c-60-initramfs-kernel.bin
#> tftpboot
#> bootm
2. Wait for the C-60 to boot LEDE.
On the root prompt. Enter:
# ubiformat /dev/mtd4
# ubiattach -p /dev/mtd4
3. After that copy the sysupgrade.tar onto the router and run:
# sysupgrade sysupgrade.tar
to flash the image.
Special thanks to Chris Blake <chrisrblake93@gmail.com>. He provided
a C-60 unit and he helped with debugging the switch, LEDs and platfrom
support.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
The D-Link DIR-869 A1 doesn't accept images with the jffs2 marker added
after the checksummed range, so we need to include it in the checksum and
fix it on first boot.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This includes:
- use of local 'board' variable in LED names, wherever possible
- merge of boards with exactly the same LED configuration
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Keep everything in alphabetical order. Boards are ordered in two steps,
first within/inside common configuration (case section), then sections,
globally.
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
This includes:
- code style fixes
- removal of huge comment (it should be in doc, not here) and some small ones
- removal of redundant config for DR531/WPJ531 as the default is the same
- merge of boards with exactly the same interfaces config
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Convert etc/board.d/02_network in ar71xx target to the same shape
as we have in ramips target. Split code into two new functions:
- interface/s setup in ar71xx_setup_interfaces()
- MAC/s setup in ar71xx_setup_macs()
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
ar71xx has an init-script for special devices where the ath10k OTP
calibration data is stored on the PCIe card's EEPROM (and thus can only
be read by ath10k). Unfortunately the OTP data uses the default mac
address (= all devices come with the same mac address, which leads to
problems when you have multiple of these devices in the same network).
To work around this the mac address is patched in the firmware during
the first boot of the device. To prevent flash wear this was only done
if the ath10k firmware matched a hardcoded md5sum.
However, if the md5sum does not match this can mean that either the mac
address was already patched (which is fine) - unfortunately it can also
mean that the firmware version was updated without updating the
hardcoded md5sum.
Change the "was the mac address already patched" check to actually
compare the mac address inside the ath10k firmware.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
This patch adds support for Cisco's Z1.
Detailed instructions for the flashing the device can
be found in the OpenWrt wiki:
<https://wiki.openwrt.org/toh/meraki/z1>
Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
Local variable declarations outside of functions are illegal since the Busybox
update to v1.25.0, therfore remove them from the appropriate places.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
- quote the interface name
- remove call of not existing function
- remove the proto if it's the default proto
Signed-off-by: Mathias Kresin <dev@kresin.me>
Zbtlink ZBT-WE1526 is based on Qualcomm Atheros QCA9531 v2.
Short specification:
- 650/400/200 MHz (CPU/DDR/AHB)
- 5x 10/100 Mbps Ethernet
- 1x USB 2.0
- 128 MB of RAM (DDR2)
- 16 MB of FLASH
- 2T2R 2.4 GHz, up to 22 dBm
- two external, non-detachable antennas
- 8x LED, 1x button
- UART header (pinout: VCC, RX, TX, GND)
Flash instruction:
Use sysupgrade in vendor firmare which is based on OpenWrt.
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
The mw4530r-v1 profile in tp-link.mk is for Mercury MW4530R.
There is no such a device called TL-WDR4530.
Also change MERCURY to Mercury in /lib/ar71xx.sh
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
The stock firmware uses the single LED as status indicator only. Using the
same LED both for status and as ethernet indicator is uncommon, and has
been confusing users who were using the device as a WLAN mesh node (so the
LED was just off, as no ethernet was connected).
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
The network defaults for the WZR-HP-G300NH and CR3000 models wrongly set the
lan interface to a vlan tagged device while the switch was set up in untagged
mode, leading to broken lan side ethernet connectivity by default.
Fix the issue by emitting untagged interfaces, consistent with the switch
setting on the device.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
jjPlus JWAP230 is based on Qualcomm Atheros QCA9558 + QCA8337.
Short specification:
- 720/600/200 MHz (CPU/DDR/AHB)
- 2x 10/100/1000 Mbps Ethernet
- 128 MB of RAM (DDR2)
- 16 MB of FLASH
- 3T3R 2.4 GHz with external PA (SST12LP15A), up to 28 dBm
- 3x MMCX connectors
- power input: 802.3at PoE or wide range DC (36-57 V)
- optional 802.3af PSE
- 1x mini-PCIe connector with PCIe, USB buses and SIM slot
- 1x mini-PCIe connector with PCIe bus
- 1x USB type-A connector
- 6x LED, 1x button (hardware reset)
- RS232 (MAX3223) and (E)JTAG headers
Default configuration:
- WAN on eth1 (RJ45 near LEDs with PoE input)
- LAN on eth0 (RJ45 near DC jack)
- left top LED set to be status LED
- all LEDs configurable form user space
Flash instruction (do it under U-Boot, using RS232):
1. tftp 0x80060000 lede-ar71xx-generic-jwap230-squashfs-sysupgrade.bin
2. erase 0x9f050000 +$filesize
3. cp.b $fileaddr 0x9f050000 $filesize
4. setenv bootcmd "bootm 0x9f050000"
5. saveenv && reset
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Wallys DR531 is based on Qualcomm Atheros QCA9531 v2.
Short specification:
- 550/400/200 MHz (CPU/DDR/AHB)
- 2x 10/100 Mbps Ethernet
- 64 MB of RAM (DDR2)
- 8 MB of FLASH
- 2T2R 2.4 GHz with external PA (SE2576L), up to 30 dBm
- 2x MMCX connectors
- mini-PCIe connector with PCIe/USB buses and SIM slot
- 7x LED, 1x button, 1x optional buzzer
- UART, (E)JTAG and LED headers
Default configuration:
- WAN on eth1 (RJ45 near DC jack)
- LAN on eth0 (RJ45 near button)
- S4 LED set to be status LED
- all LEDs configurable form user space
- button configured for reset
Flash instruction (do it under U-Boot, using UART):
1. tftp 0x80060000 lede-ar71xx-generic-dr531-squashfs-sysupgrade.bin
2. erase 0x9f050000 +$filesize
3. cp.b $fileaddr 0x9f050000 $filesize
4. setenv bootcmd "bootm 0x9f050000"
5. saveenv && reset
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
It was intended as a workaround when jffs2 eof mark was included in the
checksum calculation in seama header. When qihoo-c301 support was
introduced the board name was not inserted into the case list (because I
was not aware of it's existence), but the issue was fixed by excluding
the jffs2 marker as part of the checksum data
Now we are at it, drop it.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Reordered the VLANs so the LAN ports are set to VLAN 1 and the WAN port is set to VLAN 2, as in the other routers in the config file. Moreover, this model had this VLAN mapping in OpenWRT Chaos Calmer. It seems that the VLAN were switched when fixing a bug in the port mapping ( OpenWRT changeset 47799 )
Signed-off-by: David Pinilla Caparrós <dpinitux@gmail.com>
This patch adds the target profile SOM9331 and configures hardware
functionality for the 3x Eth Ports & corresponding LED's, the USB Host,
the USART to USB bridge and the System LED.
Signed-off-by: Allan Nick Pedrana <nik9993@gmail.com>
RB912 has one usb shared between external USB and miniPCIe slot. GPIO52 can
reroute power to external USB (=1) or internal miniPCIe slot (=0)
Signed-off-by: Cezary Jackiewicz <cezary@eko.one.pl>
The CE image format used by OpenMesh can contain extra blocks which
are not used for flashing. Only the first three embedded images
(fwupgrade.cfg, kernel, rootfs) are required in this order to successfully
flash an image via sysupgrade. All extra embedded images should be ignored
for the available devices.
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
The platform_check_image_openmesh function used break statements to signal
that the board name matched the image target. This worked because the
sysupgrade binary checked the image inside a loop. The break statement
stopped the loop and skipped any additional check.
Instead the check should be done without such sideeffects by simply
combining the board names and image targets. Only a mismatch should cause a
negative result for the caller and skipping of the additional checks.
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
- CPU QCA9531-BL3A
- RAM: 64MB
- flash: 16MB
- USB
AP143 platform, similar to tl-wr841n v10/v11, but with USB
Signed-off-by: Cezary Jackiewicz <cezary@eko.one.pl>
To avoid confusion with different unifiac devices, rename existing target
"unifiac" to "unifiac-lite", before "unifiac-pro" is introduced.
Signed-off-by: P.Wassi <p.wassi at gmx.at>
OpenWrt can be flashed with following uboot commands:
tftpboot 0x80500000 openwrt-ar71xx-generic-wpj342-16M-squashfs-sysupgrade.bin
erase 0x9f030000 +$filesize
cp.b $fileaddr 0x9f030000 $filesize
Signed-off-by: Christian Mehlis <christian@m3hlis.de>
SVN-Revision: 49157
Let's not confuse users about the revisions of their devices when we can
easily avoid it.
Not tested on real hardware.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 49107
Instead of adding the space when combining $model and $hwver, add the space
to the beginning of $hwver, so the resulting string won't end with a space
when $hwver is set to the empty string.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 49106
There's no reason for us to be more lenient than the stock firmware, so
better check the HWREV as well to avoid bricked devices.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 49105
This patch provides full GPIO support for WNR2200 (LEDs and buttons).
It exposes all LEDs to operating system, including Ethernet ones.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
SVN-Revision: 49101
This patch provides full GPIO support for WNR1000v2 (LEDs and buttons).
It exposes all LEDs to operating system, including Ethernet ones.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
SVN-Revision: 49076
This patch provides full GPIO support for WNR612v2 (LEDs and buttons).
It exposes all LEDs to operating system, including Ethernet ones.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
SVN-Revision: 48924
This patch add speed_mask parameter to Ethernet port LED initialization
during system startup. LEDs are configured to show amber light for 10 Mbps
link and green for 100 Mbps as described on device label.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
SVN-Revision: 48923
This patch provides full GPIO support for WNR2000v3 (LEDs and buttons).
It exposes all LEDs to operating system, including Ethernet ones.
Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
SVN-Revision: 48922
My last bugfix (r47538) introduced a new bug in wndr3700_board_detect
(again...).
Assigning the result of ar71xx_get_mtd_offset_size_format to the model
variable before stripping of garbage using awk will cause all NUL bytes to
be removed before awk is applied, leading to model strings like
"NETGEAR WNDRMACv2NETGEAR", where a NUL byte after the v2 is supposed to
terminate the string.
Fix by calling ar71xx_get_mtd_offset_size_format twice, once piping to awk
directly.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 48075
This patch adds support for the Bitmain Antrouter R1
http://wiki.openwrt.org/toh/bitmain/r1
Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
SVN-Revision: 48058
The MR18 stores the ath9k eeprom values on the NAND.
This patch makes it possible to retrieve the images
from there.
Signed-off-by: Chris R Blake <chrisrblake93@gmail.com>
SVN-Revision: 47948
move all library includes and 'firmware already exists'
check to the top of the script.
Signed-off-by: Chris R Blake <chrisrblake93@gmail.com>
SVN-Revision: 47947
OpenWrt configuration part of support for the PowerCloud Systems
CR5000. The CR5000 is a dual-band 802.11n wireless router with
8MB flash, 64MB RAM, (unused on stock firmware) USB 2.0 port and
five port gigabit ethernet switch. The CR5000 was sold as
hardware for the Skydog cloud-managed router service.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
SVN-Revision: 47946
OpenWRt configuration part of support for the PowerCloud
Systems CR3000. The CR3000 is a 802.11n 2.4 GHz wireless router with
8MB flash, 64MB RAM, a four port gigabit ethernet switch, and a fast
ethernet wan port that was sold by PowerCloud Systems as
hardware for the Skydog cloud-managed router service.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
SVN-Revision: 47945
Openwrt configuration part of support for PowerCloud CAP324
Cloud AP. The CAP324 Cloud AP is a device sold by PowerCloud Systems
who's stock firmware (CloudCommand) provides 'cloud' based managment
of large numbers access points.
The CAP324 is a dual-band 802.11n wireless access point with 16MB flash
and 128MB RAM and single gigabit ethernet port. It can be powered via PoE
or a wall wart.
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
SVN-Revision: 47944
This patch adds support for Cisco's MR18.
Detailed instructions for the flashing the device can
be found in the OpenWrt forum thread:
<https://forum.openwrt.org/viewtopic.php?id=59248>
Signed-off-by: Chris R Blake <chrisrblake93@gmail.com>
SVN-Revision: 47878
Replace former uci-defaults.sh implementation with the uci-defaults-new.sh one
and update all users accordingly.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47867
Include /lib/functions/system.sh in 02_network to define missing
mtd_get_mac_binary() procedure.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47723
This removes calls to ucidef_set_interfaces_lan_wan() and
ucidef_set_interfaces_lan() on boards where all relevant info can be
inferred from the switch definition.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47722
This changes uci-defaults-new.sh, config_generate and all relevant board.d
files in order combine ucidef_add_switch() and ucidef_add_switch_ports() into
a single function.
Also removes now superfluous enable and reset arguments.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47721
Out of 69 switch definitions, only 3 pass something different than "1" as
values for reset and enable, with one of those three being invalid.
This change ...
* removes the reset and enable arguments from ucidef_add_switch()
* unconditionally writes reset:1 and enable:1 to JSON
* converts the three users of nonstandard values to ucidef_add_switch_attr()
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47720
The hwid check was wrong, causing the AR71XX_MODEL value to end with a
space (as $hwver was unset).
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 47553
When fixing the model string for WNDR3700v2 which contain a model string
followed by 0xff in r46455, the match for other versions of the WNDR3700v2
which just contain lots of 0xff broke (as the 0xff $model is checked for
is stripped off).
Fix by stripping off non-printable characters only for the actual output
string, but not for the internal matching.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 47538
This is based on patches from Federico Fissore <f.fissore@arduino.cc>
especially this one:
7e2976fa83
The console is running with 250000 baud which is a non standard baud
rate and needs an extra patch to be applied, I will try to get this
patch upstream or something else which accomplish the same.
Some upstream code looks like there are many different versions of this
SoC, are these only internal versions and all versions on the consumer
market are the same? I saw different GPIO configuration and flash sizes
of 8MB and 16MB?
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47451
The international version is completely different from the already
supported Chinese version. The WLAN of the QCA956x SoC used by this router
has been fixed in r46948.
This patch looks like it changes a lot in
700-MIPS-ath79-openwrt-machines.patch; that is not the case. Unfortunately,
quilt decided to completely reorganize the Kconfig patch even though only
a single section has been added.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 47420
This patch supersedes the v1 from September 17th.
Bumping the patch version - the MiniBox profile showed up under M, but
since it's called 'Gainstrong MiniBox v1.0' now it looks out of place.
Renamed the profile to gs-minibox-v1.mk to fix that.
The following patch adds support for the Gainstrong MiniBox into trunk
(or 'Designated Driver' :D ).
Fixed items:
- Inverted LED polarity (OOLITE seems to suffer from the same problem).
- Changed uppercase MINIBOX_V1_ prefix as requested.
- Prefixes are now gs_minibox_ similar to gs_oolite_ (same vendor).
- Mention the vendor (Gainstrong) in code headers.
Compiles fine, has been confirmed working by owners on 15.05.
Question: I've seen some boards use tools/firmware-utils/src/mktplinkfw.c,
the MiniBox images build fine without, so I'm wondering: do I need to add
it in there as well? Any added benefit?
Thank you
Signed-off by: Stijn Segers <francesco.borromini@inventati.org>
SVN-Revision: 47234
Sets the LEDs to boardname:color:led-name
Sets the LAN to eth0
Other corrections such as the Machine Name and HWIDs
v2 corrects the profile names in the Makefile and changes tabs to spaces
in the Makefile 'define Device/' like the other devices.
Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
SVN-Revision: 47221
Add support for WeIO board (http://we-io.net).
This board is based on Carambola2 board form 8Devices.
Signed-off-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org> [some cleanups]
SVN-Revision: 47036
This patch adds kernel and userspace support for the Ubiquiti Networks airGateway Pro.
Signed-off-by: Matthew Reeve <mreeve at tenxnetworks.com>
SVN-Revision: 46961
This patch adds support for TP-LINK TL-WDR3320 v2.
This router uses a chinese version 2 firmware header,.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
SVN-Revision: 46934
The GPIO pins for "POE passthrough" of Ubiquiti Nanostation models are the
following:
* Ubiquiti Nanostation M XM: Pin 8
* Ubiquiti Nanostation M XW: Pin 2
The previous definition of the pins was mixed up between XM and XW model.
Signed-off-by: Lars Kruse <lists@sumpfralle.de>
SVN-Revision: 46922
This adds full support (sans sysupgrading from vendor firmware) for the COMFAST
CF-E316N v2 (aka CF-E316V2, CF-E316N-V2 and CF-E316Nv2.0, no FCC ID) by
Shenzhen Four Seas Global Link Network Technology Co., Ltd (this company is
actively refusing to provide GPL'd sources for the OpenWrt version they ship
with the device, damn them).
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
SVN-Revision: 46852
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
This patch adds support for TP-Link TL-WDR6500 v2.
The firmware has a U-Boot header for kernel, and a TP-LINK v2 header for
the whole firmware, so I have to create a new firmware creation method.
SVN-Revision: 46663
This patch adds support for the Onion Omega.
https://onion.io/omega
Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
Acked-by: Boken Lin <bl@onion.io>
Tested-by: Jacky Huang <huangfangcheng@163.com>
SVN-Revision: 46458
There are a few NETGEAR devices which don't terminate the model name in the
ART with a NUL byte, at least some NETGEAR WNDR3700v2. The current awk
expression doesn't match 0xFF bytes, so AR71XX_MODEL contains lots of
trailing 0xFF garbage in this case.
Fix this by matching for the first non-printable character and explicitly
setting LC_CTYPE=C (probably not strictly necessary on OpenWrt, but will
definitely work like this, even when awk supports locales and LANG is set).
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
SVN-Revision: 46455
As r46245 disabled the board.bin template workaround, 5GHz wifi stopped working
on these devices. This adds them to the calibration data loading introduced in
r46244 and thus makes 5GHz work again for these devices.
Signed-off-by: Christian Beier <cb@shoutrlabs.com>
SVN-Revision: 46415
Internal GPIO pins are used for PoE passthrough setups in multi-port
routers. This patch implemnets control over this hardware feature for
Ubiquiti Nanostations and TP-Link CPE510.
Signed-off-by: Lars Kruse <lists@sumpfralle.de>
SVN-Revision: 46271
This patch adds support for the Cisco WAP4410N, an access point that uses the
AR9132 SoC. Web upgrades from stock are not yet possible, UART access required
for the initial flash.
Signed-off-by: Ryan A Young <rayoung@utexas.edu>
SVN-Revision: 46250
Currently one board uses the "proper" way of providing firmware
with the name ath10k/cal-pci-<pci address>.bin, whereas other
boards patch board.bin template in preinit and rely on a custom
ath10k patch to use calibration data from the template.
This patch makes all boards use the first method.
Signed-off-by: Matti Laakso <malaakso@elisanet.fi>
SVN-Revision: 46244
This patch adds support for the Bitmain Antminer S3 Cryptocurrency Miner
http://wiki.openwrt.org/toh/bitmain/s3
Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
SVN-Revision: 46236
rocket-m titanium is a device based on ar9344 with 802.11af poe.
It doesn't use the SoC wifi, instead it's using an ar9280 connected to
the pci bus. The gps version of the rocket-m ti is working, but
gps is untested. The gps is connected to the first serial port.
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
SVN-Revision: 46234
Update firmware name and md5sum. MAC-address location remains
unchanged from previous version.
Signed-off-by: Matti Laakso <malaakso@elisanet.fi>
SVN-Revision: 46196
The hardware should be almost the same as TL-WR720N-v3. WiFi and LAN networks
were tested by "Lo Yuk Fai <loyukfai@gmail.com>". Failsafe and slider switch
were tested by "Wong min <alpha080@gmail.com>".
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
SVN-Revision: 46046