Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
c3c09cd994
@ -399,6 +399,15 @@ define Build/lzma-no-dict
|
||||
@mv $@.new $@
|
||||
endef
|
||||
|
||||
define Build/moxa-encode-fw
|
||||
$(TOPDIR)/scripts/moxa-encode-fw.py \
|
||||
--input $@ \
|
||||
--output $@ \
|
||||
--magic $(MOXA_MAGIC) \
|
||||
--hwid $(MOXA_HWID) \
|
||||
--buildid 00000000
|
||||
endef
|
||||
|
||||
define Build/netgear-chk
|
||||
$(STAGING_DIR_HOST)/bin/mkchkimg \
|
||||
-o $@.new \
|
||||
|
||||
@ -19,7 +19,7 @@ include $(INCLUDE_DIR)/package.mk
|
||||
include ./atf-version.mk
|
||||
|
||||
define Trusted-Firmware-A/Default
|
||||
NAME:=Rockchip $(1)
|
||||
NAME:=Rockchip $(1) SoCs
|
||||
BUILD_TARGET:=rockchip
|
||||
endef
|
||||
|
||||
|
||||
@ -47,6 +47,7 @@ etactica,eg200|\
|
||||
glinet,gl-ar750s-nor|\
|
||||
glinet,gl-ar750s-nor-nand|\
|
||||
librerouter,librerouter-v1|\
|
||||
moxa,awk-1137c|\
|
||||
netgear,ex7300|\
|
||||
netgear,ex7300-v2|\
|
||||
netgear,wndr4300-v2|\
|
||||
|
||||
@ -16,6 +16,9 @@ case "$board" in
|
||||
traverse,ls1043s)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x40000" "0x2000" "0x20000"
|
||||
;;
|
||||
traverse,ten64)
|
||||
ubootenv_add_uci_config "/dev/mtd3" "0x0000" "0x80000" "0x80000"
|
||||
;;
|
||||
esac
|
||||
|
||||
config_load ubootenv
|
||||
|
||||
@ -45,6 +45,10 @@ livinet,zr-3020-ubootmod|\
|
||||
qihoo,360t7-ubootmod)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" "1"
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
|
||||
ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1"
|
||||
;;
|
||||
netgear,wax220)
|
||||
ubootenv_add_uci_config "/dev/mtd5" "0x0" "0x20000" "0x20000"
|
||||
;;
|
||||
|
||||
@ -24,7 +24,8 @@ sitecom,wlr-4100-v1-002|\
|
||||
zyxel,keenetic-lite-iii-a)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x1000"
|
||||
;;
|
||||
arcadyan,we420223-99)
|
||||
arcadyan,we420223-99|\
|
||||
dlink,dir-806a-b1)
|
||||
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x1000" "0x1000"
|
||||
;;
|
||||
allnet,all0256n-4m|\
|
||||
|
||||
@ -41,6 +41,7 @@ ALLWIFIBOARDS:= \
|
||||
xiaomi_ax3600 \
|
||||
xiaomi_ax9000 \
|
||||
zte_mf269 \
|
||||
zte_mf287plus \
|
||||
zyxel_nbg7815
|
||||
|
||||
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
||||
@ -128,6 +129,7 @@ $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
|
||||
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
|
||||
$(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000))
|
||||
$(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269))
|
||||
$(eval $(call generate-ipq-wifi-package,zte_mf287plus,ZTE MF287Plus))
|
||||
$(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815))
|
||||
|
||||
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
|
||||
PKG_MIRROR_HASH:=c2851b577d1ee632c902eca1864444fa22cad98956bfa852019e6d621c0f8d2a
|
||||
PKG_SOURCE_DATE:=2023-04-05
|
||||
PKG_SOURCE_VERSION:=40ab806bf4c8698ac925d094ce11ce1d57ae2e46
|
||||
PKG_MIRROR_HASH:=e2e00e2bb6b7bacda5dcb713e4f9a4b1e316d75b140a4aa77145471bf6fe5c17
|
||||
PKG_SOURCE_DATE:=2023-06-24
|
||||
PKG_SOURCE_VERSION:=52112643308bb02a3b4fa2894dd7d4340ba4a237
|
||||
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
109
scripts/moxa-encode-fw.py
Executable file
109
scripts/moxa-encode-fw.py
Executable file
@ -0,0 +1,109 @@
|
||||
#! /usr/bin/env python3
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import argparse
|
||||
import struct
|
||||
|
||||
from binascii import crc32
|
||||
from dataclasses import dataclass
|
||||
from itertools import cycle
|
||||
from typing import List
|
||||
|
||||
|
||||
def xor(data: bytes) -> bytes:
|
||||
passphrase = "Seek AGREEMENT for the date of completion.\0"
|
||||
pw = cycle(bytearray(passphrase.encode('ascii')))
|
||||
return bytearray(b ^ next(pw) for b in data)
|
||||
|
||||
|
||||
def add_fw_header(data: bytes, magic: int, hwid: int, build_id: int,
|
||||
offsets: List[int]) -> bytes:
|
||||
unknown_1 = 0x01
|
||||
unknown_2 = 0x0000
|
||||
unknown_3 = 0x00000000
|
||||
unknown_4 = 0x01000000
|
||||
file_crc = crc(data, 0)
|
||||
|
||||
header_struct = struct.Struct('>QIBBHIIIIII' + 'I' * len(offsets))
|
||||
header_size = header_struct.size
|
||||
file_size = header_size + len(data)
|
||||
|
||||
header_offsets = map(lambda x: x + header_size, offsets)
|
||||
|
||||
header_data = header_struct.pack(magic, file_size, unknown_1, len(offsets),
|
||||
unknown_2, hwid, build_id, unknown_3,
|
||||
build_id, unknown_4, *header_offsets,
|
||||
file_crc)
|
||||
return header_data + data
|
||||
|
||||
|
||||
def add_file_header(data: bytes, filename: str, build_id: int) -> bytes:
|
||||
unknown1 = 0x01000000
|
||||
unknown2 = 0x00000000
|
||||
file_crc = crc(data, 0)
|
||||
|
||||
header_struct = struct.Struct(">16sIIIII")
|
||||
file_size = header_struct.size + len(data)
|
||||
|
||||
header_data = header_struct.pack(filename.encode('ascii'), file_size,
|
||||
unknown1, build_id, unknown2, file_crc)
|
||||
return header_data + data
|
||||
|
||||
|
||||
def crc(data: bytes, init_val: int) -> int:
|
||||
return 0xffffffff ^ (crc32(data, 0xffffffff ^ init_val))
|
||||
|
||||
|
||||
@dataclass
|
||||
class Partition:
|
||||
name: str
|
||||
size: int
|
||||
|
||||
|
||||
def main():
|
||||
partitions = [
|
||||
Partition(name='kernel', size=2048 * 1024),
|
||||
Partition(name='root', size=9216 * 1024),
|
||||
Partition(name='userdisk', size=3076 * 1024),
|
||||
]
|
||||
|
||||
parser = argparse.ArgumentParser(prog='moxa-encode-fw',
|
||||
description='MOXA IW firmware encoder')
|
||||
parser.add_argument('-i', '--input', required=True, type=str, help='Firmware file')
|
||||
parser.add_argument('-o', '--output', required=True, type=str, help="Output path for encoded firmware file")
|
||||
parser.add_argument('-m', '--magic', required=True, type=lambda x: int(x,0), help="Magic for firmware header")
|
||||
parser.add_argument('-d', '--hwid', required=True, type=lambda x: int(x,0), help="Hardware id of device")
|
||||
parser.add_argument('-b', '--buildid', required=True, type=lambda x: int(x,0), help="Build id of firmware")
|
||||
args = parser.parse_args()
|
||||
|
||||
with open(args.input, 'rb') as input_file:
|
||||
firmware = bytearray(input_file.read())
|
||||
|
||||
offsets = []
|
||||
pos_input = 0
|
||||
pos_output = 0
|
||||
firmware_seg = bytearray()
|
||||
|
||||
for partition in partitions:
|
||||
part_data = firmware[pos_input:pos_input + partition.size]
|
||||
|
||||
# just to make sure that no partition is empty
|
||||
if len(part_data) == 0:
|
||||
part_data = bytearray([0x00])
|
||||
|
||||
header = add_file_header(part_data, partition.name, args.buildid)
|
||||
firmware_seg += header
|
||||
|
||||
offsets.append(pos_output)
|
||||
pos_input += partition.size
|
||||
pos_output += len(header)
|
||||
|
||||
moxa_firmware = add_fw_header(firmware_seg, args.magic, args.hwid, args.buildid, offsets)
|
||||
|
||||
encrypted = xor(moxa_firmware)
|
||||
with open(args.output, 'wb') as output_file:
|
||||
output_file.write(encrypted)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -10,7 +10,6 @@ CONFIG_APM821xx=y
|
||||
# CONFIG_ARCHES is not set
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
|
||||
|
||||
@ -39,7 +39,6 @@ CONFIG_ACPI_THERMAL=y
|
||||
# CONFIG_ACPI_TINY_POWER_BUTTON is not set
|
||||
# CONFIG_ALIBABA_UNCORE_DRW_PMU is not set
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar9344_mikrotik_routerboard-951x-2hnd.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mikrotik,routerboard-951g-2hnd", "qca,ar9344";
|
||||
model = "Mikrotik RouterBOARD 951G-2HnD";
|
||||
|
||||
/delete-node/ aliases;
|
||||
/delete-node/ leds;
|
||||
|
||||
gpio-export {
|
||||
compatible = "gpio-export";
|
||||
|
||||
gpio_usb_power {
|
||||
gpio-export,name = "rb951g-2hnd:power:usb";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ref {
|
||||
clock-frequency = <25000000>;
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
status = "okay";
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
|
||||
qca,ar8327-initvals = <
|
||||
0x04 0x07600000 /* PAD0_MODE */
|
||||
0x7c 0x0000007e /* PORT0_STATUS */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
pll-data = <0x6f000000 0x00000101 0x00001616>;
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
rgmii-gmac0 = <1>;
|
||||
rxd-delay = <1>;
|
||||
switch-only-mode = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "disabled";
|
||||
};
|
||||
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar9344_mikrotik_routerboard.dtsi"
|
||||
#include "ar9344_mikrotik_routerboard-951x-2hnd.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mikrotik,routerboard-951ui-2hnd", "qca,ar9344";
|
||||
@ -59,77 +59,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
nand_power {
|
||||
gpio-hog;
|
||||
gpios = <14 GPIO_ACTIVE_LOW>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
nand-ecc-mode = "soft";
|
||||
qca,nand-swap-dma;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "booter";
|
||||
reg = <0x0000000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "kernel";
|
||||
reg = <0x0040000 0x03c0000>;
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
label = "ubi";
|
||||
reg = <0x0400000 0x7c00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "mikrotik,routerboot-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "routerboot";
|
||||
reg = <0x0 0x0>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
hard_config: hard_config {
|
||||
read-only;
|
||||
};
|
||||
|
||||
bios {
|
||||
size = <0x1000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
soft_config {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
phy-handle = <&swphy4>;
|
||||
|
||||
@ -143,11 +72,3 @@
|
||||
&wmac {
|
||||
qca,led-pin = /bits/ 8 <11>;
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar9344_mikrotik_routerboard.dtsi"
|
||||
|
||||
&gpio {
|
||||
nand_power {
|
||||
gpio-hog;
|
||||
gpios = <14 GPIO_ACTIVE_LOW>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
nand-ecc-mode = "soft";
|
||||
qca,nand-swap-dma;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "booter";
|
||||
reg = <0x0000000 0x0040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "kernel";
|
||||
reg = <0x0040000 0x03c0000>;
|
||||
};
|
||||
|
||||
partition@400000 {
|
||||
label = "ubi";
|
||||
reg = <0x0400000 0x7c00000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "mikrotik,routerboot-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "routerboot";
|
||||
reg = <0x0 0x0>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
hard_config: hard_config {
|
||||
read-only;
|
||||
};
|
||||
|
||||
bios {
|
||||
size = <0x1000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
soft_config {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
184
target/linux/ath79/dts/ar9344_moxa_awk-1137c.dts
Normal file
184
target/linux/ath79/dts/ar9344_moxa_awk-1137c.dts
Normal file
@ -0,0 +1,184 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "ar9344.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
compatible = "moxa,awk-1137c", "qca,ar9344";
|
||||
model = "MOXA AWK-1137C";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_status_red;
|
||||
led-failsafe = &led_status_red;
|
||||
led-running = &led_status_green;
|
||||
led-upgrade = &led_status_red;
|
||||
label-mac-device = ð1;
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
pinctrl-names = "default";
|
||||
|
||||
led_status_green: led-0 {
|
||||
label = "green:status";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_STATUS;
|
||||
function-enumerator = <0>;
|
||||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_red: led-1 {
|
||||
label = "red:status";
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
function = LED_FUNCTION_STATUS;
|
||||
function-enumerator = <1>;
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-2 {
|
||||
label = "green:wifi";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
function-enumerator = <0>;
|
||||
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
led-3 {
|
||||
label = "green:lan1";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WAN;
|
||||
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-4 {
|
||||
label = "green:lan2";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-5 {
|
||||
label = "yellow:wifi";
|
||||
color = <LED_COLOR_ID_YELLOW>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
function-enumerator = <1>;
|
||||
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0assoc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&ref {
|
||||
clock-frequency = <40000000>;
|
||||
};
|
||||
|
||||
&spi {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x000000 0x040000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x040000 0x010000>;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
label = "firmware";
|
||||
reg = <0x050000 0xe00000>;
|
||||
compatible = "denx,uimage";
|
||||
};
|
||||
|
||||
partition@e50000 {
|
||||
label = "log1";
|
||||
reg = <0xe50000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@e70000 {
|
||||
label = "log2";
|
||||
reg = <0xe70000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@e90000 {
|
||||
label = "version";
|
||||
reg = <0xe90000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@eb0000 {
|
||||
label = "config1";
|
||||
reg = <0xeb0000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@ed0000 {
|
||||
label = "config2";
|
||||
reg = <0xed0000 0x020000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@ef0000 {
|
||||
label = "config-data";
|
||||
reg = <0xef0000 0x0c0000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@fb0000 {
|
||||
label = "mib0";
|
||||
reg = <0xfb0000 0x030000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
art: partition@fe0000 {
|
||||
label = "art";
|
||||
reg = <0xfe0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@ff0000 {
|
||||
label = "fis";
|
||||
reg = <0xff0000 0x010000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
qca,no-eeprom;
|
||||
};
|
||||
@ -302,6 +302,10 @@ tplink,cpe210-v3)
|
||||
meraki,mr16)
|
||||
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0"
|
||||
;;
|
||||
moxa,awk-1137c)
|
||||
ucidef_set_led_switch "wan" "LAN1" "green:lan1" "switch0" "0x02"
|
||||
ucidef_set_led_switch "lan" "LAN2" "green:lan2" "switch0" "0x04"
|
||||
;;
|
||||
netgear,wnr2200-8m|\
|
||||
netgear,wnr2200-16m)
|
||||
ucidef_set_led_netdev "wan-amber" "WAN (amber)" "amber:wan" "eth0"
|
||||
|
||||
@ -240,7 +240,8 @@ ath79_setup_interfaces()
|
||||
ubnt,routerstation)
|
||||
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||
;;
|
||||
comfast,cf-e375ac)
|
||||
comfast,cf-e375ac|\
|
||||
moxa,awk-1137c)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:wan" "2:lan"
|
||||
;;
|
||||
@ -731,6 +732,11 @@ ath79_setup_macs()
|
||||
lan_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
|
||||
label_mac=$lan_mac
|
||||
;;
|
||||
moxa,awk-1137c)
|
||||
lan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
|
||||
wan_mac=$(mtd_get_mac_ascii u-boot-env mac_addr)
|
||||
label_mac=$lan_mac
|
||||
;;
|
||||
nec,wf1200cr|\
|
||||
nec,wg1200cr)
|
||||
lan_mac=$(mtd_get_mac_ascii devdata "lanmac")
|
||||
|
||||
@ -62,6 +62,10 @@ case "$FIRMWARE" in
|
||||
caldata_extract "art" 0x1000 0x440
|
||||
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env ethaddr)
|
||||
;;
|
||||
moxa,awk-1137c)
|
||||
caldata_extract "art" 0x1000 0x440
|
||||
ath9k_patch_mac $(mtd_get_mac_ascii u-boot-env mac_addr)
|
||||
;;
|
||||
nec,wg800hp)
|
||||
caldata_extract "art" 0x1000 0x440
|
||||
ath9k_patch_mac $(mtd_get_mac_text board_data 0x680)
|
||||
|
||||
@ -8,6 +8,9 @@ boot() {
|
||||
adtran,bsap1840)
|
||||
fconfig -s -w -d $(find_mtd_part "RedBoot config") -n boot_cntb -x 0
|
||||
;;
|
||||
moxa,awk-1137c)
|
||||
fw_setenv fwr_verify 0
|
||||
;;
|
||||
qihoo,c301)
|
||||
local n=$(fw_printenv activeregion | cut -d = -f 2)
|
||||
fw_setenv "image${n}trynum" 0
|
||||
|
||||
@ -28,6 +28,9 @@ preinit_set_mac_address() {
|
||||
fortinet,fap-221-b)
|
||||
ip link set dev eth0 address $(mtd_get_mac_text u-boot 0x3ff80 12)
|
||||
;;
|
||||
moxa,awk-1137c)
|
||||
ip link set dev eth0 address $(mtd_get_mac_ascii u-boot-env mac_addr)
|
||||
;;
|
||||
tplink,deco-s4-v2)
|
||||
base_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
|
||||
ip link set dev eth0 address $base_mac
|
||||
|
||||
@ -9,6 +9,7 @@ DEVICE_VARS += ADDPATTERN_ID ADDPATTERN_VERSION
|
||||
DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
|
||||
DEVICE_VARS += KERNEL_INITRAMFS_PREFIX DAP_SIGNATURE
|
||||
DEVICE_VARS += EDIMAX_HEADER_MAGIC EDIMAX_HEADER_MODEL
|
||||
DEVICE_VARS += MOXA_MAGIC MOXA_HWID
|
||||
DEVICE_VARS += OPENMESH_CE_TYPE ZYXEL_MODEL_STRING
|
||||
DEVICE_VARS += SUPPORTED_TELTONIKA_DEVICES
|
||||
|
||||
@ -1820,6 +1821,19 @@ define Device/mercury_mw4530r-v1
|
||||
endef
|
||||
TARGET_DEVICES += mercury_mw4530r-v1
|
||||
|
||||
define Device/moxa_awk-1137c
|
||||
SOC := ar9344
|
||||
DEVICE_MODEL := AWK-1137C
|
||||
DEVICE_VENDOR := MOXA
|
||||
MOXA_MAGIC := 0x8919123028877702
|
||||
MOXA_HWID := 0x01080000
|
||||
IMAGE_SIZE := 14336k
|
||||
DEVICE_PACKAGES := uboot-envtools
|
||||
IMAGES += factory.rom
|
||||
IMAGE/factory.rom := $$(IMAGE/sysupgrade.bin) | moxa-encode-fw
|
||||
endef
|
||||
TARGET_DEVICES += moxa_awk-1137c
|
||||
|
||||
define Device/nec_wx1200cr
|
||||
DEVICE_VENDOR := NEC
|
||||
IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
|
||||
|
||||
@ -48,6 +48,15 @@ define Device/mikrotik_routerboard-922uags-5hpacd
|
||||
endef
|
||||
TARGET_DEVICES += mikrotik_routerboard-922uags-5hpacd
|
||||
|
||||
define Device/mikrotik_routerboard-951g-2hnd
|
||||
$(Device/mikrotik_nand)
|
||||
SOC := ar9344
|
||||
DEVICE_MODEL := RouterBOARD 951G-2HnD
|
||||
DEVICE_PACKAGES += kmod-usb-ohci kmod-usb2
|
||||
SUPPORTED_DEVICES += rb-951g-2hnd
|
||||
endef
|
||||
TARGET_DEVICES += mikrotik_routerboard-951g-2hnd
|
||||
|
||||
define Device/mikrotik_routerboard-951ui-2hnd
|
||||
$(Device/mikrotik_nand)
|
||||
SOC := ar9344
|
||||
|
||||
@ -35,6 +35,7 @@ ath79_setup_interfaces()
|
||||
mikrotik,routerboard-map-2nd)
|
||||
ucidef_set_interface_lan "eth0 eth1"
|
||||
;;
|
||||
mikrotik,routerboard-951g-2hnd|\
|
||||
mikrotik,routerboard-962uigs-5hact2hnt)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "2:lan" "3:lan" "4:lan" "5:lan" "1:wan"
|
||||
|
||||
@ -46,6 +46,7 @@ case "$FIRMWARE" in
|
||||
mikrotik,routerboard-962uigs-5hact2hnt)
|
||||
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" 7)
|
||||
;;
|
||||
mikrotik,routerboard-951g-2hnd|\
|
||||
mikrotik,routerboard-951ui-2hnd)
|
||||
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +11)
|
||||
;;
|
||||
|
||||
@ -33,6 +33,7 @@ platform_do_upgrade() {
|
||||
mikrotik,routerboard-912uag-2hpnd|\
|
||||
mikrotik,routerboard-921gs-5hpacd-15s|\
|
||||
mikrotik,routerboard-922uags-5hpacd|\
|
||||
mikrotik,routerboard-951g-2hnd|\
|
||||
mikrotik,routerboard-951ui-2hnd|\
|
||||
mikrotik,routerboard-sxt-5nd-r2)
|
||||
platform_do_upgrade_mikrotik_nand "$1"
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
From: Luiz Angelo Daros de Luca <luizluca@gmail.com>
|
||||
Subject: [PATCH] ath79: export ath79_pll_base
|
||||
|
||||
This symbol is declared as extern but nobody exported it.
|
||||
Any module including arch/mips/include/asm/mach-ath79/ath79.h
|
||||
will not build. Without this export, ag71xx.ko will not build
|
||||
as a module and the build will fail like this:
|
||||
|
||||
ERROR: modpost: "ath79_pll_base" [drivers/net/ethernet/atheros/ag71xx/ag71xx.ko] undefined!
|
||||
|
||||
The ath79_pll_base symbol is accessed in the ath79_pll_wr() inline function.
|
||||
|
||||
---
|
||||
arch/mips/ath79/common.c | 1 +
|
||||
1 file changed, 1 insertions(+)
|
||||
|
||||
--- a/arch/mips/ath79/common.c
|
||||
+++ b/arch/mips/ath79/common.c
|
||||
@@ -34,6 +34,7 @@ unsigned int ath79_soc_rev;
|
||||
EXPORT_SYMBOL_GPL(ath79_soc_rev);
|
||||
|
||||
void __iomem *ath79_pll_base;
|
||||
+EXPORT_SYMBOL_GPL(ath79_pll_base);
|
||||
void __iomem *ath79_reset_base;
|
||||
EXPORT_SYMBOL_GPL(ath79_reset_base);
|
||||
void __iomem *ath79_ddr_base;
|
||||
@ -4,7 +4,6 @@ CONFIG_APERTURE_HELPERS=y
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_BCM=y
|
||||
CONFIG_ARCH_BCM2835=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
|
||||
@ -5,7 +5,6 @@ CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_BCM=y
|
||||
CONFIG_ARCH_BCM2835=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
|
||||
@ -6,7 +6,6 @@ CONFIG_ARCH_BCM2835=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
|
||||
@ -6,7 +6,6 @@ CONFIG_ARCH_BCM2835=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
|
||||
@ -461,6 +461,10 @@ TARGET_DEVICES += smartrg_sr400ac
|
||||
define Device/phicomm_k3
|
||||
DEVICE_VENDOR := PHICOMM
|
||||
DEVICE_MODEL := K3
|
||||
DEVICE_ALT0_VENDOR := Wavlink
|
||||
DEVICE_ALT0_MODEL := QUANTUM DAX
|
||||
DEVICE_ALT1_VENDOR := Wavlink
|
||||
DEVICE_ALT1_MODEL := WL-WN538A8
|
||||
DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) \
|
||||
-brcmfmac-firmware-4366c0-pcie brcmfmac-firmware-4366c0-pcie-k3
|
||||
IMAGES := trx
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
CONFIG_ALIGNMENT_TRAP=y
|
||||
CONFIG_AMBA_PL08X=y
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_GEMINI=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
|
||||
@ -239,6 +239,7 @@ CONFIG_ARCH_BINFMT_ELF_STATE=y
|
||||
# CONFIG_ARCH_EXYNOS is not set
|
||||
CONFIG_ARCH_FLATMEM_ENABLE=y
|
||||
# CONFIG_ARCH_FOOTBRIDGE is not set
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_HI3xxx is not set
|
||||
# CONFIG_ARCH_HIGHBANK is not set
|
||||
@ -2160,7 +2161,6 @@ CONFIG_FLAT_NODE_MEM_MAP=y
|
||||
# CONFIG_FONT_6x8 is not set
|
||||
# CONFIG_FONT_TER16x32 is not set
|
||||
# CONFIG_FORCEDETH is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
# CONFIG_FORCE_NR_CPUS is not set
|
||||
CONFIG_FORTIFY_SOURCE=y
|
||||
# CONFIG_FPGA is not set
|
||||
|
||||
@ -107,6 +107,10 @@ ipq40xx_setup_interfaces()
|
||||
zte,mf286d)
|
||||
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" "wan"
|
||||
;;
|
||||
zte,mf287plus)
|
||||
ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
|
||||
ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported hardware. Network interfaces not initialized"
|
||||
;;
|
||||
|
||||
@ -27,6 +27,7 @@ EOF
|
||||
;;
|
||||
zte,mf18a |\
|
||||
zte,mf286d |\
|
||||
zte,mf287plus |\
|
||||
zte,mf289f)
|
||||
CI_UBIPART="rootfs"
|
||||
local mtdnum="$( find_mtd_index $CI_UBIPART )"
|
||||
@ -208,6 +209,7 @@ platform_do_upgrade() {
|
||||
teltonika,rutx10 |\
|
||||
zte,mf18a |\
|
||||
zte,mf286d |\
|
||||
zte,mf287plus |\
|
||||
zte,mf289f)
|
||||
CI_UBIPART="rootfs"
|
||||
nand_do_upgrade "$1"
|
||||
|
||||
@ -376,6 +376,7 @@ CONFIG_PINCTRL_MSM=y
|
||||
# CONFIG_PINCTRL_SM8250 is not set
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_POWER_RESET=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_POWER_RESET_MSM=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_PPS=y
|
||||
|
||||
@ -0,0 +1,384 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
// Copyright (c) 2022, Pawel Dembicki <paweldembicki@gmail.com>.
|
||||
// Copyright (c) 2022, Giammarco Marzano <stich86@gmail.com>.
|
||||
// Copyright (c) 2023, Andreas Böhler <dev@aboehler.at>
|
||||
|
||||
#include "qcom-ipq4019.dtsi"
|
||||
#include <dt-bindings/soc/qcom,tcsr.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
model = "ZTE MF287Plus";
|
||||
compatible = "zte,mf287plus";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_status;
|
||||
led-failsafe = &led_status;
|
||||
led-running = &led_status;
|
||||
led-upgrade = &led_status;
|
||||
};
|
||||
|
||||
chosen {
|
||||
/*
|
||||
* bootargs forced by u-boot bootipq command:
|
||||
* 'ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait'
|
||||
*/
|
||||
bootargs-append = " root=/dev/ubiblock0_1";
|
||||
};
|
||||
|
||||
/*
|
||||
* This node is used to restart modem module to avoid anomalous
|
||||
* behaviours on initial communication.
|
||||
*/
|
||||
gpio-restart {
|
||||
compatible = "gpio-restart";
|
||||
gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_status: led-0 {
|
||||
label = "blue:power";
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
gpios = <&tlmm 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
key-reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
key-wps {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
soc {
|
||||
rng@22000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
tcsr@1949000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1949000 0x100>;
|
||||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
|
||||
};
|
||||
|
||||
tcsr@194b000 {
|
||||
/* select hostmode */
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x194b000 0x100>;
|
||||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ess_tcsr@1953000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1953000 0x1000>;
|
||||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
|
||||
};
|
||||
|
||||
tcsr@1957000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1957000 0x100>;
|
||||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp_dma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_spi1 {
|
||||
pinctrl-0 = <&spi_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>,
|
||||
<&tlmm 59 GPIO_ACTIVE_HIGH>,
|
||||
<&tlmm 1 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
spi-max-frequency = <24000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "0:SBL1";
|
||||
reg = <0x0 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "0:MIBIB";
|
||||
reg = <0x40000 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@60000 {
|
||||
label = "0:QSEE";
|
||||
reg = <0x60000 0x60000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "0:CDT";
|
||||
reg = <0xc0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@d0000 {
|
||||
label = "0:DDRPARAMS";
|
||||
reg = <0xd0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@e0000 {
|
||||
label = "0:APPSBLENV";
|
||||
reg = <0xe0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@f0000 {
|
||||
label = "0:APPSBL";
|
||||
reg = <0xf0000 0xc0000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@1b0000 {
|
||||
label = "0:reserved1";
|
||||
reg = <0x1b0000 0x50000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
spi-nand@1 { /* flash@1 ? */
|
||||
compatible = "spi-nand";
|
||||
reg = <1>;
|
||||
spi-max-frequency = <24000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "fota-flag";
|
||||
reg = <0x0 0x140000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
label = "ART";
|
||||
reg = <0x140000 0x140000>;
|
||||
read-only;
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
precal_art_1000: precal@1000 {
|
||||
reg = <0x1000 0x2f20>;
|
||||
};
|
||||
|
||||
precal_art_5000: precal@5000 {
|
||||
reg = <0x5000 0x2f20>;
|
||||
};
|
||||
};
|
||||
|
||||
partition@280000 {
|
||||
label = "mac";
|
||||
reg = <0x280000 0x140000>;
|
||||
read-only;
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_mac_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
partition@3c0000 {
|
||||
label = "cfg-param";
|
||||
reg = <0x3c0000 0x600000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@9c0000 {
|
||||
label = "oops";
|
||||
reg = <0x9c0000 0x140000>;
|
||||
};
|
||||
|
||||
partition@b00000 {
|
||||
label = "web";
|
||||
reg = <0xb00000 0x800000>;
|
||||
};
|
||||
|
||||
partition@1300000 {
|
||||
label = "rootfs";
|
||||
reg = <0x1300000 0x2200000>;
|
||||
};
|
||||
|
||||
partition@3500000 {
|
||||
label = "data";
|
||||
reg = <0x3500000 0x1900000>;
|
||||
};
|
||||
|
||||
partition@4e00000 {
|
||||
label = "fota";
|
||||
reg = <0x4e00000 0x3200000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
zigbee@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
compatible = "silabs,em3581";
|
||||
reg = <2>;
|
||||
spi-max-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_uart1 {
|
||||
pinctrl-0 = <&serial_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cryptobam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac {
|
||||
status = "okay";
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem-cells = <&macaddr_mac_0>;
|
||||
mac-address-increment = <2>;
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&swport2 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
&swport3 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
&swport4 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
&swport5 {
|
||||
status = "okay";
|
||||
|
||||
label = "lan4";
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
serial_pins: serial_pinmux {
|
||||
mux {
|
||||
pins = "gpio60", "gpio61";
|
||||
function = "blsp_uart0";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
spi_0_pins: spi_0_pinmux {
|
||||
pinmux {
|
||||
function = "blsp_spi0";
|
||||
pins = "gpio55", "gpio56", "gpio57";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio54", "gpio59", "gpio1";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb2_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_ss_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
status = "okay";
|
||||
nvmem-cell-names = "pre-calibration", "mac-address";
|
||||
nvmem-cells = <&precal_art_1000>, <&macaddr_mac_0>;
|
||||
qcom,ath10k-calibration-variant = "zte,mf287plus";
|
||||
};
|
||||
|
||||
&wifi1 {
|
||||
status = "okay";
|
||||
nvmem-cell-names = "pre-calibration", "mac-address";
|
||||
nvmem-cells = <&precal_art_5000>, <&macaddr_mac_0>;
|
||||
mac-address-increment = <1>;
|
||||
qcom,ath10k-calibration-variant = "zte,mf287plus";
|
||||
};
|
||||
@ -764,6 +764,7 @@ define Device/meraki_mr33
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct
|
||||
DEFAULT := n
|
||||
endef
|
||||
TARGET_DEVICES += meraki_mr33
|
||||
|
||||
@ -776,6 +777,7 @@ define Device/meraki_mr74
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct
|
||||
DEVICE_DTS_CONFIG := config@3
|
||||
DEFAULT := n
|
||||
endef
|
||||
TARGET_DEVICES += meraki_mr74
|
||||
|
||||
@ -1146,6 +1148,24 @@ define Device/zte_mf286d
|
||||
endef
|
||||
TARGET_DEVICES += zte_mf286d
|
||||
|
||||
define Device/zte_mf287plus
|
||||
$(call Device/zte_mf28x_common)
|
||||
DEVICE_DTS_CONFIG := config@ap.dk01.1-c2
|
||||
DEVICE_MODEL := MF287Plus
|
||||
DEVICE_ALT0_VENDOR := ZTE
|
||||
DEVICE_ALT0_MODEL := MF287
|
||||
DEVICE_PACKAGES += ipq-wifi-zte_mf287plus
|
||||
SOC := qcom-ipq4018
|
||||
# The recovery image is used to return back to stock (an initramfs-based image
|
||||
# that can be flashed to the device via sysupgrade
|
||||
# The factory image is used to install from the stock firmware by using an
|
||||
# exploit for the web interface
|
||||
IMAGES += factory.bin recovery.bin
|
||||
IMAGE/factory.bin := append-ubi
|
||||
IMAGE/recovery.bin := append-squashfs4-fakeroot | sysupgrade-tar kernel=$$$$(BIN_DIR)/openwrt-$$(BOARD)$$(if $$(SUBTARGET),-$$(SUBTARGET))-$$(DEVICE_NAME)-initramfs-zImage.itb rootfs=$$$$@ | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += zte_mf287plus
|
||||
|
||||
define Device/zte_mf289f
|
||||
$(call Device/zte_mf28x_common)
|
||||
DEVICE_MODEL := MF289F
|
||||
|
||||
@ -3,7 +3,6 @@ CONFIG_ALIGNMENT_TRAP=y
|
||||
# CONFIG_APQ_MMCC_8084 is not set
|
||||
CONFIG_AR8216_PHY=y
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
# CONFIG_ARCH_IPQ40XX is not set
|
||||
CONFIG_ARCH_IPQ806X=y
|
||||
|
||||
@ -508,6 +508,7 @@ CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
CONFIG_MTD_NAND_FSL_IFC=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_RAW_NAND=y
|
||||
CONFIG_MTD_SPI_NAND=y
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||
CONFIG_MTD_SPLIT_FIRMWARE=y
|
||||
@ -515,7 +516,7 @@ CONFIG_MTD_SPLIT_FIT_FW=y
|
||||
CONFIG_MTD_SST25L=y
|
||||
CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
# CONFIG_MTD_UBI_BLOCK is not set
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_MULTIPLEXER=y
|
||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
|
||||
@ -17,6 +17,10 @@ traverse,ls1043s)
|
||||
ucidef_set_led_netdev "xgact" "10G Activity" "ls1043s:yellow:10gact" "eth6"
|
||||
ucidef_set_led_netdev "xglink" "10G Link" "ls1043s:green:10glink" "eth6"
|
||||
;;
|
||||
traverse,ten64)
|
||||
ucidef_set_led_netdev "sfp1" "SFP 1" "ten64:green:sfp1:down" "eth8" "link tx rx"
|
||||
ucidef_set_led_netdev "sfp2" "SFP 2" "ten64:green:sfp2:up" "eth9" "link tx rx"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
@ -17,6 +17,10 @@ case "$(board_name)" in
|
||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3 eth6"
|
||||
ucidef_set_interface_wan "eth4"
|
||||
;;
|
||||
traverse,ten64)
|
||||
ucidef_set_interface_lan "eth0 eth1 eth2 eth3"
|
||||
ucidef_set_interface_wan "eth6"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
@ -20,6 +20,14 @@ traverse,ls1043s)
|
||||
ucidef_add_gpio_switch "lte_disable" "LTE Airplane Mode" "394"
|
||||
ucidef_add_gpio_switch "lte_power" "LTE Power" "395"
|
||||
;;
|
||||
traverse,ten64)
|
||||
ucidef_add_gpio_switch "lte_reset" "Cell Modem Reset" "376"
|
||||
ucidef_add_gpio_switch "lte_power" "Cell Modem Power" "377"
|
||||
ucidef_add_gpio_switch "lte_disable" "Cell Modem Airplane mode" "378"
|
||||
ucidef_add_gpio_switch "gnss_disable" "Cell Modem Disable GNSS receiver" "379"
|
||||
ucidef_add_gpio_switch "lower_sfp_txidsable" "Lower SFP+ TX Disable" "369"
|
||||
ucidef_add_gpio_switch "upper_sfp_txdisable" "Upper SFP+ TX Disable" "373"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
@ -49,6 +49,26 @@ platform_do_upgrade_traverse_nandubi() {
|
||||
nand_do_upgrade "$1" || (echo "Upgrade failed, setting bootsys ${bootsys}" && fw_setenv bootsys $bootsys)
|
||||
|
||||
}
|
||||
|
||||
platform_do_upgrade_traverse_slotubi() {
|
||||
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
|
||||
echo "Active boot slot: ${part}"
|
||||
new_active_sys="b"
|
||||
|
||||
if [ ! -z "${part}" ]; then
|
||||
if [ "${part}" = "ubia" ]; then
|
||||
CI_UBIPART="ubib"
|
||||
else
|
||||
CI_UBIPART="ubia"
|
||||
new_active_sys="a"
|
||||
fi
|
||||
fi
|
||||
echo "Updating UBI part ${CI_UBIPART}"
|
||||
fw_setenv "openwrt_active_sys" "${new_active_sys}"
|
||||
nand_do_upgrade "$1"
|
||||
return $?
|
||||
}
|
||||
|
||||
platform_copy_config_sdboot() {
|
||||
local diskdev partdev parttype=ext4
|
||||
|
||||
@ -90,6 +110,10 @@ platform_check_image() {
|
||||
nand_do_platform_check "traverse-ls1043" $1
|
||||
return $?
|
||||
;;
|
||||
traverse,ten64)
|
||||
nand_do_platform_check "ten64-mtd" $1
|
||||
return $?
|
||||
;;
|
||||
fsl,ls1012a-frdm | \
|
||||
fsl,ls1012a-frwy-sdboot | \
|
||||
fsl,ls1012a-rdb | \
|
||||
@ -130,6 +154,9 @@ platform_do_upgrade() {
|
||||
traverse,ls1043s)
|
||||
platform_do_upgrade_traverse_nandubi "$1"
|
||||
;;
|
||||
traverse,ten64)
|
||||
platform_do_upgrade_traverse_slotubi "${1}"
|
||||
;;
|
||||
fsl,ls1012a-frdm | \
|
||||
fsl,ls1012a-rdb | \
|
||||
fsl,ls1021a-twr | \
|
||||
|
||||
@ -64,6 +64,19 @@ define Build/traverse-fit
|
||||
@mv -f $@.new $@
|
||||
endef
|
||||
|
||||
define Build/traverse-fit-ls1088
|
||||
./mkits-multiple-config.sh -o $@.its -A $(LINUX_KARCH) \
|
||||
-v $(LINUX_VERSION) -k $@ -a $(KERNEL_LOADADDR) \
|
||||
-e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
||||
-C gzip -c 1 -c 2 \
|
||||
-d $(DTS_DIR)/freescale/fsl-ls1088a-ten64.dtb \
|
||||
-D "TEN64" -n "ten64" -a $(FDT_LOADADDR) -c 1 \
|
||||
-d $(DTS_DIR)/freescale/fsl-ls1088a-rdb.dtb \
|
||||
-D "LS1088ARDB" -n "ls1088ardb" -a $(FDT_LOADADDR) -c 2
|
||||
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
||||
@mv -f $@.new $@
|
||||
endef
|
||||
|
||||
define Device/fix-sysupgrade
|
||||
DEVICE_COMPAT_VERSION := 2.0
|
||||
DEVICE_COMPAT_MESSAGE := DTB was added to sysupgrade. Image format is different. \
|
||||
|
||||
@ -451,3 +451,35 @@ define Device/traverse_ls1043
|
||||
SUPPORTED_DEVICES := traverse,ls1043s traverse,ls1043v
|
||||
endef
|
||||
TARGET_DEVICES += traverse_ls1043
|
||||
|
||||
define Device/traverse_ten64_mtd
|
||||
DEVICE_VENDOR := Traverse
|
||||
DEVICE_MODEL := Ten64 (NAND boot)
|
||||
DEVICE_NAME := ten64-mtd
|
||||
DEVICE_PACKAGES += \
|
||||
uboot-envtools \
|
||||
kmod-rtc-rx8025 \
|
||||
kmod-sfp \
|
||||
kmod-i2c-mux-pca954x \
|
||||
restool
|
||||
DEVICE_DESCRIPTION = \
|
||||
Generate images for booting from NAND/ubifs on Traverse Ten64 (LS1088A) \
|
||||
family boards. For disk (NVMe/USB/SD) boot, use the armvirt target instead.
|
||||
FILESYSTEMS := squashfs
|
||||
KERNEL_LOADADDR := 0x80000000
|
||||
KERNEL_ENTRY_POINT := 0x80000000
|
||||
FDT_LOADADDR := 0x90000000
|
||||
KERNEL_SUFFIX := -kernel.itb
|
||||
DEVICE_DTS := freescale/fsl-ls1088a-ten64
|
||||
IMAGES := nand.ubi sysupgrade.bin
|
||||
KERNEL := kernel-bin | gzip | traverse-fit-ls1088 gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb $$(FDT_LOADADDR)
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
IMAGE/nand.ubi := append-ubi
|
||||
KERNEL_IN_UBI := 1
|
||||
BLOCKSIZE := 128KiB
|
||||
PAGESIZE := 2048
|
||||
MKUBIFS_OPTS := -m $$(PAGESIZE) -e 124KiB -c 600
|
||||
SUPPORTED_DEVICES = traverse,ten64
|
||||
endef
|
||||
TARGET_DEVICES += traverse_ten64_mtd
|
||||
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
From c314138bd045e050432158ab021160de3ba51c5e Mon Sep 17 00:00:00 2001
|
||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
Date: Thu, 30 Jan 2020 22:42:38 +0000
|
||||
Subject: [PATCH 2/4] net: dpaa2-mac: add support for more 10G modes
|
||||
|
||||
Phylink documentation says:
|
||||
* Note that the PHY may be able to transform from one connection
|
||||
* technology to another, so, eg, don't clear 1000BaseX just
|
||||
* because the MAC is unable to BaseX mode. This is more about
|
||||
* clearing unsupported speeds and duplex settings. The port modes
|
||||
* should not be cleared; phylink_set_port_modes() will help with this.
|
||||
|
||||
So add the missing 10G modes.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
|
||||
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
|
||||
@@ -140,6 +140,12 @@ static void dpaa2_mac_validate(struct ph
|
||||
case PHY_INTERFACE_MODE_10GBASER:
|
||||
case PHY_INTERFACE_MODE_USXGMII:
|
||||
phylink_set(mask, 10000baseT_Full);
|
||||
+ phylink_set(mask, 10000baseKR_Full);
|
||||
+ phylink_set(mask, 10000baseCR_Full);
|
||||
+ phylink_set(mask, 10000baseSR_Full);
|
||||
+ phylink_set(mask, 10000baseLR_Full);
|
||||
+ phylink_set(mask, 10000baseLRM_Full);
|
||||
+ phylink_set(mask, 10000baseER_Full);
|
||||
if (state->interface == PHY_INTERFACE_MODE_10GBASER)
|
||||
break;
|
||||
phylink_set(mask, 5000baseT_Full);
|
||||
@ -0,0 +1,74 @@
|
||||
From d5af37ae22f0364be9ded773d737dd6e5b207b10 Mon Sep 17 00:00:00 2001
|
||||
From: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
Date: Thu, 21 Nov 2019 21:15:25 +0200
|
||||
Subject: [PATCH 3/4] dpaa2-eth: do not hold rtnl_lock on phylink_create() or
|
||||
_destroy()
|
||||
|
||||
The rtnl_lock should not be held when calling phylink_create() or
|
||||
phylink_destroy() since it leads to the deadlock listed below:
|
||||
|
||||
[ 18.656576] rtnl_lock+0x18/0x20
|
||||
[ 18.659798] sfp_bus_add_upstream+0x28/0x90
|
||||
[ 18.663974] phylink_create+0x2cc/0x828
|
||||
[ 18.667803] dpaa2_mac_connect+0x14c/0x2a8
|
||||
[ 18.671890] dpaa2_eth_connect_mac+0x94/0xd8
|
||||
|
||||
Fix this by moving the _lock() and _unlock() calls just outside of
|
||||
phylink_of_phy_connect() and phylink_disconnect_phy().
|
||||
|
||||
Fixes: 719479230893 ("dpaa2-eth: add MAC/PHY support through phylink")
|
||||
Reported-by: Russell King <linux@armlinux.org.uk>
|
||||
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
---
|
||||
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 ----
|
||||
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 4 ++++
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
|
||||
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
|
||||
@@ -4217,12 +4217,10 @@ static irqreturn_t dpni_irq0_handler_thr
|
||||
dpaa2_eth_set_mac_addr(netdev_priv(net_dev));
|
||||
dpaa2_eth_update_tx_fqids(priv);
|
||||
|
||||
- rtnl_lock();
|
||||
if (dpaa2_eth_has_mac(priv))
|
||||
dpaa2_eth_disconnect_mac(priv);
|
||||
else
|
||||
dpaa2_eth_connect_mac(priv);
|
||||
- rtnl_unlock();
|
||||
}
|
||||
|
||||
return IRQ_HANDLED;
|
||||
@@ -4516,9 +4514,7 @@ static int dpaa2_eth_remove(struct fsl_m
|
||||
#endif
|
||||
|
||||
unregister_netdev(net_dev);
|
||||
- rtnl_lock();
|
||||
dpaa2_eth_disconnect_mac(priv);
|
||||
- rtnl_unlock();
|
||||
|
||||
dpaa2_eth_dl_port_del(priv);
|
||||
dpaa2_eth_dl_traps_unregister(priv);
|
||||
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
|
||||
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
|
||||
@@ -357,7 +357,9 @@ int dpaa2_mac_connect(struct dpaa2_mac *
|
||||
if (mac->pcs)
|
||||
phylink_set_pcs(mac->phylink, &mac->pcs->pcs);
|
||||
|
||||
+ rtnl_lock();
|
||||
err = phylink_fwnode_phy_connect(mac->phylink, dpmac_node, 0);
|
||||
+ rtnl_unlock();
|
||||
if (err) {
|
||||
netdev_err(net_dev, "phylink_fwnode_phy_connect() = %d\n", err);
|
||||
goto err_phylink_destroy;
|
||||
@@ -378,7 +380,9 @@ void dpaa2_mac_disconnect(struct dpaa2_m
|
||||
if (!mac->phylink)
|
||||
return;
|
||||
|
||||
+ rtnl_lock();
|
||||
phylink_disconnect_phy(mac->phylink);
|
||||
+ rtnl_unlock();
|
||||
phylink_destroy(mac->phylink);
|
||||
dpaa2_pcs_destroy(mac);
|
||||
}
|
||||
@ -1,5 +1,4 @@
|
||||
CONFIG_ARCH_32BIT_OFF_T=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
|
||||
276
target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
Normal file
276
target/linux/mediatek/dts/mt7986b-mercusys-mr90x-v1.dts
Normal file
@ -0,0 +1,276 @@
|
||||
// SPDX-License-Identifier: (GL-2.0 OR MIT)
|
||||
|
||||
/dts-v1/;
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
#include "mt7986b.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "mercusys,mr90x-v1", "mediatek,mt7986b";
|
||||
model = "Mercusys MR90X v1";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
|
||||
led-boot = &led_status_green;
|
||||
led-failsafe = &led_status_green;
|
||||
led-running = &led_status_green;
|
||||
led-upgrade = &led_status_green;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0 0x40000000 0 0x20000000>;
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led-0 {
|
||||
label = "green:lan2";
|
||||
gpios = <&pio 7 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-1 {
|
||||
label = "green:lan1";
|
||||
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-2 {
|
||||
label = "green:lan0";
|
||||
gpios = <&pio 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-3 {
|
||||
label = "green:wan";
|
||||
gpios = <&pio 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-4 {
|
||||
label = "orange:status";
|
||||
gpios = <&pio 16 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_status_green: led-5 {
|
||||
label = "green:status";
|
||||
gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
|
||||
panic-indicator;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&crypto {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ð {
|
||||
status = "okay";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-handle = <&phy6>;
|
||||
phy-mode = "2500base-x";
|
||||
};
|
||||
|
||||
mdio: mdio-bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <1500000>;
|
||||
reset-post-delay-us = <1000000>;
|
||||
|
||||
/* WAN/LAN 2.5Gbps phy
|
||||
MaxLinear GPY211C0VC (SLNW8) */
|
||||
phy6: phy@6 {
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reg = <6>;
|
||||
};
|
||||
|
||||
switch: switch@0 {
|
||||
compatible = "mediatek,mt7531";
|
||||
reg = <31>;
|
||||
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&switch {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
/* WAN/LAN 1Gbps port */
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
};
|
||||
|
||||
/* LAN1 port */
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
/* LAN2 port */
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pio {
|
||||
spi_flash_pins: spi-flash-pins-33-to-38 {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
conf-pu {
|
||||
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
|
||||
drive-strength = <8>;
|
||||
mediatek,pull-up-adv = <0>; /* bias-disable */
|
||||
};
|
||||
conf-pd {
|
||||
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
|
||||
drive-strength = <8>;
|
||||
mediatek,pull-down-adv = <0>; /* bias-disable */
|
||||
};
|
||||
};
|
||||
|
||||
wf_2g_5g_pins: wf_2g_5g-pins {
|
||||
mux {
|
||||
function = "wifi";
|
||||
groups = "wf_2g", "wf_5g";
|
||||
};
|
||||
conf {
|
||||
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
|
||||
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
|
||||
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
|
||||
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
|
||||
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
|
||||
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
|
||||
"WF1_TOP_CLK", "WF1_TOP_DATA";
|
||||
drive-strength = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi_flash_pins>;
|
||||
status = "okay";
|
||||
|
||||
spi_nand_flash: flash@0 {
|
||||
compatible = "spi-nand";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <20000000>;
|
||||
spi-tx-buswidth = <4>;
|
||||
spi-rx-buswidth = <4>;
|
||||
|
||||
partitions: partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "boot";
|
||||
reg = <0x0 0x200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x200000 0x100000>;
|
||||
};
|
||||
|
||||
partition@300000 {
|
||||
label = "ubi0";
|
||||
reg = <0x300000 0x3200000>;
|
||||
};
|
||||
|
||||
partition@3500000 {
|
||||
label = "ubi1";
|
||||
reg = <0x3500000 0x3200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@6700000 {
|
||||
label = "userconfig";
|
||||
reg = <0x6700000 0x800000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@6f00000 {
|
||||
label = "tp_data";
|
||||
reg = <0x6f00000 0x400000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&trng {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wifi {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&wf_2g_5g_pins>;
|
||||
};
|
||||
@ -15,6 +15,12 @@ livinet,zr-3020-ubootmod)
|
||||
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
|
||||
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0"
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
ucidef_set_led_netdev "lan0" "lan0" "green:lan0" "lan0" "link tx rx"
|
||||
ucidef_set_led_netdev "lan1" "lan2" "green:lan1" "lan1" "link tx rx"
|
||||
ucidef_set_led_netdev "lan2" "lan2" "green:lan2" "lan2" "link tx rx"
|
||||
ucidef_set_led_netdev "wan" "wan" "green:wan" "eth1" "link tx rx"
|
||||
;;
|
||||
netgear,wax220)
|
||||
ucidef_set_led_netdev "eth0" "LAN" "green:lan" "eth0"
|
||||
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
|
||||
|
||||
@ -36,6 +36,9 @@ mediatek_setup_interfaces()
|
||||
mediatek,mt7988a-dsa-10g-spim-snand)
|
||||
ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3" "eth1 eth2"
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
ucidef_set_interfaces_lan_wan "lan0 lan1 lan2" eth1
|
||||
;;
|
||||
tplink,tl-xdr4288|\
|
||||
tplink,tl-xdr6088)
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" eth1
|
||||
@ -71,6 +74,10 @@ mediatek_setup_macs()
|
||||
bananapi,bpi-r3)
|
||||
wan_mac=$(macaddr_add $(cat /sys/class/net/eth0/address) 1)
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
label_mac=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
|
||||
lan_mac=$label_mac
|
||||
;;
|
||||
netgear,wax220)
|
||||
lan_mac=$(mtd_get_mac_ascii u-boot-env mac)
|
||||
label_mac=$lan_mac
|
||||
|
||||
@ -37,6 +37,11 @@ case "$board" in
|
||||
addr=$(mtd_get_mac_ascii config2 wifi5gmac)
|
||||
[ "$PHYNBR" = "1" ] && echo $macaddr > /sys${DEVPATH}/macaddress
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
|
||||
[ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
|
||||
[ "$PHYNBR" = "1" ] && macaddr_add $addr -1 > /sys${DEVPATH}/macaddress
|
||||
;;
|
||||
netgear,wax220)
|
||||
hw_mac_addr=$(mtd_get_mac_ascii u-boot-env mac)
|
||||
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
. /lib/functions/system.sh
|
||||
|
||||
mount_ubi_part() {
|
||||
local part_name="$1"
|
||||
local mtd_num=$(grep $part_name /proc/mtd | cut -c4)
|
||||
local ubi_num=$(ubiattach -m $mtd_num | \
|
||||
awk -F',' '/UBI device number [0-9]{1,}/{print $1}' | \
|
||||
awk '{print $4}')
|
||||
mkdir /tmp/$part_name
|
||||
mount -r -t ubifs ubi$ubi_num:$part_name /tmp/$part_name
|
||||
}
|
||||
|
||||
preinit_mount_cfg_part() {
|
||||
case $(board_name) in
|
||||
mercusys,mr90x-v1)
|
||||
mount_ubi_part "tp_data"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main preinit_mount_cfg_part
|
||||
@ -8,6 +8,12 @@ preinit_set_mac_address() {
|
||||
ip link set dev eth0 address "$addr"
|
||||
ip link set dev eth1 address "$addr"
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
addr=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
|
||||
ip link set dev eth1 address "$(macaddr_add $addr 1)"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
. /lib/functions/system.sh
|
||||
|
||||
preinit_fix_eeprom() {
|
||||
case $(board_name) in
|
||||
mercusys,mr90x-v1)
|
||||
eeprom="/lib/firmware/mediatek/mt7986_eeprom_mt7975_dual.bin"
|
||||
oem="/tmp/tp_data/MT7986_EEPROM.bin"
|
||||
[ ! -L $eeprom -a -e $oem ] && \
|
||||
mv -f $eeprom $eeprom.bak && ln -s $oem $eeprom
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main preinit_fix_eeprom
|
||||
@ -70,6 +70,10 @@ platform_do_upgrade() {
|
||||
cudy,wr3000-v1)
|
||||
default_do_upgrade "$1"
|
||||
;;
|
||||
mercusys,mr90x-v1)
|
||||
CI_UBIPART="ubi0"
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
qihoo,360t7|\
|
||||
tplink,tl-xdr4288|\
|
||||
tplink,tl-xdr6086|\
|
||||
|
||||
@ -284,6 +284,20 @@ define Device/mediatek_mt7988a-rfb-nand
|
||||
endef
|
||||
TARGET_DEVICES += mediatek_mt7988a-rfb-nand
|
||||
|
||||
define Device/mercusys_mr90x-v1
|
||||
DEVICE_VENDOR := Mercusys
|
||||
DEVICE_MODEL := MR90X v1
|
||||
DEVICE_DTS := mt7986b-mercusys-mr90x-v1
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware
|
||||
UBINIZE_OPTS := -E 5
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
IMAGE_SIZE := 51200k
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += mercusys_mr90x-v1
|
||||
|
||||
define Device/qihoo_360t7
|
||||
DEVICE_VENDOR := Qihoo
|
||||
DEVICE_MODEL := 360T7 (OpenWrt U-Boot layout)
|
||||
|
||||
@ -4,7 +4,6 @@ CONFIG_64BIT=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
|
||||
165
target/linux/ramips/dts/mt7620a_dlink_dir-806a-b1.dts
Executable file
165
target/linux/ramips/dts/mt7620a_dlink_dir-806a-b1.dts
Executable file
@ -0,0 +1,165 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "mt7620a.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
compatible = "dlink,dir-806a-b1", "ralink,mt7620a-soc";
|
||||
model = "D-Link DIR-806A B1";
|
||||
|
||||
aliases {
|
||||
led-boot = &wps_led;
|
||||
led-failsafe = &wps_led;
|
||||
led-running = &wps_led;
|
||||
led-upgrade = &wps_led;
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; // #12
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
wifi_led: 2.4g {
|
||||
label = "green:wlan";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; // #72
|
||||
};
|
||||
|
||||
wps_led: wps {
|
||||
label = "green:wps";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WPS;
|
||||
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; // #39
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <48000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "ALL";
|
||||
reg = <0x0 0x800000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@0_1 {
|
||||
label = "u-boot";
|
||||
reg = <0x0 0x30000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@30000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x30000 0x10000>;
|
||||
};
|
||||
|
||||
factory: partition@40000 {
|
||||
label = "Factory";
|
||||
reg = <0x40000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
compatible = "denx,uimage";
|
||||
label = "firmware";
|
||||
reg = <0x50000 0x7b0000>;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
groups = "i2c", "uartf", "ephy";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
ðernet {
|
||||
nvmem-cells = <&macaddr_factory_4>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-2)>;
|
||||
};
|
||||
|
||||
&wmac {
|
||||
pinctrl-names = "default", "pa_gpio";
|
||||
pinctrl-0 = <&pa_pins>;
|
||||
pinctrl-1 = <&pa_gpio_pins>;
|
||||
|
||||
ralink,mtd-eeprom = <&factory 0x0>;
|
||||
nvmem-cells = <&macaddr_factory_4>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x8000>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
|
||||
nvmem-cells = <&macaddr_factory_8004>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-3)>;
|
||||
|
||||
led {
|
||||
led-active-low;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&factory {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_factory_4: macaddr@4 {
|
||||
reg = <0x4 0x6>;
|
||||
};
|
||||
|
||||
macaddr_factory_8004: macaddr@8004 {
|
||||
reg = <0x8004 0x6>;
|
||||
};
|
||||
};
|
||||
217
target/linux/ramips/dts/mt7620a_edimax_br-6208ac-v2.dts
Normal file
217
target/linux/ramips/dts/mt7620a_edimax_br-6208ac-v2.dts
Normal file
@ -0,0 +1,217 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (C) 2023 Stefan Weil <sw@weilnetz.de>
|
||||
*/
|
||||
|
||||
#include "mt7620a.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/mtd/partitions/uimage.h>
|
||||
|
||||
/ {
|
||||
compatible = "edimax,br-6208ac-v2", "ralink,mt7620a-soc";
|
||||
model = "Edimax BR-6208AC v2";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_power;
|
||||
led-failsafe = &led_power;
|
||||
led-running = &led_power;
|
||||
led-upgrade = &led_firmware;
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
// Vendor firmware: /proc/RESET_BUTTON
|
||||
reset_wps {
|
||||
label = "reset_wps";
|
||||
gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
// Vendor firmware: /proc/driver/led
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_power: power {
|
||||
label = "green:power";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_POWER;
|
||||
gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
// RALINK_REG_PIO3924DATA 39-24
|
||||
led_internet: internet {
|
||||
label = "green:internet";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
// RALINK_REG_PIO7140DATA 44-40
|
||||
led_wlan_2_4ghz: wlan_2_4ghz {
|
||||
label = "green:wlan2g";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
|
||||
// RALINK_REG_PIO7140DATA 43-40
|
||||
led_wlan_5ghz: wlan_5ghz {
|
||||
label = "green:wlan5g";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
// RALINK_REG_PIO7140DATA 42-40
|
||||
led_firmware: firmware {
|
||||
label = "green:firmware";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
|
||||
// default-state = "keep";
|
||||
};
|
||||
|
||||
// RALINK_REG_PIO7140DATA 41-40
|
||||
led_vpn: vpn {
|
||||
label = "green:vpn";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gdma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
// Vendor firmware: RALINK_REG_PIO7140 - gpio0: gpio@600
|
||||
// Vendor firmware: RALINK_REG_PIO3924 - gpio1: gpio@638
|
||||
// Vendor firmware: RALINK_REG_PIO7140 - gpio2: gpio@660
|
||||
// Vendor firmware: RALINK_REG_PIO72 - gpio3: gpio@688
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
// Vendor partitions:
|
||||
// 0x000000000000-0x000000030000 : "Bootloader"
|
||||
// 0x000000030000-0x000000040000 : "Config"
|
||||
// 0x000000040000-0x000000050000 : "Factory"
|
||||
// 0x000000050000-0x000000070000 : "Cimage"
|
||||
// 0x000000070000-0x000000fe0000 : "Uimage"
|
||||
// 0x000000070000-0x000000190000 : "Kernel"
|
||||
// 0x000000190000-0x000000fe0000 : "RootFS"
|
||||
// 0x000000fe0000-0x000001000000 : "FreeSpace"
|
||||
|
||||
// Bootloader
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0 0x30000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
// Config
|
||||
partition@30000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x30000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
// Factory
|
||||
factory: partition@40000 {
|
||||
label = "factory";
|
||||
reg = <0x40000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
// Cimage
|
||||
partition@50000 {
|
||||
label = "cimage";
|
||||
reg = <0x50000 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@70000 {
|
||||
compatible = "openwrt,uimage", "denx,uimage";
|
||||
openwrt,offset = <FW_EDIMAX_OFFSET>;
|
||||
openwrt,partition-magic = <FW_MAGIC_EDIMAX>;
|
||||
label = "firmware";
|
||||
reg = <0x00070000 0x00f70000>;
|
||||
};
|
||||
|
||||
// FreeSpace
|
||||
partition@fe0000 {
|
||||
label = "freespace";
|
||||
reg = <0xfe0000 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
// TODO: "spi refclk"?
|
||||
groups = "i2c", "uartf", "rgmii1", "rgmii2", "ephy", "wled", "nd_sd";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
ðernet {
|
||||
nvmem-cells = <&macaddr_factory_2e>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
mediatek,portmap = "llllw";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
ralink,mtd-eeprom = <&factory 0x0>;
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x8000>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&factory {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_factory_4: macaddr@4 {
|
||||
reg = <0x4 0x6>;
|
||||
};
|
||||
|
||||
macaddr_factory_2e: macaddr@2e {
|
||||
reg = <0x2e 0x6>;
|
||||
};
|
||||
};
|
||||
@ -48,12 +48,12 @@
|
||||
|
||||
lan1 {
|
||||
label = "green:lan1";
|
||||
gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan2 {
|
||||
label = "green:lan2";
|
||||
gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
|
||||
@ -232,6 +232,19 @@ define Device/dlink_dir-510l
|
||||
endef
|
||||
TARGET_DEVICES += dlink_dir-510l
|
||||
|
||||
define Device/dlink_dir-806a-b1
|
||||
SOC := mt7620a
|
||||
IMAGE_SIZE := 7872k
|
||||
DEVICE_VENDOR := D-Link
|
||||
DEVICE_MODEL := DIR-806A
|
||||
DEVICE_VARIANT := B1
|
||||
DEVICE_PACKAGES += kmod-mt76x0e
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | append-rootfs | pad-rootfs | check-size | \
|
||||
sign-dlink-ru cef285a2e29e40b2baab31277d44298b
|
||||
endef
|
||||
TARGET_DEVICES += dlink_dir-806a-b1
|
||||
|
||||
define Device/dlink_dir-810l
|
||||
SOC := mt7620a
|
||||
DEVICE_PACKAGES := kmod-mt76x0e
|
||||
@ -389,6 +402,22 @@ define Device/dovado_tiny-ac
|
||||
endef
|
||||
TARGET_DEVICES += dovado_tiny-ac
|
||||
|
||||
define Device/edimax_br-6208ac-v2
|
||||
SOC := mt7620a
|
||||
DEVICE_VENDOR := Edimax
|
||||
DEVICE_MODEL := BR-6208AC
|
||||
DEVICE_VARIANT := V2
|
||||
BLOCKSIZE := 64k
|
||||
IMAGE_SIZE := 7744k
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \
|
||||
edimax-header -s CSYS -m RN71 -f 0x70000 -S 0x01100000 | pad-rootfs | \
|
||||
check-size | append-metadata
|
||||
DEVICE_PACKAGES := kmod-mt76x2 kmod-mt76x0e kmod-phy-realtek \
|
||||
kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport \
|
||||
uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += edimax_br-6208ac-v2
|
||||
|
||||
define Device/edimax_br-6478ac-v2
|
||||
SOC := mt7620a
|
||||
DEVICE_VENDOR := Edimax
|
||||
|
||||
@ -48,6 +48,9 @@ comfast,cf-wr800n)
|
||||
ucidef_set_led_netdev "lan" "lan" "white:ethernet" eth0.1
|
||||
ucidef_set_led_netdev "wifi_led" "wifi" "white:wifi" "wlan0"
|
||||
;;
|
||||
dlink,dir-806a-b1)
|
||||
ucidef_set_led_netdev "wifi_led" "2.4g" "green:wlan" "phy1-ap0"
|
||||
;;
|
||||
dlink,dir-810l|\
|
||||
trendnet,tew-810dr)
|
||||
ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
|
||||
@ -102,6 +105,13 @@ domywifi,dw22d)
|
||||
dovado,tiny-ac)
|
||||
ucidef_set_led_netdev "wifi_led" "wifi" "orange:wifi" "wlan0"
|
||||
;;
|
||||
edimax,br-6208ac-v2)
|
||||
ucidef_set_led_netdev "wan" "Internet" "green:internet" "eth0.2" "tx rx"
|
||||
ucidef_set_led_netdev "wifi_led" "WLAN 2.4 GHz" "green:wlan2g" "wlan1"
|
||||
ucidef_set_led_netdev "wifi_led" "WLAN 5 GHz" "green:wlan5g" "wlan1"
|
||||
ucidef_set_led_netdev "wifi_led" "Firmware" "green:firmware" "wlan1"
|
||||
ucidef_set_led_netdev "lan" "VPN" "green:vpn" "switch0" "0x20"
|
||||
;;
|
||||
edimax,br-6478ac-v2|\
|
||||
edimax,ew-7478apc)
|
||||
ucidef_set_led_netdev "wifi_led" "wifi" "blue:wlan" "wlan0"
|
||||
@ -223,8 +233,8 @@ tplink,re200-v1)
|
||||
ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0"
|
||||
;;
|
||||
wavlink,wl-wn535k1)
|
||||
ucidef_set_led_switch "lan1" "lan2" "green:lan1" "switch0" "0x04"
|
||||
ucidef_set_led_switch "lan2" "lan2" "green:lan2" "switch0" "0x20"
|
||||
ucidef_set_led_switch "lan1" "lan1" "green:lan1" "switch0" "0x20"
|
||||
ucidef_set_led_switch "lan2" "lan2" "green:lan2" "switch0" "0x04"
|
||||
ucidef_set_led_switch "wan" "wan" "green:wan" "switch0" "0x10"
|
||||
;;
|
||||
wavlink,wl-wn579x3)
|
||||
|
||||
@ -80,6 +80,7 @@ ramips_setup_interfaces()
|
||||
asus,rt-ac54u|\
|
||||
asus,rt-n14u|\
|
||||
bdcom,wap2100-sk|\
|
||||
dlink,dir-806a-b1|\
|
||||
domywifi,dm202|\
|
||||
domywifi,dm203|\
|
||||
domywifi,dw22d|\
|
||||
@ -143,6 +144,10 @@ ramips_setup_interfaces()
|
||||
"5:lan" "6@eth0"
|
||||
ucidef_add_switch_attr "switch1" "enable" "false"
|
||||
;;
|
||||
edimax,br-6208ac-v2)
|
||||
ucidef_add_switch "switch0" \
|
||||
"1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
|
||||
;;
|
||||
edimax,br-6478ac-v2|\
|
||||
lb-link,bl-w1200|\
|
||||
tplink,archer-c2-v1)
|
||||
@ -236,7 +241,7 @@ ramips_setup_interfaces()
|
||||
;;
|
||||
wavlink,wl-wn535k1)
|
||||
ucidef_add_switch "switch0" \
|
||||
"2:lan" "5:lan" "4:wan" "6@eth0"
|
||||
"2:lan:2" "5:lan:1" "4:wan" "6@eth0"
|
||||
;;
|
||||
wavlink,wl-wn579x3)
|
||||
ucidef_add_switch "switch0" \
|
||||
@ -274,6 +279,7 @@ ramips_setup_macs()
|
||||
asus,rt-n12p|\
|
||||
asus,rt-n14u|\
|
||||
bdcom,wap2100-sk|\
|
||||
edimax,br-6208ac-v2|\
|
||||
edimax,ew-7478apc|\
|
||||
fon,fon2601|\
|
||||
head-weblink,hdrm200|\
|
||||
|
||||
@ -2,7 +2,6 @@ CONFIG_64BIT=y
|
||||
CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
|
||||
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
|
||||
Loading…
Reference in New Issue
Block a user