aboutsummaryrefslogtreecommitdiffstats
path: root/target
Commit message (Collapse)AuthorAgeFilesLines
* ramips: add support for Loewe WMDR-143NOliver Fleischmann2017-07-275-1/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The WMDR-143N is a small module originally used as a Wifi client in some Loewe smart TV sets. It is sold cheaply at german surplus shops. The module contains a RT3662 SOC. Specifications: - 500 MHz CPU Clock - 1x 10/100Mbps Ethernet (pin header) - 32 MB of RAM - 8 MB of FLASH - 2T3R 2.4/5 GHz (SOC internal) - 3 Antennas on PCB - UART pads on PCB (J3: 1 = +3.3V, 2 = RX, 3 = TX, 4 = GND), TX and RX are 3,3V only! The square hole is pin 1 - Power supply pads on PCB (J6: 1 and 2 = +5V, 3 and 4 = GND) The square hole is pin 1 The original firmware has two identical kernel/rootfs images and two "Factory" calibration data blocks in flash. The LEDE image leaves only the first "Factory" block in place and uses both "Kernel" blocks and the redundant "Factory" block together to gain enough space for the jffs2 partition. Flash instructions: You need UART and Ethernet connections to flash the board. Use the LEDE "sysupgrade.bin" image with tftp. Apply power to the board and in the first 5 seconds, hit 2 to select TFTP upload. The bootloader asks for board- and server IP addresses and filename. Alternate method: With the vendor firmware running, assign an IP address to the ethernet port, tftp the firmware image to /tmp and write to mtd4 ("KernelA"). Signed-off-by: Oliver Fleischmann <ogf@bnv-bamberg.de> [remove pinctrl node from dts, no pin is used as GPIO] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: pinctrl: return proper error if pinctrl0 is emptyMathias Kresin2017-07-271-1/+1
| | | | | | | | Children of the pinctrl0 node are optional. Return EINVAL (=missing) instead of 0. Fixes a hang if the pinctrl0 has no children. Signed-off-by: Mathias Kresin <dev@kresin.me> Acked-by: John Crispin <john@phrozen.org>
* ramips: refresh the rcu_sched patch and remove debug infoJohn Crispin2017-07-261-27/+6
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ralink: fix rcu_sched stalls on mt7621John Crispin2017-07-262-0/+132
| | | | | | | | there were 2 bugs *) core1 came up with a bad bogo mips, looks like the clock needed time to stabilize *) HPT frequency was not set making r4k timers not come up properly Signed-off-by: John Crispin <john@phrozen.org>
* ramips: add support for the GnuBee Personal Cloud OneL. D. Pinney2017-07-257-0/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GnuBee Personal Cloud One crowdfunded on https://www.crowdsupply.com It is a low-cost, low-power, network-attached storage device. Specifications: - SoC: MediaTek MT7621AT - RAM: DDR3 512 MB - Flash: 32 MB - Six SATA ports for 2.5" Drives - One micro SDcard - One USB 3.0 - Two USB 2.0 - Gigabit Ethernet: 1 x WAN and 1 x LAN - UART 3.5mm Audio Jack or 3 pin header - 57600 8N1 - Four GPIOs available on a pin header Flash instructions: The GnuBee Personal Cloud One ships with libreCMC installed. libreCMC is a Free Software Foundation approved fork of LEDE/OpenWrt. As such one can upgrade using the webinterface or sysupgrade. Das U-Boot has multiple options for recovery or updates including : - USB - http - tftp Signed-off-by: L. D. Pinney <ldpinney@gmail.com> [use switchdev led trigger, all interfaces are in vlan1; rename leds according to board.d setting; remove ge2 group from the pinmux, this group doesn't exist in the driver] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: DIR-860L-B1 fix switch port numberingThibaut VARENE2017-07-251-1/+4
| | | | | | | | Luci shows switch ports in inverted order on that device. This patch fixes switch port numbering and matches them to the device silkscreen. Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
* ramips: fix wps button gpio for DWR-512Giuseppe Lippolis2017-07-251-1/+1
| | | | | | The WPS button is at GPIO#7. Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
* ramips: DTS: VoCore2 improvements/fixesPaul Wassi2017-07-251-22/+3
| | | | | | | | | | | The VoCore2 features 128MB of RAM, therefore set memory in DTS to 128*1024*1024 = 0x8000000 The board's LED is connected to GND, set it to ACTIVE_HIGH here. Make serial console working again on kernel 4.9 by change of pinmux configuration. Signed-off-by: Paul Wassi <p.wassi@gmx.at>
* ramips: add support for TP-Link RE350Alex Maclean2017-07-259-0/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | The TP-Link RE350 is a wall-wart AC1200 range extender/access point with a single gigabit ethernet port and two non-detachable antennas, based on the MT7621A SoC with MT7603E and MT7612E radios. Firmware wise it is very similar to the QCA based RE450. SoC: MediaTek MT7621A (880MHz) Flash: 8MiB (Winbond W25Q64) RAM: 64MiB (DDR2) Ethernet: 1x 1Gbit Wireless: 2T2R 2.4Ghz (MT7603E) and 5GHz (MT7612E) LEDs: Power, 2.4G, 5G (blue), WPS (red and blue), ethernet link/act (green) Buttons: On/off, LED, reset, WPS Serial header at J1, 57600 8n1: Pin 1 TX Pin 2 RX Pin 3 GND Pin 4 3.3V Factory image can be uploaded directly through the stock UI. Signed-off-by: Alex Maclean <monkeh@monkeh.net>
* ar71xx: image: use tplink-v1-header in place of mktplinkfw-kernelPiotr Dymacz2017-07-221-13/+8
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* build: move mktplinkfw-combined command to image-commands.mkPiotr Dymacz2017-07-221-18/+4
| | | | | | | | | | We will need "mktplinkfw-combined" command also in the "ramips" target for new MediaTek based TP-Link devices, with "safeloader" image type. Also, rename the command to "tplink-v1-header", use "VERSION_DIST" variable instead of "OpenWrt" and allow passing additional parameters. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* firmware-utils: mktplinkfw: rework combined image optionPiotr Dymacz2017-07-221-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use combined option in "mktplinkfw" tool for generating initramfs kernel images and header for kernel inside "safeloader" image type (in fact, only for TL-WR1043ND v4 at this moment). There is also "mktplinkfw-kernel" tool, a stripped-down version, used only for generating "simple" header, for safeloader image types. This changes how "mktplinkfw" handles combined images (which then will allow us to drop the stripped-down version of the tool): - drop "ignore size" command line option (it was used only for combined images anyway) - don't require "flash layout id" for combined images (we don't need and shouldn't limit size of the initramfs kernel and for kernels inside safeloader images, the "tplink-safeloader" tool does the size check) - require kernel address and entry point in command line parameters for combined images (consequence of previous point) - don't include md5 sum and firmware length values in header (they are needed only for update from vendor GUI and are ingored in case of initramfs and "tplink-safeloader" images) - drop "fake" flash layout for TL-WR1043ND v4 as it's no longer needed Also, adjust "mktplinkfw-combined" command in ar71xx/image/tp-link.mk to match introduced changes in "mktplinkfw" tool. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ar71xx: add support for ALFA Network AP121FPiotr Dymacz2017-07-2213-0/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | ALFA Network AP121F is a pocket-size router dedicated for VPN/TOR users. Device is based on Atheros AR9331 WiSoC and is running a custom version (updated from OpenWrt CC to LEDE 17.01 release) of NetAidKit firmware. Specification: - 400/400/200 MHz (CPU/DDR/AHB) - 64 MB of RAM (DDR1) - 16 MB of FLASH (SPI NOR) - 1x 10/100 Mbps Ethernet - 1T1R 2.4 GHz - 1x microSD (optional, on separate PCB) - 3x LED, 1x button, 1x switch - UART header on PCB Flash instruction (under U-Boot web recovery mode): 1. Configure PC with static IP 192.168.1.2/24. 2. Connect PC with RJ45 port, press the reset button, power up device, wait for first blink of all LEDs (indicates network setup), then keep button for 3 following blinks and release it. 3. Open 192.168.1.1 address in your browser and upload sysupgrade image. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ag71xx: add support for port mirroringMilan Krstić2017-07-211-0/+153
| | | | | | | This exposes hardware port mirroring in ag71xx driver (e.g. TL-WR841ND) via swconfig API. Signed-off-by: Milan Krstić <milan.krstic@gmail.com>
* brcm47xx: fix switch port mapping on Asus RT-N12 and RT-N16 modelsJo-Philipp Wich2017-07-211-0/+2
| | | | | | | | | | | | | On Asus RT-N12 and RT-N16 models, the WAN and LAN4 ports are swapped in the initial switch configuration since the presets present in nvram appear to be wrong. Add special casing for these models to detect_by_model() in order to ensure a proper switch configuration. Fixes FS#502. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* ar71xx: use the RB912UAG-{2, 5}HPnD Power LED for diagSergey Ryazanov2017-07-201-2/+2
| | | | | | | The Power LED of RB912UAG-{2,5}HPnD boards can be controlled by sofware, so use it for diag purposes and make the User LED free for other tasks. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* ar71xx: keep the RouterBOARD Power LED in On stateSergey Ryazanov2017-07-202-0/+2
| | | | | | | | | | It is quite unexpected behaviour when the Power LED switches off as soon as the kernel starts booting. So set the default state to 'Keep' for the Power LEDs of all RouterBOARDs (e.g. RB91x, SXT Lite series, etc.). Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> [switch the default state to keep instead of on] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: add support for Phicomm K2PChuanhong Guo2017-07-206-4/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It uses one MT7615D radio chip with DBDC mode enabled. This mode allows this single chip act as an 2x2 11n radio and an 2x2 11ac radio at the same time. However mt76 doesn't support it currently so there is no wireless available. Specification: - SoC: MediaTek MT7621AT - Flash: 16 MB - RAM: 128 MB - Ethernet: 1 x WAN (10/100/1000Mbps) and 4 x LAN (10/100/1000 Mbps) - Wireless radio: MT7615D on PCIE0 - UART: 1 x UART on PCB - 57600 8N1 Issue: - Wireless radio doesn't work due to the lack of driver. Flash instruction: Using UART: 1. Configure PC with a static IP address and setup an TFTP server. 2. Put the firmware into the tftp directory. 3. Connect the UART line as described on the PCB. 4. Power up the device and press 2,then follow the instruction to set device and tftp server IP address and input the firmware file name.U-boot will then load the firmware and write it into the flash. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* lantiq: fix sleep with spinlock held in xrx200 network driverAndrea Merello2017-07-202-6/+8
| | | | | | | | | | | | | | | | | | | | | | | In the xrx200_close() function we call napi_disable(), that could sleep, with priv->hw->chan[i].lock held. This could lead to deadlock and causes the kernel to complain. Look at the code I couldn't convince myself about why we need to protect that specific code part with the lock. IMHO there seems no reason to protect the refcount variables, because AFAIK ndo_close() and ndo_open() callbacks are already called with a semaphore held. Neither I could figure out why napi_disable() have to be called with that lock held. The only remaining code part for which I could guess the lock is useful for is ltq_dma_close() function call. This patch reduces the lock to the said function call, avoiding the sleep-with-spinlock-held situation Signed-off-by: Andrea Merello <andrea.merello@gmail.com> [fold into 0025-NET-MIPS-lantiq-adds-xrx200-net.patch, backport to kernel 4.4] Signed-off-by: Mathias Kresin <dev@kresin.me>
* uml: Backport upstream fix to build against static libpthreadFlorian Fainelli2017-07-181-0/+139
| | | | | | | | Backport upstream commit f44f1e7da7c8e3f4575d5d61c4df978496903fcc ("um: Avoid longjmp/setjmp symbol clashes with libpthread.a") to fix build issues on hosts that only have a static libpthread. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
* x86: Fix xen serial console by removing conflicting PATA driverBaptiste Jonglez2017-07-162-2/+0
| | | | | | | | | | | | | | | | | | | | | The Xen serial console has been broken since the xen_domu subtarget was merged in the generic x86 subtarget (commits 1d6879ee and 371b382a). The reason for the broken serial console seems to be an IRQ conflict between the serial console driver and the PATA_LEGACY driver: [ 1.330125] genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000 (platform[pata_legacy.4]) [ 1.330134] hvc_open: request_irq failed with rc -16. [ 1.330148] Warning: unable to open an initial console. Just drop the PATA_LEGACY driver from the x86/generic and x86_64 subtargets, since this driver is marked experimental and only supports very old ISA devices anyway. It is still included in the x86/legacy subtarget where it rightfully belongs. Fixes: FS#787 Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* x86/64: add xen DomU supportBaptiste Jonglez2017-07-162-1/+68
| | | | | | | | | | Xen support for x86/generic was added in 1d6879ee. This commit also enables it for x86/64. This was successfully tested with Xen 4.5, although the serial console is broken in the same way as x86/generic (see FS#787) Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* x86: Move USB support from subtargets to target configBaptiste Jonglez2017-07-165-38/+11
| | | | | | | | | All x86 subtargets enable USB support, so it makes sense to enable it in the target config instead, to avoid duplication. Also refresh subtarget configs accordingly. Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* x86: Refresh subtargets kernel configBaptiste Jonglez2017-07-164-72/+10
| | | | | | | | | | | | | | | | | This was done by simply running `make kernel_menuconfig CONFIG_TARGET=subtarget` and then saving without changing any option. Most of the removed options can be explained because they are already present in the target config or in the generic 4.9 config: - PAE-related options, enabled by default on x86 by 961c0eac - LZO-related options, enabled by default since 4.9 As far as I understand the build system, this shouldn't have any user-visible impact, because the build system already merges the various kernel configs during build. Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* x86: Drop stray subtarget "epia"Baptiste Jonglez2017-07-161-213/+0
| | | | | | | | | This subtarget was added by 961c0eac, probably by mistake. It does not contain anything beside a kernel config. Acked-by: Daniel Golle <daniel@makrotopia.org> Cc: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
* treewide: use only board_name function to get nameMathias Kresin2017-07-1520-38/+35
| | | | | | | | | | | | Do not parse /tmp/sysinfo/board_name, /proc/cpuinfo or the device tree compatible string directly. Always use the board_name function to get the board name. The admswconfig package still reads /proc/cpuinfo directly. The code looks somehow broken and the whole adm5120 which uses this package looks unmaintained. Leave it as it is for now. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: drop target board_name functionsMathias Kresin2017-07-1520-185/+0
| | | | | | They are not used any longer. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: use the generic board_name functionMathias Kresin2017-07-1584-236/+142
| | | | | | Use the generic function instead ot the target specific ones. Signed-off-by: Mathias Kresin <dev@kresin.me>
* sunix: run b53_hack laterMathias Kresin2017-07-151-0/+0
| | | | | | | The script relies on the board name but runs prior the generic sysinfo script which sets the board name. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: do board detection during preinitMathias Kresin2017-07-1513-25/+136
| | | | | | Do the board detection during preinit to unify it across all targets. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: populate boardname and model earlierMathias Kresin2017-07-1516-0/+0
| | | | | | | | | | | | | For targets using the generic board detection and board specific settings in diag.sh, the board name is still unset at the time the set_state() provided by diag.sh is called by 10_indicate_preinit. Change the execution order to ensure the boardname is populated before required the first time. Do the target specific board detection as early as possible, directly followed by the generic one to allow a seamless switch to the generic function for populating /tmp/sysinfo/. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: fix GL-inet GL-MT300N-V2 WAN/LAN MAC addressJohn Marrett2017-07-152-1/+4
| | | | | | | | | | | | | | Correct MAC address lookup to appropriate offset based on vendor source. Override the WAN MAC to use the same address as LAN. The switch driver increments the base MAC address for the WAN vlan but the stock firmware uses the same MAC address for all interfaces. Based on vendor source commit https://github.com/domino-team/lede-1701/commit/efb0518 Signed-off-by: John Marrett <johnf@zioncluster.ca>
* imx6: fix DualLite/Solo GW551X board detectionMathias Kresin2017-07-151-1/+1
| | | | | | The model name is a different one in the device tree source file. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: update kernel 4.9 to 4.9.37Koen Vandeputte2017-07-1544-314/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Refreshed all patches - Removed upstreamed - Adapted 4 patches: 473-fix-marvell-phy-initialization-issues.patch ----------------------------------------------- Removed hunk 5 which got upstreamed 403-net-phy-avoid-setting-unsupported-EEE-advertisments.patch 404-net-phy-restart-phy-autonegotiation-after-EEE-advert.patch -------------------------------------------------------------- Adapted these 2 RFC patches, merging the delta's from an upstream commit (see below) which made it before these 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux- stable.git/commit/?h=v4.9.36&id=97ace183074d306942b903a148aebd5d061758f0 180-usb-xhci-add-support-for-performing-fake-doorbell.patch ----------------------------------------------------------- - Moved fake_doorbell bitmask due to new item Compile tested on: cns3xxx, imx6 Run tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* scripts/gen_image_generic.sh: move from x86/imageStijn Tintel2017-07-142-38/+1
| | | | | | The script can also be useful for other targets. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* ar71xx/image: change unifi UBNT_CHIP to ar7240Alexander Couzens2017-07-131-1/+1
| | | | | | | | Verified by OEM firmware images which contains the same chip. Tested-by: Andreas Bräu <ab@andi95.de> Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* ar71xx: set US region code for TP-Link TL-WR710N v1 imageMatthias Schiffer2017-07-121-0/+1
| | | | | | | Non-US versions of the TP-Link TL-WR710N v1 don't have a region code so far, so we can just set US unconditionally. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* base-files: automatically handle paths and symlinks for RAMFS_COPY_BINMatthias Schiffer2017-07-117-7/+7
| | | | | | | | | | | | Depending on busybox applet selection, paths of basic utiilties may differ, and may not work as symlinks to busybox. Simply using whatever binary is found in PATH and detecting symlinks automatically is more robust and easier to maintain. The list of binaries is also slightly cleaned up and duplicates are removed. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* kirkwood: upgrade: fix RAMFS_COPY_*Matthias Schiffer2017-07-112-21/+4
| | | | | | | | RAMFS_COPY_* are moved to platform.sh toplevel. The nand_do_upgrade call is moved to platform_do_upgrade. Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade" Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ipq806x: upgrade: fix RAMFS_COPY_*Matthias Schiffer2017-07-112-21/+5
| | | | | | | | | RAMFS_COPY_* are moved to platform.sh toplevel. The unneeded linksys_preupgrade function is removed, and the nand_do_upgrade call is moved to platform_do_upgrade. Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade" Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* bcm53xx: upgrade: fix RAMFS_COPY_*Matthias Schiffer2017-07-111-2/+2
| | | | | Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade" Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* ar71xx: image: simplify Meraki MR16 device definitionPiotr Dymacz2017-07-091-10/+2
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ar71xx: fix upgrade platform check for Compex WPJ558Enrique Giraldo2017-07-091-1/+1
| | | | | | The magic number was wrong and always marked the images as invalid. Signed-off-by: Enrique Giraldo <enrique.giraldo@galgus.net>
* ar71xx: support LED in TP-Link TL-WR902AC RJ45 socketPiotr Dymacz2017-07-092-3/+8
| | | | | | | | | TP-Link TL-WR902AC has another one, tiny LED inside RJ45 socket which is attached to GPIO15. Add support for it, use it as a "lan" LED and rename old one to "internet". Also, fix uci option name for "lan" LED in system configuration ("wan" -> "lan"). Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ar71xx: verify TP-Link TL-WR902AC sysupgrade imagePiotr Dymacz2017-07-091-2/+2
| | | | | | | Until we enable requirement for metadata in sysupgrade images under ar71xx target, this prevents users from using wrong image. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* ar71xx: add metadata to some TP-Link imagesHenryk Heisig2017-07-091-2/+9
| | | | | | | This commit adds metadata to TP-Link sysupgrade images created by tplink-safeloader with uImage kernel header. Signed-off-by: Henryk Heisig <hyniu@o2.pl>
* ramips: sound-mt7620: fix dependencies for kernel 4.9Mathias Kresin2017-07-071-0/+2
| | | | | | | With kernel 4.8 common used code was moved to a shared kmod. Add the missing dependency to the shared snd-soc-simple-card-utils.ko. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: add missing symbolsMathias Kresin2017-07-072-0/+2
| | | | | | Fixes the ramips and xburst/qi_lb60 build. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix typo in EASY80920.dtsiMathias Kresin2017-07-071-1/+1
| | | | | | | There is no device tree property named phynmode0. Use phy-mode as it is done for the other ethernet nodes. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: add Netgear DM200 supportThomas Nixon2017-07-074-0/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Netgear DM200 is an inexpensive VDSL modem: CPU: VRX220 MIPS 34Kc 5.6 @ 500Mhz RAM: 64MiB Flash: 8MiB Ethernet: 1x100M DSL: VDSL2+, ADSL2+ reset button, 3x bi-color LEDs Serial port is 115200 baud, on the 4 pin header; pins from the bottom to top are GND, RX, TX. To upgrade from the vendor firmware, upload factory.img The DM200 bootloader supports flashing over TFTP; hold the reset button while powering on the device, and wait for the power light to start flashing green before releasing. The device is now listening on 192.168.0.1/24, and can be sent a factory.img or a netgear image with a TFTP put. Once the image is loaded, it will be written to the flash, and the device will reboot; this will take a few minutes. Thanks to Edward O'Callaghan and Baptiste Jonglez, who implemented their own ports for this device and provided valuable feedback. Signed-off-by: Thomas Nixon <tom@tomn.co.uk>