Skip to content

Commit

Permalink
ipq806x: add support for Netgear Nighthawk X4 R7500
Browse files Browse the repository at this point in the history
Add support for the Netgear Nighthawk X4 R7500 and build
appropariate sysupgrade and factory images.

Known issues:
 * 5 GHz wifi not working - there is no quantenna driver
 * One of the USB ports is not working

Signed-off-by: Jonas Gorski <[email protected]>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46796 3c298f89-4303-0410-b956-a3cf2f4a3e73
  • Loading branch information
KanjiMonster committed Sep 4, 2015
1 parent 74a1d6e commit 897157d
Show file tree
Hide file tree
Showing 8 changed files with 866 additions and 3 deletions.
26 changes: 26 additions & 0 deletions target/linux/ipq806x/base-files/etc/uci-defaults/leds
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh
#
# Copyright (C) 2015 OpenWrt.org
#

. /lib/functions/uci-defaults.sh
. /lib/ipq806x.sh

board=$(ipq806x_board_name)

case "$board" in
r7500)
ucidef_set_led_usbdev "usb1" "USB 1" "r7500:white:usb1" "1-1"
ucidef_set_led_usbdev "usb2" "USB 2" "r7500:white:usb3" "3-1"
ucidef_set_led_netdev "wan" "WAN" "r7500:white:wan" "eth0"
ucidef_set_led_ide_disk "esata" "eSATA" "r7500:amber:esata"
ucidef_set_led_default "wps" "WPS" "r7500:white:wps" "0"
ucidef_set_led_default "rfkill" "rfkill" "r7500:white:rfkill" "0"
;;
*)
;;
esac

ucidef_commit_leds

exit 0
3 changes: 2 additions & 1 deletion target/linux/ipq806x/base-files/etc/uci-defaults/network
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ ucidef_set_interface_loopback
board=$(ipq806x_board_name)

case "$board" in
ap148)
ap148 |\
r7500)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
ucidef_add_switch "switch0" "1" "1"
ucidef_add_switch_vlan "switch0" "1" "6 1 2 3 4"
Expand Down
3 changes: 3 additions & 0 deletions target/linux/ipq806x/base-files/lib/ipq806x.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ ipq806x_board_detect() {
*"DB149")
name="db149"
;;
*"R7500")
name="r7500"
;;
esac

[ -z "$name" ] && name="unknown"
Expand Down
3 changes: 2 additions & 1 deletion target/linux/ipq806x/base-files/lib/upgrade/platform.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ platform_check_image() {
local board=$(ipq806x_board_name)

case "$board" in
AP148)
AP148 |\
r7500)
nand_do_platform_check $board $1
return $?;
;;
Expand Down
40 changes: 39 additions & 1 deletion target/linux/ipq806x/image/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,20 @@ KERNEL_LOADADDR := 0x42208000

define Image/Prepare
$(CP) $(LINUX_DIR)/vmlinux $(KDIR)/$(IMG_PREFIX)-vmlinux.elf
mkimage -A arm -O linux -T filesystem -C none \
-a $(KERNEL_LOADADDR) -e $(KERNEL_LOADADDR) \
-n 'ARM OpenWrt fakeroot' \
-s $(KDIR_TMP)/root.dummy-uImage.tmp
echo -ne '\xff' > $(KDIR_TMP)/root.dummy
cat $(KDIR_TMP)/root.dummy $(KDIR_TMP)/root.dummy-uImage.tmp > $(KDIR)/root.dummy
endef

define Image/BuildKernel
$(CP) $(KDIR)/$(IMG_PREFIX)-vmlinux.elf $(BIN_DIR)
endef

define Image/Build/squashfs
cp $(KDIR)/root.squashfs $(KDIR)/root.squashfs-raw
$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
endef

Expand All @@ -29,6 +36,10 @@ define Build/append-dtb
cat $(DTS_DIR)/$(DEVICE_DTS).dtb >> $@
endef

define Build/append-file
cat $(1) >> $@
endef

define Device/Default
PROFILES := Default
KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
Expand Down Expand Up @@ -58,6 +69,22 @@ define Device/UbiFit
IMAGE/nand-sysupgrade.tar := sysupgrade-nand
endef

define Device/DniImage
PROFILES += $$(DEVICE_NAME)
FILESYSTEMS := squashfs
KERNEL_SUFFIX := -uImage
KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
KERNEL = kernel-bin | append-dtb | pad-to $$$$(($$(KERNEL_SIZE)-2*64-1)) | append-file $(KDIR)/root.dummy | uImage none
KERNEL_NAME := zImage
NETGEAR_BOARD_ID :=
NETGEAR_HW_ID :=
BOARD_NAME :=
IMAGES := factory.img sysupgrade.tar
IMAGE/factory.img := append-kernel | append-ubi | netgear-dni
IMAGE/sysupgrade.tar = sysupgrade-nand
endef
DEVICE_VARS += KERNEL_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID DEVICE_BLOCK_SIZE DEVICE_PAGE_SIZE BOARD_NAME

define Device/AP148
$(call Device/FitImage)
$(call Device/UbiFit)
Expand All @@ -81,6 +108,17 @@ define Device/DB149
KERNEL_INSTALL := 1
endef

TARGET_DEVICES += AP148 AP148-legacy DB149
define Device/R7500
$(call Device/DniImage)
DEVICE_DTS := qcom-ipq8064-r7500
KERNEL_SIZE := 2097152
NETGEAR_BOARD_ID := R7500
NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
BLOCKSIZE := 128KiB
PAGESIZE := 2048
BOARD_NAME := r7500
endef

TARGET_DEVICES += AP148 AP148-legacy DB149 R7500

$(eval $(call BuildImage))
Loading

0 comments on commit 897157d

Please sign in to comment.