Kernel Patches Netgear R8000P -> R7900P

I'm looking to build/test/commit support for the NetGear R7900P. By report, NetGear's firmware for the R8000P is identical to the R7900P
https://deviwiki.com/wiki/Netgear_R7900P.
Additionally, I found a dd-wrt forum post reporting the use of R8000 firmware in a R7900.
https://forum.dd-wrt.com/phpBB2/viewtopic.php?p=1141460

Finally, the latest R7900P OEM firmware has this entry (gvim/hex convert):
DU12H359T00_NETGEAR

To confirm, I downloaded and extracted the firmware for both devices.

P*****$ pwd                                                                    
/home/***/Downloads/NetGear
P*****$ ls R7900P/ R8000P/                                                     
R7900P/:
R7900P-V1.4.2.84_1.3.42.chk                    R7900P-V1.4.2.84_1.3.42.zip      

R8000P/:
R8000P-V1.4.2.84_1.3.42.chk                    R8000P-V1.4.2.84_1.3.42.zip      
P*****$ diff R
R7900P/  R8000P/  
P*****$ diff R7900P/R7900P-V1.4.2.84_1.3.42.chk R8000P/R8000P-V1.4.2.84_1.3.42.chk
P*****$

The R8000P is supported by OpenWRT and has the same board id:

define Device/netgear_r8000p
  DEVICE_VENDOR := Netgear
  DEVICE_MODEL := R8000P
  DEVICE_DTS := broadcom/bcm4908/bcm4906-netgear-r8000p
  IMAGES := chk
  IMAGE/chk := append-ubi | bcm4908img | netgear-chk
  NETGEAR_BOARD_ID := U12H359T00_NETGEAR
  NETGEAR_REGION := 1
endef
TARGET_DEVICES += netgear_r8000p

Questions:

  1. The R7900P has one usb3.0 port while the R8000P has one USB3 and one USB2
DEFAULT_PACKAGES += \
	bcm4908img \
	kmod-gpio-button-hotplug \
	kmod-usb-ohci kmod-usb2 kmod-usb3

The usb2 header is probably on the board. Do I need kmod-usb2?

  1. My git clone shows 3 patches for Kernel 5.10 that specifically reference R8000P

How do I handle theses?

  1. The dts for the R8000P has separate LEDS for USB2 and USB3. If the manufacturer was not motivated to build different firmware for the 2 devices, is it worthwhile for the project to be more technically more accurate even though in practice it will not make any difference?

  2. Is there a simple way to use the R8000P image and just re-label the image as R7900P?

1 Like

I'm also interested, I've a R7900P too. Do you have a link to the post you mentioned?

I'm thinking about put some effort on this R7900P/R8000P target

I had to correct my original post and went ahead and put in the dd-wrt link. To be clear the R8000 is a different device from the R8000P but my own tests show that the OEM firmware for the R7900P and R8000P are identical (diff run on both extracted firmwares generated no output).

@KONG , in the dd-wrt forum suggested that, because the OEM R7900 firmware was identical to the R8000 firmware, it could probably be flashed and in that thread it was confirmed to run. By extension, you should be able to flash the OpenWRT snapshot R8000P build in the R7900P.

There is always a risk when you are the first to try out a firmware and I'm holding off testing because Netgear is still providing security updates and, more importantly, it is not my device.
https://firmware-selector.openwrt.org/?version=SNAPSHOT&target=bcm4908%2Fgeneric&id=netgear_r8000p

Usually they have a different header in the image: DU12H359T00_NETGEAR which is just used for things like different led handling and for the upgrade check, if it has the same header, then it is pretty clear, that it is identical and if just the led is missing and a usb port, flashing the current R8000P image should work fine.

And since the header is the same, the *.chk file will be accepted right away, netgear firmware reads the header from the .chk, in case it doesn't match it will tell you. Thus it is pretty safe to try flashing the openwrt *.chk, if netgear firmware upgrade accepts it. You may get a warning, that you are trying to flash an older version, not sure what openwrt currently sets as version info in the build step.