Temat: Newifi d2 wymiana pamięci w25q256 na w25q512

Witam
Posiadam router Newfi d2 na którym mam zainstalowanego Gargoyle.
Problem polega na tym, że postanowiłem zwiększyć mu pamięć poprzez zamianę W25Q256FVFGF na W25Q512JVFQ.
Zgrałem pamięć programatorem zewnętrznym (CH341A) z W25Q256 i zaprogramowałem W25Q512. Gargoyle wystartował ale nie można było zapisać żadnych zmian.
Po resecie i wejściu do breeda nie rozpoznawał flasha i wyświetlał tylko pojemność 16Mb.

W putty też nie rozpoznaje flasha.

Na W25Q256 pokazuje:

Boot and Recovery Environment for Embedded Devices
Copyright (C) 2018 HackPascal <hackpascal@gmail.com>
Build date 2018-10-14 [git-7ca77fe]
Version 1.1 (r1237)

DRAM: 512MB
Platform: MediaTek MT7621A ver 1, eco 3
Board: Newifi D2
Clocks: CPU: 880MHz, DDR: 1066MHz, Bus: 293MHz, Ref: 40MHz
Flash: Winbond W25Q256 (32MB) on rt6855a-spi
rt2880-eth: MAC address from EEPROM is invalid, using default settings.
rt2880-eth: Using MAC address 00:0c:43:00:11:01
eth0: MediaTek MT7530 Gigabit switch

Network started on eth0, inet addr 192.168.1.1, netmask 255.255.255.0

Press any key to interrupt autoboot ... 0


   A na W25Q512:

Boot and Recovery Environment for Embedded Devices
Copyright (C) 2021 HackPascal <hackpascal@gmail.com>
Build date 2021-12-15 [git-f9b74d0]
Version 1.1 (r1337)

DRAM: 512MB
Platform: MediaTek MT7621A ver 1, eco 3
Board: Newifi D2
Clocks: CPU: 880MHz, DDR: 1040MHz, Bus: 220MHz, Ref: 40MHz
Flash: no flash present on mt7621-spi.0
rt2880-eth: MAC address from EEPROM is invalid, using default settings.
rt2880-eth: Using MAC address 00:0c:43:00:11:01
eth0: MediaTek MT7530 Gigabit switch

Network started on eth0, inet addr 192.168.1.1, netmask 255.255.255.0

Press any key to interrupt autoboot ... 0



Co mogę zrobić aby router rozpoznawał W25Q512 prawidłowo?
Dodam, że obie kości w programatorze są rozpoznawane prawidłowo i weryfikacja po programowaniu obu kości przebiega pomyślnie.
Przy wgrywaniu samego programu rozruchowego ze strony "https://breed.hackpascal.net/" są te same efekty.

2

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Wg specyfikacji MT7621A obsługuje do 512Mb w trybie "4B addr mode". Ty miałeś tam 256Mb więc zakładam że ten tryb masz włączony, więc sama kostka 512Mb powinna działać. Unielec U7621-06 mają tyle flash więc fizycznie się da.
Może breed z definicji tego nie obsługuje z jakiegoś powodu?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Po prostu jak powstawał Breed to wsparcia dla tej kości jeszcze nie było chyba nawet w Linuxie. MT7621 ma już od dawna całkiem dobre wsparcie w aktualnym U-Boot, a MediaTek nawet upublicznił swoją modyfikowaną wersję z ich SDK (zresztą, autor Breed pracuje teraz dla MediaTek i tym się m.in. właśnie zajmuje): https://github.com/mtk-openwrt/u-boot

Ja bym spróbował nowszego U-Boota (tego z repozytorium mtk-openwrt), tym bardziej że masz programator więc w razie problemów do ogarnięcia.

4

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Dzięki za wskazówki ale mam podstawowy problem, nie potrafię tego skompilować, więc na tą chwilę muszę odpuścić.
Proszę jeszcze o jakiś link według którego mógłbym się nauczyć skompilować tego u-boota  (najlepiej z przykładami bo linuxa znam bardzo słabo).

Pozdrawiam i przepraszam za zajęty czas.

5

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Witam
Zakupiłem kolejną pamięć MX66L51235FMI10G i Breed poprawnie ją wykrywa.

Boot and Recovery Environment for Embedded Devices
Copyright (C) 2018 HackPascal <hackpascal@gmail.com>
Build date 2018-10-14 [git-7ca77fe]
Version 1.1 (r1237)

DRAM: 512MB
Platform: MediaTek MT7621A ver 1, eco 3
Board: Newifi D2
Clocks: CPU: 880MHz, DDR: 1066MHz, Bus: 293MHz, Ref: 40MHz
Flash: Macronix MX66L51235F (64MB) on rt6855a-spi
rt2880-eth: MAC address from EEPROM is invalid, using default settings.
rt2880-eth: Using MAC address 00:0c:43:00:00:01
eth0: MediaTek MT7530 Gigabit switch

Network started on eth0, inet addr 192.168.1.1, netmask 255.255.255.0

Press any key to interrupt autoboot ... 0


   Wgrałem "gargoyle-1.14.0.3-d-team_newifi-d2-squashfs-sysupgrade.bin" i  się wszystko uruchamia.
Problem mam z pojemnością w zakładce dodatki pokazuje:

  Folder główny dodatków:/plugin_root
  Pamięć wewnętrzna 24.875 MB ogółem, 24.109 MB wolne

Tą samom pojemność pokazuje mi na oryginalnej pamięci (Winbond W25Q256 (32MB)), która była 2 razy mniejsza.
Czy coś z tym mogę zrobic?

6

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Ale co ma U-Boot do rzeczy? Zobacz ile system widzi. Dtsa zmodyfikowałeś?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Nie mogę nigdzie znaleźć co mam zmienić w DTS. Proszę o wskazówkę.

#include "mt7621.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
    compatible = "d-team,newifi-d2", "mediatek,mt7621-soc";
    model = "Newifi-D2";

    aliases {
        led-boot = &led_power_blue;
        led-failsafe = &led_power_blue;
        led-running = &led_power_blue;
        led-upgrade = &led_power_blue;
        label-mac-device = &gmac0;
    };

    chosen {
        bootargs = "console=ttyS0,115200";
    };

    leds {
        compatible = "gpio-leds";

        power-amber {
            label = "amber:power";
            gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
        };

        led_power_blue: power-blue {
            label = "blue:power";
            gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
        };

        internet-amber {
            label = "amber:internet";
            gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
        };

        internet-blue {
            label = "blue:internet";
            gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
        };

        wlan2g {
            label = "blue:wlan2g";
            gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
        };

        wlan5g {
            label = "blue:wlan5g";
            gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
        };

        usb {
            label = "blue:usb";
            gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
            trigger-sources = <&xhci_ehci_port1>, <&ehci_port2>;
            linux,default-trigger = "usbport";
        };
    };

    keys {
        compatible = "gpio-keys";

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

        wps {
            label = "wps";
            gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_WPS_BUTTON>;
        };
    };

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

        power_usb3 {
            gpio-export,name = "power_usb3";
            gpio-export,output = <1>;
            gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
        };
    };
};

&spi0 {
    status = "okay";

    flash@0 {
        compatible = "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <45000000>;
        broken-flash-reset;

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

            partition@0 {
                label = "u-boot";
                reg = <0x0 0x30000>;
                read-only;
            };

            partition@30000 {
                label = "u-boot-env";
                reg = <0x30000 0x10000>;
                read-only;
            };

            factory: partition@40000 {
                label = "factory";
                reg = <0x40000 0x10000>;
                read-only;
            };

            partition@50000 {
                compatible = "denx,uimage";
                label = "firmware";
                reg = <0x50000 0x1fb0000>;
            };
        };
    };
};

&pcie {
    status = "okay";
};

&pcie0 {
    mt76@0,0 {
        reg = <0x0000 0 0 0 0>;
        mediatek,mtd-eeprom = <&factory 0x8000>;
        ieee80211-freq-limit = <5000000 6000000>;
    };
};

&pcie1 {
    mt76@0,0 {
        reg = <0x0000 0 0 0 0>;
        mediatek,mtd-eeprom = <&factory 0x0000>;
    };
};

&gmac0 {
    nvmem-cells = <&macaddr_factory_e000>;
    nvmem-cell-names = "mac-address";
};

&switch0 {
    ports {
        port@0 {
            status = "okay";
            label = "lan4";
        };

        port@1 {
            status = "okay";
            label = "lan3";
        };

        port@2 {
            status = "okay";
            label = "lan2";
        };

        port@3 {
            status = "okay";
            label = "lan1";
        };

        port@4 {
            status = "okay";
            label = "wan";
            nvmem-cells = <&macaddr_factory_e006>;
            nvmem-cell-names = "mac-address";
        };
    };
};

&state_default {
    gpio {
        groups = "i2c", "jtag", "uart2", "uart3";
        function = "gpio";
    };
};

&factory {
    compatible = "nvmem-cells";
    #address-cells = <1>;
    #size-cells = <1>;

    macaddr_factory_e000: macaddr@e000 {
        reg = <0xe000 0x6>;
    };

    macaddr_factory_e006: macaddr@e006 {
        reg = <0xe006 0x6>;
    };
};

8

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

tu

            partition@50000 {
                compatible = "denx,uimage";
                label = "firmware";
                reg = <0x50000 0x1fb0000>;
            };

co daje 31M (1fb0000). Jeżeli faktycznie kość działa i ma 64MB to zmień to na 0x3fb0000 (czyli to co jest + dodatkowe 32M)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Newifi d2 wymiana pamięci w25q256 na w25q512

Wielki Dzięki Cezary wszystko działa.

root@Gargoyle:/# df  -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                11.0M     11.0M         0 100% /rom
tmpfs                   249.6M      1.6M    248.0M   1% /tmp
/dev/mtdblock6           50.8M      1.4M     49.3M   3% /overlay
overlayfs:/overlay       50.8M      1.4M     49.3M   3% /
tmpfs                   512.0K         0    512.0K   0% /dev