aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx
Commit message (Collapse)AuthorAgeFilesLines
* mpc85xx: add support for Watchguard Firebox T10David Bauer2023-03-109-1/+407
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware -------- SoC: Freescale P1010 RAM: 512MB FLASH: 1 MB SPI-NOR 512 MB NAND ETH: 3x Gigabite Ethernet (Atheros AR8033) SERIAL: Cisco RJ-45 (115200 8N1) RTC: Battery-Backed RTC (I2C) Installation ------------ 1. Patch U-Boot by dumping the content of the SPI-Flash using a SPI programmer. The SHA1 hash for the U-Boot password is currently unknown. A tool for patching U-Boot is available at https://github.com/blocktrron/t10-uboot-patcher/ You can also patch the unknown password yourself. The SHA1 hash is E597301A1D89FF3F6D318DBF4DBA0A5ABC5ECBEA 2. Interrupt the bootmenu by pressing CTRL+C. A password prompt appears. The patched password is '1234' (without quotation marks) 3. Download the OpenWrt initramfs image. Copy it to a TFTP server reachable at 10.0.1.13/24 and rename it to uImage. 4. Connect the TFTP server to ethernet port 0 of the Watchguard T10. 5. Download and boot the initramfs image by entering "tftpboot; bootm;" in U-Boot. 6. After OpenWrt booted, create a UBI volume on the old data partition. The "ubi" mtd partition should be mtd7, check this using $ cat /proc/mtd Create a UBI partition by executing $ ubiformat /dev/mtd7 -y 7. Increase the loadable kernel-size of U-Boot by executing $ fw_setenv SysAKernSize 800000 8. Transfer the OpenWrt sysupgrade image to the Watchguard T10 using scp. Install the image by using sysupgrade: $ sysupgrade -n <path-to-sysupgrade> Note: The LAN ports of the T10 are 1 & 2 while 0 is WAN. You might have to change the ethernet-port. 9. OpenWrt should now boot from the internal NAND. Enjoy. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 35f6d795134e9b089c4e763a7f58cba7d4e15e42)
* kernel: bump 5.10 to 5.10.150John Audia2022-11-012-4/+4
| | | | | | | | | | | | Manually rebased: bcm53xx/patches-5.10/180-usb-xhci-add-support-for-performing-fake-doorbell.patch All patches automatically rebased. Signed-off-by: John Audia <therealgraysky@proton.me> [Move gro_skip in 680-NET-skip-GRO-for-foreign-MAC-addresses.patch to old position] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit aa2fa2eb76f13e48cd39d844dca34627da00cb5d)
* mpc85xx: p1010: make TP-Link WDR4900 v1 build againMatthias Schiffer2022-10-141-3/+17
| | | | | | | | Add the spi-loader as a pre-kernel stage, so we can lift the kernel size limit. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> (cherry picked from commit 2fa53c9214b7b93fd82ad1ff885145b9e1c1f71b)
* mpc85xx: add SPI kernel loader for TP-Link TL-WDR4900 v1Matthias Schiffer2022-10-1422-0/+1364
| | | | | | | | | | | Similar to the lzma-loader on our MIPS targets, the spi-loader acts as a second-stage loader that will then load and start the actual kernel. As the TL-WDR4900 uses SPI-NOR and the P1010 family does not have support for memory mapping of this type of flash, this loader needs to contain a basic driver for the FSL ESPI controller. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> (cherry picked from commit a296055b82fbb20457273492069ce9d62009e2a1)
* kernel: bump 5.10 to 5.10.145John Audia2022-10-041-42/+0
| | | | | | | | | | | | | | | Manually rebased: hack-5.10/780-usb-net-MeigLink_modem_support.patch Removed upstreamed: patches-5.10/110-gpio-mpc8xxx-Fix-support-for-IRQ_TYPE_LEVEL_LOW-flow.patch[1] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.145&id=24196210b198e8e39296e277bb93b362aa207775 Signed-off-by: John Audia <therealgraysky@proton.me> (cherry picked from commit 8fe67fae1d619467b2b3300178d4309f17cfdb54)
* mpc85xx: add patch to fix gpio mpc8xxxJosef Schlehofer2022-09-241-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backports Linux kernel patch [1] for kernel 5.10 where it applies cleanly. This was tested on CZ.NIC Turris 1.1 router running OpenWrt 22.03 release. Before: - In /var/log/messages: ``` [ 16.392988] lm90 0-004c: cannot request IRQ 48 [ 16.398280] lm90: probe of 0-004c failed with error -22 ``` - Sensors does not work: ``` root@turris:~# sensors No sensors found! Make sure you loaded all the kernel drivers you need. Try sensors-detect to find out which these are. ``` After: ``` root@turris:/# sensors sa56004-i2c-0-4c Adapter: MPC adapter (i2c@3000) temp1: +44.0°C (low = +0.0°C, high = +70.0°C) (crit = +85.0°C, hyst = +75.0°C) temp2: +73.8°C (low = +0.0°C, high = +70.0°C) ALARM (HIGH) (crit = +85.0°C, hyst = +75.0°C) ``` [1] https://lore.kernel.org/linux-gpio/20220906105431.30911-1-pali@kernel.org/ Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit 2f496c34b6dfbedbfbff8d2ade5d629f096e40bd) (c&p commit ID from openwrt's master) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: fix unset kernel symbolsDavid Bauer2022-09-201-0/+2
| | | | Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: Drop pci aliases to avoid domain changesMartin Kennedy2022-09-026-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of upstream Linux commit 0fe1e96fef0a ("powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias"), the PCIe domain address is no longer numbered by the lowest 16 bits of the PCI register address after a fallthrough. Instead of the fallthrough, the enumeration process accepts the alias ID (as determined by `of_alias_scan()`). This causes e.g.: 9000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11) 9000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ... to become 0000:00:00.0 PCI bridge: Freescale Semiconductor Inc P1020E (rev 11) 0000:01:00.0 Network controller: Qualcomm Atheros AR958x 802.11abgn ... ... which then causes the sysfs path of the netdev to change, invalidating the `wifi_device.path`s enumerated in `/etc/config/wireless`. One other solution might be to migrate the uci configuration, as was done for mvebu in commit 0bd5aa89fcf2 ("mvebu: Migrate uci config to new PCIe path"). However, there are concerns that the sysfs path will change once again once some upstream patches[^2][^3] are merged and backported (and `CONFIG_PPC_PCI_BUS_NUM_DOMAIN_DEPENDENT` is enabled). Instead, remove the aliases and allow the fallthrough to continue for now. We will provide a migration in a later release. This was first reported as a Github issue[^1]. [^1]: https://github.com/openwrt/openwrt/issues/10530 [^2]: https://lore.kernel.org/linuxppc-dev/20220706104308.5390-1-pali@kernel.org/t/#u [^3]: https://lore.kernel.org/linuxppc-dev/20220706101043.4867-1-pali@kernel.org/ Fixes: #10530 Tested-by: Martin Kennedy <hurricos@gmail.com> [Tested on the Aerohive HiveAP 330 and Extreme Networks WS-AP3825i] Signed-off-by: Martin Kennedy <hurricos@gmail.com> (cherry picked from commit 7f4b4c29f3489697dca7495216460d0ed5023e02)
* mpc85xx: enable NAND support for all subtargetsJosef Schlehofer2022-08-163-3/+1
| | | | | | | | | | | | | | | In subtarget p2020, there wasn't enabled nand support, and because of that there weren't available tools from mtd-utils package, which has utilities for NAND flash memory even though reference board, which is the only currently supported device in p2020 subtarget has NAND [1]. All subtargets in mpc85xx has already enabled nand support, let's do it globally. [1] https://www.nxp.com/design/qoriq-developer-resources/p2020-reference-design-board:P2020RDB Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit 6006f73383cc7626552175010de23530bdcc8718)
* kernel: bump 5.10 to 5.10.122John Audia2022-06-271-1/+1
| | | | | | | | | | All patches automatically rebased. Build system: x86_64 Build-tested: ipq806x/R7800 Signed-off-by: John Audia <therealgraysky@proton.me> (cherry picked from commit 9edc514e3dafcc36db69046a37daab818cfc1a07)
* generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]Tomasz Maciej Nowak2022-06-271-0/+2
| | | | | | | | | | | | | This is now built-in, enable so it won't propagate on target configs. Link: https://lkml.org/lkml/2022/1/3/168 Fixes: 79e7a2552e89 ("kernel: bump 5.15 to 5.15.44") Fixes: 0ca93670693b ("kernel: bump 5.10 to 5.10.119") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> (Link to Kernel's commit taht made it built-in, CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport) Signed-off-by: Christian Lamparter <chunkeey@gmail.com> (cherry picked from commit 539e60539a2fde6531bd179c94bb9c7f8f490f2b)
* mpc85xx: p2020: add RTC ds1307 to kernelJosef Schlehofer2022-06-251-0/+1
| | | | | | | | | | | | | | | If the RTC module is compiled as a module, the hctosys fails to initialize because ds1307 is loaded later. Fixes: [ 2.004145] hctosys: unable to open rtc device (rtc0) [ 11.957997] rtc-ds1307 0-006f: registered as rtc0 This is similar to commit 5481ce9a1157a43d8b2c963e03fb243e70974361, which was done for imx6 target. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit dc7f78da97c62cd6c17a75f754da5bf6b957837d)
* mpc85xx: enable error reporting for RAM and PCIeJosef Schlehofer2022-06-141-0/+4
| | | | | | | | | | | | | | | | | | | | | All Freescale processors used in this target are capable to detect error and correction. [1] It can not be used as kernel module. [2] This is helpful to report hardware errors. It enables three kernel options: - EDAC, which is a subsystem - EDAC_LEGACY_SYSFS, it enables sysfq nodes - MP85XX, support for Freescale MPC8349, MPC8560, MPC8540, MPC8548, T4240 EDAC is already enabled for following targets: qoriq, octeon, octeontx and zynq. [1] https://cateee.net/lkddb/web-lkddb/EDAC.html [2] https://patchwork.ozlabs.org/patch/554908/ Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com> (cherry picked from commit bfc73f42df3189a2eb34bebc8d9e73b3389a83a2)
* mpc85xx: Fix output location of padded dtbMartin Kennedy2022-05-012-3/+3
| | | | | | | | | | | | | | | | | | | | | | In commit 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i"), we borrowed a recipe convention from apm821xx for device tree blob padding. Unfortunately, in the apm821xx target, the image recipes name the device tree blob differently, meaning that in mpc85xx, the padded dtb is never consumed. Change the definition of `Build/dtb` so that it outputs the padded dtb to the correct location for it to be consumed. Also, rename the recipe to `Build/pad-dtb`, so it is clear we are building and padding the device tree blob. This change fixes Github issue #9779 [1]. [1]: https://github.com/openwrt/openwrt/issues/9779 Fixes: 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i") Signed-off-by: Martin Kennedy <hurricos@gmail.com> (cherry picked from commit 1d06277407d3e294589ecde46328303a9f3803fd)
* mpc85xx: set WS-AP3825i mac-address in preinitDavid Bauer2022-04-261-0/+12
| | | | | | | | | | The bootloader does seem to not correctly patch in the MAC address for eth0 / eth1 in some cases. While the root cause is not known, manually applying the MAC-Address in preinit does not hurt. Reported-by: Tom Herbers <freifunk@tomherbers.de> Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit c6d52515e009d96e0afbe77310bf172f113d0eef)
* mpc85xx: define reset-delay for WS-AP3825i eth PHYDavid Bauer2022-04-261-0/+4
| | | | | | | | | | | | | The WS-AP3825i uses Atheros PHYs which according to the datasheet require the reset to be asserted for at least 1 ms. This fixes broken eth1 upon soft-reboot. eth0 is no affected, as the ifup / ifdown cycle in preinit prevents this issue from happening when the system is ready. Reported-by: Tom Herbers <freifunk@tomherbers.de> Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 8b3c313515c1ae37be9d61a4e92c4bf4b43f605f)
* mpc85xx: move Extreme WS-AP3825i GPIO extenderDavid Bauer2022-04-181-23/+25
| | | | | | | | Move the GPIO extender to the SoC node. Otherwise, the legacy PowerPC init code will not populate the BUS and thus never probe spi-gpio. Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit f0c09d0305835abc7bcc32285dc82c008159936d)
* mpc85xx: overhaul WS-AP3825i LED setupDavid Bauer2022-04-172-12/+31
| | | | | | | | | | | | | As the LED controller is working now, we can make good use of the LEDs now. - Drop the model-name prefix - Rename eth0 / eth1 LEDs to LAN1 / LAN2, as they are labeled as such on the casing - Enable wired LEDs in userspace Signed-off-by: David Bauer <mail@david-bauer.net> (cherry picked from commit 9024f1e466f5ab64bc752d8a463d1867a2ba8d8e)
* kernel: bump 5.10 to 5.10.107John Audia2022-03-191-7/+0
| | | | | | | | | | All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <graysky@archlinux.us>
* mpc85xx: fix missing kernel config symbol and DTS whitespace issuePetr Štetiar2022-03-172-1/+2
| | | | | | | | | | | | | Buildbot has reported following issue while crunching mpc85xx/p1010 subtarget: Extreme Networks WS-AP3825i (WS_AP3825I) [N/y/?] (NEW) Fix it by disabling that config symbol in target kernel config and while at it fix DTS whitespace issue. Fixes: 7e614820a892 ("mpc85xx: add support for Extreme Networks WS-AP3825i") Signed-off-by: Petr Štetiar <ynezz@true.cz>
* mpc85xx: add support for Extreme Networks WS-AP3825iMartin Kennedy2022-03-167-1/+407
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware: - SoC: Freescale P1020 - CPU: 2x e500v2 @ 800MHz - Flash: 64MiB NOR (1x Intel JS28F512) - Memory: 256MiB (2x ProMOS DDR3 V73CAG01168RBJ-I9H 1Gb) - WiFi1: 2.4+5GHz abgn 3x3 (Atheros AR9590) - Wifi2: 5GHz an+ac 3x3 (Qualcomm Atheros QCA9890) - ETH: 2x PoE Gigabit Ethernet (2x Atheros AR8035) - Power: 12V (center-positive barrel) or 48V PoE (active or passive) - Serial: Cisco-compatible RJ45 next to 12V power socket (115200 baud) - LED Driver: TI LV164A - LEDs: (not functioning) - 2x Power (Green + Orange) - 4x ETH (ETH1 + ETH2) x (Green + Orange) - 2x WiFi (WiFi2 + WiFi1) Installation: 1. Grab the OpenWrt initramfs <openwrt-initramfs-bin>, e.g. openwrt-mpc85xx-p1020-extreme-networks_ws-ap3825i-initramfs-kernel.bin. Place it in the root directory of a DHCP+TFTP server, e.g. OpenWrt `dnsmasq` with configuration `dhcp.server.enable_tftp='1'`. 2. Connect to the serial port and boot the AP with options e.g. 115200,N,8. Stop autoboot in U-Boot by pressing Enter after 'Scanning JFFS2 FS:' begins, then waiting for the prompt to be interrupted. Credentials are identical to the one in the APs interface. By default it is admin / new2day: if these do not work, follow the OEM's reset procedure using the reset button. 3. Set the bootcmd so the AP can boot OpenWrt by executing: ```uboot setenv boot_openwrt "cp.b 0xEC000000 0x2000000 0x2000000; interrupts off; bootm start 0x2000000; bootm loados; fdt resize; fdt boardsetup; fdt chosen; bootm prep; bootm go;" setenv bootcmd "run boot_openwrt" saveenv ``` If you plan on going back to the vendor firmware - the bootcmd for it is stored in the boot_flash variable. 4. Load the initramfs image to RAM and boot by executing ```uboot setenv ipaddr <ipv4 client address>; setenv serverip <tftp server address>; tftpboot 0x2000000 <openwrt-initramfs-bin>; interrupts off; bootm start 0x2000000; bootm loados; fdt resize; fdt boardsetup; fdt chosen; bootm prep; bootm go; ``` 5. Make a backup of the "firmware" partition if you ever wish to go back to the vendor firmware. 6. Upload the OpenWrt sysupgrade image via SCP to the devices /tmp folder. 7. Flash OpenWrt using sysupgrade. ```ash sysupgrade /tmp/<openwrt-sysupgrade-bin> ``` Notes: - We must step through the `bootm` process manually to avoid fdt relocation. To explain: the stock U-boot (and stock Linux) are configured with a very large CONFIG_SYS_BOOTMAPSZ (and the device's stock Linux kernel is configured to be able to handle it). The U-boot version predates the check for the `fdt_high` variable, meaning that upon fdt relocation, the fdt can (and will) be moved to a very high address; the default appears to be 0x9ffa000. This address is so high that when the Linux kernel starts reading the fdt at the beginning of the boot process, it encounters a memory access exception and panics[5]. While it is possible to reduce the highest address the fdt will be relocated to by setting `bootm_size`, this also has the side effect of limiting the amount of RAM the kernel can use[3]. - Because it is not relocated, the flattened device tree needs to be padded in the build process to guarantee that `fdt resize` has enough space. - The primary ethernet MAC address is stored (and set) in U-boot; they are shimmed into the device tree by 'fdt boardsetup' through the 'local-mac-address' property of the respective ethernet node, so OpenWrt does not need to set this at runtime. Note that U-boot indexes the ethernet nodes by alias, which is why the device tree explicitly aliases ethernet1 to enet2. - LEDs do not function under OpenWrt. Each of 8 LEDs is connected to an output of a TI LV164A shift register, which is wired to GPIO lines and operates through bit-banged SPI. Unfortunately, I am unable to get the spi-gpio driver to recognize the `led_spi` device tree node at all, as confirmed by patching in printk messages demonstrating spi-gpio.c::spi_gpio_probe never runs. It is possible to manually articulate the shift register by exporting the GPIO lines and stepping their values through the sysfs. - Though they do not function under OpenWrt, I have left the pinout details of the LEDs and shift register in the device tree to represent real hardware. - An archive of the u-boot and Linux source for the AP3825i (which is one device of a range of devices code-named 'CHANTRY') be found here[1]. - The device has an identical case to both the Enterasys WS-AP3725i and Adtran BSAP-2030[2] (and potentially other Adtran BSAPs). Given that there is no FCC ID for the board itself (only its WLAN modules), it's likely these are generic boards, and even that the WS-AP3725i is identical, with only a change in WLAN card. I have ordered one to confirm this. - For additional information: the process of porting the board is documented in an OpenWrt forum thread[4]. [1]: magnet:?xt=urn:btih:f5306a5dfd06d42319e4554565429f84dde96bbc [2]: https://forum.openwrt.org/t/support-for-adtran-bluesocket-bsap-2030/48538 [3]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/29 [4]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168 [5]: https://forum.openwrt.org/t/adding-openwrt-support-for-ws-ap3825i/101168/26 Tested-by: Martin Kennedy <hurricos@gmail.com> Signed-off-by: Martin Kennedy <hurricos@gmail.com>
* mpc85xx: HiveAP-330: add tmp125 temperature sensorChristian Lamparter2022-02-252-1/+10
| | | | | | | | | | | the Aerohive HiveAP-330 and HiveAP-350 come equipped with an TI TMP125 temperature chip. This patch wires up the necessary support for this sensor and exposes it through hwmon / thermal sensor framework. Upstream support is coming, but it has to go through hwmon-next first. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: fix KEY_RFKILL vs KEY_RFKillChristian Lamparter2022-02-201-1/+1
| | | | | | | | This fixes a buildbot builder error: Error: arch/powerpc/boot/dts/tl-wdr4900-v1.dts:245.18-19 syntax error Fixes: 256e1dbc7d09 ("mpc85xx: utilize dt-binding definitions for keys + gpios") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: add HiveAP-350 alternative name for HiveAP-330Christian Lamparter2022-02-191-0/+2
| | | | | | | The HiveAP-350 has six external antennas connectors. (It also has twice the flash?) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: utilize dt-binding definitions for keys + gpiosChristian Lamparter2022-02-195-39/+50
| | | | | | | | | include the device-tree binding headers that provide definitions for keys codes and gpios in the device-tree files. Random bonus: merge tl-wdr4900-v1's uboot with the nvmem-node. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: change legacy "eeprom" compatibleChristian Lamparter2022-02-191-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | silences the following message: > eeprom 0-0051: eeprom driver is deprecated, please use at24 instead The chip was likely a Dallas Semiconductor and later MAXIM part before Analog Devices, Inc. bought MAXIM. From the datasheet: "The DS28CN01 combines 1024 bits of EEPROM with challenge-and-response authentication security implemented with the FIPS 180-1/180-2 and ISO/IEC 10118-3 Secure Hash Algorithm (SHA-1)." ... "Write Access Requires Knowledge of the Secret and the Capability of Computing and Transmitting a 160-Bit MAC as Authorization" OpenWrt doesn't use it. There's no in-kernel driver from what I know. Let's document that the chip is at the location. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: update lp5521 led-controller node for 5.10Christian Lamparter2022-02-191-10/+57
| | | | | | | | | | | | | | | | | | | | The tricolor LED which is controlled by a lp5521 needed some maintenance as the driver failed to load in the current v5.10 image: | lp5521: probe of 0-0032 failed with error -22 This is because the device-tree needed to be updated to match the latest led coloring and function trends. - removed the device name from the label - added color/function properties - added required reg and cells properties For reference a disabled multicolor/RGB is added since this reflects the real hardware. Unfortunately, the multicolor sysfs interface isn't supported by yet. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: Patch HiveAP 330 u-boot to fix bootMartin Kennedy2022-02-195-48/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Kernel 5.10 was enabled for mpc85xx, the kernel once again became too large upon decompression (>7MB or so) to decompress itself on boot (see FS#4110[1]). There have been many attempts to fix booting from a compressed kernel on the HiveAP-330: - b683f1c36d8a ("mpc85xx: Use gzip compressed kernel on HiveAP-330") - 98089bb8ba82 ("mpc85xx: Use uncompressed kernel on the HiveAP-330") - 26cb167a5ca7 ("mpc85xx: Fix Aerohive HiveAP-330 initramfs image") We can no longer compress the kernel due to size, and the stock bootloader does not support any other types of compression. Since an uncompressed kernel no longer fits in the 8MiB kernel partition at 0x2840000, we need to patch u-boot to autoboot by running variable which isn't set by the bootloader on each autoboot. This commit repartitions the HiveAP, requiring a new COMPAT_VERSION, and uses the DEVICE_COMPAT_MESSAGE to guide the user to patch u-boot, which changes the variable run on boot to be `owrt_boot`; the user can then set the value of that variable appropriately. The following has been documented in the device's OpenWrt wiki page: <https://openwrt.org/toh/aerohive/hiveap-330>. Please look there first/too for more information. The from-stock and upgrade from a previous installation now becomes: 0) setup a network with a dhcp server and a tftp server at serverip (192.168.1.101) with the initramfs image in the servers root directory. 1) Hook into UART (9600 baud) and enter U-Boot. You may need to enter a password of administrator or AhNf?d@ta06 if prompted. If the password doesn't work. Try reseting the device by pressing and holding the reset button with the stock OS. 2) Once in U-Boot, set the new owrt_boot and tftp+boot the initramfs image: Use copy and paste! # fw_setenv owrt_boot 'setenv bootargs \"console=ttyS0,$baudrate\";bootm 0xEC040000 - 0xEC000000' # save # dhcp # setenv bootargs console=ttyS0,$baudrate # tftpboot 0x1000000 192.168.1.101:openwrt-mpc85xx-p1020-aerohive_hiveap-330-initramfs-kernel.bin # bootm 3) Once openwrt booted: carefully copy and paste this into the root shell. One step at a time # 3.0 install kmod-mtd-rw from the internet and load it opkg update; opkg install kmod-mtd-rw insmod mtd-rw i_want_a_brick=y # 3.1 create scripts that modifies uboot cat <<- "EOF" > /tmp/uboot-update.sh . /lib/functions/system.sh cp "/dev/mtd$(find_mtd_index 'u-boot')" /tmp/uboot cp /tmp/uboot /tmp/uboot_patched ofs=$(strings -n80 -td < /tmp/uboot | grep '^ [0-9]* setenv bootargs.*cp\.l' | cut -f2 -d' ') for off in $ofs; do printf "run owrt_boot; " | dd of=/tmp/uboot_patched bs=1 seek=${off} conv=notrunc done md5sum /tmp/uboot* EOF # 3.2 run the script to do the modification sh /tmp/uboot-update.sh # verify that /tmp/uboot and /tmp/uboot_patched are good # # my uboot was: (is printed during boot) # U-Boot 2009.11 (Jan 12 2017 - 00:27:25), Build: jenkins-HiveOS-Honolulu_AP350_Rel-245 # # d84b45a2e8aca60d630fbd422efc6b39 /tmp/uboot # 6dc420f24c2028b9cf7f0c62c0c7f692 /tmp/uboot_patched # 98ebc7e7480ce9148cd2799357a844b0 /tmp/uboot-update.sh <-- just for reference # 3.3 this produces the /tmp/u-boot_patched file. mtd write /tmp/uboot_patched u-boot 3) scp over the sysupgrade file to /tmp/ and run sysupgrade to flash OpenWrt: sysupgrade -n /tmp/openwrt-mpc85xx-p1020-aerohive_hiveap-330-squashfs-sysupgrade.bin 4) after the reboot, you are good to go. Other notes: - Note that after this sysupgrade, the AP will be unavailable for 7 minutes to reformat flash. The tri-color LED does not blink in any way to indicate this, though there is no risk in interrupting this process, other than the jffs2 reformat being reset. - Add a uci-default to fix the compat version. This will prevent updates from previous versions without going through the installation process. - Enable CONFIG_MTD_SPLIT_UIMAGE_FW and adjust partitioning to combine the kernel and rootfs into a single dts partition to maximize storage space, though in practice the kernel can grow no larger than 16MiB due to constraints of the older mpc85xx u-boot platform. - Because of that limit, KERNEL_SIZE has been raised to 16m. - A .tar.gz of the u-boot source for the AP330 (a.k.a. Goldengate) can be found here[2]. - The stock-jffs2 partition is also removed to make more space -- this is possible only now that it is no longer split away from the rootfs. - the console-override is gone. The device will now get the console through the bootargs. This has the advantage that you can set a different baudrate in uboot and the linux kernel will stick with it! - due to the repartitioning, the partition layout and names got a makeover. - the initramfs+fdt method is now combined into a MultiImage initramfs. The separate fdt download is no longer needed. - added uboot-envtools to the mpc85xx target. All targets have uboot and this way its available in the initramfs. [1]: https://bugs.openwrt.org/index.php?do=details&task_id=4110 [2]: magnet:?xt=urn:btih:e53b27006979afb632af5935fa0f2affaa822a59 Tested-by: Martin Kennedy <hurricos@gmail.com> Signed-off-by: Martin Kennedy <hurricos@gmail.com> (rewrote parts of the commit message, Initramfs-MultiImage, dropped bootargs-override, added wiki entry + link, uboot-envtools) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: move bootargs-append patch to genericSungbo Eo2022-01-291-2/+2
| | | | | | | | | | This moves bootargs-append support patch from ipq40xx and ipq806x to generic. This way we can append additional boot arguments from DTS instead of only being able to overwrite them. This is a preparation for kirkwood support of ipTIME NAS1. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* build: move Build/copy-file to image-commands.mkChristian Lamparter2022-01-151-4/+0
| | | | | | This is makro is present in more than one place. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 5.10 to 5.10.88Rui Salvaterra2021-12-271-55/+0
| | | | | | | | | Deleted (upstreamed): mpc85xx/patches-5.10/002-powerpc-85xx-fix-oops-when-CONFIG_FSL_PMC-n.patch [1] [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.88&id=151ffac3ac277ad7c2a5f201b566b56d97ed3a99 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* mpc85xx: remove kernel 5.4David Bauer2021-12-2710-725/+0
| | | | | | | As v5.10 is the default kernel version now, the files for v5.4 can be dropped. Signed-off-by: David Bauer <mail@david-bauer.net>
* kernel: 5.10: consolidate mac80211 crypto optionsSergey Ryazanov2021-12-171-7/+0
| | | | | | | | | | | | | | | | | | | | | | Each of - CRYPTO_AEAD2 - CRYPTO_AEAD - CRYPTO_GF128MUL - CRYPTO_GHASH - CRYPTO_HASH2 - CRYPTO_HASH - CRYPTO_MANAGER2 - CRYPTO_MANAGER - CRYPTO_NULL2 either directly required for mac80211 crypto support, or directly selected by such options. Support for the mac80211 crypto was enabled in the generic config since c7182123b9 ("kernel: make cryptoapi support needed by mac80211 built-in"). So move the above options from the target configs to the generic config to make it clear why do we need them. CC: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* kernel: filter out both Clang and LLD versionsSergey Ryazanov2021-12-171-1/+0
| | | | | | | | Both CLANG_VERSION and LLD_VERISON are autogenerated runtime configuration options, so add them to the kernel configuration filter and remove from generic and per-target configs to keep configs clean. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* mpc85xx: Fix HiveAP-330 nvmem mac loaderMartin Kennedy2021-11-301-48/+54
| | | | | | | | | | | | | | | | We actually need to enclose the whole section of partitions in a `partitions { ... }` to assign it a `compatible = "fixed-partitions"; otherwise the partition referred to by `hwinfo` won't be registered when bringing up MTD partitions, for example as per: - <https://forum.openwrt.org/t/tp-link-c2600-missing-default-mac-mtd-partition-in-snapshot/103945/6> - commit e2b03c16eb44 ("ipq806x: add missing enclosing partitions block for TP-Link C2600")' Fixes: 8ec21d6bb210 ("mpc85xx: convert mtd-mac-address to nvmem implementation") Signed-off-by: Martin Kennedy <hurricos@gmail.com> [minor beautification] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* mpc85xx: backport "fix oops when CONFIG_FSL_PMC=n"Christian Lamparter2021-11-281-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Martin Kennedy reported: |Presently, I get this kernel panic on mpc85xx (Aerohive HiveAP 370) |on OpenWrt 'master' which occurs right as the second processor is |initialized: | |[ 0.478804] rcu: Hierarchical SRCU implementation. |[ 0.535569] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build |[ 0.627233] smp: Bringing up secondary CPUs ... |[ 0.681659] kernel tried to execute user page (0) - exploit attempt? (uid: 0) |[ 0.766618] BUG: Unable to handle kernel instruction fetch (NULL pointer?) |[ 0.848899] Faulting instruction address: 0x00000000 |[ 0.908273] Oops: Kernel access of bad area, sig: 11 [#1] |[ 0.972851] BE PAGE_SIZE=4K SMP NR_CPUS=2 P1020 RDB |[ 1.031179] Modules linked in: |[ 1.067640] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.80 #0 |[ 1.139507] NIP: 00000000 LR: c0021d2c CTR: 00000000 |[ 1.199921] REGS: c1051cf0 TRAP: 0400 Not tainted (5.10.80) |[...] |[ 1.758220] NIP [00000000] 0x0 |[ 1.794688] LR [c0021d2c] smp_85xx_kick_cpu+0xe8/0x568 |[ 1.856126] Call Trace: |[ 1.885295] [c1051da8] [c0021cb8] smp_85xx_kick_cpu+0x74/0x568 (unreliable) |[ 1.968633] [c1051de8] [c0011460] __cpu_up+0xc0/0x228 |[ 2.029038] [c1051e18] [c0031bbc] bringup_cpu+0x30/0x224 |[ 2.092572] [c1051e48] [c0031f3c] cpu_up.constprop.0+0x180/0x33c |[..] |[ 2.727952] ---[ end trace 9b796a4bafb6bc14 ]--- |[ 3.800879] Kernel panic - not syncing: Fatal exception |[ 3.862353] Rebooting in 1 seconds.. |[ 5.905097] System Halted, OK to turn off power | |I bisected this down to commit 3ae5da5adce9 ("kernel: bump 5.10 to 5.10.80"); |that is, I don't get the panic right before this commit, but I do after. He reported the issue upstream and Xiaoming Ni from huawei came up with the patch (that is on it's way to upstream). While the AP370 is not in Openwrt, this will likely affect other SMP P1020 devices OpenWrt ships with: like the AP330, Enterasys WS-AP3710i, etc. Reported-by: Martin Kennedy <hurricos@gmail.com> Tested-by: Martin Kennedy <hurricos@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 5.10 to 5.10.80Rui Salvaterra2021-11-195-5/+5
| | | | | | | | | | | | | | | | | | | | | | Deleted (upstreamed): ath79/patches-5.10/921-serial-core-add-support-for-boot-console-with-arbitr.patch [1] bcm53xx/patches-5.10/033-v5.15-0012-ARM-dts-BCM5301X-Fix-memory-nodes-names.patch [2] lantiq/patches-5.10/0016-mtd-rawnand-xway-Keep-the-driver-compatible-with-on-.patch [3] lantiq/patches-5.10/0110-MIPS-lantiq-dma-add-small-delay-after-reset.patch [4] lantiq/patches-5.10/0111-MIPS-lantiq-dma-reset-correct-number-of-channel.patch [5] lantiq/patches-5.10/0112-MIPS-lantiq-dma-fix-burst-length-for-DEU.patch [6] Manually rebased: ipq806x/patches-5.10/0065-arm-override-compiler-flags.patch [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=47462c5e600fbaffd755cd13dedd80d04e41ff83 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=2fde76df1885a6bec04317e457121326070450eb [3] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=9b366f5221d8aa64b22f35be137a5749326444ce [4] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=5af57ce8a6155fe3e4270d28d171abf8903bebc0 [5] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=b92a5df2c7adc79a57481445f67de0c1c716581f [6] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.80&id=6b72caabc47011d03f44064452b2c65e8ed18326 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* kernel: 5.10: packet mangling code only for ar8216 driverMathias Kresin2021-11-021-0/+1
| | | | | | | | Only the ar8216 switch driver uses the packet mangling code. Update the kernel configs accordingly. Signed-off-by: Mathias Kresin <dev@kresin.me>
* mpc85xx: switch to Kernel 5.10Adrian Schmutzler2021-10-052-2/+2
| | | | | | | | This has testing support for 7 months. Time to switch. TL-WDR4900 is disabled due to kernel size limitation. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: 5.10: add missing symbolsPawel Dembicki2021-10-052-2/+0
| | | | | | | | | | | | Three missing symbols were found during mpc85xx/p2020 compilation. While at it, CONFIG_FSL_ENETC_MDIO is moved to generic config for consistency. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> [move CONFIG_FSL_ENETC_MDIO, remove redundant definitions, adjust commit message/title] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: move two symbols to the generic kconfigsRui Salvaterra2021-08-292-3/+0
| | | | | | | CONFIG_RCU_{NEED_SEGCBLIST,STALL_COMMON} are set basically everywhere. Move them to the generic kconfigs. And resort the generic kconfigs while at it. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* treewide: add various missing config symbolsDavid Bauer2021-08-101-0/+1
| | | | | | Fixes commit 91a52f22a13d ("treewide: backport support for nvmem on non platform devices") Signed-off-by: David Bauer <mail@david-bauer.net>
* mpc85xx: convert mtd-mac-address to nvmem implementationAnsuel Smith2021-07-192-3/+26
| | | | | | | Define nvmem-cells and convert mtd-mac-address to nvmem implementation. The conversion is done with an automated script. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
* treewide: convert mtd-mac-address-increment* to generic implementationAnsuel Smith2021-07-191-1/+1
| | | | | | | | | | | | | Rework patch 681-NET-add-mtd-mac-address-support to implement only the function to read the mac-address from mtd. Generalize mtd-mac-address-increment function so it can be applied to any source of of_get_mac_address. Rename any mtd-mac-address-increment to mac-address-increment. Rename any mtd-mac-address-increment-byte to mac-address-increment-byte. This should make simplify the conversion of target to nvmem implementation. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
* treewide: switch the timer frequency to 100 HzRui Salvaterra2021-04-212-4/+0
| | | | | | | | Some targets select HZ=100, others HZ=250. There's no reason to select a higher timer frequency (and 100 Hz are available in every architecture), so change all targets to 100 Hz. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* treewide: remove redundant ubifs kconfig symbolsRui Salvaterra2021-04-212-8/+0
| | | | | | | For the targets which enable ubifs, these symbols are already part of the generic kconfigs. Drop them from the target kconfigs. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* treewide: remove execute bit and shebang from board.d filesAdrian Schmutzler2021-03-061-1/+0
| | | | | | | | | | | | | | | | So far, board.d files were having execute bit set and contained a shebang. However, they are just sourced in board_detect, with an apparantly unnecessary check for execute permission beforehand. Replace this check by one for existance and make the board.d files "normal" files, as would be expected in /etc anyway. Note: This removes an apparantly unused '#!/bin/sh /etc/rc.common' in target/linux/bcm47xx/base-files/etc/board.d/01_network Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: bump 5.10 to 5.10.20Rui Salvaterra2021-03-051-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | Also add a new kconfig symbol (CONFIG_KCMP) to the generic config, disabling the SYS_kcmp syscall (it was split from CONFIG_CHECKPOINT_RESTORE, which is disabled by default, so the previous behaviour is kept). Removed (upstreamed) patches: 070-net-icmp-pass-zeroed-opts-from-icmp-v6-_ndo_send-bef.patch 081-wireguard-device-do-not-generate-ICMP-for-non-IP-pac.patch 082-wireguard-queueing-get-rid-of-per-peer-ring-buffers.patch 083-wireguard-kconfig-use-arm-chacha-even-with-no-neon.patch 830-v5.12-0002-usb-serial-option-update-interface-mapping-for-ZTE-P685M.patch Manually rebased patches: 313-helios4-dts-status-led-alias.patch 104-powerpc-mpc85xx-change-P2020RDB-dts-file-for-OpenWRT.patch Run tested: ath79 (TL-WDR3600) mvebu (Turris Omnia) Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* mpc85xx: p2020: Fix nand driver probePawel Dembicki2021-03-011-1/+9
| | | | | | | | | | | | | | | At this moment driver start fail with error: [ 3.771991] fsl,elbc-fcm-nand: probe of ffa00000.nand failed with error -22 elbc-fcm-nand driver use legacy method of ecc mode detection. It detect hw/sw ecc mode when system configure it to "none". [1] This patch adds 'nand-ecc-mode = "none"' propoerty to use generic driver ecc mode detection. [1] https://elixir.bootlin.com/linux/v5.10.18/source/drivers/mtd/nand/raw/fsl_elbc_nand.c#L730 Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* mpc85xx: add testing kernel 5.10Pawel Dembicki2021-03-013-4/+1
| | | | | | | | Subtargets p1010 and p1020 have already added. Compile and run tested on: P2020RDB Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>