[LEDE-DEV] [PATCH] ramips: add support for Loewe WMDR-143N

Oliver Fleischmann ogf at bnv-bamberg.de
Tue Jul 18 12:15:55 PDT 2017


Hello Mathias,

many thanks for your review!

>> +#include "rt3883.dtsi"
>> +
>> +#include <dt-bindings/input/input.h>
>
> You can drop this include. You don't have any input devices (buttons)
> in your dts.

OK, I will change that for my next attempt.

>> +
>> +/ {
>> +       compatible = "WMDR-143N", "ralink,rt3883-soc";
>
> should be: compatible = "loewe,wmdr-143n", "ralink,rt3883-soc";

OK.

>> +&gpio1 {
>> +       status = "okay";
>> +};
>
> The gpio1 node can be dropped. None of the SoC pins are used as GPIOs
> for this board.

OK.

>> +&pinctrl {
>> +       state_default: pinctrl0 {
>> +               gpio {
>> +                       ralink,group = "i2c", "jtag", "uartf";
>> +                       ralink,function = "gpio";
>> +               };
>> +       };
>> +};
>
> Same as above. None if the pins in these groups are used as GPIO.

But if I remove this part, the kernel hangs during boot reproducibly:

(...)
[    0.134508] clocksource: jiffies: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.154048] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.166222] pinctrl core: initialized pinctrl subsystem
[    0.177541] NET: Registered protocol family 16

and gone. It doesn't matter if I leave all three groups or only one of 
them, but as soon as I remove them all, it hangs. So I'd prefer to keep 
this...

>> +&ethernet {
>> +       mtd-mac-address = <&factory 0x4>;
>> +
>> +       port at 0 {
>> +               phy-handle = <&phy0>;
>> +               phy-mode = "mii";
>> +       };
>> +       mdio-bus {
>> +               status = "okay";
>> +
>> +               phy0: ethernet-phy at 0 {
>> +                       reg = <0>;
>> +                       phy-mode = "mii";
>> +               };
>> +       };
>> +};
>> +
>> +&wmac {
>> +       status = "okay";
>> +       ralink,mtd-eeprom = <&factory 0>;
>> +       mtd-mac-address = <&factory 0x4>;
>> +       mtd-mac-address-increment = <1>;
>
> Have you validated against the original firmware that wireless and
> ethernet have different mac addresses? Is it the wireless mac address
> that is incremented? I'm somehow in doubt here, since there is no
> ethernet by default for this board.

With the original firmware, both interfaces do indeed have different mac
addresses. The wireless interface uses the one from the "Factory"
partition (e.g. F8:35:DD:C9:1B:19), not incremented (sorry).

The ethernet interface has a completely different address (e.g. 
00:0C:43:28:80:0F). I have no idea where it comes from, I can't find it in 
any of the configuration partitions wether in binary or in ASCII. It gets 
set by a kernel module (raeth.ko). In the hexdump of this binary module, I 
can find a part of this address (00 0c 43 28 80 00) hardcoded.

So I thought, just incrementing the given address for the second interface 
would do for the beginning. Do you have a suggestion for a better 
solution?

>> +define Device/wmdr-143n
>> +  DTS := WMDR-143N
>> +  BLOCKSIZE := 64k
>> +  IMAGES += factory.bin
>
> It seams to me a factory image isn't required for this board. The
> sysupgrade.bin should work fine for the initial installation.

I had some trouble during testing because of the metadata at the end of
the sysupgrade.bin image, but I will try again. Probably you are right :-)


Oliver



More information about the Lede-dev mailing list