51

(620 odpowiedzi, napisanych Oprogramowanie / Software)

Opkg zostaje, dobre mam wrażenie?

52

(57 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Istnieje w ogóle taki parametr dla usteer'a?


band_steering_interval i band_steering_min_snr?

Cezary napisał/a:

Mówisz o ich serwisie? Wywaliłem wpad-basic-mbedtls, dodałem wpad-openssl, zbudowało paczkę...

Myślałem o Twojej paczce "backupandrestore". Wpada zawsze trzeba ręcznie ogarniać, bo nie usuwa istniejącego.

54

(176 odpowiedzi, napisanych Oprogramowanie / Software)

szyper napisał/a:

Świeci sie jak policja ;-) potwierdzam, ze standardowo amber (żółta), oraz wifi:blue i red sobie radośnie migają, można je też programować.


To jest zonk, bo mam tak:

+               led_0 {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+               };
+
+               led_1 {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+               };
+
+               led_status_: led_2 {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pio 4 GPIO_ACTIVE_LOW>;
+               };
+


Proszę byś powiedział która ma jaki kolor i rolę.

Jedyny znaleziony problem przez lata, to paczka "wpad", która nie może się zainstalować bo mały wpad jest w obrazie. Jest opcja zrobić to tak, by automatycznie wywalało domyślnego wpada?

56

(176 odpowiedzi, napisanych Oprogramowanie / Software)

szyper napisał/a:

Świeci sie jak policja ;-) potwierdzam, ze standardowo amber (żółta), oraz wifi:blue i red sobie radośnie migają, można je też programować.
Stocka moge przywrócić jakby co. Mam backup partycji - jak powiesz jak najlepiej.

To piszę do skośnych by intermediate robili.

57

(6 odpowiedzi, napisanych Sprzęt / Hardware)

ambrozy5 napisał/a:

a tam sie da spi zamontowac z 16-32MB ? chyba był o tym temat, kiedyś były fajne.

Kupiłem kilka nowych, muszę tylko skopiować bootloader i dane kalibracyjne. Ale wiecznie nie ma kiedy. wink

Będzie spokój na kilka lat znowu.

58

(176 odpowiedzi, napisanych Oprogramowanie / Software)

Bardziej pytanie czy Ledy wszystkie działają. To mi potrzebne by wysłać prośbę do chinoli.
A potem, by dorobić wsparcie oficjalne, musimy być pewni, że obraz pośredni działa. Potrzebny będzie ktoś ze stock softem. Może Ambrozy jeszcze swój ma dziewiczy.

59

(6 odpowiedzi, napisanych Sprzęt / Hardware)

Inna sprawa, że flashe w R6220 zaczynają się sypać. Już kilka takich mam.

60

(176 odpowiedzi, napisanych Oprogramowanie / Software)

szyper napisał/a:

Jest dobrze - wszystko gra, ja na blogu Cudy prosilem o intermediate, ale od Ciebie może bardziej posłuchają ;-)
Pracuje od 1,5 tygodnia na nim w domu - transfery piekne, nic sie nie dzieje złego, zasięg spory.
Pozdrawiam i dzięki za pomoc.

Ledy i mac address jak w oryginale?

61

(176 odpowiedzi, napisanych Oprogramowanie / Software)

Sprawdźcie te źródła ode mnie. Jeśli wszystko będzie działać, to napiszę chinolom by dali obraz pośredni i spróbujemy uzyskać oficjalne wsparcie.

62

(860 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:
Królik napisał/a:
Cezary napisał/a:

OK, wrzucę. Będzie wraz z następnymi buildami.

Dzięki, kiedy planujesz najbliższe wydanie?

Masz https://dl.eko.one.pl/firmware/?version … outdoor-v1


Działa, dziękuję. smile

63

(5 odpowiedzi, napisanych Sprzęt / Hardware)

pld napisał/a:

A to też ciekawe. Żeby tego użyć to wystarczy slot wlutować czy jakieś rekompilacje potrzebne?

Na 99 procent trzeba będzie włączyć w dts i zrekompilowac.

64

(4,520 odpowiedzi, napisanych Oprogramowanie / Software)

Królik napisał/a:

Chociaż  AP3000 Outdoor z mt7981 też wygląda ciekawie. Oba nie mają wsparcia póki co, ale to nie problem przy tym hardware.

Jak coś to polecam. APek ma mocne radia, jak ktoś mieszka na zadupiu, to można niezły dopał zrobić jak się TW country ustawi. Teoretycznie można 28dBm ustawić. Moje dwa na 25dBm ustawiłem, żeby się nie zagotowały i zrobiły stabilny most radiowy. Zasięg 2.4 porównywalny z legendarnym TL-WDR1043. 5g za to na 30 metrach dalej robi 400-500mbit a zestawia się na 866.

Filogic to teraz moja ulubiona architektura do OpenWrt. smile

65

(5 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

To  raczej  slot na kartę SD

Dokładnie tak.

66

(860 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Poprawiłem skrypty, dzięki.

Są jeszcze w kupie urządzeń "mt7615_phy*". Zobaczyłem to w ea7500v2. Można by też dorzucić do ramipsa z tym dodatkiem.

67

(860 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary, dorobiłem temperatury do sysinfo dla filogic na podstawie Twoich skryptów z x86. Dorzucisz do obrazów?

#!/bin/sh
T=""
F=/sys/class/hwmon/hwmon*
for f in $F; do
    [ -e $f ] || continue
    [ -e $f/name ] && NAME=$(cat $f/name)
    if [ -n "$NAME" ]; then
        case "$NAME" in
            k10temp|coretemp|armada_thermal|cpu_thermal)
                for i in $f/temp*_input; do
                    [ -n "$T" ] && T="$T, "
                    T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $i 2>/dev/null)
                done
                ;;
        esac
    fi
done
[ -n "$T" ] && echo "CPU temp: $T"
exit 0
#!/bin/sh
T=""
F=/sys/class/hwmon/hwmon*
for f in $F; do
    [ -e $f ] || continue
    [ -e $f/name ] && NAME=$(cat $f/name)
    if [ -n "$NAME" ]; then
        case "$NAME" in
            ath10k_hwmon|mt7915_phy*)
                [ -n "$T" ] && T="$T, "
                T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp1_input 2>/dev/null)
                ;;
        esac
    fi
done
[ -n "$T" ] && echo "Wi-Fi chip temp: $T"
exit 0

68

(860 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

OK, wrzucę. Będzie wraz z następnymi buildami.

Dzięki, kiedy planujesz najbliższe wydanie?

69

(860 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary, dorzuciłbyś do 23.05 Cudy AP3000 Outdoor?

commit z PR (https://github.com/openwrt/openwrt/pull/16156) wchodzi gładko na drzewo 23.05. Muszę swoją sztukę wywieźć do teścia a nie lubię tam mieć własnych kompilatów. smile

70

(4,520 odpowiedzi, napisanych Oprogramowanie / Software)

szyper napisał/a:

@Króliku, kogo męczyć bezpośrednio o intermediate w Cudy support@cudy.com czy cos bardziej personalnego - masz jakies doswiadczenia...?

Pisałem na support@cudy.com. Odpisywali bezosobowo z tego maila. Nie wiem czy gadałem z jednym Chinolem czy kilkoma nawet.

71

(176 odpowiedzi, napisanych Oprogramowanie / Software)

Nie do końca, jest trochę różnic, na telefonie ciężko mi stwierdzić czy kosmetyka czy nie.

Backup po prostu wszystkie partycje. Metoda z ax3600 powinna zadziałać.

72

(176 odpowiedzi, napisanych Oprogramowanie / Software)

From 678134c440e3b85cf371f9c0648f96390872632d Mon Sep 17 00:00:00 2001
From: Pawel Dembicki <paweldembicki@gmail.com>
Date: Tue, 13 Aug 2024 22:54:44 +0200
Subject: [PATCH] mediatek: filogic: add support for Cudy AP3000 V1

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
---
 .../lib/preinit/05_set_preinit_iface          |   1 +
 .../mediatek/dts/mt7981b-cudy-ap3000-v1.dts   | 209 ++++++++++++++++++
 .../filogic/base-files/etc/board.d/02_network |   1 +
 .../etc/hotplug.d/ieee80211/11_fix_wifi_mac   |   3 +-
 target/linux/mediatek/image/filogic.mk        |  17 ++
 5 files changed, 230 insertions(+), 1 deletion(-)
 create mode 100644 target/linux/mediatek/dts/mt7981b-cudy-ap3000-v1.dts

diff --git a/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface b/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface
index 8e74c577cd50..4ceb9cf1895b 100644
--- a/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface
+++ b/target/linux/mediatek/base-files/lib/preinit/05_set_preinit_iface
@@ -6,6 +6,7 @@ set_preinit_iface() {
         ip link set eth1 up
         ifname=eth1
         ;;
+    cudy,ap3000-v1|\
     cudy,ap3000outdoor-v1|\
     cudy,re3000-v1|\
     ubnt,unifi-6-lr|\
diff --git a/target/linux/mediatek/dts/mt7981b-cudy-ap3000-v1.dts b/target/linux/mediatek/dts/mt7981b-cudy-ap3000-v1.dts
new file mode 100644
index 000000000000..d1b65db94138
--- /dev/null
+++ b/target/linux/mediatek/dts/mt7981b-cudy-ap3000-v1.dts
@@ -0,0 +1,209 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981.dtsi"
+
+/ {
+    model = "Cudy AP3000 v1";
+    compatible = "cudy,ap3000-v1", "mediatek,mt7981-spim-snand-rfb";
+
+    aliases {
+        label-mac-device = &gmac0;
+        led-boot = &led_status;
+        led-failsafe = &led_status;
+        led-running = &led_status;
+        led-upgrade = &led_status;
+        serial0 = &uart0;
+    };
+
+    chosen {
+        stdout-path = "serial0:115200n8";
+    };
+
+    gpio-keys {
+        compatible = "gpio-keys";
+
+        reset {
+            label = "reset";
+            linux,code = <KEY_RESTART>;
+            gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+        };
+    };
+
+    leds {
+        compatible = "gpio-leds";
+
+        led_0 {
+            function = LED_FUNCTION_POWER;
+            color = <LED_COLOR_ID_RED>;
+            gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+        };
+
+        led_1 {
+            function = LED_FUNCTION_STATUS;
+            color = <LED_COLOR_ID_BLUE>;
+            gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+        };
+
+        led_status_: led_2 {
+            function = LED_FUNCTION_STATUS;
+            color = <LED_COLOR_ID_GREEN>;
+            gpios = <&pio 4 GPIO_ACTIVE_LOW>;
+        };
+
+    };
+
+    watchdog-hw {
+        compatible = "linux,wdt-gpio";
+        gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
+        hw_algo = "level";
+        hw_margin_ms = <10000>;
+        always-running;
+    };
+};
+
+&uart0 {
+    status = "okay";
+};
+
+&watchdog {
+    status = "okay";
+};
+
+&eth {
+    pinctrl-names = "default";
+    pinctrl-0 = <&mdio_pins>;
+
+    status = "okay";
+
+    gmac0: mac@0 {
+        compatible = "mediatek,eth-mac";
+        reg = <0>;
+        phy-mode = "2500base-x";
+        phy-handle = <&phy1>;
+        nvmem-cell-names = "mac-address";
+        nvmem-cells = <&macaddr_bdinfo_de00 1>;
+    };
+};
+
+&mdio_bus {
+    phy1: phy@1 {
+        reg = <1>;
+        compatible = "ethernet-phy-ieee802.3-c45";
+        phy-mode = "2500base-x";
+        reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
+        interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
+        reset-assert-us = <100000>;
+        reset-deassert-us = <100000>;
+        realtek,aldps-enable;
+    };
+};
+
+&spi0 {
+    pinctrl-names = "default";
+    pinctrl-0 = <&spi0_flash_pins>;
+    status = "okay";
+
+    spi_nand: flash@0 {
+        #address-cells = <1>;
+        #size-cells = <1>;
+        compatible = "spi-nand";
+        reg = <0>;
+        spi-max-frequency = <52000000>;
+
+        spi-cal-enable;
+        spi-cal-mode = "read-data";
+        spi-cal-datalen = <7>;
+        spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
+        spi-cal-addrlen = <5>;
+        spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
+
+        spi-tx-bus-width = <4>;
+        spi-rx-bus-width = <4>;
+        mediatek,nmbm;
+        mediatek,bmt-max-ratio = <1>;
+        mediatek,bmt-max-reserved-blocks = <64>;
+
+        partitions {
+            compatible = "fixed-partitions";
+            #address-cells = <1>;
+            #size-cells = <1>;
+
+            partition@0 {
+                label = "BL2";
+                reg = <0x00000 0x0100000>;
+                read-only;
+            };
+
+            partition@100000 {
+                label = "u-boot-env";
+                reg = <0x0100000 0x0080000>;
+                read-only;
+            };
+
+            factory: partition@180000 {
+                label = "Factory";
+                reg = <0x180000 0x0200000>;
+                read-only;
+                nvmem-layout {
+                    compatible = "fixed-layout";
+                    #address-cells = <1>;
+                    #size-cells = <1>;
+
+                    eeprom_factory_0: eeprom@0 {
+                        reg = <0x0 0x1000>;
+                    };
+                };
+            };
+
+            partition@380000 {
+                label = "bdinfo";
+                reg = <0x380000 0x0040000>;
+                read-only;
+                nvmem-layout {
+                    compatible = "fixed-layout";
+                    #address-cells = <1>;
+                    #size-cells = <1>;
+
+                    macaddr_bdinfo_de00: macaddr@de00 {
+                        compatible = "mac-base";
+                        reg = <0xde00 0x6>;
+                        #nvmem-cell-cells = <1>;
+                    };
+                };
+
+            };
+
+            partition@3C0000 {
+                label = "FIP";
+                reg = <0x3C0000 0x0200000>;
+                read-only;
+            };
+
+            partition@580000 {
+                label = "ubi";
+                reg = <0x5C0000 0x4000000>;
+                compatible = "linux,ubi";
+            };
+        };
+    };
+};
+
+
+&pio {
+    spi0_flash_pins: spi0-pins {
+        mux {
+            function = "spi";
+            groups = "spi0", "spi0_wp_hold";
+        };
+    };
+};
+
+&wifi {
+    status = "okay";
+    nvmem-cells = <&eeprom_factory_0>;
+    nvmem-cell-names = "eeprom";
+};
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
index abe7682dfb86..7f3c2df8ee83 100644
--- a/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/02_network
@@ -87,6 +87,7 @@ mediatek_setup_interfaces()
     mercusys,mr90x-v1)
         ucidef_set_interfaces_lan_wan "lan0 lan1 lan2" eth1
         ;;
+    cudy,ap3000-v1|\
     cudy,ap3000outdoor-v1|\
     cudy,re3000-v1|\
     netgear,wax220|\
diff --git a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
index ff9e9f881c5e..373cf344c5a3 100644
--- a/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
+++ b/target/linux/mediatek/filogic/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
@@ -26,7 +26,7 @@ case "$board" in
     asus,rt-ax59u)
         CI_UBIPART="UBI_DEV"
         addr=$(mtd_get_mac_binary_ubi "Factory" 0x4)
-        # Originally, phy1 is phy0 mac with LA and 28th bits set. However, this would conflict
+        # Originally, phy1 is phy0 mac outdoorwith LA and 28th bits set. However, this would conflict
         # addresses on multiple VIFs with the other radio when bit 28 is already set.
         # Set LA and 28 bits and increment mac-address instead.
         [ "$PHYNBR" = "1" ] && \
@@ -75,6 +75,7 @@ case "$board" in
         [ "$PHYNBR" = "0" ] && echo "$addr" > /sys${DEVPATH}/macaddress
         [ "$PHYNBR" = "1" ] && macaddr_setbit_la $(macaddr_add $addr 1) > /sys${DEVPATH}/macaddress
         ;;
+    cudy,ap3000-v1|\
     cudy,ap3000outdoor-v1|\
     cudy,m3000-v1|\
     cudy,wr3000-v1)
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 79d23651f025..83893241481e 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -507,6 +507,23 @@ define Device/confiabits_mt7981
 endef
 TARGET_DEVICES += confiabits_mt7981
 
+define Device/cudy_ap3000-v1
+  DEVICE_VENDOR := Cudy
+  DEVICE_MODEL := ap3000
+  DEVICE_VARIANT := v1
+  DEVICE_DTS := mt7981b-cudy-ap3000-v1
+  DEVICE_DTS_DIR := ../dts
+  SUPPORTED_DEVICES += R49
+  UBINIZE_OPTS := -E 5
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  IMAGE_SIZE := 65536k
+  KERNEL_IN_UBI := 1
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+  DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware
+endef
+TARGET_DEVICES += cudy_ap3000-v1
+
 define Device/cudy_ap3000outdoor-v1
   DEVICE_VENDOR := Cudy
   DEVICE_MODEL := AP3000 Outdoor
-- 
2.34.1

Masz patcha. Wrzuć go do drzewa i skompiluj. Odpal obraz initramfs i jeśli będziesz miał radia oraz ethernet, możesz próbować sysupgrade. ALE koniecznie wcześniej backup. Initramfs możesz testować bez backupu.

Zrobiony na szybko, nie kompilowałem nawet. Jak nie pójdzie, będziemy poprawiać.

EDIT:
Nałożyłem go na swój patch do Outdoor, więc najlepiej jakbyś nakładał na moje źródło, bo będziesz musiał ręcznie rozwiązać konflikty.

73

(176 odpowiedzi, napisanych Oprogramowanie / Software)

frutis napisał/a:

@Królik a skąd masz Intermediate OpenWrt image dla AP3000 Outdoor?

Na maila mi przysłali.

Bardzo łatwo jest zrobić obraz na sucho, bo dają dts w kodzie GPL. Przygotowałem firmware na sucho i wysłałem im, że gotowe. Dwa razy było "no way", ale skusili się, jak napisałem, że tylko skompilować muszą. A i tak zrobili swój ostatecznie, bo różnił się dts w kilku miejscach od tego, co zrobiłem. Mają teraz go dodać do swojego repozytorium na google drive. Outdoor jest tak sklejony, że nie da się dostać do seriala bez zniszczenia obudowy.

A Wasz AP3000 się resetuje bo nie macie gpio watchdoga odpalonego. To samo miałem z AP3000 outdoor. Nie róbcie dts na czuja, szkoda czasu. Dają w GPL wszystko, co potrzebujecie.


To wasz AP3000:

/dts-v1/;
#include "mt7981.dtsi"
/ {
    model = "MediaTek MT7981 RFB/R49";
    compatible = "mediatek,mt7981-spim-snand-rfb";
    chosen {
        bootargs = "console=ttyS0,115200n1 loglevel=8  \
                earlycon=uart8250,mmio32,0x11002000";
    };

    memory {
        // fpga ddr2: 128MB*2
        reg = <0 0x40000000 0 0x20000000>;
    };

    gpio-leds {
        compatible = "gpio-leds";
        
        red {
            label = "oem:green:red";
            gpios = <&pio 11 GPIO_ACTIVE_LOW>;
        };

        blue {
            label = "oem:green:blue";
            gpios = <&pio 10 GPIO_ACTIVE_LOW>;
        };

        status {
            label = "oem:green:status";
            gpios = <&pio 4 GPIO_ACTIVE_LOW>;
        };
    };
    
    gpio-keys-polled {
        compatible = "gpio-keys-polled";
        #address-cells = <1>;
        #size-cells = <0>;
        poll-interval = <20>;

        reset {
            label = "reset";
            gpios = <&pio 1 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_RESTART>;
        };
    };

    gpio_export {
        compatible = "gpio-export";
        #size-cells = <0>;

        phyreset {
            gpio-export,name = "phyreset";
            gpio-export,output = <1>;
            gpios = <&pio 39 GPIO_ACTIVE_LOW>;
        };
    };

    watchdog-hw {
        compatible = "linux,wdt-gpio";
        gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
        hw_algo = "level";
        hw_margin_ms = <10000>;
        always-running;
    };

    nmbm_spim_nand {
        compatible = "generic,nmbm";

        #address-cells = <1>;
        #size-cells = <1>;

        lower-mtd-device = <&spi_nand>;
        forced-create;

        partitions {
            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            partition@0 {
                label = "BL2";
                reg = <0x00000 0x0100000>;
                read-only;
            };

            partition@100000 {
                label = "u-boot-env";
                reg = <0x0100000 0x0080000>;
            };

            partition@180000 {
                label = "Factory";
                reg = <0x180000 0x0200000>;
            };
            
            bdinfo: partition@380000 {
                label = "bdinfo";
                reg = <0x380000 0x0040000>;
            };

            partition@3C0000 {
                label = "FIP";
                reg = <0x3C0000 0x0200000>;
            };

            partition@5C0000 {
                label = "ubi";
                reg = <0x5C0000 0x4000000>;
            };
        };
    };

    sound_wm8960 {
        compatible = "mediatek,mt79xx-wm8960-machine";
        mediatek,platform = <&afe>;
        audio-routing = "Headphone", "HP_L",
                "Headphone", "HP_R",
                "LINPUT1", "AMIC",
                "RINPUT1", "AMIC";
        mediatek,audio-codec = <&wm8960>;
        status = "disabled";
    };

    sound_si3218x {
        compatible = "mediatek,mt79xx-si3218x-machine";
        mediatek,platform = <&afe>;
        mediatek,ext-codec = <&proslic_spi>;
        status = "disabled";
    };
};

&afe {
    pinctrl-names = "default";
    pinctrl-0 = <&pcm_pins>;
    status = "okay";
};

&i2c0 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c_pins>;
    status = "disabled";

    wm8960: wm8960@1a {
        compatible = "wlf,wm8960";
        reg = <0x1a>;
    };
};

&uart0 {
    status = "okay";
};

&watchdog {
    status = "okay";
};

&eth {
        status = "okay";
        lower-mtd-name = "bdinfo";

        gmac0: mac@0 {
            compatible = "mediatek,eth-mac";
            reg = <0>;
            mtd-mac-address = <&bdinfo 0xDE00>;
            mtd-mac-address-increment = <1>;
            phy-mode = "2500base-x";
            phy-handle = <&phy1>;

            fixed-link {
                speed = <2500>;
                full-duplex;
                pause;
                /*
                link-gpio = <&pio 38 1>;
                phy-handle = <&phy1>;
                label = "eth0";
                */
            };

        };

    gmac1: mac@1 {
        compatible = "mediatek,eth-mac";
        reg = <1>;
        mtd-mac-address = <&bdinfo 0xDE00>;
        phy-mode = "gmii";
        phy-handle = <&phy0>;
    };

        mdio: mdio-bus {
                #address-cells = <1>;
                #size-cells = <0>;

        phy0: ethernet-phy@0 {
            compatible = "ethernet-phy-id03a2.9461";
            reg = <0>;
            phy-mode = "gmii";
            nvmem-cells = <&phy_calibration>;
            nvmem-cell-names = "phy-cal-data";
        };

            phy1: phy@1 {
                compatible = "ethernet-phy-id001c.c849";
                reg = <1>;
                /*
                reset-gpios = <&pio 39 1>;
                reset-assert-us = <10000>;
                reset-deassert-us = <50000>;
                */
                phy-mode = "2500base-x";
            };
        };
};

&hnat {
    mtketh-wan = "eth0";
    mtketh-lan = "eth1";
    mtketh-ppd = "eth1";
    mtketh-max-gmac = <2>;
    mtketh-lan-gmac = <2>;
    mtketh-wan-gmac = <1>;
    status = "okay";
};

&spi0 {
    pinctrl-names = "default";
    pinctrl-0 = <&spi0_flash_pins>;
    status = "okay";
    spi_nand: spi_nand@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "spi-nand";
        reg = <0>;
        spi-max-frequency = <52000000>;
        spi-tx-buswidth = <4>;
        spi-rx-buswidth = <4>;
    };
};

&spi1 {
    pinctrl-names = "default";
    pinctrl-0 = <&spic_pins>;
    status = "okay";

    proslic_spi: proslic_spi@0 {
        compatible = "silabs,proslic_spi";
        reg = <0>;
        spi-max-frequency = <10000000>;
        spi-cpha = <1>;
        spi-cpol = <1>;
        channel_count = <1>;
        debug_level = <4>;       /* 1 = TRC, 2 = DBG, 4 = ERR */
        reset_gpio = <&pio 15 0>;
        ig,enable-spi = <1>;     /* 1: Enable, 0: Disable */
    };
};

&pio {

    i2c_pins: i2c-pins-g0 {
                mux {
                        function = "i2c";
                        groups = "i2c0_0";
                };
        };

        pcm_pins: pcm-pins-g0 {
                mux {
                        function = "pcm";
                        groups = "pcm";
                };
        };

        pwm0_pin: pwm0-pin-g0 {
                mux {
                        function = "pwm";
                        groups = "pwm0_0";
                };
        };

        pwm1_pin: pwm1-pin-g0 {
                mux {
                        function = "pwm";
                        groups = "pwm1_0";
                };
        };

        pwm2_pin: pwm2-pin {
                mux {
                        function = "pwm";
                        groups = "pwm2";
                };
        };

    spi0_flash_pins: spi0-pins {
        mux {
            function = "spi";
            groups = "spi0", "spi0_wp_hold";
        };

        conf-pu {
            pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
            drive-strength = <MTK_DRIVE_8mA>;
            bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
        };

        conf-pd {
            pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
            drive-strength = <MTK_DRIVE_8mA>;
            bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
        };
    };

    spic_pins: spi1-pins {
        mux {
            function = "spi";
            groups = "spi1_1";
        };
    };

    uart1_pins: uart1-pins-g1 {
                mux {
                        function = "uart";
                        groups = "uart1_1";
                };
        };

    uart2_pins: uart2-pins-g1 {
        mux {
                        function = "uart";
                        groups = "uart2_1";
                };
        };
};

&xhci {
    mediatek,u3p-dis-msk = <0x0>;
    phys = <&u2port0 PHY_TYPE_USB2>,
           <&u3port0 PHY_TYPE_USB3>;
    status = "okay";
};

Na tym trzeba bazować.  Watchdog jest tak samo jak w outdoor.

74

(4,520 odpowiedzi, napisanych Oprogramowanie / Software)

Królik napisał/a:

Chociaż  AP3000 Outdoor z mt7981 też wygląda ciekawie. Oba nie mają wsparcia póki co, ale to nie problem przy tym hardware.

Wsparcie zaraz będzie:
https://github.com/openwrt/openwrt/pull/16156

Instalacja z obrazu pośredniego, bez rozbierania sprzętu. Kupujcie zanim zdrożeją. wink

75

(176 odpowiedzi, napisanych Oprogramowanie / Software)

Ja za to kończę wsparcie dla AP3000 Outdoor. Ale tam nie da się rozebrać obudowy i trzeba kombinować bez seriala.