All boards neither expose the PCIe as Mini-PCIe nor have anything
attached to the PCIe Bus. Disable PCIe for those by dropping the node
from the dts files.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Compile the loader if the relocate-kernel image recipe is used and get
rid of the legacy build code to do so.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Specify firmware partition format by compatible string.
List of devices:
-DWR-116-A1
-DWR-118-A2
-DWR-512-B
-DWR-921-C1
-LR-25G001
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
MTC Wireless Router WR1201 is the OEM name of the board. It is also sold
rebranded as STRONG Dual Band Gigabit Router 1200.
Specification:
- SoC: MediaTek MT7621A (880 MHz)
- Flash: 16 MiB
- RAM: 128 MiB
- Wireless: 2.4Ghz(MT7602EN) and 5Ghz (MT7612EN)
- Ethernet speed: 10/100/1000
- Ethernet ports: 4+1
- 1x USB 3.0
- 1x microSD reader
- Serial baud rate of Bootloader and factory firmware: 57600
The OEM webinterface writes only as much bytes as listed in the
uImage header field to the flash. Also, the OEM webinterface
evaluates the name field of uImage header before flashing (the
string "WR1201_8_128")
To flash via webinterface, is mandatory to use first initramfs.bin
and after (from the OpenWrt) the sysupgrade.bin
Some notes:
- Some microSD will not work:
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising SDIO card
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising MMC card
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising SDIO card
mtk-sd 1e130000.sdhci: card claims to support voltages below defined range
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising MMC card
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising SDIO card
mtk-sd 1e130000.sdhci: no support for card's volts
mmc0: error -22 whilst initialising MMC card
Signed-off-by: Valentín Kivachuk <vk18496@gmail.com>
Specify firmware partition format by compatible string.
formats in ramips:
- denx,uimage
- tplink,firmware
- seama
It's unlikely but the firmware splitting might not work any longer for
the following boards, due to a custom header:
- EX2700: two uImage headers
- BR-6478AC-V2: edimax-header
- 3G-6200N: edimax-header
- 3G-6200NL: edimax-header
- BR-6475ND: edimax-header
- TEW-638APB-V2: umedia-header
- RT-N56U: mkrtn56uimg
But it rather looks like the uImage splitter is fine with the extra
header.
The following dts are not touched, due to lack of a compatible string in
the matching firmware splitter submodule:
- CONFIG_MTD_SPLIT_JIMAGE_FW
DWR-116-A1.dts
DWR-118-A2.dts
DWR-512-B.dts
DWR-921-C1.dts
LR-25G001.dts
- CONFIG_MTD_SPLIT_TRX_FW
WCR-1166DS.dts
WSR-1166.dts
- CONFIG_MTD_SPLIT_MINOR_FW
RBM11G.dts
RBM33G.dts
- CONFIG_MTD_SPLIT_LZMA_FW
AR670W.dts
- CONFIG_MTD_SPLIT_WRGG_FW
DAP-1522-A1.dts
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Use .bin as file extension where possible. The user doesn't need to that
sysupgrade images for NAND boards are tarballs.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Having MIT as alternative is sometimes preferred by upstream maintainers
and allows sharing that simple code with other projects. We don't really
want multiple DTS versions for the same device.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
The previous offset was invalid and pointed to the end of the partition,
which was causing issues with mt76
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The 5GHz radio of this device uses an mt7610e PCI-E chip, which has
been recently started to be supported.
mt76x0e 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
mt76x0e 0000:01:00.0: ASIC revision: 76100002
mt76x0e 0000:01:00.0: Firmware Version: 0.1.00
mt76x0e 0000:01:00.0: EEPROM ver:01 fae:00
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Specify firmware partition format to denx,uimage in compatible DTS property.
2 uimage-fw partitions found on MTD device firmware
Creating 2 MTD partitions on "firmware":
0x000000000000-0x00000017f72b : "kernel"
0x00000017f72b-0x000000f70000 : "rootfs"
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Flash partitions were moved under partition table node, but addition of
compatible property was omitted which lead to following boot failure:
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
1f00 16384 mtdblock0
(driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Fixes: e4d9217f (ramips: improve BDCOM WAP2100-SK support)
Signed-off-by: Petr Štetiar <ynezz@true.cz>
The 5 GHz radio of this device uses an mt7610e pci-e chip, which has
been recently added support.
Tested on the actual device as AP and client, TCP throughput ~90 Mbps
U/D.
Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Add support for UniElec U7621-06 variant with 512MB RAM and 64MB flash.
Additional specs are below:
CPU: MT7621 (880Mhz)
Bootloader: Ralink U-Boot
Flash: 64MB
- U-Boot identifies as Macronix MX66L51235F
- kernel identifies as MX66L51235l (65536 Kbytes)
RAM: 512MB
Rest of the details as per commit 46ab81e405 ("ramips add support for
UniElec U7621-06")
Signed-off-by: Nishant Sharma <nishant@unmukti.in>
[use generic board detection, add firmware partition compatible, extend
firmware partition to use all of the remaining flash space, add a
maximum image size matching the firmware partition size]
Signed-off-by: Mathias Kresin <dev@kresin.me>
Use the generic board detection for the board instead of the target
specific one. Mark the sysupgrade image compatible with the former used
userspace boardname to allow an upgrade from earlier versions.
Signed-off-by: Mathias Kresin <dev@kresin.me>
The RavPower WD03 is a mt7620n based baord. With the change applied, I2C
should work now with the RavPower WD03.
Signed-off-by: Matthias Badaire <mbadaire@gmail.com>
[reworded commit message]
Signed-off-by: Mathias Kresin <dev@kresin.me>
With ed25e3ac02 ("ramips: fix some clocks in mt7621.dtsi") the
cpuclock node was dropped from the mt7621.dtsi without removing the
references to this node from the GB-PC1/PC2 dts files.
Remove them now, to fix the build error.
Signed-off-by: Mathias Kresin <dev@kresin.me>
It has to be <board>:<colour>:<function> and is expected exactly this
way by the userspace scripts.
While at it, fix some whitespace issues in the dts file and rename the
flash node as required upstream.
Signed-off-by: Mathias Kresin <dev@kresin.me>
Use the generic board detection instead of the target specific one as
all recent additions are doing.
Setup the USB led via devicetree (a58535771f) and include the required
driver by default. Merge the led userspace setting with an existing
identical case.
Use the wps led for boot status indication.
Move the partitions into a partition table node (6031ab345d) and drop
needless labels. Drop misplaced cells properties (53624c1702).
Cleanup the pinmux and only switch pins to gpio functions which a
referenced as gpio in the dts.
Match the maximum image size with the size of the firmware partition.
Signed-off-by: Mathias Kresin <dev@kresin.me>
The sd function of the nd_sd group configures two of the groups pins as
gpios. The pins are used as PCIe reset/power.
Due to the driver load order, the pins are configured way to late if
triggered by the sd-card driver.
To not introduce another kind of driver load order dependency and
configure the pins as early as possible, means during pinmux driver
load.
Signed-off-by: Mathias Kresin <dev@kresin.me>
In case the nd_sd group is set to the sd-card function, Pins 45 + 46 are
configured as GPIOs. If they are blocked by the sd function, they can't
be used as GPIOs.
Reported-by: Kristian Evensen <kristian.evensen@gmail.com>
Signed-off-by: Mathias Kresin <dev@kresin.me>
This reverts commit dcdc6d9dad.
Even if described this way in the datasheet, it causes a bootloop on a
RT-N56U (v1):
of-flash 1c000000.nor-flash: do_map_probe() failed for type cfi_probe
of-flash 1c000000.nor-flash: do_map_probe() failed
VFS: Cannot open root device “(null)” or unknown-block(0,0): error -6
Fixes: FS#1930
Signed-off-by: Mathias Kresin <dev@kresin.me>
Use the generic board detection instead of the target specific one as
all recent additions are doing.
Add the wireless led according the gpio number from the datasheet.
Rename the board part of the leds to match the name used for the
compatible string. Finally, do not hijack the wps led for boot status
indication longer than necessary.
Merge userspace config into existing cases.
Include the manufacture Name in the dts model string.
Signed-off-by: Mathias Kresin <dev@kresin.me>
The Lava LR-25G001 Wireless Router is based on the MT7620A SoC.
Specification:
- MediaTek MT7620A (580 Mhz)
- 64 MB of RAM
- 16 MB of FLASH
- 1x 802.11bgn radio
- 1x 802.11ac radio (MT7610EN)
- 5x 10/100/1000 Mbps AR8337 Switch (1 WAN AND 4 LAN)
- 2x external, detachable antennas
- 1x USB 2.0
- UART (J3) header on PCB (57600 8n1)
- 8x LED (3x GPIO-controlled), 2x button
- JBOOT bootloader
Known issues:
- Work only three Gigabit ports (3/5, 1 WAN and 2LAN)
Installation:
Apply factory image via http web-gui or JBOOT recovery page
How to revert to OEM firmware:
- push the reset button and turn on the power. Wait until LED start
blinking (~10sec.)
- upload original factory image via JBOOT http (IP: 192.168.123.254)
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Some boards have external switches different than mt7530.
This patch allow to use mdio-mode without 0x1f register.
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
For a long time the mt7621 uses a fixed cpu clock which causes a problem
if the cpu frequency is not 880MHz.
This patch fixes the cpu clock calculation and adds the cpu/bus clkdev
which will be used in dts.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
The memc node from mt7621.dtsi has incorrect register resource.
Fix it according to the programming guide.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
These two patches both modified the mt7621.c, and the patch file
998-mt7621-needs-jiffies.patch adds only one line which is used by the
another patch file. So merge them into one file.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Introduce mt76x0e device tree node in RT-AC51U dts.
Define mt76x0e mtd partition and offset
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
The gpio-ralink driver has everything it needs to be used as an
interrupt controller except for device tree support. This simple patch
adds that support by configuring the irq domain to use two cells and
adding the appropriate documentation to the devicetree bindings.
Signed-off-by: Daniel Santos <daniel.santos@pobox.com>
On the bottom sticker it's branded as ZTE ZXECS EBG3130 device, but in factory
OpenWrt image it's referenced as BDCOM WAP2100-SK device.
Specifications:
- SoC: MediaTek MT7620A
- RAM: 128 MB
- Flash: 16 MB
- Ethernet: 5 FE ports
- Wireless radio: 2T2R 2.4 GHz and 1T1R 5 GHz (MT7610EN, unsupported)
- UART: 1 x UART on PCB marked as J2 (R=RX, T=TX, G=GND) with 115200 8N1 config
- LEDs: Power, FE ports 1-5, WPS, USB, RF 2.4G, RF 5G
- Other: USB port, SD card slot and 2x external antennas (non-detachable)
Flashing instructions:
A) The U-Boot has HTTP based firmware upgrade
A1) Flashing notes
We've identified so far two different batches of units, unfortunately
each batch has different U-Boot bootloader flashed with different
default environment variables, thus each batch has different IP address
for accessing web based firmware updater.
* First batch has web based bootloader IP address 1.1.1.1
* Second batch has web based bootloader IP address 192.168.1.250
In case you can't connect to either of those IPs, you can try to get
the default IP address via two methods:
A1.1) Serial console, then the IP address is visible during the boot
...
HTTP server is starting at IP: 1.1.1.1
raspi_read: from:40004 len:6
HTTP server is ready!
...
A1.2) Over telnet/SSH using this command:
root@bdcom:/# grep ipaddr= /dev/mtd0
ipaddr=1.1.1.1
A2) Flashing with browser
* Change IP address of PC to 1.1.1.2 with 255.255.255.0 netmask
* Reboot the device and try to reach web based bootloader in the
browser with the following URL http://1.1.1.1
* Quickly select the firmware sysupgrade file and click on the
`Update firmware` button, this all has to be done within 10 seconds,
bootloader doesn't wait any longer
If done correctly, the web page should show UPDATE IN PROGRESS page
with progress indicator. Once the flashing completes (it takes roughly
around 1 minute), the device will reboot to the OpenWrt firmware
A3) Flashing with curl
sudo ip addr add 1.1.1.2/24 dev eth0
curl \
--verbose \
--retry 3 \
--retry-delay 1 \
--retry-max-time 30 \
--connect-timeout 30 \
--form "firmware=@openwrt-ramips-mt7620-BDCOM-WAP2100-SK-squashfs-sysupgrade.bin" \
http://1.1.1.1
Now power on the router.
B) The U-boot is based on Ralink SDK so we can flash the firmware using UART.
1. Configure PC with a static IP address and setup an TFTP server.
2. Put the firmware into the tftp directory.
3. Connect the UART line as described on the PCB (G=GND, R=RX, T=TX)
4. Power up the device and press 2, follow the instruction to set device and
tftp server IP address and input the firmware file name. U-boot will then load
the firmware and write it into the flash.
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Belkin F5D8235 v2 has two ethernet switches on board.
One internal rt3052 and rtl8366rb on rgmii interface.
Looks like internal switch settings were lost in
translation to device tree infrastructure.
Signed-off-by: Roman Yeryomin <roman@advem.lv>
Specifically, SKW92A_E16, described here:
http://www.skylabmodule.com/wp-content/uploads/SkyLab_SKW92A_V1.04_datasheet.pdf
Specification:
- MediaTek MT7628N/N (580 Mhz)
- 64 MB of RAM
- 16 MB of FLASH
- 2T2R 2.4 GHz
- 5x 10/100 Mbps Ethernet
- 2x u.FL
- Power by micro-USB connector at USB1 on EVB
- UART via micro-USB connector at USB3 on EVB (57600 8n1)
- 5x Ethernet LEDs
- 1x WLAN LEDs
- 1x WPS LED connected by jumper wire from I2S_CK on J20 to WPS_LED pin hole next
to daughter board on EVB
- WPS/Reset button (S2 on EVB)
- RESET button (S1 on EVB) is *not* connected to RST hole next to daughter board
Flash instruction:
>From Skylab firmware:
1. Associate with SKYLAP_AP
2. In a browser, load: http://10.10.10.254/
3. Username/password: admin/admin
4. In web admin interface: Administration / Upload Firmware, browse to
sysupgrade image, apply, flash will fail with a message:
Not a valid firmware. *** Warning: "/var/tmpFW" has corrupted data!
5. Telnet to 10.10.10.254, drops you into a root shell with no credentials
6. # cd /var
7. # mtd_write -r write tmpFW mtd4
Unlocking mtd4 ...
Writing from tmpFW to mtd4 ... [e]
8. When flash has completed, you will have booted into your firmware.
>From U-boot via TFTP and initramfs:
1. Place openwrt-ramips-mt76x8-skw92a-initramfs-kernel.bin on a TFTP server
2. Connect to serial console at USB3 on EVB
3. Connect ethernet between port 1 (not WAN) and your TFTP server (e.g.
192.168.11.20)
4. Start terminal software (e.g. screen /dev/ttyUSB0 57600) on PC
5. Apply power to EVB
6. Interrupt u-boot with keypress of "1"
7. At u-boot prompts:
Input device IP (10.10.10.123) ==:192.168.11.21
Input server IP (10.10.10.3) ==:192.168.11.20
Input Linux Kernel filename (root_uImage) ==:openwrt-ramips-mt76x8-skw92a-initramfs-kernel.bin
8. Move ethernet to port 0 (WAN) on EVB
9. At new OpenWrt console shell, fetch squashfs-sysupgrade image and flash
with sysupgrade.
>From U-boot via TFTP direct flash:
1. Place openwrt-ramips-mt76x8-skw92a-squashfs-sysupgrade.bin on a TFTP server
2. Connect to serial console at USB3 on EVB (57600 8N1)
3. Connect ethernet between port 1 (not WAN) an your TFTP server (e.g.
192.168.11.20)
4. Start terminal software (e.g. screen /dev/ttyUSB0 57600) on PC
5. Apply power to EVB
6. Interrupt u-boot with keypress of "2"
7. At u-boot prompts:
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) Y
Input device IP (10.10.10.123) ==:192.168.11.21
Input server IP (10.10.10.3) ==:192.168.11.20
Input Linux Kernel filename (root_uImage) ==:openwrt-ramips-mt76x8-skw92a-squashfs-sysupgrade.bin
8. When transfer is complete or as OpenWrt begins booting, move ethernet to
port 0 (WAN).
Signed-off-by: Russell Senior <russell@personaltelco.net>
Both devices come with a MediaTek MT7610E 5GHz 802.11ac 1T1R radio
which wasn't supported at the time the devices were added to OpenWrt.
Now that we got it, include kmod-mt76x0e in images for those devices.
Reported-by: Arian Sanusi <openwrt@semioptimal.net>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
as indicated in commit c5bf408ed6 "(ramips: fix image generation for mt76x8")
more rework was needed to fix the other issues.
Building on another machine, but using the same arch, showed
the application failing again for different reasons.
Fix this by completely rewriting the application, fixing following found issues:
- buffer overflows, resulting in stack corruption
- flaws in memory requirement calculations (too small, too large)
- memory leaks
- missing bounds checking on string handling
- non-reproducable images, by using unitilized memory in checksum calculation
- missing error handling, resulting in succes on specific image errors
- endianness errors when building on BE machines
- various minor build warnings
- documentation did not match the code actions (header item locations)
- allowing input to be decimal, hex or octal now
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Newer batches of several Mikrotik boards contain this yet-unsupported
flash chip, for instance:
- rb941-2nd (hAP lite)
- rb952ui-5ac2nd (hAP ac lite)
- RBM33G
and probably other Mikrotik boards need this patch as well.
The patch was submitted upstream by Robert Marko: https://patchwork.ozlabs.org/patch/934181/
Closes: FS#1715
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
Cc: Robert Marko <robimarko@gmail.com>