aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/base-files
Commit message (Collapse)AuthorAgeFilesLines
* apm821xx, ath79, ipq40xx, ipq806x, lantiq, ramips: base-files: Use generic ↵Petr Štetiar2018-12-061-45/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | diag.sh I wanted to add status LEDs support to my imx6 based board and have found out, that I could use diag.sh script found in ramips platform, which seems to be also shared in a few other platforms: 4801276bc2078c5bcf03003c831e3b0a target/linux/ramips/base-files/etc/diag.sh 4801276bc2078c5bcf03003c831e3b0a target/linux/ipq40xx/base-files/etc/diag.sh 4801276bc2078c5bcf03003c831e3b0a target/linux/ath79/base-files/etc/diag.sh And @chunkeey suggested to me, that I can also add lantiq, ipq806x and apm821xx to the list of platforms which could share this generic diag.sh. I've extended the base diag.sh in a way, that if it detects any of the DTS LED aliases, then it would use the generic DTS set_led_state code. The code in platform's diag.sh has moved to base-files package in this commit: base-files: diag.sh: Make it more generic towards DTS so it could be reused Signed-off-by: Petr Štetiar <ynezz@true.cz> Tested-by: Christian Lamparter <chunkeey@gmail.com> (apm821xx and ipq40xx)
* ath79: add support for Ubiquiti AirRouterRussell Senior2018-12-032-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Indoor low-power router with 2.4 GHz radio CPU: Atheros AR7241 rev 1 RAM: 32 MB Flash: 8 MB NOR SPI Switch: Atheros AR7240 Ports: 1x WAN, 4x LAN 10/100 Ethernet WLAN: Atheros AR9285 (2.4 GHz) USB: 1x USB2 host port Note: Ethernet WAN/LAN port naming is reversed from ar71xx. WAN is eth0; LAN is eth1.1. UART settings: 115200, 8N1 LEDs +-------------------------- | | | | | | | | VCC | x x RX | * x | x x | x x TX | * x GND | * x | | | | +-------------------------- ETHERNET PORTS Installation from Ubiquiti firmware, is as for other ubnt-xm AirOs devices. Signed-off-by: Russell Senior <russell@personaltelco.net>
* ath79: add support for ROSINSON WR818 boardRosy Song2018-11-271-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the ROSINSON WR818 WiFi-Router SoC: Qualcomm Atheros QCA9563, FLASH: Winbond W25Q128FV 16MBytes, WiFi: QCA9563 b/g/n 3x3 450Mbit/s, USB: 1x USB 2.0 Type A, 1x USB2.0 Type C, IN: WPS/Reset button GPIO1, OUT: Power LED red, Internet LED red, WLAN LED red, LAN1 LED red, LAN2 LED red, System LED red, UART: RX-GPIO18, TX-GPIO22, Tested and working: - Ethernet (LAN + WAN) - WiFi - OpenWRT sysupgrade - Button - LEDs Installation of OpenWRT from vendor firmware: - Connect to the Web-interface at http://192.168.1.1 - Go to "Administration" -> "Firmware Upgrade" - Upload the OpenWrt sysupgrade image Signed-off-by: Rosy Song <rosysong@rosinson.com>
* ath79: rename glinet x750Mathias Kresin2018-11-273-4/+4
| | | | | | The boardname is gl-x750 and is already used for the led names. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: fix shebangMathias Kresin2018-11-261-1/+1
| | | | | | | The shebang was accidentally changed with 9989fd5154fd ("ath79: add support for GL-iNet GL-X750"). Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: modify mtd partitions for Buffalo BHR-4GRV2INAGAKI Hiroshi2018-11-261-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies mtd partitions define for Buffalo BHR-4GRV2 and move it to generic subtarget. In Buffalo BHR-4GRV2, "kernel" partition is located behined "rootfs" partition in the stock firmware. This causes the size of the kernel to be limited by the fixed value. 0x50000 0xe80000 0xff0000 +-------------------------------+--------------+ | rootfs | kernel | | (14528k) | (1472k) | +-------------------------------+--------------+ After ar71xx was updated to Kernel 4.14, the kernel size of BHR-4GRV2 exceeded the limit, and it breaks builds on official buildbot. Since this issue was also confirmed in ath79, I modified the mtd partitions to get rid of that limitation. 0x50000 0xff0000 +----------------------------------------------+ | firmware | | (16000k) | +----------------------------------------------+ However, this commit breaks compatibility with ar71xx firmware, so I dropped "SUPPORTED_DEVICES += bhr-4grv2". This commit requires new flash instruction instead of the old one. Flash instruction using initramfs image: 1. Connect the computer to the LAN port of BHR-4GRV2 2. Set the IP address of the computer to 192.168.12.10 3. Rename the OpenWrt initramfs image to "bhr4grv2-uImage-initramfs-gzip.bin" and place it into the TFTP directory 4. Start the tftp server on the computer 5. While holding down the "ECO" button, connect power cable to BHR-4GRV2 and turn on it 6. Flashing (orange) diag LED and release the finger from the button, BHR-4GRV2 downloads the intiramfs image from TFTP server and boot with it 7. On the initramfs image, create "/etc/fw_env.config" file with following contents /dev/mtd1 0x0 0x10000 0x10000 8. Execute following commands to add environment variables for u-boot fw_setenv ipaddr 192.168.12.1 fw_setenv serverip 192.168.12.10 fw_setenv ethaddr 00:aa:bb:cc:dd:ee fw_setenv bootcmd "bootm 0x9f050000 || bootm 0x9fe80000" 9. Perform sysupgrade with squashfs-sysupgrade image 10. Wait ~150 seconds to complete flashing And this commit includes small fix; BHR-4GRV2 has QCA9557 as a SoC, not QCA9558. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: add support for Archer C58/C59 v1David Bauer2018-11-264-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the Archer C58 v1 and C59 v1, previously supported in the ar71xx target. CPU: Qualcomm QCA9561 RAM: 64M (C58) / 128M (C59) FLASH: 8M (C58) / 16M (C59) WiFi: QCA9561 bgn 3x3:3 QCA9888 nac 2x2:2 LED: Power, WiFi 2.4, WiFi 5, WAN green, WAN amber, LAN, WPS Only C59: USB BTN: WPS, WiFi, Reset Installation ------------ Via Web-UI: Update factory image via Web-UI. Via TFTP: Rename factory image to "tp_recovery.bin" and place it in the root-dir of your tftp server. Configure to listen on 192.168.0.66. Power up the router while holding down the reset-button. The router will flash itself and reboot. Note: For TFTP, you might need a switch between router and computer, as link establishment might take to long. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for GL-iNet GL-X750Luo chongjun2018-11-263-2/+10
| | | | | | | | | | | | | | | | | | | this patch adds supports for GL-X750. Specification: - SOC: QCA9531 (650MHz) - Flash: 16 MiB (W25Q128FVSG) - RAM: 128 MiB DDR2 - Ethernet: 10/100: 1xLAN + 10/100: 1xWAN - Wireless: 2.4GHz (bgn) and 5GHz (ac) - USB: 1x USB 2.0 port - Button: 1x reset button - LED: 5x LEDS (green) Flash instruction: The original firmware is openwrt, so both LuCI or sysupgrade can be used. Signed-off-by: Luo chongjun <luochongjun@gl-inet.com>
* ath79: Add support for Ubiquity Bullet M (XW)Petr Štetiar2018-11-262-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CPU: AR9342 SoC RAM: 64 MB DDR2 Flash: 8 MB NOR SPI Ports: 100 MBit (24V PoE in) WLAN: 2.4/5 GHz UART: 1 UART on PCB marked as J1 with 115200 8N1 config LEDs: Power, Ethernet, 4x RSSI LEDs (orange, red, 2x green) Buttons: Reset UART connection details .---------------------------------. | | [ETH] J1 [ANT] | o VCC o RX o TX o GND | `---------------------------------' Flashing instructions A) Serial console, U-Boot and TFTP 1. Connect to serial header J1 on the PCB 2. Power on device and enter U-Boot console 3. Set up TFTP server serving an OpenWrt initramfs build 4. Load initramfs build using the command tftpboot in the U-Boot cli 5. Boot the loaded image using the command bootm 6. Copy squashfs OpenWrt sysupgrade build to the booted device 7. Use mtd to write sysupgrade to partition "firmware" 8. Reboot and enjoy B) Experimental factory image flashing over SSH from airOS v6.1.7 1. You need to flash your UBNT M2HP with airOS v6.1.7 firmware no other airOS version is currently supported 2. git clone https://github.com/true-systems/ubnt-bullet-m2hp-openwrt-flashing 3. cd ubnt-bullet-m2hp-openwrt-flashing 4. make flash-factory FW_OWRT=/path/to/your/openwrt-ath79-generic-ubnt_bullet-m-xw-squashfs-factory.bin Tested only on Bullet M2HP. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ath79: add support for PQI Air PenYuheiOKAWA2018-10-282-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SoC: AR9330 (or AR9331 revision?) Ethernet x1, Wireless 2.4G, uSD card slot x1. USB Power, include Li-Po Battery. Flash 8MiB. (factory is dual image) 1. write image is use half 4MiB size from factory. write initramfs image to mtd6 and mtd7. 2. change next boot setting. next is mtd6 boot. echo -ne "\x01" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0 3. rewrite sysupgrade image. change next boot setting. next is mtd4. echo -ne "\x00" | dd of=/dev/mtdblock8 conv=notrunc bs=1 count=1 seek=0 OEM mtd. dev: size erasesize name mtd0: 00040000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00010000 00010000 "ART" mtd3: 00010000 00010000 "NVRAM" mtd4: 00140000 00010000 "uImage" mtd5: 00280000 00010000 "rootfs" mtd6: 00140000 00010000 "uImage2" mtd7: 00280000 00010000 "rootfs2" mtd8: 00010000 00010000 "CONF" Signed-off-by: YuheiOKAWA <tochiro.srchack@gmail.com>
* ath79: Add support for Ubiquiti LiteAP ac (LAP-120)Roger Pueyo Centelles2018-10-282-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the Ubiquiti LiteAP ac (LAP-120), an outdoor 5 GHz AC access point with an integrated 120° 16 dBi antenna. The device was previously known as LiteBeam AP ac but was later rebranded. CPU: Atheros AR9342 SoC RAM: 64 MB DDR2 Flash: 16 MB NOR SPI Ports: 1 GbE port (PoE in) WLAN: 5 GHz QCA899X (PCI) The integrated QCA899X is a Ubiquiti branded part with modified vendor and product id (0777:11ac9). It is very similar to the NanoStation loco AC, except for the 2.4 GHz management radio (missing here). Installation procedure is the same as the NanoStation [loco] AC: 1. Connect to serial header on device 2. Power on device and enter uboot console 3. Set up tftp server serving an openwrt initramfs build 4. Load initramfs build using the command tftpboot in the uboot cli 5. Boot the loaded image using the command bootm 6. Copy squashfs openwrt sysupgrade build to the booted device 7. Use mtd to write sysupgrade to partition "firmware" 8. Reboot and enjoy Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
* ath79: add Fritz!Box 4020 switchconfigDavid Bauer2018-10-071-1/+5
| | | | | | In contrast to ar71xx, uci switchconfig is missing in the ath79 target. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for TP-Link TL-WA901ND v2David Bauer2018-10-071-0/+1
| | | | | | | | | | | | | | | | | | This commit adds support for the TP-Link TL-WR901ND v2 access point. CPU: Atheros AR9132 400MHz RAM: 32MB FLASH: 4MiB WiFi: Atheros AR9103 3x3:2 bgn LED: Power (static on) LAN (controlled by PHY) SYS, WiFi, QSS toggleable BTN: Reset, QSS Installation: Upload the factory image via the vendor-GUI. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for Buffalo WZR-HP-G302H A1A0INAGAKI Hiroshi2018-10-072-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo WZR-HP-G302H is a 2T2R 2.4 GHz 11n router, based on Atheros AR7242. It is Japanese market model of WZR-HP-G300NH2, but there are some diffrences. This commit is based on WZR-HP-G300NH2 in ar71xx. And, G302H has several hardware versions and hardware is different dependent on the versions. This commit adds support for "A1A0" version. Specification: - Atheros AR7242 - 64 MB of RAM (DDR2) - 32 MB of Flash - 2x 16 MB SPI-NOR flash - 2.4 GHz 2T2R wifi - Atheros AR9283 - 5x 10/100/1000 Mbps Ethernet - Atheros AR8316 - 7x LEDs, 5x keys - LED: 1x gpio-leds, 6x ath9k-leds - key: 3x buttons, 2x slide switches - UART header on PCB - Vcc, GND, TX, RX from ethernet port side - 115200n8 Flash instruction using factory image: 1. Boot WZR-HP-G302H normaly and connect the computer to its LAN port 2. Access to "http://192.168.11.1/" and move to firmware update page ("ファーム更新") 3. Select the OpenWrt factory image and click update ("更新実行") button to perform firmware update 4. Wait ~200 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: Add support for TP-Link TL-WR842N-v2Robert Marko2018-10-072-1/+7
| | | | | | | | | | | | | | | | | | | | This PR adds support for TP-Link TL-WR842N-v2 router which is supported by ar71xx to ath79. This is a low cost model with following specs: CPU: Atheros AR9341 SoC RAM: 32 MB DDR1 Flash: 8 MB NOR SPI Switch: Internal AR9341 5 port 10/100 Mbit Ports: 5x 10/100 Mbit(1x WAN, 4x LAN) USB: 1x USB2.0 WLAN: 2.4 GHZ AR9341 Installation: Simply flash the factory image through stock firmware WEB UI. Signed-off-by: Robert Marko <robimarko@gmail.com>
* ath79: Add support for Ubiquiti Nanostation ACTobias Schramm2018-10-074-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5 GHz AC wireless outdoor PoE CPE with internal 2.4 GHz management radio CPU: Atheros AR9342 SoC RAM: 64 MB DDR2 Flash: 16 MB NOR SPI Switch: QCA8334 Ports: 2 GbE ports (1x PoE in, 1x PoE passthrough) WLAN: 5 GHz QCA899X (PCI) and 2.4 GHZ AR9342 Successor to the old NanoStation M5 with AC wireless. The integrated QCA899X is a Ubiquiti branded part with modified vendor and product id (0777:11ac9). Serial Serial settings: 115200, 8N1 * = plated through hole 0 = nylon screw [Top of device] +--------------------------+ | [label] | | 0 | | 0 | | [ubnt] | | [logo] 3V3 * | | TX * | | RX * | | GND * | | | | * | | * | | * | | * | | 0 | | 0 | | | | | Installation 1. Connect to serial header on device 2. Power on device and enter uboot console 3. Set up tftp server serving an openwrt initramfs build 4. Load initramfs build using the command tftpboot in the uboot cli 5. Boot the loaded image using the command bootm 6. Copy squashfs openwrt sysupgrade build to the booted device 7. Use mtd to write sysupgrade to partition "firmware" 8. Reboot and enjoy Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
* ath79: Add support for Ubiquiti NanoStation AC locoTobias Schramm2018-10-072-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Atheros AR9342, 16 MB flash, 64 MB RAM Successor to the old NanoStation M5 loco with AC wireless. Includes a mac80211 patch for ath10k_pci because Ubiquiti uses a Ubiquiti branded and customized QCA988X with vendor id 0777 and device id 11ac for AC wireless. Installation 1. Connect to serial header on device (8N1 115200) 2. Power on device and enter uboot console 3. Set up tftp server serving an openwrt initramfs build 4. Load initramfs build using the command tftpboot in the uboot cli 5. Boot the loaded image using the command bootm 6. Copy squashfs openwrt sysupgrade build to the booted device 7. Use mtd to write sysupgrade to partition "firmware" 8. Reboot and enjoy Signed-off-by: Tobias Schramm <tobleminer@gmail.com>
* ath79: add support for Buffalo BHR-4GRVINAGAKI Hiroshi2018-09-261-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo BHR-4GRV is a wired router, based on Atheros AR7242. Specification: - Atheros AR7242 - 64 MB of RAM - 32 MB of Flash - 2x 16 MB SPI-NOR flash - 5x 10/100/1000 Mbps Ethernet - 3x LEDs, 2x keys - 1x USB 2.0 Type-A - UART header on PCB - JP1: Vcc, GND, TX, RX from reset button side Flash instruction using factory image: 1. Boot the BHR-4GRV normaly and connect the computer to its LAN port 2. Access to "http://192.168.11.1/cgi-bin/cgi?req=frm&frm=py-db/firmup.html" with user "bufpy" and password "otdpopy" 3. Select the OpenWrt factory image and click "OK" button to perform firmware upgrade 4. Wait ~200 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: fix support for Buffalo WZR-HP-G450H and split to dts/dtsiINAGAKI Hiroshi2018-09-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are many parts that are incorrect or missing in the current code for Buffalo WZR-HP-G450H in ath79, so its support is broken. I fixed that issues and split to dts/dtsi files to add support for Buffalo BHR-4GRV. And WZR-450HP has the same hardware as WZR-HP-G450H, so I change the device name to "WZR-HP-G450H/WZR-450HP". Specification: - Atheros AR7242 - 64 MB of RAM - 32 MB of Flash - 2x 16 MB SPI-NOR flash - 3T3R 2.4 GHz wifi - SoC internal - 5x 10/100/1000 Mbps Ethernet - 6x LEDs, 5x keys - 1x USB 2.0 Type-A - UART header on PCB - JP1: Vcc, GND, TX, RX from reset button side Flash instruction using factory image: 1. Boot the WZR-HP-G450H (or WZR-450HP) normaly and connect the computer to its LAN port 2. Access to "http://192.168.11.1/cgi-bin/cgi?req=frm&frm=py-db/firmup.html" with user "bufpy" and password "otdpopy" 3. Select the OpenWrt factory image and click "OK" button to perform firmware update 4. Wait ~200 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: ubnt-xm: create RSSI monitor on wlan0Lech Perczak2018-09-101-0/+1
| | | | | | | | | When mapping for RSSI LEDs was defined for interface wlan0 on Ubiquiti XM family, the mapping for rssileds monitor was omitted by mistake. Therefore create the mapping, so RSSI LEDs work without additional configuration, after starting rssileds service. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* ath79: add support for Buffalo WZR-HP-AG300HBernhard Frauendienst2018-09-102-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo WZR-HP-AG300H is a dual band router based on Qualcom Atheros AR7161 rev 2 Specification: - 680 MHz CPU (Qualcomm Atheros AR7161) - 128 MiB RAM (2x Samsung K4H511638G-LCCC) - 32 MiB Flash (2x Winbond 25Q128BVFG) - WiFi 5 GHz a/n (Atheros AR9220) - WiFi 2.4 GHz b/g/n (Atheros AR9223) - 1000Base-T WAN (Atheros AR7161) - 4x 1000Base-T Switch (Atheros AR8316) - 1x USB 2.0 - 3 Buttons (AOSS/WPS, Reset, USB Eject) - 2 Slide switches (Router (on/off/auto), Movie Engine (on/off)) - 9 LEDs (Power green, WLAN 2GHz green, WLAN 2GHz amber, WLAN 5GHz green, WLAN 5GHz LED amber, Router green, Diag red, Movie Engine blue, USB green) It is already supported by the ar71xx target. For more information on the device visit the wiki: <https://openwrt.org/toh/buffalo/wzr-hp-ag300h> Serial console: - The UART Header is next to Movie Engine Switch. - Pinout is RX - TX - GND - 3.3V (Square Pad is 3.3V) - The Serial setting is 115200-8-N-1. Installation of OpenWRT from vendor firmware: - Connect to the Web-interface at http://192.168.11.1 - Go to “Administration” → “Firmware Upgrade” - Upload the OpenWrt factory image Tested: - Ethernet (LAN, WAN) - WiFi - Installation - via TFTP rescue - via factory image - on firmware v1.77 (28-05-2012) - on pro firmware v24SP2 r30356 (26-03-2018) - via sysupgrade from ar71xx (wlan devices don't work because of new names) - via sysupgrade from itself - Buttons - LEDS - USB (Power control and device recognition) Signed-off-by: Bernhard Frauendienst <openwrt@nospam.obeliks.de>
* ath79: add support for ELECOM WRC-300GHBK2-IINAGAKI Hiroshi2018-09-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ELECOM WRC-300GHBK2-I is a 2.4 GHz wireless router, based on Qualcomm Atheros QCA9563. Specification: - Qualcomm Atheros QCA9563 - 64 MB of RAM (DDR2) - 8 MB of Flash (SPI-NOR) - 2T2R 2.4 GHz wifi - SoC internal - 5x 10/100/1000 Mbps Ethernet - 3x LEDs, 4x keys(connected to GPIO: 3x) - UART header on PCB - TX, GND, RX, Vcc from ethernet port side - 115200n8 Flash instruction using factory image: 1. Boot the WRC-300GHBK2-I normaly and connect the computer to its LAN port 2. Access to "http://192.168.2.1/" and open firmware update page ("ファームウェア更新 手動更新(アップデート)") 3. Select the OpenWrt factory image and click apply ("適用") button to perform firmware update 4. On the (initramfs) factory image, execute "mtd erase firmware" to erase stock firmware and execute sysupgrade with squashfs-sysupgrade image for WRC-300GHBK2-I 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: add support for WD My Net Wi-Fi Range ExtenderChristian Lamparter2018-09-103-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch ports over support for the device from ar71xx. SOC: AR7370 (Wasp - AR9344 rev2 0001974c) RAM: Winbond W9725G6KB-25 32MiB FLASH: Winbond 25Q64FVSIG 8MiB WLAN: AR9380 Dual-Band 802.11abgn 3x3:3 INPUT: WPS, RESET button (hardware on/off toggle button) LED: Power, LAN, WiFi, 3 RSSI-Leds (low, medium, high) Serial: Header Next to the winbond flash chip (labeld JP1) Pinout is GND - NC - RX - TX - 3V3 (JP1) The Serial setting is 115200-8-N-1. - Installation via uboot's upgrade command 0. attach serial cable 1. interrupt uboot and enter "upgrade code.bin" into the u-boot prompt ar7240> upgrade code.bin 2. rename openwrt...sysupgrade.bin to code.bin on PC 3. run a tftp-client on the PC (shell)$ tftp 192.168.1.230 binary put code.bin 4. wait for the device to finish [...] Copy buff to Flash from 0x9f040000 length 0x79f000 Copy to Flash... write addr: 9f040000 done 5. enter "go" in the u-boot prompt ar7240> go - TFTP ramdisk image boot from the uboot prompt (tftp server defaults to serverip 192.168.1.254) => tftpboot 81000000 initramfs.bin => bootm Tested and working: - LEDs - Buttons - Ethernet - Wi-Fi - OpenWRT sysupgrade For flashing and debricking information see: <https://openwrt.org/toh/wd/rext> Users coming from ar71xx can use sysupgrade too. But I highly advise to no save the old configuration and start from a clean state. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ath79: initial support for Ubiquiti RouterStation and RouterStation ProMatt Merhar2018-08-272-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a shared ar7161_ubnt_routerstation.dtsi as well as two other .dts files that utilize it, ar7161_ubnt_routerstation.dts and ar7161_ubnt_routerstation-pro.dts. The modifications to generic-ubnt.mk, config-default, and base-files necessary for image generation, parsing RedBoot FIS partitions, network configuration, and sysupgrade are also included. This reintroduces vital bits from platform_do_upgrade_combined() and its supporting functions to /lib/upgrade/platform.sh, which were previously removed from ath79 in 3e9d9f62258f80298710441e0db557e59e152dcf "ath79: sysupgrade: drop unused platform checks". The new function is called "routerstation_do_upgrade" and will *only* work for the RouterStation series of boards. It does however retain the ability to downgrade (e.g. from master -> 17.01.x using sysupgrade -F). All hardware is functional including the AR8216 switch (for the Pro), wireless via ath5k/ath9k using the miniPCI slots, flash, USB, button, and LED. Switch and LAN/WAN configuration is the same as it is with the equivalent ar71xx targets. MAC addresses are assigned based upon the content stored in the RedBoot config partition. Flashing via both sysupgrade and TFTP has been confirmed to work. Also, the initramfs images are now raw .bin files instead of being wrapped in a uImage (as they currently are in ar71xx), which makes them bootable with RedBoot. One notable difference to ar71xx is the inclusion of the RedBoot "fconfig" utility (analogous to U-Boot’s fw_printenv/fw_setenv) in DEVICE_PACKAGES. The FIS partitions are probed using the RedBoot MTD parser’s DT binding, whose proper usage is mutually exclusive to defining a separate fixed-partitions node for "RedBoot config". This config partition contains the board's base MAC address. The lack of a hard-coded flash location means that the mtd-mac-address property cannot be used in the .dts, so instead fconfig is used to read the MAC addresses from flash in userspace during first boot. Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl> Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
* ath79: ubnt-xm: create mapping for RSSI LEDsLech Perczak2018-08-231-0/+7
| | | | | | | | | | Ubiquiti XM series boards contain a set of RSSI LEDs. Create an UCI mapping for them, so visual feedback on RSSI is available, when using userspace RSSI monitor daemon. Runtime tested using rssileds. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* ath79: ubnt-xm: disable WAN on (rocket|bullet)-mLech Perczak2018-08-231-0/+2
| | | | | | | | | | | ubnt,bullet-m and ubnt,rocket-m targets support only single Ethernet port, therefore disable creation of WAN zone and interfaces for them, as their intended purpose is a wireless bridge. This aligns the configuration with one found in ar71xx target. ubnt,nano-m target is kept as is, being a two-port device. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* ath79: ubnt-xm: support ath9k firmware loadingLech Perczak2018-08-231-0/+5
| | | | | | | | Enable ath9k EEPROM extraction on boot for Ubiquiti XM-series boards. This is required for wireless interface to function. Runtime tested on Nanobridge M5. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* ath79: add support for I-O DATA ETG3-RINAGAKI Hiroshi2018-08-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I-O DATA ETG3-R is a wired router, based on Atheros AR9342. Specification: - Atheros AR9342 - 64 MB of RAM - 8 MB of Flash - 5x 10/100/1000 Ethernet - AR8327N - 2x LEDs, 1x key - UART header on PCB - Vcc, GND, TX, RX from ethernet port side - 115200n8 Flash instruction using initramfs image: 1. Connect serial cable to UART header on ETG3-R 2. Rename OpenWrt initramfs image to "1500A8C0.img" and place it in the TFTP directory 3. Set IP address of the computer to 192.168.0.10, connect to the LAN port of ETG3-R, and start the TFTP server on the computer 4. Connect power cable to ETG3-R and turn on the router 5. Press "Enter" key when the "Hit any key to stop autoboot:" message is displayed on the console and enter the u-boot cli 6. execute following commands to change kernel address for u-boot setenv bootsf 1 setenv mtd_kernel1 "bootm 0x9f050000" saveenv 7. execute "tftpboot; bootm" command to download the initramfs image from TFTP server and boot with it 8. On the initramfs image, execute "mtd erase firmware" to erase stock firmware and execute sysupgrade with sysupgrade image for ETG3-R 9. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: add support for Fritz!Box 4020David Bauer2018-08-193-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the AVM Fritz!Box 4020 WiFi-router. SoC: Qualcomm Atheros QCA9561 (Dragonfly) 750MHz RAM: Winbond W971GG6KB-25 FLASH: Macronix MX25L12835F WiFi: QCA9561 b/g/n 3x3 450Mbit/s USB: 1x USB 2.0 IN: WPS button, WiFi button OUT: Power LED green, Internet LED green, WLAN LED green, LAN LED green, INFO LED green, INFO LED red UART: Header Next to Black metal shield Pinout is 3.3V - RX - TX - GND (Square Pad is 3.3V) The Serial setting is 115200-8-N-1. Tested and working: - Ethernet (LAN + WAN) - WiFi (correct MAC) - Installation via EVA bootloader - OpenWRT sysupgrade - Buttons - LEDs The USB port doesn't work. Both Root Hubs are detected as having 0 Ports: [ 3.670807] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 3.723267] usbcore: registered new interface driver usbfs [ 3.729058] usbcore: registered new interface driver hub [ 3.734616] usbcore: registered new device driver usb [ 3.744181] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 3.758357] SCSI subsystem initialized [ 3.766026] ehci-platform: EHCI generic platform driver [ 3.771548] ehci-platform ehci-platform.0: EHCI Host Controller [ 3.777708] ehci-platform ehci-platform.0: new USB bus registered, assigned bus number 1 [ 3.788169] ehci-platform ehci-platform.0: irq 48, io mem 0x1b000000 [ 3.816647] ehci-platform ehci-platform.0: USB 2.0 started, EHCI 0.00 [ 3.824001] hub 1-0:1.0: USB hub found [ 3.828219] hub 1-0:1.0: config failed, hub doesn't have any ports! (err -19) [ 3.835825] ehci-platform ehci-platform.1: EHCI Host Controller [ 3.842009] ehci-platform ehci-platform.1: new USB bus registered, assigned bus number 2 [ 3.852481] ehci-platform ehci-platform.1: irq 49, io mem 0x1b400000 [ 3.886631] ehci-platform ehci-platform.1: USB 2.0 started, EHCI 0.00 [ 3.894011] hub 2-0:1.0: USB hub found [ 3.898190] hub 2-0:1.0: config failed, hub doesn't have any ports! (err -19) [ 3.908928] usbcore: registered new interface driver usb-storage [ 3.915634] kmodloader: done loading kernel modules from /etc/modules-boot.d/* A few words about the shift-register: AVM used a trick to control the shift-register for the LEDs with only 2 pins, SERCLK and MOSI. Q7S, normally used for daisy-chaining multiple shift-registers, pulls the latch, moving the shift register-state to the storage register. It also pulls down MR (normally pulled up) to clear the storage register, so the latch gets released and will not be pulled by the remaining bits in the shift-register. Shift register is all-zero after this. For that we need to make sure output 7 is set to high on driver probe. We accomplish this by using gpio-hogging. Installation via EVA: In the first seconds after Power is connected, the bootloader will listen for FTP connections on 169.254.157.1 (Might also be 192.168.178.1). Firmware can be uploaded like following: ftp> quote USER adam2 ftp> quote PASS adam2 ftp> binary ftp> debug ftp> passive ftp> quote MEDIA FLSH ftp> put openwrt-sysupgrade.bin mtd1 Note that this procedure might take up to two minutes. After transfer is complete you need to powercycle the device to boot OpenWRT. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for TP-Link Archer C7 v1Christian Lamparter2018-08-191-0/+1
| | | | | | | | | | | | | | | | | | | | TP-Link Archer C7 v1 is a dual band router based on Qualcomm/Atheros QCA9558 + QCA9880. Specification: - 720 MHz CPU - 128 MB of RAM (Various chips) - 8 MB of FLASH (Various chips) - SoC QCA9558 integrated 3T3R 2.4 GHz Wi-Fi - minipcie slot with 3T3R 5 GHz QCA9880-AR1A (unsupported by ath10k!) - 5x 10/100/1000 Mbps Ethernet (AR8327N Switch) - 10x LEDs, 2x software buttons For further informwation on the device, visit the wiki: <https://openwrt.org/toh/tp-link/archer-c7-1750> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ath79: add support for I-O DATA WN-AC1167DGRINAGAKI Hiroshi2018-08-163-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I-O DATA WN-AC1167DGR is a 2.4/5 GHz band 11ac router, based on Qualcomm Atheros QCA9557. Specification: - Qualcomm Atheros QCA9557 - 128 MB of RAM (DDR2) - 16 MB of Flash (SPI) - 2T2R 2.4/5 GHz wifi - 2.4 GHz: SoC internal - 5 GHz: QCA988x - 5x 10/100/1000 Mbps Ethernet - 6x LEDs, 6x keys (4x buttons, 1x slide switch) - UART header on PCB - Vcc, GND, TX, RX from ethernet port side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port of WN-AC1167DGR 2. Connect power cable to WN-AC1167DGR and turn on it 3. Access to "http://192.168.0.1/" and open firmware update page ("ファームウェア") 4. Select the OpenWrt factory image and click update ("更新") button 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: fix leds and network for TP-Link TL-WR841 v9/v11Johann Neuhauser2018-08-162-7/+5
| | | | | | | | | Adding tl-wr841-v11 and the rename of tl-wr841n-v9 to tl-wr841-v9 in 01_leds and 02_network script files are missing in commits cc35c91 and 8db6522. Signed-off-by: Johann Neuhauser <johann@it-neuhauser.de> [merged with identical case in 02_network] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: don't use the pcs,cr5000 wps led as usb ledMathias Kresin2018-08-161-4/+0
| | | | | | | If it isn't a usb led, it shouldn't be used as one by default. It is up to the user to add such a (mis)configuration for the board. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: add support for TP-Link MR-3040 v2Dmitry Tunin2018-08-162-1/+3
| | | | | | Add support for the ar71xx supported TP-Link MR-3040 v2. Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
* ath79: add support for Buffalo WHR-G301NINAGAKI Hiroshi2018-08-163-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo WHR-G301N is a 2.4 GHz 11n router, based on Atheros AR7240. Ported from ar71xx target. Specification: - Atheros AR7240 - 32 MB of RAM - 4 MB of Flash - 2.4 GHz 2T2R wifi - 5x 10/100 Mbps Ethernet - 9x LEDs, 4x keys - LED: 8x gpio-leds, 1x ath9k-leds - key: 2x buttons, 1x slide switch - UART header on PCB - Vcc, GND, TX, RX from LEDs side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port of WHR-G301N 2. Connect power cable to WHR-G301N and turn on it 3. Access to "http://192.168.11.1/" and open firmware update page ("ファーム更新") 4. Select the OpenWrt factory image and click execute ("実行") button 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> [fix the SUPPORTED_DEVICES to be compatible with the ar71xx image] Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: drop unused get_status_led functionsMathias Kresin2018-08-161-4/+0
| | | | | | | The function isn't used for targets getting the status leds from the devicetree. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: fix upgrade led handlingMathias Kresin2018-08-161-2/+4
| | | | | | | | | | | | The upgrade led is only used if a running led is defined. If no running led is defined, the upgrade led is ignored and upgrade isn't indicated at all. Instead, turn off the running led prior to turning the upgrade led on. In most cases there isn't any visual change, but it allows to use an independent led for upgrade indication. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: add support for indicating the boot state using multiple ledsDmitry Tunin2018-08-151-2/+27
| | | | | | | | | | | Use diag.sh version used for apm821xx, ipq40xx and ipq806x, which supports different leds for the different boot states. The existing led sequences should be the same as before. Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com> [reword commit message] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: add support for TP-Link TL-WR941N/ND v2/v3Chuanhong Guo2018-08-141-0/+7
| | | | | | | | | | | | | Specification: - SoC: Atheros AR9132 - Flash: 4 MB - RAM: 32 MB - Ethernet: Marvell 88E6060 with 5 FE ports. Flash instruction: Upload the generated factory firmware on web interface. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: Add wifi to WNDR3700, WNDR3700v2 and WNDR3800Hannu Nyman2018-08-142-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add ath9k wifi capabilities to WNDR3700 family. * use kmod-owl-loader to load firmware from "art" * add wifi to DTS * add wifi LEDs Avoid using the same MAC for eth0 LAN and wlan0 by toggling the eth0 MAC into a locally administered MAC. That is currently done by in user-space by adding a uci config item into /etc/config/network (More elegant solution might be setting it already in preinit phase.) Known issues: * wifi firmware file may not get created on the first boot after flashing on time to bring wifi normally up. Likely the overlay jffs2 is not yet ready for creating the firmware file. "wifi up" may still bring wifi up. Wifi will work normally at subsequent boots. * phy0 and phy1 may get assigned mixed, so that phy0 may be the 5GHz radio instead of the normal 2.4GHz, and vice versa for phy1. Does not happen always, but may happen. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi> [fix the wifi unit address in the dts] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ath79: add support for Pisen WMM003N (Cloud Easy Power)Icenowy Zheng2018-08-141-0/+1
| | | | | | | | | | | | | | | | | | | | | Pisen WMM003N (sold under the name of Cloud Easy Power) is an AR9331-based router and power bank combo device. The device uses a stock firmware modified from OpenWRT for TP-Link TL-WR703N; however some GPIO definition is different on this device with TL-WR703N. An AXP202 PMIC (connected to a 5000mAh battery) and a SD slot are also added, and the stock Flash/RAM configuration is 8MiB/64MiB. The stock firmware is an old and heavily modified OpenWRT-based firmware, which has telnetd defaultly open, and the root password is "ifconfig" (quotation marks not included). The factory image format is not known yet, however the stock firmware ships the OpenWRT's sysupgrade command, and it can be used to install a newer firmware. Due to the lack of the access to the STM8 embedded controller, the SD slot is currently not usable (because it's muxed with the on-board USB port) and the AXP PMIC cannot be monitored. Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
* ath79: add WNDR3700 and WNDR3700v2Hannu Nyman2018-08-131-0/+2
| | | | | | | | | | | | Add support for WNDR3700 and WNDR3700v2. They share most things with WNDR3800. Only device IDs and partition structure needs to be set. Note: WNDR3700 (v1) has no NETGEAR_HW_ID, but has also the NA version of the factory image. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
* ath79: add support for I-O DATA WN-AC1600DGR2INAGAKI Hiroshi2018-08-113-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I-O DATA WN-AC1600DGR2 is a 2.4/5 GHz band 11ac router, based on Qualcomm Atheros QCA9557. Specification: - Qualcomm Atheros QCA9557 - 128 MB of RAM - 16 MB of Flash - 2.4/5 GHz wifi - 2.4 GHz: 2T2R (SoC internal) - 5 GHz: 3T3R (QCA9880) - 5x 10/100/1000 Mbps Ethernet - 6x LEDs, 6x keys (4x buttons, 1x slide switch) - UART header on PCB - Vcc, GND, TX, RX from ethernet port side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port of WN-AC1600DGR2 2. Connect power cable to WN-AC1600DGR2 and turn on it 3. Access to "http://192.168.0.1/" and open firmware update page ("ファームウェア") 4. Select the OpenWrt factory image and click update ("更新") button 5. Wait ~150 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: add support of D-Link DIR-825 B1Dmitry Tunin2018-08-112-0/+31
| | | | | | Add support for the ar71xx supported D-Link DIR-825 B1 to ath79. Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
* ath79: add ath9k calibration data MAC addresses patchingChristian Lamparter2018-08-111-0/+50
| | | | | | | | | | | | | | | | | | This patch copies over the MAC patching helper functions from lantiq's target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom file. Not all vendors bothered to write the correct MAC addresses for the ath9k wifi into the calibration data. And while ath9k does have some special dt-properties to extract the addresses from a fixed position, there are still devices that require userspace to edit or modify the caldata. In my case, the MAC address for the Wi-Fi device is stored in an unsorted key-value based "nvram" database and there's an existing userspace tool to extract the data. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ath79: add support for TP-Link TL-WDR4900 v2Chuanhong Guo2018-08-112-2/+4
| | | | | | | | | | | | | | Specification: - SoC: Qualcomm Atheros QCA9558 - Flash: 8 MB - RAM: 128 MB - Ethernet: AR8327N with 5 GE ports. - Wireless radio: QCA9558 for 2.4G and AR9580 for 5G. Flash instruction: Upload the generated factory firmware on web interface. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: add support for OCEDO KoalaDavid Bauer2018-08-092-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the OCEDO Koala SOC: Qualcomm QCA9558 (Scorpion) RAM: 128MB FLASH: 16MiB WLAN1: QCA9558 2.4 GHz 802.11bgn 3x3 WLAN2: QCA9880 5 GHz 802.11nac 3x3 INPUT: RESET button LED: Power, LAN, WiFi 2.4, WiFi 5, SYS Serial: Header Next to Black metal shield Pinout is 3.3V - GND - TX - RX (Arrow Pad is 3.3V) The Serial setting is 115200-8-N-1. Tested and working: - Ethernet - 2.4 GHz WiFi - 5 GHz WiFi - TFTP boot from ramdisk image - Installation via ramdisk image - OpenWRT sysupgrade - Buttons - LEDs Installation seems to be possible only through booting an OpenWRT ramdisk image. Hold down the reset button while powering on the device. It will load a ramdisk image named 'koala-uImage-initramfs-lzma.bin' from 192.168.100.8. Note: depending on the present software, the device might also try to pull a file called 'koala-uimage-factory'. Only the name differs, it is still used as a ramdisk image. Wait for the ramdisk image to boot. OpenWRT can be written to the flash via sysupgrade or mtd. Due to the flip-flop bootloader which we not (yet) support, you need to set the partition the bootloader is selecting. It is possible from the initramfs image with > fw_setenv bootcmd run bootcmd_1 Afterwards you can reboot the device. Signed-off-by: David Bauer <mail@david-bauer.net>
* ath79: add support for Buffalo BHR-4GRV2INAGAKI Hiroshi2018-08-092-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo BHR-4GRV2 is a wired router, based on Qualcomm Atheros QCA9558. Ported from ar71xx target. Specification: - Qualcomm Atheros QCA9558 - 64 MB of RAM - 16 MB of Flash - 5x 10/100/1000 Ethernet - QCA8337N - 4x LEDs, 2x keys - UART header on PCB - Vcc, TX, RX, GND from LED side - 115200n8 Flash instruction using factory image: 1. Connect the computer to the LAN port of BHR-4GRV2 2. Connect power cable to BHR-4GRV2 and turn on it 3. Access to "http://192.168.12.1/" and open firmware update page ("ファームウェア更新") 4. Select the OpenWrt factory image and click update ("更新実行") button 5. Wait ~120 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ath79: Fix led nodes for TL-WR740N v2 and add its clonesChuanhong Guo2018-08-083-8/+25
| | | | | | | | | | | | | | | | This patch did the following things: 1. Separate ath9k-leds out of gpio leds so that all other leds will work before ath9k loded (e.g. during preinit/init stage). 2. Rename wps led to qss since that's how TP-Link mark it. 3. Rename LED prefix to tp-link because that dts is shared by many devices. 4. Rename to wr740n-v1 because v1 is the first and v2 just use the fw of v1. (This will require a forced sysupgrade if you comes from the previous wr740n v2 image.) 5. Remove SUPPORTED_DEVICES. (tl-wr740n-v2 doesn't exist anywhere so it's useless.) 6. Add all WR741ND v1 clones found in ar71xx. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* ath79: rename tl-archer-c7 to archer-c7Chuanhong Guo2018-08-062-5/+5
| | | | | | | | This router is called Archer C7 and the tl was used to identify TP-LINK. Since we have added tplink in dts/board name, the tl prefix is useless now. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>