aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/files-5.15
Commit message (Collapse)AuthorAgeFilesLines
* ipq806x: add support for Nokia Airscale AC400iKristjan Krušič2023-03-191-0/+318
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: Qualcomm IPQ8065 RAM: 512 MB DDR3 Flash: 256 MB NAND (Macronix MX30UF2G18AC) (split into 2x128MB) 4 MB SPI-NOR (Macronix MX25U3235F) WLAN: Qualcomm Atheros QCA9984 - 2.4Ghz Qualcomm Atheros QCA9984 - 5Ghz ETH: eth0 - POE (100Mbps in U-Boot, 1000Mbps in OpenWrt) eth1 - (1000Mbps in both) Auto-negotiation broken on both. USB: USB 2.0 LED: 5G, 2.4G, ETH1, ETH2, CTRL, PWR (All support green and red) BTN: Reset Other: SD card slot (non-functional) Serial: 115200bps, near the Ethernet transformers, labeled 9X. Connections from the arrow to the 9X text: [NC] - [TXD] - [GND] - [RXD] - [NC] Installation ------------ 0. Connect to the device Plug your computer into LAN2 (1000Mbps connection required). If you use the LAN1/POE port, set your computer to force a 100Mbps link. Connect to the device via TTL (Serial) 115200n8. Locate the header (or solder pads) labeled 9X, near the Ethernet jacks/transformers. There should be an arrow on the other side of the header marking. The connections should go like this: (from the arrow to the 9X text): NC - TXD - GND - RXD - NC 1. Prepare for installation While the AP is powering up, interrupt the startup process. MAKE SURE TO CHECK YOUR CURRENT PARTITION! If you see: "Current Partition is : partB" or "Need to switch partition from partA to partB", you have to force the device into partA mode, before continuing. This can be done by changing the PKRstCnt to 5 and resetting the device. setenv PKRstCnt 5 saveenv reset After you interrupt the startup process again, you should see: Need to switch partition from partB to partA You can now continue to the next step. If you see: "Current Partition is : partA", you can continue to the next step. 2. Prevent partition switching. To prevent the device from switching partitions, we are going to modify the startup command. set bootcmd "setenv PKRstCnt 0; saveenv; bootipq" setenv 3. First boot Now, we have to boot the OpenWrt intifs. The easiest way to do this is by using Tiny PXE. You can also use the normal U-Boot tftp method. Run "bootp" this will get an IP from the DHCP server and possibly the firmware image. If it doesn't download the firmware image, run "tftpboot". Now run "bootm" to run the image. You might see: "ERROR: new format image overwritten - must RESET the board to recover" this means that the image you are trying to load is too big. Use a smaller image for the initial boot. 4. Install OpenWrt from initfs Once you are booted into OpenWrt, transfer the OpenWrt upgrade image and use sysupgrade to install OpenWrt to the device. Signed-off-by: Kristjan Krušič <kristjan.krusic@krusic22.com>
* ipq806x: Add buttons to OnHubAlan Luck2023-03-051-0/+28
| | | | | | | | | | | These are the factory reset button (external) and "developer mode" button (hidden inside the case (ASUS) or under a screw in the base (TP-Link)) found on the TP-Link and ASUS OnHub devices. Signed-off-by: Alan Luck <luckyhome2008@gmail.com> [Brian: add description; factor out for both ASUS and TP-Link; use existing pinmux definitions; add keycode for dev button] Signed-off-by: Brian Norris <computersforpeace@gmail.com>
* ipq806x: fix Linksys EAX500 family devices dead Ethernet switchChristian Marangi2023-02-171-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With 5.15 kernel version Linksys EAX500 family devices suffered from a big regression where the Ethernet switch became silent and started to malfunction. It was discovered later that the cause was not really the kernel upgrade itself but a hackish implementation of the hw implementation of these special routers. In the original Linksys source code, GPIO 63 was handled in a special way and was reset on reboot. Normally GPIO 63 is used for pcie2 reset but in every device we support, pcie2 is actually never used as nothing is attached to it. Linksys rerouted GPIO 63 to the switch reset pin and deviates from common hw implementation. Till now it was used an hack to handle this case... It was set pcie3 as working (while actually nothing was connected), set it to output low (for assert-deassert from the pcie init code) and be done with it. The result was that the GPIO was reset for enough time in early boot and everything worked correctly. This hack implementation was born to fail from the very start and in kernel 5.15 finally problem arised. In 5.15 pcie code changed and now the GPIO reset pin is not asserted as probe won't fail if nothing is connected to the line (the old behaviour) This result in the switch hold the reset pin and the Ethernet switch dead. On top of that with 5.15 code got optimized and simply attaching the GPIO reset to the mdio wasn't enough as the switch require at least 10ms to be correctly reset. So implement finally a correct solution where: - pcie2 is correctly disabled (nothing attached, unused) - drop the wrong output-low for pcie2 reset pin - define GPIO 63 as switch reset - Add the reset-gpios to the mdio0 node - Set the reset-post-delay-us to 12ms to correctly give time the switch to reset Fixes: #10983 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: fix dts whitespaceFelix Baumann2023-02-091-9/+9
| | | | | | Replace blanks with tabs Signed-off-by: Felix Baumann <felix.bau@gmx.de>
* ipq806x: add missing enclosing reserved-memory block on C2600/AD7200Filip Matijević2023-02-071-8/+10
| | | | | | | | | | | | Most of the time when booting kernel prints a warning from mm/page_alloc.c when pstore/ramoops is being initialized and ramoops is not functional. Fix this by moving ramopps node into reserved-memory block as described in kernel documentation. Fixes: 2964e5024c ("ipq806x: kernel ramoops storage for C2600/AD7200") Signed-off-by: Filip Matijević <filip.matijevic.pz@gmail.com>
* ipq806x: onhub: Enable fstools_partname_fallback_scanBrian Norris2023-02-042-8/+0
| | | | | | | | | | | | | | | | | | | | When fstools is unable to parse our root=<...> arg correctly, it can fall back to scanning all block devices for a 'rootfs_data' partition. This fallback was deemed wrong (or at least, a breaking/incompatible change) for some targets, so we're forced to opt back into it with fstools_partname_fallback_scan=1. Without this, OnHub devices will use a rootfs-appended loop device for rootfs_data instead of the intended 3rd partition. While I'm at it, just move all the boot args into the 'cros-vboot' build rule, instead of using the custom bootargs-append. All cros-vboot subtargets here are using the same rootwait (to support both eMMC and USB boot) and root/partition args. Signed-off-by: Brian Norris <computersforpeace@gmail.com> [ drop unrelated comments in commit description ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: Initial TP-Link and ASUS OnHub supportBrian Norris2023-01-213-0/+772
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link and ASUS OnHub devices are very similar, sharing many of the same characteristics and much of their Device Tree. They both run a version of ChromeOS for their factory firmware, and so installation instructions look very similar to Google Wifi [1]. Things I've tested, and are working: * Ethernet * WiFi (2.4 and 5 GHz) * LEDs * USB * eMMC * Serial console (if you wire it up yourself) * 2x CPU * Speaker == Installation instructions summary == 1. Flash *-factory.bin to a USB drive (e.g., with `dd`) 2. Insert USB drive, to boot OpenWrt from USB 3. Copy the same *-factory.bin over to device, and flash it to eMMC to make OpenWrt permanent == Developer mode, booting from USB (Step 2) == To enter Developer Mode and boot OpenWrt from a USB stick: 1. Unplug power 2. Gain access to the "developer switch" through the bottom of the device 3. Hold down the "reset switch" (near the USB port / power plug) 4. Plug power back in 5. The LED on the device should turn white, then blink orange, then red. Release the reset switch. 6. Insert USB drive with OpenWrt factory.bin 7. Press the hidden developer switch under the device to boot to USB; you should see some activity lights (if you have any) on your USB drive 8. Depending on your configuration, the router's LED(s) should come on. You're now running OpenWrt off a USB stick. These instructions are derived from: https://www.exploitee.rs/index.php/Rooting_The_Google_OnHub#Enabling_%22Developer_Mode%22_on_the_OnHub https://www.exploitee.rs/index.php/Asus_OnHub#Enabling_%22Developer_Mode%22_on_the_OnHub ~~Finding the developer switch:~~ for TP-Link, the developer switch is on the bottom of the device, underneath some of the rubber padding and a screw. For ASUS, remove the entire base, via 4 screws under the rubber feet. See the Exploitee instructions for more info and photos. == Making OpenWrt permanent (on eMMC) (Step 3) == Once you're running OpenWrt via USB: 1. Connect Ethernet to the LAN port; router's LAN address should be at 192.168.1.1 2. Connect another system to the router's LAN, and copy the factory.bin image over, via SCP and SSH: scp -O openwrt-ipq806x-chromium-tplink_onhub-squashfs-factory.bin root@192.168.1.1: ssh root@192.168.1.1 -C "dd if=/dev/zero bs=512 seek=7552991 of=/dev/mmcblk0 count=33 && \ dd if=/root/openwrt-ipq806x-chromium-tplink_onhub-squashfs-factory.bin of=/dev/mmcblk0" 3. Reboot and remove the USB drive. == Developer mode beep == Note that every time you boot the OnHub in developer mode, the device will play a loud "beep" after a few seconds. This is described in the Chromium docs [2], and is intended to make it clear that the device is not running Google software. It is nontrivial to completely disable this beep, although it's possible to "acknowledge" developer mode (and skip the beep) by using a USB keyboard to press CTRL+D every time you boot. [1] https://openwrt.org/toh/google/wifi [2] https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_mode.md Signed-off-by: Brian Norris <computersforpeace@gmail.com>
* ipq806x: 5.15: standardize wpq864 partition tableChristian Marangi2022-12-141-43/+43
| | | | | | | | | | Compex WPQ864 contains a non standard partition table. Each partition node should be named partition and should contain a valid reg. Fix an extra "-" present after the reg for SBL2_1 partition. Also add "0:" to each qcom default partition following smem naming. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: 5.15: fix wrong boot-partitions values for split partitionsChristian Marangi2022-12-143-3/+3
| | | | | | | | | | | | | The refreshed patch actually use the format of <start size start size> instead of <start end start end>. This cause boot fail since the rootfs can't be mounted with these wrong values. Fix it to the correct format in each affected dts. Fixes: #11498 Fixes: 6134ba4a34db ("ipq806x: 5.15: add boot-partitions binding to fix block warning") Tested-by: Matt Buczko <mbuczko@hotmail.com> # Askey RT4230W Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: kernel ramoops storage for C2600/AD7200Edward Matijevic2022-11-091-0/+9
| | | | | | | | | Define the kernel crash log storage ramoops/pstore feature for C2600/AD7200 and add kmod-ramoops to default. Tested with C2600 only. Signed-off-by: Edward Matijevic <motolav@gmail.com>
* ipq806x: 5.15: revert unwanted DSA conversion for ASRock G10Christian Marangi2022-10-251-65/+11
| | | | | | | | | | In refreshing DTS to the upstream version an unwanted change slipped in the commit. The ASRock G10 dts got converted to DSA without any support. Revert this to swconfig driver to restore normal functionality. Fixes: 88bf6525251f ("ipq806x: 5.15: replace dtsi patches with upstream version") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: 5.15: enable again usb node for each deviceChristian Marangi2022-10-1121-15/+343
| | | | | | | Usb node now are disabled by default in dtsi. Enable again them in each device dts. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: 5.15: rework nand_pins for wg2600hp3 dtsChristian Marangi2022-10-111-2/+0
| | | | | | | nand_pins definition is now shipped in ipq8064 dtsi. Rework the nand_pins definition for wg2600hp3 5.15 files. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: 5.15: add boot-partitions binding to fix block warningChristian Marangi2022-10-1110-8/+12
| | | | | | | | | | | | | | The patch has changed implementation and now the binding has changed. Replace the old binding with boot-partitions and reimplement the definition with the new definition. The new definition is: <offset1 size1 offset2 size2 offset3 ...> and now supports sparsed patch. Also add missing binding in some dts and add the backup boot partition to the boot-partitions list. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: 5.15: replace dtsi patches with upstream versionChristian Marangi2022-10-1122-412/+97
| | | | | | | | | Reorganize dtsi patches with upstream version and drop dtsi in 5.15 files. Also add an additional upstream patch for hwspinlock support. Refresh all the dts with needed changes. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ipq806x: split files dir to 5.10 and 5.15Christian Marangi2022-10-1132-0/+8525
In preparation for a cleanup of 5.15 patches copy the files dir to 5.10 and 5.15 kernel version. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>