ipq60xx: add GL.iNet AX1800 init support

This commit is contained in:
lean 2021-12-09 17:23:11 +08:00
parent 5c40fcd80e
commit 06b8f98e25
8 changed files with 569 additions and 83 deletions

View File

@ -11,6 +11,9 @@ ipq60xx_setup_interfaces()
local board="$1" local board="$1"
case "$board" in case "$board" in
*"GL-AX1800"*)
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
;;
wf,hr6001) wf,hr6001)
ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3" "eth4" ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3" "eth4"
;; ;;

View File

@ -10,6 +10,7 @@ platform_check_image() {
platform_do_upgrade() { platform_do_upgrade() {
case "$(board_name)" in case "$(board_name)" in
*GL-AX1800* |\
wf,hr6001) wf,hr6001)
CI_UBIPART="rootfs" CI_UBIPART="rootfs"
nand_do_upgrade "$1" nand_do_upgrade "$1"

View File

@ -507,3 +507,4 @@ CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DMA32=y CONFIG_ZONE_DMA32=y
CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_COMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y CONFIG_ZSTD_DECOMPRESS=y
CONFIG_IPQ_MEM_PROFILE=0

View File

@ -0,0 +1,523 @@
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
* IPQ6018 CP01 board device tree source
*
* Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
*/
/dts-v1/;
#include "ipq6018.dtsi"
#include "ipq6018-cp-cpu.dtsi"
/ {
model = "GL-AX1800 IPQ6018/AP-CP03-C1";
compatible = "qcom,ipq6018-cp03", "qcom,ipq6018";
aliases {
led-boot = &power;
led-failsafe = &power;
led-running = &power;
led-upgrade = &power;
serial0 = &blsp1_uart3;
/*
* Aliases as required by u-boot
* to patch MAC addresses
*/
ethernet0 = "/soc/dp1";
ethernet1 = "/soc/dp2";
ethernet2 = "/soc/dp3";
ethernet3 = "/soc/dp4";
ethernet4 = "/soc/dp5";
};
chosen {
stdout-path = "serial0:115200n8";
bootargs-append = " ubi.mtd=rootfs root=/dev/ubiblock0_1 swiotlb=1";
};
};
&blsp1_uart3 {
pinctrl-0 = <&serial_3_pins>;
pinctrl-names = "default";
status = "ok";
};
&spi_0 {
cs-select = <0>;
status = "ok";
m25p80@0 {
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
compatible = "n25q128a11";
spi-max-frequency = <50000000>;
SBL1@0 {
label = "0:SBL1";
reg = <0x0 0xc0000>;
read-only;
};
MIBIB@c0000 {
label = "0:MIBIB";
reg = <0xc0000 0x10000>;
};
BOOTCONFIG@d0000 {
label = "0:BOOTCONFIG";
reg = <0xd0000 0x20000>;
read-only;
};
BOOTCONFIG1@f0000 {
label = "0:BOOTCONFIG1";
reg = <0xf0000 0x20000>;
read-only;
};
QSEE@110000 {
label = "0:QSEE";
reg = <0x110000 0x1a0000>;
read-only;
};
QSEE_1@2b0000 {
label = "0:QSEE_1";
reg = <0x2b0000 0x1a0000>;
read-only;
};
DEVCFG@450000 {
label = "0:DEVCFG";
reg = <0x450000 0x10000>;
read-only;
};
DEVCFG_1@460000 {
label = "0:DEVCFG_1";
reg = <0x460000 0x10000>;
read-only;
};
RPM@470000 {
label = "0:RPM";
reg = <0x4700000 0x40000>;
};
RPM_1@4b0000 {
label = "0:RPM_1";
reg = <0x4b0000 0x40000>;
read-only;
};
CDT@4f0000 {
label = "0:CDT";
reg = <0x4f0000 0x10000>;
};
CDT_1@500000 {
label = "0:CDT_1";
reg = <0x500000 0x10000>;
};
APPSBLENV@510000 {
label = "0:APPSBLENV";
reg = <0x510000 0x10000>;
};
APPSBL@520000 {
label = "0:APPSBL";
reg = <0x520000 0xa0000>;
};
APPSBL_1@5c0000 {
label = "0:APPSBL_1";
reg = <0x5c0000 0xa0000>;
};
ART: ART@660000 {
label = "0:ART";
reg = <0x660000 0x40000>;
};
};
};
&tlmm {
spi_0_pins: spi-0-pins {
pins = "gpio38", "gpio39", "gpio40", "gpio41";
function = "blsp0_spi";
drive-strength = <8>;
bias-pull-down;
};
sd_pins: sd-pinmux {
pins = "gpio62";
function = "sd_card";
drive-strength = <8>;
bias-pull-up;
};
i2c_1_pins: i2c_1_pins {
mux {
pins = "gpio42", "gpio43";
function = "blsp2_i2c";
drive-strength = <8>;
bias-pull-down;
};
};
mdio_pins: mdio_pinmux {
mux_0 {
pins = "gpio64";
function = "mdc";
drive-strength = <8>;
bias-pull-up;
};
mux_1 {
pins = "gpio65";
function = "mdio";
drive-strength = <8>;
bias-pull-up;
};
mux_2 {
pins = "gpio75";
function = "gpio";
bias-pull-up;
};
mux_3 {
pins = "gpio77";
function = "gpio";
bias-pull-up;
};
};
button_pins: button_pins {
reset_button {
pins = "gpio19";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
led_pins: leds_pins {
wlan5g {
pins = "gpio35";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
wlan2g {
pins = "gpio37";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
lan1 {
pins = "gpio51";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
lan2 {
pins = "gpio24";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
lan3 {
pins = "gpio53";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
lan4 {
pins = "gpio25";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
wan {
pins = "gpio9";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
};
&soc {
mdio: mdio@90000 {
pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";
phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>;
status = "ok";
phy0: ethernet-phy@0 {
reg = <0>;
};
phy1: ethernet-phy@1 {
reg = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
};
phy4: ethernet-phy@4 {
reg = <0x18>;
};
};
dp1 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <1>;
reg = <0x3a001000 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <0>;
phy-mode = "sgmii";
};
dp2 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <2>;
reg = <0x3a001200 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <1>;
phy-mode = "sgmii";
};
dp3 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <3>;
reg = <0x3a001400 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <2>;
phy-mode = "sgmii";
};
dp4 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <4>;
reg = <0x3a001600 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <3>;
phy-mode = "sgmii";
};
dp5 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <5>;
reg = <0x3a001800 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <24>;
phy-mode = "sgmii";
};
ess-switch@3a000000 {
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
switch_lan_bmp = <0x1e>; /* lan port bitmap */
switch_wan_bmp = <0x20>; /* wan port bitmap */
switch_inner_bmp = <0xc0>; /*inner port bitmap*/
switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@0 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port_id = <5>;
phy_address = <0x18>;
port_mac_sel = "QGMAC_PORT";
};
};
};
nss-macsec0 {
compatible = "qcom,nss-macsec";
phy_addr = <0x18>;
phy_access_mode = <0>;
mdiobus = <&mdio>;
};
sd_pwrseq: sd-pwrseq {
compatible = "mmc-pwrseq-ipq";
reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>;
};
gpio_keys {
compatible = "gpio-keys";
pinctrl-0 = <&button_pins>;
pinctrl-names = "default";
button@1 {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&led_pins>;
pinctrl-names = "default";
led@35 {
label = "green:wlan5g";
gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
};
power: led@37 {
label = "green:wlan2g";
gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
};
led@51 {
label = "green:lan1";
gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>;
};
led@24 {
label = "green:lan2";
gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>;
};
led@53 {
label = "green:lan3";
gpios = <&tlmm 53 GPIO_ACTIVE_HIGH>;
};
led@25 {
label = "green:lan4";
gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
};
led@31 {
label = "green:wan";
gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
};
};
};
&qpic_bam {
status = "ok";
};
&qpic_nand {
status = "ok";
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-bus-width = <8>;
partition0@ {
label = "rootfs";
reg = <0x0 0x3c00000>;
};
partition1@0x8000000 {
label = "rootfs_1";
reg = <0x3c00000 0x3c00000>;
};
};
};
&pcie_phy {
status = "ok";
};
&pcie0 {
status = "ok";
};
&qusb_phy_1 {
status = "ok";
};
&usb2 {
status = "ok";
};
&sdhc_2 {
pinctrl-0 = <&sd_pins>;
pinctrl-names = "default";
cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
status = "ok";
};
&qusb_phy_0 {
status = "ok";
};
&ssphy_0 {
status = "ok";
};
&usb3 {
status = "ok";
};
&nss_crypto {
status = "ok";
};
&i2c_1 {
pinctrl-0 = <&i2c_1_pins>;
pinctrl-names = "default";
status = "ok";
};
&sdhc_2 {
pinctrl-0 = <&sd_pins>;
pinctrl-names = "default";
mmc-pwrseq = <&sd_pwrseq>;
cd-gpios = <&tlmm 62 1>;
sd-ldo-gpios = <&tlmm 66 0>;
vqmmc-supply = <&ipq6018_l2>;
status = "ok";
};

View File

@ -23,16 +23,31 @@ define Device/UbiFit
IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
endef endef
define Device/wf_hr6001 define Device/glinet_gl-ax1800
$(call Device/FitImage) $(call Device/FitImage)
$(call Device/UbiFit) $(call Device/UbiFit)
DEVICE_VENDOR := WF DEVICE_VENDOR := GL.iNet
DEVICE_MODEL := HR6001 DEVICE_MODEL := GL-AX1800
KERNEL_LOADADDR := 0x41000000
BLOCKSIZE := 128k BLOCKSIZE := 128k
PAGESIZE := 2048 PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@cp01-c1 DEVICE_DTS := qcom-ipq6018-gl-ax1800
SOC := ipq6018 DEVICE_DTS_CONFIG := config@cp03-c1
DEVICE_PACKAGES := uboot-envtools BOARD_NAME := ap-cp03-c1
IMAGES += stock-factory.bin
IMAGE/stock-factory.bin := append-ubi | qsdk-ipq-factory-nand
endef endef
TARGET_DEVICES += wf_hr6001 TARGET_DEVICES += glinet_gl-ax1800
#define Device/wf_hr6001
# $(call Device/FitImage)
# $(call Device/UbiFit)
# DEVICE_VENDOR := WF
# DEVICE_MODEL := HR6001
# KERNEL_LOADADDR := 0x41000000
# BLOCKSIZE := 128k
# PAGESIZE := 2048
# DEVICE_DTS_CONFIG := config@cp01-c1
# SOC := ipq6018
# DEVICE_PACKAGES := uboot-envtools
#endef
#TARGET_DEVICES += wf_hr6001

View File

@ -1,35 +1,39 @@
--- a/net/netfilter/nf_conntrack_proto_tcp.c --- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -32,12 +32,14 @@ @@ -32,20 +32,14 @@
#include <net/netfilter/ipv6/nf_conntrack_ipv6.h> #include <net/netfilter/ipv6/nf_conntrack_ipv6.h>
/* Do not check the TCP window for incoming packets */ /* Do not check the TCP window for incoming packets */
-static int nf_ct_tcp_no_window_check __read_mostly = 1; -static int nf_ct_tcp_no_window_check __read_mostly = 1;
-
-#ifdef CONFIG_SHORTCUT_FE
+int nf_ct_tcp_no_window_check __read_mostly = 1; +int nf_ct_tcp_no_window_check __read_mostly = 1;
+EXPORT_SYMBOL_GPL(nf_ct_tcp_no_window_check); EXPORT_SYMBOL_GPL(nf_ct_tcp_no_window_check);
-#endif
/* "Be conservative in what you do, /* "Be conservative in what you do,
be liberal in what you accept from others." be liberal in what you accept from others."
If it's non-zero, we mark only out of window RST segments as INVALID. */ If it's non-zero, we mark only out of window RST segments as INVALID. */
-static int nf_ct_tcp_be_liberal __read_mostly = 0; -static int nf_ct_tcp_be_liberal __read_mostly = 0;
-
-#ifdef CONFIG_SHORTCUT_FE
+int nf_ct_tcp_be_liberal __read_mostly = 0; +int nf_ct_tcp_be_liberal __read_mostly = 0;
+EXPORT_SYMBOL_GPL(nf_ct_tcp_be_liberal); EXPORT_SYMBOL_GPL(nf_ct_tcp_be_liberal);
-#endif
/* If it is set to zero, we disable picking up already established /* If it is set to zero, we disable picking up already established
connections. */ connections. */
--- a/include/linux/if_bridge.h --- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h
@@ -61,6 +61,9 @@ struct br_ip_list { @@ -63,6 +63,7 @@ extern void brioctl_set(int (*ioctl_hook
#define BR_DEFAULT_AGEING_TIME (300 * HZ)
extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); extern void br_dev_update_stats(struct net_device *dev,
+extern void br_dev_update_stats(struct net_device *dev, struct rtnl_link_stats64 *nlstats);
+ struct rtnl_link_stats64 *nlstats);
+extern bool br_is_hairpin_enabled(struct net_device *dev); +extern bool br_is_hairpin_enabled(struct net_device *dev);
#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING) #if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
int br_multicast_list_adjacent(struct net_device *dev, int br_multicast_list_adjacent(struct net_device *dev,
@@ -156,4 +159,41 @@ br_port_flag_is_set(const struct net_dev @@ -158,4 +159,41 @@ br_port_flag_is_set(const struct net_dev
} }
#endif #endif
@ -104,7 +108,7 @@
__be16 vlan_proto, u16 vlan_id) __be16 vlan_proto, u16 vlan_id)
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h +++ b/include/linux/netdevice.h
@@ -2756,6 +2756,10 @@ enum netdev_cmd { @@ -2745,6 +2745,10 @@ enum netdev_cmd {
NETDEV_CVLAN_FILTER_DROP_INFO, NETDEV_CVLAN_FILTER_DROP_INFO,
NETDEV_SVLAN_FILTER_PUSH_INFO, NETDEV_SVLAN_FILTER_PUSH_INFO,
NETDEV_SVLAN_FILTER_DROP_INFO, NETDEV_SVLAN_FILTER_DROP_INFO,
@ -396,35 +400,11 @@
/* Since more than one interface can be attached to a bridge, /* Since more than one interface can be attached to a bridge,
* there still maybe an alternate path for netconsole to use; * there still maybe an alternate path for netconsole to use;
* therefore there is no reason for a NETDEV_RELEASE event. * therefore there is no reason for a NETDEV_RELEASE event.
@@ -790,3 +800,98 @@ bool br_port_flag_is_set(const struct ne @@ -812,3 +822,74 @@ bool br_port_flag_is_set(const struct ne
return p->flags & flag; return p->flags & flag;
} }
EXPORT_SYMBOL_GPL(br_port_flag_is_set); EXPORT_SYMBOL_GPL(br_port_flag_is_set);
+ +
+/* QCA NSS ECM support - Start */
+/* Update bridge statistics for bridge packets processed by offload engines */
+void br_dev_update_stats(struct net_device *dev,
+ struct rtnl_link_stats64 *nlstats)
+{
+ struct net_bridge *br;
+ struct pcpu_sw_netstats *stats;
+
+ /* Is this a bridge? */
+ if (!(dev->priv_flags & IFF_EBRIDGE))
+ return;
+
+ br = netdev_priv(dev);
+ stats = this_cpu_ptr(br->stats);
+
+ u64_stats_update_begin(&stats->syncp);
+ stats->rx_packets += nlstats->rx_packets;
+ stats->rx_bytes += nlstats->rx_bytes;
+ stats->tx_packets += nlstats->tx_packets;
+ stats->tx_bytes += nlstats->tx_bytes;
+ u64_stats_update_end(&stats->syncp);
+}
+EXPORT_SYMBOL_GPL(br_dev_update_stats);
+
+/* API to know if hairpin feature is enabled/disabled on this bridge port */ +/* API to know if hairpin feature is enabled/disabled on this bridge port */
+bool br_is_hairpin_enabled(struct net_device *dev) +bool br_is_hairpin_enabled(struct net_device *dev)
+{ +{
@ -497,7 +477,7 @@
+/* QCA NSS ECM support - End */ +/* QCA NSS ECM support - End */
--- a/net/bridge/br_private.h --- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h +++ b/net/bridge/br_private.h
@@ -1591,4 +1591,9 @@ void br_do_proxy_suppress_arp(struct sk_ @@ -1593,4 +1593,9 @@ void br_do_proxy_suppress_arp(struct sk_
void br_do_suppress_nd(struct sk_buff *skb, struct net_bridge *br, void br_do_suppress_nd(struct sk_buff *skb, struct net_bridge *br,
u16 vid, struct net_bridge_port *p, struct nd_msg *msg); u16 vid, struct net_bridge_port *p, struct nd_msg *msg);
struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m); struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m);

View File

@ -1,38 +0,0 @@
From e38488fd0a8a11b4bae4ccad9a7a8cfcf9eb5ab7 Mon Sep 17 00:00:00 2001
From: Murat Sezgin <msezgin@codeaurora.org>
Date: Mon, 6 Apr 2020 11:08:09 -0700
Subject: [PATCH] netfilter: export udp_get_timeouts function
This function is required for acceleration support.
Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
Change-Id: Ibca4f402735764e7e6fb3ce2678e670753c6ef9c
---
include/net/netfilter/nf_conntrack_timeout.h | 1 +
net/netfilter/nf_conntrack_proto_udp.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
--- a/include/net/netfilter/nf_conntrack_timeout.h
+++ b/include/net/netfilter/nf_conntrack_timeout.h
@@ -123,5 +123,6 @@ static inline void nf_ct_destroy_timeout
extern struct nf_ct_timeout *(*nf_ct_timeout_find_get_hook)(struct net *net, const char *name);
extern void (*nf_ct_timeout_put_hook)(struct nf_ct_timeout *timeout);
#endif
+extern unsigned int *udp_get_timeouts(struct net *net);
#endif /* _NF_CONNTRACK_TIMEOUT_H */
--- a/net/netfilter/nf_conntrack_proto_udp.c
+++ b/net/netfilter/nf_conntrack_proto_udp.c
@@ -29,10 +29,11 @@ static const unsigned int udp_timeouts[U
[UDP_CT_REPLIED] = 120*HZ,
};
-static unsigned int *udp_get_timeouts(struct net *net)
+unsigned int *udp_get_timeouts(struct net *net)
{
return nf_udp_pernet(net)->timeouts;
}
+EXPORT_SYMBOL(udp_get_timeouts);
static void udp_error_log(const struct sk_buff *skb,
const struct nf_hook_state *state,

View File

@ -12,11 +12,12 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
--- a/arch/arm64/boot/dts/qcom/Makefile --- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d @@ -3,6 +3,8 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d
dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb
dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb
+dtb-$(CONFIG_ARCH_QCOM) += ipq6018-hr6001.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq6018-hr6001.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qcom-ipq6018-gl-ax1800.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb