Netgear D7800 build

From what I have googled, the kernel is always compiled with -mfloat-abi=soft so it doesn't have to rely on the hardware fpu (more reliable?), so that means kernel modules cannot use -mfloat-abi=hard. So assuming need to use soft...

OK. But soft or softfp ? I will try with soft and softfp ...

ltq_vrx320_datapath_drv driver

root@LEDE:/# modprobe lantiq_vrx320_vectoring.ko
[ 281.993338] res = dc189600

root@LEDE:/# modprobe lantiq_vrx320_e1.ko
^[[6~[ 287.322165] VRX318: loading PPE driver and firmware (PTM)
[ 287.322223] base->us_fastpath_des_base=0x5f600000
[ 287.326554] base->us_fastpath_des_num=0x20
[ 287.331366] base->us_cpupath_des_base=0x5f601000
[ 287.335235] base->us_cpupath_des_num=0x20
[ 287.340119] base->ds_des_base=0x5f602000
[ 287.343912] base->ds_des_num=0x40
[ 287.347904] base->ds_oam_des_base=0x0
[ 287.351235] base->ds_oam_des_num=0x0
[ 287.354766] ppe_init failed to get total device number
1 module could not be probed

  • lantiq_vrx320_e1

root@LEDE:/# modprobe lantiq_vrx320_a1.ko
[ 291.640181] vrx320: loading PPE driver and firmware (ATM)
[ 291.640212] base->us_fastpath_des_base=0x5f603000
[ 291.644551] base->us_fastpath_des_num=0x20
[ 291.649337] base->us_cpupath_des_base=0x5f604000
[ 291.653231] base->us_cpupath_des_num=0x20
[ 291.658004] base->ds_des_base=0x5f605000
[ 291.661984] base->ds_des_num=0x20
[ 291.665903] base->ds_oam_des_base=0x5f606000
[ 291.669179] base->ds_oam_des_num=0x20
[ 291.673509] ppe_init failed to get total device number
1 module could not be probed

  • lantiq_vrx320_a1

seems something working ... probably need drv_mei_cpe module ...

drv_mei_cpe configure does have device parameters: --with-max-device=1 and --with-lines-per-device=1, so I'm looking at compiling that too. So far no luck, I did find the following in source/rules.mk:
ifeq ($(CONFIG_SOFT_FLOAT),y)
SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
TARGET_CFLAGS+= -mfloat-abi=soft
else
SOFT_FLOAT_CONFIG_OPTION:=
TARGET_CFLAGS+= -mfloat-abi=hard

However setting CONFIG_SOFT_FLOAT breaks the compiler... May need to recompile the lot...

Hi,

where did you get the info that it has 512MB RAM? EDIT: Found it in Spec-Sheet from Netgear.
Everywhere i was looking it says only 256MB.

Do you make a pull request to get the changes to everyone?

Hi,
From my D7800 router :slight_smile:

Console :slight_smile:

U-Boot 2012.07 [local,local] (Jul 01 2015 - 13:18:15)

U-boot 2012.07 dni1 V1.1 for DNI HW ID: 29764958 NOR flash 0MB NAND flash 128MB RAM 512MB 1st Radio 4x4 2nd Radio 4x4 + xDSL
smem ram ptable found: ver: 0 len: 5
DRAM: 491 MiB
.....

Booting Linux on physical CPU 0
Linux version 3.4.103 (figo.yan@dni-l-sw02) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 SMP Tue Jul 26 14:05:47 EDT 2016
CPU: ARMv7 Processor [512f04d0] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
....
Memory: 49MB 436MB = 485MB total
Memory: 482508k/488652k available, 14132k reserved, 0K highmem

....
Regards,

:+1:

are you able to send a patch to the devs?

In file target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
change :

    memory@0 {

'-' reg = <0x42000000 0xe000000>;
'+' reg = <0x42000000 0x1e000000>;
device_type = "memory";

I'm almost sure we have to set proper CFLAGS or other flags in Makefile for drv_mei_cpe and other dsl packages ... regarding "-mfloat-abi=hard and soft cannot be used together" ...
We need a real developer to look into dsl packages compile problems ...

Regards,

just connected to serial console and this is what i get:

U-Boot 2012.07-21984-gd7d026f [local,local] (Apr 15 2015 - 10:49:55)

U-boot 2012.07 dni1 V0.9 for DNI HW ID: 29764958 NOR flash 0MB NAND flash 128MB RAM 256MB 1st Radio 4x4 2nd Radio 4x4 + xDSL
smem ram ptable found: ver: 0 len: 5
DRAM: 235 MiB

If i change the dts-file my d7800 doesn't start.

In this case there are two hardware versions ... :frowning:

D7800 may have the same thing
https://github.com/lede-project/source/commit/3ac5eb914169a7169f5522799fbb0f90f1234c1c

Sometimes r7500v2 and R7800 do not start when kernel tries to use this space

@dissent1 yeah maybe. Or maybe my device has only 256MB RAM. (Now as i think about it: i remember that my D7800 is a BETA-Test Unit. Maybe they switched then to more RAM in production) I had never a problem with starting the kernel.
Only as i tried the 512MB Patch and this was very funny because the router then don't react on anything. Only power off.
Reset button is also dead.

One question , on netgear fw have 6 PCI devices

 00:00.0 PCI bridge: Airgo Networks Inc Device 0101 (prog-if 00 [Normal decode])
 01:00.0 Network controller: Atheros Communications Inc. Device 0040
 02:00.0 PCI bridge: Airgo Networks Inc Device 0101 (prog-if 00 [Normal decode])
 03:00.0 Network controller: Atheros Communications Inc. Device 0040
 04:00.0 PCI bridge: Airgo Networks Inc Device 0101 (prog-if 00 [Normal decode])
 05:00.0 Network controller: Device 1bef:0020 (rev 01)

on LEDE only 4

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

Which element is responsible for detecting pci devices ? Why cant find Device 1bef:0020 on LEDE ?
Regards,

You need to enable 3rd pci slot in device tree

Try this
https://github.com/dissent1/r7800/commit/f5c3233f679dc79f82b542075d6f943f83edfd1e

UPDATE: updated the commit

2 Likes

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.