aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/base-files/lib
Commit message (Collapse)AuthorAgeFilesLines
* ipq806x: add support for Askey RT4230W REV6Lauro Moreno2021-06-051-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the Askey RT4230W REV6 (Branded by Spectrum/Charter as RAC2V1K) At this time, there's no way to reinstall the stock firmware so don't install this on a router that's being rented. Specifications: Qualcomm IPQ8065 1 GB of RAM (DDR3) 512 MB Flash (NAND) 2x Wave 2 WiFi cards (QCA9984) 5x 10/100/1000 Mbps Ethernet (Switch: QCA8337) 1x LED (Controlled by a microcontroller that switches it between red and blue with different patterns) 1x USB 3.0 Type-A 12V DC Power Input UART header on PCB - pinout from top to bottom is RX, TX, GND, 5V Port settings are 115200n8 More information: https://forum.openwrt.org/t/askey-rac2v1k-support/15830 https://deviwiki.com/wiki/Askey_RAC2V1K To check what revision your router is, restore one of these config backups through the stock firmware to get ssh access then run "cat /proc/device-tree/model". https://forum.openwrt.org/t/askey-rac2v1k-support/15830/17 The revision number on the board doesn't seem to be very consistent so that's why this is needed. You can also run printenv in the uboot console and if machid is set to 177d, that means your router is rev6. Note: Don't install this if the router is being rented from an ISP. The defined partition layout is different from the OEM one and even if you changed the layout to match, backing up and restoring the OEM firmware breaks /overlay so nothing will save and the router will likely enter a bootloop. How to install: Method 1: Install without opening the case using SSH and tftp You'll need: RAC2V1K-SSH.zip: https://github.com/lmore377/openwrt-rt4230w/blob/master/RAC2V1K-SSH.zip initramfs and sysupgrade images Connect to one of the router's LAN ports Download the RAC2V1K-SSH.zip file and restore the config file that corresponds to your router's firmware (If you're firmware is newer than what's in the zip file, just restore the 1.1.16 file) After a reboot, you should be able to ssh into the router with username: "4230w" and password: "linuxbox" or "admin". Run the following commannds fw_setenv ipaddr 10.42.0.10 #IP of router, can be anything as long as it's in the same subnet as the server fw_setenv serverip 10.42.0.1# #IP of tftp server that's set up in next steps fw_setenv bootdelay 8 fw_setenv bootcmd "tftpboot initramfs.bin; bootm; bootipq" Don't reboot the router yet. Install and set up a tftp server on your computer Set a static ip on the ethernet interface of your computer (use this for serverip in the above commands) Rename the initramfs image to initramfs.bin, and host it with the tftp server Reboot the router. If you set up everything right, the router led should switch over to a slow blue glow which means openwrt is booted. If for some reason the file doesn't get loaded into ram properly, it should still boot to the OEM firmware. After openwrt boots, ssh into it and run these commands: fw_setenv bootcmd "setenv mtdids nand0=nand0 && setenv mtdparts mtdparts=nand0:0x1A000000@0x2400000(firmware) && ubi part firmware && ubi read 0x44000000 kernel 0x6e0000 && bootm" fw_setenv bootdelay 2 After openwrt boots up, figure out a way to get the sysupgrade file onto it (scp, custom build with usb kernel module included, wget, etc.) then flash it with sysupgrade. After it finishes flashing, it should reboot, the light should start flashing blue, then when the light starts "breathing" blue that means openwrt is booted. Method 2: Install with serial access (Do this if something fails and you can't boot after using method 1) You'll need: initramfs and sysupgrade images Serial access: https://openwrt.org/inbox/toh/askey/askey_rt4230w_rev6#opening_the_case Install and set up a tftp server Set a static ip on the ethernet interface of your computer Download the initramfs image, rename it to initramfs.bin, and host it with the tftp server Connect the wan port of the router to your computer Interrupt U-Boot and run these commands: setenv serverip 10.42.0.1 (You can use whatever ip you set for the computer) setenv ipaddr 10.42.0.10 (Can be any ip as long as it's in the same subnet) setenv bootcmd "setenv mtdids nand0=nand0 && set mtdparts mtdparts=nand0:0x1A000000@0x2400000(firmware) && ubi part firmware && ubi read 0x44000000 kernel 0x6e0000 && bootm" saveenv tftpboot initramfs.bin bootm After openwrt boots up, figure out a way to get the sysupgrade file onto it (scp, custom build with usb kernel module included, wget, etc.) then flash it with sysupgrade. After it finishes flashing, it should reboot, the light should start flashing blue, then when the light starts "breathing" blue that means openwrt is booted. Signed-off-by: Lauro Moreno <lmore377@gmail.com> [add entry in 5.10 patch, fix whitespace issues] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: g10: case-insensitive qcom-smem partitionsStefan Lippers-Hollmann2021-05-081-1/+3
| | | | | | | | The out-of-tree qcom-smem patches traditionally displayed mtd partition names in upper case, starting with the new mainline qcom-smem support in kernel v5.10, it switches to normalizing the partition names to lower case. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: nbg6817: case-insensitive qcom-smem partitionsStefan Lippers-Hollmann2021-05-081-1/+4
| | | | | | | | The out-of-tree qcom-smem patches traditionally displayed mtd partition names in upper case, starting with the new mainline qcom-smem support in kernel v5.10, it switches to normalizing the partition names to lower case. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: ubnt,unifi-ac-hd: reorder eth0 and eth1Mark Mentovai2021-05-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | The Ubiquiti UniFi AC HD (UAP-AC-HD, UAP301) has two Ethernet ports, labeled MAIN and SECONDARY, connected to gmac2 and gmac1, respectively. The standard probe order results in gmac1/SECONDARY being eth0 and gmac2/MAIN being eth1. This does not match the stock firmware, is contrary to user expectation, causes the wrong (high) MAC address to be used in a bridged configuration (the default for this device), and makes the gmac2/MAIN port unusable in the preinit environment (such as for failsafe). Until a recent patch, gmac1/SECONDARY (eth0) was not even usable. This reorders the ports so that gmac2/MAIN is eth0, and the now-working gmac1/SECONDARY is eth1. eth0 has the low MAC address and eth1 has the high; when bridged, the bridge takes on the correct low MAC address. This matches the stock firmware. The MAIN port is usable for failsafe during preinit. This device does not have a switch on board, so there's no possibility to remap ports via switch configuration. "ip link set $interface name" is used instead, during preinit before networking is configured. Signed-off-by: Mark Mentovai <mark@moxienet.com> Build-tested: ipq806x/ubnt,unifi-ac-hd Run-tested: ipq806x/ubnt,unifi-ac-hd
* ipq806x: add support for TP-Link Talon AD7200Gary Cooper2021-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Device hardware: https://deviwiki.com/wiki/TP-LINK_AD7200_(Talon) The Talon AD7200 is basically an Archer C2600 with a third PCIe lane and an 802.11ad radio. It looks like the Archers C2600/5400 but the housing is slightly larger. Specifications -------------- - IPQ8064 dual-core 1400MHz - QCA9988 2.4GHz WiFi - QCA9990 5GHz WiFi - QCA9500 60GHz WiFi - 32MB SPI Flash - 512MiB RAM - 5 GBit Ports (QCA8337) Installation ------------ Installation is possible from the OEM web interface. Sysupgrade is possible. TFTP recovery is possible. - Image: AD7200_1.0_tp_recovery.bin Notes - This will be the first 802.11ad device supported by mainline. Signed-off-by: Gary Cooper <gaco@bitmessage.de>
* ipq806x: remove unneeded empty linesAdrian Schmutzler2020-12-221-1/+0
| | | | | | This removes two unneeded empty lines in base-files. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: add support for ASRock G10Christian Lamparter2020-12-223-0/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ASRock G10 is a 2.4/5 GHz band 11ac "Gaming" router, based on Qualcomm IPQ8064. Specifications: SoC: Qualcomm IPQ8064 CPU: Dual-Core A15 @ (384 - 1,400 MHz, 2C2T) DRAM: 512 MiB (~467 MiB available) NAND: 128 MB (Micron MT29F1G08ABBEAH4) WLAN0: 4T4R 5 GHz Wlan (QCA9980) WLAN1: 4T4R 2.4 GHz Wlan (QCA9980) ETH: 5x 10/100/1000 Mbps Ethernet (QCA8337) INPUT: Reset Button, WPS 2.4G and WPS 5G Button LEDS: 1 multicolor status LED USB: 2x USB 3.0 Type-A POWER: 12VDC/3A AC Adapter + dedicated Power Switch UART: Setting is 115200-8-N-1. 1x4 .1" unpopulated header on the PCB (J6 - very tiny silkscreen next to TX). Pinout: 1. 3v3 (Square - best skipped!), 2. RX, 3. GND, 4. TX WARNING: The serial port needs a TTL/RS-232 3.3v level converter! (Depending on the serial adapter RX and TX might need to be swapped). Note about the IR-Remote: There's a 8-Bit MCU (SONIX SN8F25E21SG) which is controlling the IR-Remote and is fed by the IR-Photodiode. The SoC can talk to the device via I2C. The vendor's GPL archive comes with the source of the interface driver for this as a (character driver), the main control software is however a blob. Installation Instructions: 1. Download factory image to disk 2. Apply factory image via stock web-gui Back to stock: 1. Login to router via ssh 2. run "asrock_g10_back_to_factory" script from /sbin Notes: - If something goes wrong durring sysupgrade, router will go back to factory image. - Asrock G10 uses partition layout from smem. So partition layout can be normal or alternate. - 900-arm-add-cmdline-override.patch was copied from 102-powerpc-add-cmdline-override.patch from powerpc target. Knowledge about BOOTCONFIG partition was based on user "jmomo" post from old OpenWrt forum (Post #50): https://forum.archive.openwrt.org/viewtopic.php?id=65956&p=2 Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [bump to 5.4, add factory image, fix sysupgrade, convert partition layout to smem, remove ipq-wifi-asrock-g10 and use ART, minor fixes] Co-Authored-by: Pawel Dembicki <paweldembicki@gmail.com> Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Tested-by: Lukasz Ostapiuk <palibrzuch@gmail.com>
* ipq806x: sort entries in lib/upgrade/platform.shAdrian Schmutzler2020-09-171-3/+3
| | | | | | Apply alphabetic sorting like in the other files. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: add Edgecore ECW5410 supportRobert Marko2020-09-171-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the Edgecore ECW5410 indoor AP. Specification: - SoC: Qualcomm Atheros IPQ8068 ARMv7 2x Cortex A-15 - RAM: 256MB(225 usable) DDR3 - NOR Flash: 16MB SPI NOR - NAND Flash: 128MB S34MS01G2 Parallel NAND - Ethernet: 2 x 1G via 2x AR8033 PHY-s connected directly to GMAC2 and GMAC3 via SGMII (802.3af POE IN on eth0) - USB: 1 x USB 3.0 SuperSpeed - WLAN: 2x QCA9994 AC Wawe 2 (1x 2GHz bgn, 1x 5GHz acn) - CC2540 BLE - UART console on RJ45 next to ethernet ports exposed. Its Cisco pin compatible, 115200 8n1 baud. Installation instructions: Through stock firmware or initramfs. 1.Connect to console 2. Login with root account, if password is unknown then interrupt the boot with f and reset it in failsafe. 3. Transfer factory image 4. Flash the image with ubiformat /dev/mtd1 -y -f <your factory image path> This will replace the rootfs2 with OpenWrt, if you are currently running from rootfs2 then simply change /dev/mtd1 to /dev/mtd0 Note Initramfs: 1. Connect to console 2. Transfer the image from TFTP server with tftpboot, or by using DHCP advertised image with dhcp command. 3. bootm 4. Run ubiformat /dev/mtd1 You need to interrupt the bootloader after rebooting and run: run altbootcmd This will switch your active rootfs partition to one you wrote to and boot from it. So if rootfs1 is active, then it will change it to rootfs2. This will format the rootfs2 partition, if your active partition is 2 then simply change /dev/mtd1 with /dev/mtd0 If you dont format the partition you will be writing too, then sysupgrade will find existing UBI rootfs and kernel volumes and update those. This will result in wrong ordering and OpenWrt will panic on boot. 5. Transfer sysupgrade image 6. Flash with sysupgrade -n. Note that sysupgrade will write the image to rootfs partition that is not currently in use. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
* ipq806x: add support for Linksys EA7500 V1Pawel Dembicki2020-07-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the Linksys EA7500 V1 router. Specification: - CPU: Qualcomm IPQ8064 - RAM: 256MB - Flash: NAND 128MB - WiFi: QCA9982 an+ac + QCA9983 bgn - Ethernet: 5 GBE Ports (WAN+ 4xLAN) (QCA8337) - USB: 1x USB 3.0 1x USB2.0 - Serial console: RJ-45 115200 8n1 (1V8 Voltage level) - 2 Buttons - 1 LED Known issues: - Some devices won't flash via web gui Installation: - Newer stock images doesn't allow to install custom firmware. - Please downgrade software to 1.1.2 version. Official firmware: https://downloads.linksys.com/downloads/firmware/FW_EA7500_1.1.2.172843_prod.gpg.img - Do it two times to downgrade all stored images. - Apply factory image via web-gui. Serial + TFTP method: - downgrade to 1.1.2 two times - connect ehternet and serial cable - set ip address of tftp server to 192.168.1.254 - put openwrt factory image to tftp folder and rename it to macan.bin - stop device while booting in u-boot - run command: "run flashimg" - run command: "setenv boot_part 1" - run command "saveenv" - reset Back to stock: - Please use old non-gpg image like this 1.1.2: https://downloads.linksys.com/downloads/firmware/FW_EA7500_1.1.2.172843_prod.img - ssh to router and copy image to tmp - use sysupgrade -n -F Tested by github users: @jack338c and @grzesiczek1 Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> [removed i2c4_pins, mdio0_pins, nand_pins, rgmii2_pins from DTSI] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: drop shebang from non-executable target filesAdrian Schmutzler2020-06-161-1/+0
| | | | | | | | | | | | | | This drops the shebang from all target files for /lib and /etc/uci-defaults folders, as these are sourced and the shebang is useless. While at it, fix the executable flag on a few of these files. This does not touch ar71xx, as this target is just used for backporting now and applying cosmetic changes would just complicate things. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* ipq806x: EA8500 fix boot partition detectionSamantha Collard2020-05-311-2/+0
| | | | | | | Remove extraneous code that disabled boot partition detection. Fixes: b3770eaca39f ("mtd: base-files: Unify dual-firmware devices (Linksys)") Signed-off-by: Samantha Collard <sammyrc34@gmail.com>
* ipq806x: remove useless case within default case for upgradeAdrian Schmutzler2020-03-161-1/+0
| | | | | | | The default case will catch anything left, there is no need to explicitly add any device to it. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: use new procd sysupgrade $UPGRADE_BACKUP variableRafał Miłecki2019-09-051-1/+1
| | | | | | | | | | It's a variable set by procd that should replace hardcoded /tmp/sysupgrade.tgz. This change requires the most recent procd with the commit 0f3c136 ("sysupgrade: set UPGRADE_BACKUP env variable"). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: when copying a backup file always specify dest nameRafał Miłecki2019-09-051-1/+1
| | | | | | | $CONF_TAR shouldn't be assumed to always point to the sysupgrade.tgz. This change makes code more generic and allows refactoring $CONF_TAR. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: don't hardcode "sysupgrade.tgz" file nameRafał Miłecki2019-09-051-1/+1
| | | | | | | | 1) Add BACKUP_FILE and use it when copying an archive to be restored after sysupgrade (on the next preinit). 2) Use CONF_TAR for copying backup prepared by the /sbin/sysupgrade Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* ipq806x: Replace backticks by $(...)Adrian Schmutzler2019-08-311-1/+1
| | | | | | This replaces deprecated backticks by more versatile $(...) syntax. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* treewide: sysupgrade: get rid of platform_nand_pre_upgrade()Rafał Miłecki2019-07-222-10/+6
| | | | | | | | | | | 1) nand_do_upgrade() is always called by a target code 2) nand_do_upgrade() starts with calling platform_nand_pre_upgrade() It means there is no need for the platform_nand_pre_upgrade() callback at all. All code that was present there could bo moved & simplly called by a target right before the nand_do_upgrade(). Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* treewide: sysupgrade: don't use $ARGV in platform_do_upgrade()Rafał Miłecki2019-07-171-6/+6
| | | | | | | stage2 passes image path to platform_do_upgrade() as an argument so it can be simply accessed using $1 Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* mtd: base-files: Unify dual-firmware devices (Linksys)Jeff Kletsky2019-05-181-19/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consistently handle boot-count reset and upgrade across ipq40xx, ipq806x, kirkwood, mvebu Dual-firmware devices often utilize a specific MTD partition to record the number of times the boot loader has initiated boot. Most of these devices are NAND, typically with a 2k erase size. When this code was ported to the ipq40xx platform, the device in hand used NOR for this partition, with a 16-byte "record" size. As the implementation of `mtd resetbc` is by-platform, the hard-coded nature of this change prevented proper operation of a NAND-based device. * Unified the "NOR" variant with the rest of the Linksys variants * Added logging to indicate success and failure * Provided a meaningful return value for scripting * "Protected" the use of `mtd resetbc` in start-up scripts so that failure does not end the boot sequence * Moved Linksys-specific actions into common `/etc/init.d/bootcount` For upgrade, these devices need to determine which partition to flash, as well as set certain U-Boot envirnment variables to change the next boot to the newly flashed version. * Moved upgrade-related environment changes out of bootcount * Combined multiple flashes of environment into single one * Current-partition detection now handles absence of `boot_part` Runtime-tested: Linksys EA8300 Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [checkpatch.pl fixes, traded split strings for 80+ chars per line]
* ipq806x: add support for Buffalo WXR-2533DHPINAGAKI Hiroshi2019-01-012-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Buffalo WXR-2533DHP is a 2.4/5 GHz band 11ac router, based on Qualcomm IPQ8064. The U-Boot on WXR-2533DHP employs a complicated dual firmware protection scheme against corruptions of the kernel and rootfs images. See the notes in buffalo.sh for details. specifications: - Qualcomm IPQ8064 (384 - 1,400 MHz, 2C2T) - 512 MB of RAM (DDR3) - 256 MB of Flash (NAND) - 4T4R 2.4/5 GHz Wlan (QCA9980) - 5x 10/100/1000 Mbps Ethernet - 10x LEDs, 8x keys (6x buttons, 2x slide-switches) - 2x USB 3.0 Type-A - 12VDC/4A AC Adapter - UART through-hole on PCB - J3: Vcc, GND, TX, RX from USB port side - 115200n8 Boot instructions for the initramfs image: 1. Prepare the TFTP server with the initramfs image renamed to "wxr2300dhp-initramfs.uImage" and IP address "192.168.11.10". 2. Press the "AOSS" button while powering on the WXR-2533DHP. 3. Wait until the "Wireless" LED flashes before releasing the AOSS button. The WXR-2533DHP will grab the image from TFTP server and will boot it. Flashing instructions: To persistently write the firmware, flash an openwrt sysupgrade image from inside the initramfs, for example transfer via `scp <sysupgrade> root@192.168.1.1:/tmp` and flash on the device with `sysupgrade -n /tmp/<sysupgrade>`. Then wait ~120 seconds to let it finish the flashing process. Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [reworded message]
* ipq806x: Add support for IPQ8064 AP161 boardRam Chandra Jangir2018-11-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specification: - SoC: Qualcomm Atheros IPQ8064 ARM-v7 Dual Core SMP CPU - RAM: 512MB DDR3 System Memory - NOR Flash: 32MB SPI NOR - NAND Flash: 256MB NAND - Ethernet: 5 x 1G via QCA8337N - USB: 2 x USB 3.0 SuperSpeed - PCIe: 3x Mini PCIe 2.0 Slots Three PCIE2.0 connectors can connect two or three radio cards such as the CUS260 for 2.4 GHz WLAN and the CUS239 for 802.11ac WLAN How to flash via u-boot console: tftpboot 0x44000000 openwrt-ipq806x-qcom_ipq8064-ap161-squashfs-nand-factory.bin nand erase 0x1340000 0x4000000 nand write 0x44000000 0x1340000 $filesize setenv bootargs ‘console=ttyMSM0,115200 ubi.mtd=ubi root=/dev/ubiblock0_1’ saveenv bootm Further upgrades via sysupgrade. Tested on IPQ8064 AP161 Board: 1) NAND boot 2) Tested USB and PCIe interfaces 3) WDOG test 4) cpu frequency scaling 5) ethernet, 2G and 5G WiFi 6) ubi sysupgrade Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
* treewide: consolidate upgrade state setMathias Kresin2018-08-161-6/+0
| | | | | | | | | | Set the (sys)upgrade state when sourcing the stage2 script instead of setting the state for each target individual. This change fixes the, due to a missing state set, not working upgrade led on ath79 and apm821xx. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: add support for NEC Aterm WG2600HPINAGAKI Hiroshi2018-06-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NEC Aterm WG2600HP is a 2.4/5 GHz band 11ac router, based on Qualcomm IPQ8064. Specification: - IPQ8064 (384 - 1,400 MHz) - 512 MB of RAM - 32 MB of Flash (SPI) - 4T4R 2.4/5 GHz - 5x 10/100/1000 Mbps Ethernet - 12x LEDs, 4x keys - 1x USB 3.0 Type-A - UART header on PCB - RX, TX, NC, GND, Vcc from power connector side - baudrate: 115200 bps Flash instruction using initramfs image: 1. Connect serial cable to UART header 2. Connect power cable and turn on the router 3. When the "Press the [f] key and hit [enter] to enter failsafe mode" message is displayed on the console, press the "f" key and Enter key sequentially to enter the failsafe mode 4. create fw_env.config file with following contents on failsafe mode: /dev/mtd9 0x0 0x10000 0x10000 5. Execute following commands to add and change the environment variables of U-Boot fw_setenv ipaddr "192.168.0.1" fw_setenv serverip "192.168.0.2" fw_setenv autostart "yes" fw_setenv bootcmd "tftpboot 0x44000000 wg2600hp-initramfs.bin; bootipq" 6. Set the IP address of the computer to 192.168.0.2, connect to the LAN port of WG2600HP, and start the TFTP server on the computer 7. Rename OpenWrt initramfs image for WG2600HP to "wg2600hp-initramfs.bin" and place it in the TFTP directory 8. Remove power cable from WG2600HP, reconnect it and restart WG2600HP 9. WG2600HP downloads initramfs image from TFTP server on the computer, loads it and boot with initramfs image 10. On the initramfs image, execute "mtd erase firmware" to erase stock firmware and execute sysupgrade with the sysupgrade image 11. Wait ~180 seconds to complete flashing Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
* ipq806x: add support for Compex WPQ864Christian Mehlis2018-03-151-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware highlights: - SoC: Qualcomm Atheros IPQ8064/5 ARM Dual Core CPU - RAM: (512MB or 1GB) DDR3 System Memory - Storage: 32MB NOR (Cypress S25FL256S1) 256MB NAND (Micron MT29F2G08ABBEAH4) - Ethernet: 5 x 1G via QCA8337N - USB: 1 x USB 2.0/3.0 + 1 x USB 2.0 on mini PCIe3 socket - PCIe: 3x mini PCIe (third mini PCIE3 is PCIe/USB shared) - SIM Card Slot: 2 x Slot - Buttons: Reset Button - LEDs: 18x, 8x GPIO controllable - Buzzer The correct amount of RAM will be passed by the bootloader. In contrast to the documentation provided by Compex, the third PCIe doesn't use GPIO16 for PERST. Instead, GPIO3 is shared and used as PERST for PCIe0 and PCIe2. So far, no one was able to get USB 3.0 working with the 1GB RAM version, while it works fine for my 512MB version. Since USB 3.0 doesn't work with the Compex firmware for the 1G variant either, it could be a hardware issue with these boards. OpenWrt will be installed to the NAND flash. Make sure to have a full working image on the NOR flash. It will be the backup in case anything goes wrong. It has been observed that an image loaded via tftpboot might have bitflips. Hence the extra step to create a crc32 checksum to allow to compare the checksum with the one from the source file prior to flashing. In all cases it is necessary to set the following u-boot parameter to an empty (whitespace) value, to ensure that the chosen bootargs of the dts isn't overwritten or set to bogus - not working - values: (IPQ) # set bootargs " " (IPQ) # set fsbootargs " " (IPQ) # saveenv The sysupgrade image can be installed directly on flash using u-boot (put jumper in JP13 (leave JP9 open) to boot from nand): (IPQ) # set serverip 192.168.1.20 (IPQ) # set ipaddr 192.168.1.1 (IPQ) # tftpboot 0x42000000 openwrt-ipq806x-compex_wpq864-squashfs-nand-factory.bin (IPQ) # crc32 0x42000000 $filesize (IPQ) # nand erase 0x1340000 0x4000000 (IPQ) # nand write 0x42000000 0x1340000 $filesize The initramfs image can be started using: (IPQ) # set fdt_high 0x48000000 (IPQ) # tftpboot 0x44000000 openwrt-ipq806x-compex_wpq864-initramfs-fit-uImage.itb (IPQ) # bootm 0x44000000 Signed-off-by: Christian Mehlis <christian@m3hlis.de> Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: drop ipq40xx supportJohn Crispin2018-03-142-115/+0
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: switch to full dual-boot for the nbg6817 sysupgrade supportStefan Lippers-Hollmann2018-02-131-3/+23
| | | | | | | | | | | | | | Instead of writing to the currently booted partition set, this implements full dual-boot support for sysupgrade by always writing to the other, currently inactive, partition set and toggling the dualflag after a successful flash. The currently active/ booted partition set is determined by parsing /proc/cmdline for its rootfs parameter (supplied by the DTS), instead of reading from the 0:DUAL_FLAG mtd, in order to prevent (potentially) bricking both partition sets. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: request the first free loop device dynamically for the nbg6817 ↵Stefan Lippers-Hollmann2018-02-131-4/+5
| | | | | | | | | | | | sysupgrade Instead of hardcoding /dev/loop0, it's safer to query for the first free loop device and assign that dynamically. While /dev/loop0 is a reasonable assumption immediately following "losetup --detach-all", detaching the mounted overlay is no longer strictly necessary once dual-boot support has been added for the nbg6817. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: use absolute the device path in $kernel for the nbg6817 sysupgradeStefan Lippers-Hollmann2018-02-131-4/+4
| | | | | | | Harmonize the variable usage for $kernel and $rootfs to always contain the full device path, instead of just its basename. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: fix ZyXEL NBG6817 sysupgradeMathias Kresin2018-01-181-7/+10
| | | | | | | | | | | Use the first found directory in the tar archive instead of relying on a directory named according to the userspace boardname. It allows to change the boardname without adding another compatibility layer to the zyxel sysupgrade. Fixes: 33f09cf15178 ("ipq806x: convert to dt-based board-detection") Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: add support for OpenMesh A42Sven Eckelmann2018-01-132-0/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * QCA IPQ401x * 256 MB of RAM * 32 MB of SPI NOR flash (s25fl256s1) - 2x 15 MB available; but one of the 15 MB regions is the recovery image * 2T2R 2.4 GHz - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=16,variant=OM-A42 * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) - requires special BDF in QCA4019/hw1.0/board-2.bin with bus=ahb,bmi-chip-id=0,bmi-board-id=17,variant=OM-A42 * multi-color LED (controlled via red/green/blue GPIOs) * 1x button (reset; kmod-input-gpio-keys compatible) * external watchdog - triggered GPIO * 1x USB (xHCI) * TTL pins are on board (arrow points to VCC, then follows: GND, TX, RX) * 2x gigabit ethernet * powered only via POE - 802.3af POE on Ethernet 1 - 18-24v passive POE (mode B) on Ethernet 2 The tool ap51-flash (https://github.com/ap51-flash/ap51-flash) should be used to transfer the factory image to the u-boot when the device boots up. Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
* ipq806x: Sort occurrences of boardame alphabeticallyLuis Araneda2018-01-131-3/+3
| | | | | | | This restores the alphabetical sort that was present before the renaming of boardname. Signed-off-by: Luis Araneda <luaraneda@gmail.com>
* ipq806x: convert to dt-based board-detectionLuis Araneda2018-01-134-88/+12
| | | | | | | | | | | | | | | | | Use the generic board detection method: - Board name: First compatible string from the device tree - Board model: Model property from the device tree Change occurrences of board name in userspace by the compatible string, and removed target specific board detection script Replace the definition of SUPPORTED_DEVICES in Device/Default to extract the dt compatible string from each device definition. Additionally, for devices supported by lede-17.01, append the value of BOARD_NAME to SUPPORTED_DEVICES in the device definition. Signed-off-by: Luis Araneda <luaraneda@gmail.com>
* base-files: unify get_dt_led helper functionChristian Lamparter2017-12-141-12/+0
| | | | | | | | | | | | | | Lantiq and IPQ806X (which includes IPQ40XX) both define the same custom function {ipq806x|lantiq}_get_dt_led. This patch moves the function into the base-file package at lib/functions/leds.sh to make it more accessible for other targets as well. Cc: Mathias Kresin <dev@kresin.me> Cc: John Crispin <john@phrozen.org> Cc: Hannu Nyman <hannu.nyman@iki.fi> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* ip806x: nbg6817: sysupgrade support both targets for kernel/ rootfs partitionsStefan Lippers-Hollmann2017-10-291-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this commit and the previous "nbg6817: don't hardcode the rootfs location by using append-rootblock instead" applied, it is possible to boot- and sysupgrade from both dual-boot sets (the primary mmcblk0p4+mmcblk0p5 or the alternative mmcblk0p7+mmcblk0p8). However the sysupgrade support does not toggle between both dual-boot sets between firmware upgrades so far. The partition map of the eMMC used in the nbg6817 is: Found valid GPT with protective MBR; using GPT. Disk /dev/mmcblk0: 7471104 sectors, 3.6 GiB Logical sector size: 512 bytes Disk identifier (GUID): XXX Partition table holds up to 12 entries First usable sector is 34, last usable sector is 7471070 Partitions will be aligned on 2-sector boundaries Total free space is 1 sectors (512 bytes) Number Start (sector) End (sector) Size Code Name 1 34 8225 4.0 MiB FFFF rootfs_data 2 8226 16417 4.0 MiB FFFF romd 3 16418 18465 1024.0 KiB FFFF header 4 18466 26657 4.0 MiB FFFF kernel 5 26658 157729 64.0 MiB FFFF rootfs 6 157730 159777 1024.0 KiB FFFF header_1 7 159778 167969 4.0 MiB FFFF kernel_1 8 167970 299041 64.0 MiB FFFF rootfs_1 9 299042 823329 256.0 MiB FFFF bu1 10 823330 7471069 3.2 GiB FFFF bu2 rootfs_data is the ext4 formatted overlay of the OEM firmware, LEDE ignores it due to its (too) small size. romd/ bu1 are initialized with zeroes (0x00) and unused. bu2 is formatted with ext4 and used for streamboost and other optional functionality by the OEM firmware, it is reformatted during factory resets of the OEM firmware. header/ header_1 contains version information for the corresponding vendor firmwares installed to kernel/rootfs or kernel_1/ rootfs_1, the format hasn't been completely reverse engineered so far and remains left untouched by LEDE: V1.00(ABCS.2)C0: 00000000 00 00 a7 74 01 32 f0 00 56 31 2e 30 30 28 41 42 |...t.2..V1.00(AB| 00000010 43 53 2e 32 29 43 30 00 ff ff ff ff ff ff ff ff |CS.2)C0.........| 00000020 ff ff ff ff ff ff ff ff 00 00 d5 dc 4e 42 47 36 |............NBG6| 00000030 38 31 37 00 ff ff ff ff ff ff ff ff ff ff ff ff |817.............| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000060 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 22 a3 |..............".| 00000070 00 1c 70 00 ff ff ff ff ff ff ff ff ff ff ff ff |..p.............| 00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 V1.00(ABCS.5)C0: 00000000 00 00 bf 94 01 46 d8 00 56 31 2e 30 30 28 41 42 |.....F..V1.00(AB| 00000010 43 53 2e 35 29 43 30 00 ff ff ff ff ff ff ff ff |CS.5)C0.........| 00000020 ff ff ff ff ff ff ff ff 00 00 d6 5a 4e 42 47 36 |...........ZNBG6| 00000030 38 31 37 00 ff ff ff ff ff ff ff ff ff ff ff ff |817.............| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00000060 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 c0 2c |...............,| 00000070 00 1c 58 00 ff ff ff ff ff ff ff ff ff ff ff ff |..X.............| 00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
* ipq806x: ipq4019: add ap-dk01.1-c1 board supportRoman Yeryomin2017-10-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AP-DK01.1-C1 is QCA dev board with: - ipq4018 quad core ARM @716.8MHz, 2x2 dual (11n+11ac) radio - 256MB RAM - 32MB SPI flash - QCA8075 multiport ethernet phy (WAN port, 4x LAN ports) First installation via u-boot: sf probe sf erase 0x180000 0x1a00000 tftpboot 0x84000000 lede-ipq806x-AP-DK01.1-C1-squashfs-sysupgrade.bin sf write 0x84000000 0x180000 $filesize Further upgrades via sysupgrade. Changes: - add partitions - set memory size to 256MB - add reserved memory mapping - add correct compatible string - add image generation - extract pre-cal data from ART partition Compile and run tested. Wirespeed NAT can be achieved with spreading rx interrupts over different cores. Wifi speed is ~550Mbps @5GHz in open air. Note: AP-DK01.1-C1 is fully compatible with AP-DK01.2-C1, which has ipq4028 instead of ipq4018 on board. Changes since v2: - based on dts(i) rework/cleanup submitted: http://lists.infradead.org/pipermail/lede-dev/2017-October/009596.html - precise reserved memory mapping - more precise description - compatible string Signed-off-by: Roman Yeryomin <roman@advem.lv>
* treewide: use only board_name function to get nameMathias Kresin2017-07-151-1/+1
| | | | | | | | | | | | 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-151-9/+0
| | | | | | They are not used any longer. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: use the generic board_name functionMathias Kresin2017-07-151-8/+2
| | | | | | Use the generic function instead ot the target specific ones. Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: populate boardname and model earlierMathias Kresin2017-07-151-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>
* base-files: automatically handle paths and symlinks for RAMFS_COPY_BINMatthias Schiffer2017-07-111-1/+1
| | | | | | | | | | | | 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>
* 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>
* ipq806x: Enable ubi image for ipq40xx AP-DK04.1-C1 boardRam Chandra Jangir2017-06-071-0/+1
| | | | | | | | | | | | | | This change add IPQ40xx AP-DK04.1-C1 board image support, enables ubi image for IPQ40xx AP-DK04.1-C1 board and also add sysupgrage support for AP-DK04.1-C1 and generates a sysupgrade.tar image. Testing: *Tested on IPQ40xx AP-DK04.1-C1: a. NAND boot b. ubi sysupgrade Signed-off-by: Ram Chandra Jangir <rjangir@codeaurora.org>
* treewide: fix device tree path in scriptsMathias Kresin2017-05-261-1/+1
| | | | | | | | The device tree is at /proc/device-tree/ without a base subdir. Fixes: da472e5b30f6 ("treewide: access device tree from userspace via /proc/") Signed-off-by: Mathias Kresin <dev@kresin.me>
* treewide: access device tree from userspace via /proc/Mathias Kresin2017-05-261-1/+1
| | | | | | | Access the device tree via /proc/device-tree/ is the documented way to access the properties. Everything else might not work in future. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ipq806x: add ipq4019 fritz4040 supportChristian Lamparter2017-03-222-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for AVM FRITZ!Box 4040. hardware highlights: SOC: IPQ4018 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB Nanya NT5CC128M16IP FLASH: 32 MiB MXIC MX25L25635FMI ETH: Qualcomm Atheros QCA8075 Gigabit Switch (4 x LAN, 1 x WAN) USB: 1 x 3.0 (via Synopsys DesignWare DWC3 controller in the SoC) 1 x 2.0 (via Synopsys DesignWare DWC3 controller in the SoC) WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11a/n/ac 2:2x2 INPUT: one WLAN and one WPS button LEDS: Power, WAN/Internet, WIFI, INFO (red and amber) and LAN. Serial: WARNING: The serial port needs a TTL/RS-232 v3.3 level converter! The Serial setting is 115200-8-N-1. The SoC's serial port is right next to the MXIC FLASH chip. The board has a unpopulated 1x4 0.1" header for it. Use a multimeter to figure out the pinout! This board currently needs an additional u-boot image in order to boot properly. Booting with EVA isn't possible ATM. Install Procedure: 0. It's highly recommended to connect to the serial port. The serial settings are listed above. 1. install a u-boot image for AVM Fritz!Box 4040 (see <https://github.com/chunkeey/FritzBox-4040-UBOOT/releases> and <https://github.com/chunkeey/FritzBox-4040-UBOOT/blob/master/upload-to-f4040.sh>) 2. upload the initramfs.itb image via tftp (u-boot listens to 192.168.1.1 - use binary transfer mode!) 3. connect to the FB4040 and use sysupgrade sysupgrade.bin to install the image. Works: - Switch and Ethernet (99%) - Buttons (WLAN, WPS) - FLASH (1 x 32MiB NOR Chip) - WLAN2G and WLAN5G - CPUFREQ scaling - PRNG - serial - Crypto Accelerator - sysupgrade (Read the flash instructions to avoid bricking) - full LEDE Install (Read the flash instructions to avoid bricking) - LEDs (Power, WAN, Info (red and amber), LAN) The LEDs are connected to the QCA8075 LED ports. The AR40xx driver contains a gpio-controller to handle these special "GPIOs". - USB Both 3.0 and 2.0 ports - many packages from other ARMv7 boards (This does include the RaspberryPi Model 2!) - ... Not planned: - WAN<->LAN short-cut - Qualcomm Secure Execution Environment - ... Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John Crispin <john@phrozen.org>
* ipq806x: EA8500 fix sysupgrade over stock firmwareAdrian Panella2016-12-201-4/+26
| | | | | | | | | | When running sysupgrade for the first time over the second partition (that still had stock firmware) the rootfs wasn't flashed as there wasn't enough space. This happend because stock also uses UBI, but the volume name wasn't recognised and wasn't deleted before flashing. Signed-off-by: Adrian Panella <ianchi74@outlook.com>
* ipq806x: add support for TP-Link Archer VR2600vSebastian Quilitz2016-11-242-0/+8
| | | | | | | | | | | | | | | | | | This router is similar to the C2600. Ethernet on WAN + LAN, switch, sysupgrade, LEDs, buttons and WiFi on 2G + 5G do work. The xDSL modem and the POTS/DECT interface are not supported yet. It is not possible to flash LEDE via the TP-Link webinterface. The image need to be signed. The first 0x200 bytes of the image is the TP-Link header including the signature. The signature is not validated by the bootloader. The LEDE image is zeroed in this area. To install LEDE it is necessary to solder a four pin header to JP2. Connect a serial interface to this header and interrupt the autostart of kernel. Transfer the sysupgrade image via TFTP and write it to the serial flash at 0x320000. Signed-off-by: Sebastian Quilitz <zeraphim@x-pantion.de>
* ipq806x: remove device specific sysupgrade image checksFelix Fietkau2016-11-201-24/+1
| | | | | | Replaced by image metadata Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ipq806x: append metadata to imagesFelix Fietkau2016-11-191-0/+1
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>