Netgear D7800 build

You need to enable 3rd pci slot in device tree

Try this

UPDATE: updated the commit


THX :slight_smile:

[ 110.624588] vrx320: loading PPE driver and firmware (ATM)
[ 110.624648] base->us_fastpath_des_base=0x5f600000
[ 110.629101] base->us_fastpath_des_num=0x20
[ 110.633663] base->us_cpupath_des_base=0x5f601000
[ 110.637655] base->us_cpupath_des_num=0x20
[ 110.642554] base->ds_des_base=0x5f602000
[ 110.646336] base->ds_des_num=0x20
[ 110.650438] base->ds_oam_des_base=0x5f603000
[ 110.653541] base->ds_oam_des_num=0x20
[ 110.658056] port = 0
[ 110.661557] irq = 172
[ 110.664044] membase = 0xdf980000
[ 110.667168] phy_membase = 0x32000000
[ 110.670929] peer_num = 0
[ 110.688972] 1 device(s) are detected!

root@LEDE:/lib/modules/4.4.49# lspci
0000:00:00.0 PCI bridge: Qualcomm Device 0101
0000:01:00.0 Network controller: Qualcomm Atheros QCA9980/9990 802.11ac Wireless Network Adapter
0001:00:00.0 PCI bridge: Qualcomm Device 0101
0001:01:00.0 Network controller: Qualcomm Atheros QCA9980/9990 802.11ac Wireless Network Adapter
0002:00:00.0 PCI bridge: Qualcomm Device 0101
0002:01:00.0 Network controller: Lantiq Device 0020 (rev 01)

root@LEDE:/lib/modules/4.4.49# modprobe lantiq_vrx320_e1.ko
[ 301.366218] VRX318: loading PPE driver and firmware (PTM)
[ 301.366278] base->us_fastpath_des_base=0x5f600000
[ 301.370746] base->us_fastpath_des_num=0x20
[ 301.375296] base->us_cpupath_des_base=0x5f601000
[ 301.379384] base->us_cpupath_des_num=0x20
[ 301.384062] base->ds_des_base=0x5f602000
[ 301.387969] base->ds_des_num=0x40
[ 301.392067] base->ds_oam_des_base=0x0
[ 301.395172] base->ds_oam_des_num=0x0
[ 301.398941] port = 0
[ 301.402461] irq = 172
[ 301.404981] membase = 0xdf980000
[ 301.408106] phy_membase = 0x32000000
[ 301.411841] peer_num = 0
[ 301.432070] total 1 device(s) are detected!
[301.432105] 1 device is initialized to run in single line mode!

1 Like

I suppose it's not enough, you may try to ask @mkresin for help to get other needed stuff to enable adsl modem here

@damiano here's complete commit for D7800, I'll make a pull request later when I'll do the same with other boards

1 Like

well, i think this one will break lede for my d7800 --> ram

According to Netgear it has 512 mb of RAM

Seems that preproduction units indeed have 256mb, but I suppose it's wrong to cripple production units in favor of preproduction ones.

Seems an easy fix to me to keep a different file for your own unit, or even nicer: add a little patch of your own that sets the right value for your unit?

yeah. seems i'm out of luck here. no problem.
Will the patch get in the 17.01 release?

another question: how is this solved with stock firmware? as this is functioning normal for me.

It likely recognizes the board as a slightly different model somehow.
might be a value in navram (do they still use that), or some other value somewhere?

It's passed by boot loader afaik. Check gpl, it contains uboot with model specifications and extended functions like passing variables into DT or platform data (depending on the version).

Hi All,
Thanks for the info and updates. Sorry for the noob question, however how do you get to the serial console with and without the stock firmware, do I need a special cable and/or to open the unit?

Update on the progress of package/kernel/lantiq/ltq-vdsl-mei (drv_mei_cpe-, not much I'm afraid (hopefully I'll get better with practice).
Looking into the mfloat-abi hard/soft issue (sorry this will be basic knowledge for some), my target triplet states (where arm-openwrt-linux-gcc -> arm-openwrt-linux-muslgnueabi-gcc):
> arm-openwrt-linux-gcc -dumpmachine
= arm-openwrt-linux-muslgnueabi
= target=arm
musl = New standard C library. musl is lightweight, fast, simple, free, and strives to be correct in the sense of standards-conformance and safety
gnueabi = ARM=eabi = The ARM EABI port is the default port in Debian for the ARM architecture, named armel. states:
Arm EABI uses VFP (Vector Floating Points), which uses a different instruction set than FPA and stores floats in natural-endian.
I also found:
Which indicates to use mfloat-abi=hard and soft together is a multilib feature, according to the default compiler:
> arm-openwrt-linux-gcc -print-multi-lib
= .;
= no multilibs found
> arm-openwrt-linux-gcc -print-multi-directory
= .
> arm-openwrt-linux-gcc -print-multi-os-directory
= .
So from this there is no multilib support in the compiler which explains why CFLAGS -mfloat-abi=soft and -mfloat-abi=hard don't work together.
I can see that source/ injects -mfloat-abi=hard into the CFLAGS list however I can't see where -mfliat-abi=soft is injected. Any ideas?

Wow that looks a lot different to what I get when I run dmesg, and running lspci: gives
root@LEDE:~# lspci
00:00.0 Class 0604: 17cb:0101
01:00.0 Class 0280: 168c:0040
00:00.0 Class 0604: 17cb:0101
01:00.0 Class 0280: 1bef:0020
00:00.0 Class 0604: 17cb:0101
01:00.0 Class 0280: 168c:0040

How did you build lantiq_vrx320_e1.ko?

From Netgear GPL sources.

I did some tests with set Target_Cflags in package Makefile compilation is going forward but stuck on irq.h ...

Ok I tried compiling ltq_vrx320_datapath_drv-1.0.0 and it gets stuck on vrx320_common.c:6:30: fatal error: net/ppa_stack_al.h: No such file or directory.

I copied the source from ~/d7800/D7800-V1.0.0.48_gpl_src/package/ltq_vrx320_datapath_drv to ~/d7800/source/package/kernel/lantiq/ltq_vrx320_datapath_drv

and ~/d7800/D7800-V1.0.0.48_gpl_src/git_home/linux.git/sourcecode/include/net to ~/d7800/source/package/kernel/lantiq/ltq_vrx320_datapath_drv/src

and added TARGET_CFLAGS+= -I$(PKG_BUILD_DIR) in source/package/kernel/lantiq/ltq_vrx320_datapath_drv/Makefile but it did nothing.

Any tips?

I will give you my sources at the end of the week if u want ... I'm on mobile now . ...

Sounds great.

Sorry for the delay, just got a chance to get back to this, I am compiling the sources now, just having trouble finding dsl_vr10_firmware_xdsl- that you reference in your Makefile, for the same package, my previous Makefile referenced dsl_vr10_firmware_xdsl- Do you have a source location for this file, the Makefile states PKG_SOURCE_URL:=http://localhost as the source location.

Not sure how far you got or what is missing. But I stumbled over /D7800-V1.0.1.16_gpl_src/git_home/linux.git/sourcecode/patches/platform/0306-ltq-vrx320-ep-driver.patch which seams to me related and not mentioned here.

I'm in doubt that I can provide more assistance than that.