Commit Graph

49 Commits

Author SHA1 Message Date
Daniel Golle
5c792799b0
mediatek: reserve memory for ramoops and enable PSTORE
Reserve 64KiB of memory for crashlogs and enable PSTORE feature in
kernel config for MT7622.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-09 20:50:01 +08:00
Daniel Golle
6127ec55e1 mediatek: mt7622: build AHCI driver as module
Build the driver for the in-SoC AHCI SATA host as module, just like for
the other subtargets. No board requires booting off SATA, so we don't
need to have it built-in. All boards with SATA support already select
kmod-ata-ahci-mtk which provides the module.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-25 23:11:21 +08:00
Rui Salvaterra
edb4a919c2 treewide: switch the timer frequency to 100 Hz
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>
2021-04-22 23:12:24 +08:00
Rui Salvaterra
3f9b8cabd0 treewide: remove redundant ubifs kconfig symbols
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>
2021-04-22 23:09:52 +08:00
David Bauer
2909990012 mediatek: fix Ubiquiti UniFi 6 LR LED
When adding Kernel 5.10 support, the kernel configuration did not
include the LED driver required for the UniFi 6 LR. Also the actual
driver source went missing.

Fixes commit c46ccb69d1 ("mediatek: mt7622: add Linux 5.10 support")

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-04-18 23:30:45 +08:00
Tianling Shen
60665e82a4
mediatek: sync with upstram source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:40:15 +08:00
Oskari Lemmela
86e3ac05e6
mediatek: mt7622: add spi-nand support for bananapi bpi-r64
Some of bpi-r64 boards have serial NAND attached to SPI bus.
Add SD card image support for installing openwrt to it.
Default to nand upgrade if root device is not mmc block device.

Separate preloader and uboot images for snand are generated.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-04-12 20:30:56 +08:00
Daniel Golle
d234662052 mediatek: add alternative bootchain variant for UniFi 6 LR
Builds images for the Ubiquiti Network UniFi 6 LR device running the
U-Boot build added by the previous commits.
Everything but MTD partitions is moved to dtsi.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-04-09 23:58:04 +08:00
Aleksander Jan Bajkowski
762bdbf498 kernel: move some disabled symbols to generic
Move some disabled symbols found in armvirt target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2021-03-20 11:19:57 +08:00
INAGAKI Hiroshi
d71e1cc0cc mediatek: add support for Buffalo WSR-2533DHP2
This adds support for the Buffalo WSR-2533DHP2.

The device uses the Broadcom TRX image format with a special magic. To
be able to boot the images or load them they have to be wrapped with
different headers depending how it is loaded.

There are multiple ways to install OpenWrt on this device.
Boot ramdisk from U-Boot
----------------------------
This will load the image and not write it into the flash.

1. Stop boot menu with "space" key
2. Select "System Load Linux to SDRAM via TFTP."
3. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-initramfs-kernel.bin
4. The system boots the image

Write to flash from U-Boot
-----------------------------
This will load the image over tftp and directly write it into the flash.

1. Stop boot menu with "space" key
2. Select "System Load Linux Kernel then write to Flash via TFTP."
3. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-squashfs-factory-uboot.bin
4. The system writes this image into the flash and boots into it.

Write to flash from Web UI
-----------------------------
This will load the image over over the Web UI and write it into the flash

1. Open the Web UI
2. Go to "管理" -> "ファームウェア更新"
3. Select "ローカルファイル指定" and click "更新実行"
4. Load this image:
   openwrt-mediatek-mt7622-buffalo_wsr-2533dhp2-squashfs-factory.bin
5. The system writes this image into the flash and boots into it.

Specifications
-------------------
* SoC:       MT7622 (4x4 2.4 GHz Wifi)
* Wifi:      MT7615 (4x4 5 GHz Wifi)
* Flash:     Winbond W29N01HZ 128MB SLC NAND
* RAM        256MB
* Ethernet:  Realtek RTL8367S (5 x 1GBit/s, SoC via 2.5GBit/s)

Co-Developed-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2021-03-16 11:21:32 +08:00
Daniel Golle
af5bc062f8 mediatek: mt7622: check firmware metadata
All mt7622 devices except for the UBI-variant of the mt7622-rfb1 carry
metadata appended to the sysupgrade image.
Add it for the mt7622-rfb1-ubi as well and check it on sysupgrade to
avoid accidentally flashing firmware for the wrong device (or variant
or future DEVICE_COMPAT_VERSION).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-04 12:14:01 +08:00
Felix Fietkau
fcc1cfc966 mediatek: implement bad-block management table support
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-03-03 12:48:02 +08:00
Daniel Golle
ed3b9ebd8b mediatek: mt7622: enable CONFIG_SPI_MTK_NOR
Somehow this got disabled in the transition to 5.10.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2021-03-03 12:32:38 +08:00
Daniel Golle
baf851af5a
mediatek: mt7622: bpi-r64: fix sysupgrade on empty disk
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:16:51 +08:00
Daniel Golle
8b2d93e8e5
mediatek: rework support for BananaPi BPi-R64
**What's new**

 * Bring support for the Bananapi BPi-R64 to the level desirable for
   a nice hackable routerboard.
 * Use ARM Trusted Firmware A from source. (goodbye binary preloader)
 * Use Das U-Boot from source. (see previous commit)
 * Assemble SD-card image using OpenWrt image-commands.
   (no gen_sd_cruz_foo.sh added, this is not Raspbian)
 * Updated kernel options to support root filesystem.
 * Updated DTS to match OpenWrt LAN ports, known LEDs, buttons, ...
 * Detect root device, handle sysupgrade, config restore, ...
 * Wire up (known) LEDs and buttons in OpenWrt-fashion.
 * Build one set of images from SD-card and eMMC.
 * Hopefully provide a good example of how things can be done right
   from scratch.

**Installation and images**

 * Have an empty SD-card at hand
 * Write stuff to the card, as root (card device is /dev/mmcblkX)
   - write header, gpt, bl2, atf, u-boot and recovery kernel:
     `cat *bpi-r64-boot-sdcard.img *bpi-r64-initramfs-recovery.fit > /dev/mmcblkX`
   - rescan partitions:
     `blockdev --rereadpt /dev/mmcblkX`
   - write main system to production partition:
     `cat *bpi-r64-squashfs-sysupgrade.fit > /dev/mmcblkXp5`

 * Installation to eMMC works using SD-card bootloader via TFTP
   When running OpenWrt of SD-card, issue this to trigger installation
   to eMMC:
   `fw_setenv bootcmd run emmc_init`
   Be prepared to serve the content of bin/targets/mediatek/mt7622 on
   TFTP server address 192.168.1.254.

**What's missing**

 * The red LED is always on, probably a hardware bug.
 * AHCI (probably needs DTS changes)
 * Ship SD-card image ready with every needed for eMMC install.
 * The eMMC has a second, currently unused boot partition. This would
   be ideal to store the WiFi EEPROM and Ethernet MAC address(es).
   @sinovoip ideas?

Thanks to Thomas Hühn @thuehn for providing the hardware!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:16:38 +08:00
Daniel Golle
4857434c74
mediatek: add alternative UBI NAND layout for Linksys E8450
The vendor flash layout of the Linksys E8450 is problematic as it uses
the SPI-NAND chip without any wear-leveling while at the same time
wasting a lot of space for padding.
Use an all-UBI layout instead, storing the kernel+dtb+squashfs in
uImage.FIT standard format in UBI volume 'fit', the read-write
overlay in UBI volume 'rootfs_data' as well as reduntant U-Boot
environments 'ubootenv' and 'ubootenv2', and a 'recovery'
kernel+dtb+initramfs uImage.FIT for dual-boot.

** WARNING **
THIS PROCEDURE CAN EASILY BRICK YOUR DEVICE PERMANENTLY IF NOT CARRIED
OUT VERY CAREFULLY AND EXACTLY AS DESCRIBED!

Step 0

 * Configure your PC to have the static IPv4 address 192.168.1.254/24
 * Provide bin/targets/mediatek/mt7622 via TFTP

Now continue EITHER with step 1A or 1B, depending on your preference
(and on having serial console wired up or not).

Step 1A (Using the vendor web interface (or non-UBI OpenWrt install))

In order to update to the new bootloader and UBI-based firmware,
use the web browser of your choice to open the routers web-interface
accessible on http://192.168.1.1

 * Navigate to
   'Configuration' -> 'Administration' -> 'Firmware Upgrade'

 * Upload the file
    openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
   and proceed with the upgrade.

 * Once OpenWrt comes up, use SCP to upload the new bootloader files to
   /tmp on the router:
    *-mt7622-linksys_e8450-ubi-preloader.bin
    *-mt7622-linksys_e8450-ubi-bl31-uboot.fip

 * Connect via SSH as you will now need to replace the bootloader in
   the Flash.

    ssh root@192.168.1.1
    (the usual warnings)

 * First of all, backup all the flash now:

    for mtd in /dev/mtdblock*; do
     dd if=$mtd of=/tmp/$(basename $mtd);
    done

 * Then use SCP to copy /tmp/mtdblock* from the router and keep them
   safe. You will need them should you ever want to return to the
   factory firmware!

 * Now flow the uploaded files:
    mtd -e /dev/mtd0 write /tmp/*linksys_e8450-ubi-preloader.bin /dev/mtd0
    mtd -e /dev/mtd1 write /tmp/*linksys_e8450-ubi-bl31-uboot.fip /dev/mtd1

   If and only if both writes look like the completed successfully
   reboot the router. Now continue with step 2.

Step 1B (Using the vendor bootloader serial console)

 * Use the serial to backup all /dev/mtd* devices before using the
   stock firmware (you got root shell when connected to serial).

 * Then reboot and select 'U-Boot Console' in the boot menu.

 * Copy the following lines, one by one:

tftpboot 0x40080000 openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin
tftpboot 0x40100000 openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip
nand erase 0x0 0x180000
nand write 0x40080000 0x0 0x180000
reset

Now continue with step 2

Step 2

Once the new bootchain comes up, the loader will initialize UBI and the
ubootenv volumes. It will then of course fail to find any bootable
volume and hence resort to load kernel via TFTP from server
192.168.1.254 while giving itself the address 192.168.1.1

The requested file is called
openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
and your TFTP server should provide exactly that :)
It will be written to UBI as recovery image and booted.
You can then continue and flash the production OS image, either
by using sysupgrade in the booted initramfs recovery OS, or by using
the bootloader menu and TFTP.

That's it. Go ahead and mess around with a bootchain built almost
completely from source (only DRAM calibration blobs are fitted in bl2,
and the irreplacable on-chip ROM loader remains, of course).
And enjoy U-Boot built with many great features out-of-the-box.

You can access the bootloader environment from within OpenWrt using the
'fw_printenv' and 'fw_setenv' commands. Don't be afraid, once you got
the new bootchain installed the device should be fairly unbrickable
(holding reset button before and during power-on resets things and
allows reflashing recovery image via TFTP)

Special thanks to @dvn0 (Devan Carpenter) for providing amazingly fast
infra for test-builds, allowing for `make clean ; make -j$(nproc)` in
less than two minutes :)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:46 +08:00
John Crispin
c3f3bfae1b
mediatek: add Linksys E8450 support
The Linksys E8450, also known as Belkin RT3200, is a dual-band
IEEE 802.11bgn/ac/ax router based on MediaTek MT7622BV and
MediaTek MT7915AN chips.

FCC: K7S-03571 and K7S-03572

Hardware highlights:
 - CPU: MediaTek MT7622BV (2x ARM Cortex-A53 @ 1350 MHz max.)
 - RAM: 512MB DDR3
 - Flash: 128MB SPI-NAND (2k+64)
 - Ethernet: MT7531BE switch with 5 1000Base-T ports
             CPU port connected with 2500Base-X
 - WiFi 2.4 GHz: 802.11bgn 4T4R built-in antennas
                 MT7622VB built-in
 - WiFi   5 GHz: 802.11ac/ax 4T4R built-in antennas
                 MT7915AN chip on-board via PCIe
                 MT7975AN front-end
 - Buttons: Reset and WPS
 - LEDS: 3 user controllable LEDs, 4 wired to switch
 - USB: USB2.0, single port
 - no Bluetooth (supported by SoC, not wired on board)
 - Serial: JST PH 2.0MM 6 Pin connector inside device
            ----_____________----
           [  GND RX - TX  -  -  ]
            ---------------------
 - JTAG:   unpopulated ARM JTAG 20-pin connector (works)

This commit adds support for the device in a way that is compatible
with the vendor firmware's bootloader and dual-boot flash layout, the
resulting image can directly be flashed using the vendor firmware.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:41 +08:00
Felix Fietkau
cbef7392eb
mediatek: mt7622: add Linux 5.10 support
Switch mt7622 subtarget to Linux 5.10, it has been tested by many of us
on several devices for a couple of weeks already.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-03-02 22:13:25 +08:00
Oskari Lemmela
d9cb0ae456 mediatek: mt7622: enable support for f2fs overlay
f2fs filesystem and loop device support are needed for f2fs
overlay over squashfs.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:05:44 +08:00
Oskari Lemmela
0f3251fe35 mediatek: mt7622: add missing CONFIG_MMC_BLK
CONFIG_MMC_BLK enables block devices for SD/eMMC

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
2021-02-25 12:05:24 +08:00
Felix Fietkau
1d9492423d treewide: select kmod-mt7615-firmware where kmod-mt7615e is selected
The new mt76 version splits out the firmware, because the driver can also be
used for MT7663/MT7613

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2021-02-20 18:06:07 +08:00
CN_SZTL
1dc0308506
mediatek: sync with upstream source
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-02-19 17:12:30 +08:00
David Bauer
d90624d341 mediatek: add support for Ubiquiti UniFi 6 LR
Hardware
--------

MediaTek MT7622
512MB DDR3 RAM
64M SPI-NOR Flash (Winbond W25Q512JV)
MediaTek MT7622 802.11bgn 4T4R WMAC
MediaTek MT7915 802.11ax 4T4R
Marvell AQR1112 100/1000/2500 NBase-T PHY
Holtek HT32F52241 LED controller
Reset Switch

UART
----

CPU UART0 at the pinout next to the Holtek MCU.

Pinout (first pin next to SoC / MCU)

0 3V3
1 RX
2 TX
3 GND

Settings are 115200 8N1.

Opening the case
----------------

Opening the case is not a nice task, as itis glued together. Insert a
flat knife between the front and back casing below the ethernet port.
Open up a gap this way and insert a flat scredriver, remove the knife.

Work your way around the casing by applying force to seperate the front
and back casing. This losens the glue and opens the plastic clips. Be
gentle, as these clips are very cheap and break quickly.

Installation
------------

1. Connect to the booted device at 192.168.1.20 using username/password
   "ubnt".

2. Transfer the OpenWrt sysupgrade image to the device using SCP.

3. Check the mtd partition number for bs / kernel0 / kernel1

   $ cat /proc/mtd

4. Set the bootselect flag to boot from kernel0

   $ dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock6

5. Write the OpenWrt sysupgrade image to both kernel0 as well as kernel1

   $ dd if=openwrt.bin of=/dev/mtdblock8
   $ dd if=openwrt.bin of=/dev/mtdblock9

6. Reboot the device. It should boot into OpenWrt.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:06:40 +08:00
David Bauer
bc08e342ad mediatek: add Ubiquiti LED driver
Add a driver for controlling the RGB LED via Ubiquitis own "LEDBAR" LED
controller based on the Holtek HT32F52241 MCU.

This driver is initially used by the Ubiquiti UniFi 6 LR, however
judging from FCC pictures the MCU is also found on the U6-Mesh as well
as the U6-Extender.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-02-18 12:05:28 +08:00
Adrian Schmutzler
e1461298c0
mediatek: remove generic profiles
We have support for reference boards available on this target, so
support for an additional generic profile does not make much sense.

Remove it to have one thing less to maintain.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: CN_SZTL <cnsztl@project-openwrt.eu.org>
2021-01-28 19:57:41 +08:00
Tony Ambardar
0539e78af4 config: limit CONFIG_PERF_EVENTS to top-level generic configs
Remove redundant target-level settings.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2021-01-26 12:03:41 +08:00
AmadeusGhost
25b0b5d3bf
treewide: fix sysupgrade vars 2021-01-07 14:52:01 +08:00
Aleksander Jan Bajkowski
5c572c9e16 kernel: move some disabled symbols to generic
Move some disabled config options found in lantiq target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
2020-12-23 11:33:15 +08:00
AmadeusGhost
8ab5e878fb treewide: remove support for kernel 4.x 2020-10-31 11:39:45 +08:00
Chuanhong Guo
a0110adee8 mediatek: build btmtkuart as a kernel module
bluetooth on mt7622 needs a firmware to start. It can't be built-in or
it tries to load firmware before rootfs is mounted, and then fails.
build it as a kernel module to fix that.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-09-23 11:35:31 +08:00
Felix Fietkau
046f3566fb mediatek/mt7622: adjust kernel cpu features to match the hardware
Disable unnecessary errata/features
Enable potentially needed ones

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-07 17:01:37 +08:00
Felix Fietkau
e26811c2fb mediatek: enable kernel PCIe ASPM support, refresh kernel config
Improves performance on PCIe devices

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2020-09-05 11:37:34 +08:00
AmadeusGhost
715404f8e1 treewide: adjust sysupgrade script 2020-08-14 18:36:30 +08:00
AmadeusGhost
787d71db74 treewide: fix undeclared function about backup in upgrade 2020-08-14 12:28:09 +08:00
Hauke Mehrtens
8d141be934
kernel: Move CONFIG_IONIC to generic kernel config
It is deactivated everywhere, just set this in the generic config.

Acked-by: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2020-08-11 18:15:38 +08:00
CN_SZTL
e37e44305b
mediatek: switch to kernel 5.4 and drop 4.14 2020-07-29 18:02:44 +08:00
David Woodhouse
2ecc92d67b
target/mediatek: sync with upstream source 2020-07-27 19:47:01 +08:00
John Crispin
78a790477c
mediatek: generate UBI images for the rev board
Signed-off-by: John Crispin <john@phrozen.org>
2020-07-16 20:37:12 +08:00
John Crispin
2a0088d6e4 mediatek: add mt7531 DSA support
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:18:07 +08:00
John Crispin
82ad4e9bcc mediatek: add bpi-r64 emmc support
Signed-off-by: John Crispin <john@phrozen.org>
2020-06-08 12:16:52 +08:00
AmadeusGhost
a18cb784eb mediatek: sync upstream source code 2020-04-23 08:20:22 +08:00
CN_SZTL
c5dd056449
mediatek: init kernel 5.4 support 2020-04-15 00:36:20 +08:00
AmadeusGhost
021f2e001e mediatek: bump to v4.19 2020-02-06 12:32:03 +08:00
LEAN-ESX
729dbee977 gemini:refresh upstream patch 2019-12-10 22:03:39 -08:00
LEAN-ESX
422b5a1db9 kernel: bump to 4.9.199, 4.14.152, 4.19.82 2019-11-12 06:39:20 -08:00
LEAN-ESX
54cbf45e0c kernel: bump to 4.9.187, 4.14.136, 4.19.64 2019-08-06 06:10:35 -07:00
coolsnowwolf
806f5db174 sync with OpenWrt trunk 2018-09-07 13:43:55 +08:00
coolsnowwolf
9ba04fd0d7 sync with OpenWrt v18.06.1 stable new R8.1 version 2018-08-23 17:40:23 +08:00
coolsnowwolf
4186aca221 update kernel version to 4.9.106 and 4.14.48 2018-06-08 15:40:11 +08:00