[LEDE-DEV] Adding support for dlink dwr-512
Giuseppe Lippolis
giu.lippolis at gmail.com
Sun Oct 16 02:05:17 PDT 2016
Mathias,
Thanks for the tips.
I'm going to work on it.
Bye.
> -----Ursprüngliche Nachricht-----
> Von: Mathias Kresin [mailto:dev at kresin.me]
> Gesendet: Sonntag, 16. Oktober 2016 09:54
> An: Giuseppe Lippolis <giu.lippolis at gmail.com>; lede-
> dev at lists.infradead.org
> Betreff: Re: [LEDE-DEV] Adding support for dlink dwr-512
>
> Hi Giuseppe,
>
> find a few remarks inline.
>
> 16.10.2016 00:03, Giuseppe Lippolis:
> > Hi all,
> > I'm proceeding to finalize the support:
> > Now the wifi is enabled, the LEDs and the buttons are supported.
> >
> > To complete the device support I need to:
> > 1. enable the 3G modem
> > 2. crack the header file to generate the factory image
>
> Run the strings command on the binboy binary. The binary includes some
> text which looks to me like the description of different headers.
>
> It might be possible that there is already a tool for writing the binboy
header
> in tools/firmware-utils.
>
> >
> > Will take some time.
> >
> > In the meantime, here the patch:
> >
> > diff --git a/target/linux/ramips/base-files/etc/board.d/02_network
> > b/target/linux/ramips/base-files/etc/board.d/02_network
> > index c8b57ca..719078c 100755
> > --- a/target/linux/ramips/base-files/etc/board.d/02_network
> > +++ b/target/linux/ramips/base-files/etc/board.d/02_network
> > @@ -71,6 +71,7 @@ ramips_setup_interfaces()
> > dir-320-b1|\
> > dir-610-a1|\
> > dir-615-h1|\
> > + dwr-512-b|\
> > firewrt|\
> > hlk-rm04|\
> > mac1200rv2|\
> > diff --git a/target/linux/ramips/base-files/lib/ramips.sh
> > b/target/linux/ramips/base-files/lib/ramips.sh
> > index bb379f7..a0f041e 100755
> > --- a/target/linux/ramips/base-files/lib/ramips.sh
> > +++ b/target/linux/ramips/base-files/lib/ramips.sh
> > @@ -154,6 +154,9 @@ ramips_board_detect() {
> > *"DIR-860L B1")
> > name="dir-860l-b1"
> > ;;
> > + *"DWR-512 B")
> > + name="dwr-512-b"
> > + ;;
> > *"Dovado Tiny AC")
> > name="tiny-ac"
> > ;;
> > diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh
> > b/target/linux/ramips/base-files/lib/upgrade/platform.sh
> > index 0ef2308..36ea469 100755
> > --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
> > +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
> > @@ -50,6 +50,7 @@ platform_check_image() {
> > dir-620-a1|\
> > dir-620-d1|\
> > dir-810l|\
> > + dwr-512-b|\
> > duzun-dm06|\
> > e1700|\
> > esr-9753|\
> > diff --git a/target/linux/ramips/dts/DWR-512-B.dts
> > b/target/linux/ramips/dts/DWR-512-B.dts
> > index e69de29..2a69ce7 100644
> > --- a/target/linux/ramips/dts/DWR-512-B.dts
> > +++ b/target/linux/ramips/dts/DWR-512-B.dts
> > @@ -0,0 +1,109 @@
> > +/dts-v1/;
> > +
> > +/include/ "rt5350.dtsi"
> > +
> > +/ {
> > + compatible = "ralink,rt5350-soc";
> > + model = "D-Link DWR-512 B";
> > +
> > + gpio-keys-polled {
> > + compatible = "gpio-keys-polled";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + poll-interval = <20>;
> > +
> > + wps {
> > + label = "wps";
> > + gpios = <&gpio0 0 1>;
> > + linux,code = <0x211>;
> > + };
> > + };
> > +
> > + gpio-leds {
> > + compatible = "gpio-leds";
> > +
> > + sms {
> > + label = "dwr-512-b:green:sms";
> > + gpios = <&gpio0 8 1>;
> > + };
> > + status {
> > + label = "dwr-512-b:green:status";
> > + gpios = <&gpio0 9 1>;
> > + };
> > + 2g {
> > + label = "dwr-512-b:green:2g";
> > + gpios = <&gpio0 17 1>;
> > + };
> > + 3g {
> > + label = "dwr-512-b:green:3g";
> > + gpios = <&gpio0 19 1>;
> > + };
> > + sstrengthr {
> > + label = "dwr-512-b:red:sigstrength";
> > + gpios = <&gpio0 20 1>;
> > + };
> > + sstrengthg {
> > + label = "dwr-512-b:green:sigstrength";
> > + gpios = <&gpio0 21 1>;
> > + };
> > + };
> > +};
> > +
> > +&spi0 {
> > + status = "okay";
> > +
> > + mx25l6405d at 0 {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + compatible = "macronix,mx25l6405d", "jedec,spi-nor";
> > + reg = <0>;
> > + spi-max-frequency = <30000000>;
> > + fast-read;
> > +
> > + partition at 0 {
> > + label = "bootloader";
> > + reg = <0x0 0x10000>;
> > + read-only;
> > + };
> > +
> > + partition at 10000 {
> > + label = "Kernel";
> > + reg = <0x10000 0x140000>;
> > + read-only;
> > + };
> > +
> > + partition at 150000 {
> > + label = "rootfs";
> > + reg = <0x150000 0x200000>;
> > + read-only;
> > + };
> > +
> > + partition at 350000 {
> > + label = "rootfs_data";
> > + reg = <0x350000 0x3c0000>;
> > + };
>
> Use only one big "firmware" partition instead of a fixed size Kernel,
rootfs,
> rootfs_data partition. Write a mtd_splitter which gets the rootfs offset
from
> the binboy header to setup the rootfs and rootfs_data on boot. Have a look
> at target/linux/generic/files/drivers/mtd/mtdsplit/
> how it is done for other image/header types.
>
> Your changes to the kernel config shouldn't be required any longer after
this
> change, since the available flash space is used more efficient.
>
> > +
> > + partition at 710010 {
> > + label = "ui";
> > + reg = <0x710000 0xe0000>;
> > + };
> > +
> > + config: partition at 7f0000 {
> > + label = "config";
> > + reg = <0x7f0000 0x10000>;
> > + };
> > + };
> > +};
> > +
> > +&pinctrl {
> > + state_default: pinctrl0 {
> > + gpio {
> > + ralink,group = "i2c", "jtag", "uartf";
> > + ralink,function = "gpio";
> > + };
> > + };
> > +};
> > +
> > +&wmac {
> > + ralink,mtd-eeprom = <&config 0xe07a>; };
> > diff --git a/target/linux/ramips/image/rt305x.mk
> > b/target/linux/ramips/image/rt305x.mk
> > index be21ac4..fbbabdb 100644
> > --- a/target/linux/ramips/image/rt305x.mk
> > +++ b/target/linux/ramips/image/rt305x.mk
> > @@ -168,6 +168,17 @@ endef
> > TARGET_DEVICES += dir-620-d1
> >
> >
> > +define Device/dwr-512-b
> > + DTS := DWR-512-B
> > + KERNEL := kernel-bin | patch-dtb | lzma
> > + IMAGES += factory.bin
> > + IMAGE/factory.bin := \
> > + append-kernel
> > + DEVICE_TITLE := D-Link DWR-512 B
> > +endef
> > +TARGET_DEVICES += dwr-512-b
> > +
> > +
> > define Device/esr-9753
> > DTS := ESR-9753
> > BLOCKSIZE := 64k
> > diff --git a/target/linux/ramips/rt305x/config-4.4
> > b/target/linux/ramips/rt305x/config-4.4
> > index b8f6cda..dcf318f 100644
> > --- a/target/linux/ramips/rt305x/config-4.4
> > +++ b/target/linux/ramips/rt305x/config-4.4
> > @@ -132,9 +132,8 @@ CONFIG_MTD_M25P80=y
> CONFIG_MTD_PHYSMAP=y
> > CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
> > -CONFIG_MTD_SPLIT_FIRMWARE=y
> > -CONFIG_MTD_SPLIT_SEAMA_FW=y
> > -CONFIG_MTD_SPLIT_UIMAGE_FW=y
> > +# CONFIG_MTD_SPLIT is not set
> > +# CONFIG_MTD_SPLIT_SQUASHFS_ROOT is not set
> > CONFIG_NEED_DMA_MAP_STATE=y
> > CONFIG_NEED_PER_CPU_KM=y
> > CONFIG_NET_MEDIATEK_ESW_RT3050=y
> > @@ -158,6 +157,7 @@ CONFIG_PHY_RALINK_USB=y CONFIG_PINCTRL=y
> > CONFIG_PINCTRL_RT2880=y # CONFIG_PINCTRL_SINGLE is not set
> > +CONFIG_PRINTK_TIME=y
> > CONFIG_RALINK=y
> > # CONFIG_RALINK_ILL_ACC is not set
> > CONFIG_RALINK_WDT=y
> >
> > Bye.
> >
More information about the Lede-dev
mailing list