From 26ac03f3f6dbaa9b3df036e5b0b33014af7b1765 Mon Sep 17 00:00:00 2001 From: suyuan <175338101@qq.com> Date: Sat, 10 Sep 2022 05:47:47 +0800 Subject: [PATCH] add qca feed --- qaa/art2/art2/Makefile | 137 + qaa/art2/art2/files/art.init | 372 + .../patches/0001-build_fix_with_gcc5.patch | 10 + .../patches/0002-add-lrt-dependency.patch | 13 + .../patches/0002-fix-build-with-musl.patch | 83 + qaa/athdiag/athdiag/Makefile | 50 + qaa/athtestcmd/athtestcmd/Makefile | 119 + qaa/bluetopia/bluetopia-mini/Makefile | 195 + .../bluetopia-mini/files/PS_KEY_CSR8811.txt | 83 + .../bluetopia-mini/files/bluetopia.init | 20 + qaa/bluetopia/bluetopia-mini/files/bt_env.sh | 10 + .../patches/001-otp-support.patch | 50 + qaa/bluetopia/bluetopia/Makefile | 213 + .../bluetopia/files/PS_KEY_CSR8811.txt | 76 + qaa/bluetopia/bluetopia/files/bluetopia.init | 20 + qaa/bluetopia/bluetopia/files/bt_env.sh | 10 + .../bluetopia/patches/001-otp-support.patch | 50 + qaa/btdaemon/btdaemon/Config.in | 8 + qaa/btdaemon/btdaemon/Makefile | 51 + qaa/firmware/nss-firmware/Makefile | 70 - qaa/hyfi/hyfi/Makefile | 132 + qaa/hyfi/qca-hyfi-bridging/qca-hyctl/Makefile | 64 + .../qca-hyfi-bridge/Makefile | 88 + .../qca-hyfi-bridge/files/hyfi-bridging.init | 92 + .../qca-hyfi-iptv-helper/Makefile | 61 + .../qca-hyfi-bridging/qca-hyfi-qdisc/Makefile | 43 + .../qca-libhyfi-bridge/Makefile | 67 + qaa/hyfi/qca-hyfi-luci/Makefile | 58 + .../qca-hyfi-luci/files/luci-hyfi/Makefile | 2 + .../luci-hyfi/luasrc/controller/hyfi.lua | 23 + .../luasrc/model/cbi/hyfi/advanced.lua | 711 + .../luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua | 309 + .../luci-hyfi/luasrc/view/hyfi/btn_adv.htm | 11 + .../luci-hyfi/luasrc/view/hyfi/dview_js.htm | 207 + qaa/hyfi/qca-hyfi-networking/qca-acd/Makefile | 35 + .../qca-acd/files/acd-run.sh | 335 + .../qca-acd/files/acd.config | 12 + .../qca-acd/files/acd.init | 488 + .../qca-hyfi-networking/qca-hyd/Config.in | 61 + qaa/hyfi/qca-hyfi-networking/qca-hyd/Makefile | 362 + .../qca-hyd/files/hyd-map-cmd | 10 + .../qca-hyd/files/hyd.config | 275 + .../qca-hyd/files/hyd.hotplug | 83 + .../qca-hyd/files/hyd.init | 1074 ++ .../qca-hyd/files/hyd_noprocd.init | 950 ++ .../qca-hyfi-networking/qca-hyd/files/hyt | 1 + .../qca-hyd/files/sp-rules.conf | 52 + .../qca-hyfi-networking/qca-vhyfid/Makefile | 62 + .../qca-vhyfid/files/start_hyfi | 192 + .../qca-vhyfid/files/stop_hyfi | 123 + .../qca-vhyfid/files/vhyfi.sh | 84 + .../qca-vhyfid/files/vhyfid.config | 19 + .../qca-vhyfid/files/vhyfid.init | 193 + qaa/hyfi/qca-son-cli/Config.in | 8 + qaa/hyfi/qca-son-cli/Makefile | 79 + qaa/hyfi/qca-son-cli/files/commands.sh | 175 + .../libieee1905/Makefile | 71 + .../libstorage/Makefile | 85 + .../libwpa2/Makefile | 88 + .../qca-ieee1905-init/Makefile | 33 + .../qca-ieee1905-init/files/hyfi-debug.sh | 57 + .../qca-ieee1905-init/files/hyfi-iface.sh | 744 + .../qca-ieee1905-init/files/hyfi-network.sh | 22 + .../qca-wsplcd/Config.in | 18 + .../qca-wsplcd/Makefile | 233 + .../qca-wsplcd/files/scheme-a.conf | 9 + .../qca-wsplcd/files/scheme-b.conf | 9 + .../qca-wsplcd/files/scheme-c.conf | 8 + .../qca-wsplcd/files/scheme-d.conf | 13 + .../qca-wsplcd/files/uci2cfg.sh | 669 + .../qca-wsplcd/files/wsplcd.button | 17 + .../qca-wsplcd/files/wsplcd.config | 67 + .../qca-wsplcd/files/wsplcd.init | 979 ++ .../qca-wsplcd/files/wsplcd_no_procd.init | 854 ++ qaa/ieee1905-security/qca-wsplc-luci/Makefile | 58 + .../qca-wsplc-luci/files/luci-wsplc/Makefile | 2 + .../luci-wsplc/luasrc/controller/wsplc.lua | 23 + .../luasrc/model/cbi/wsplc/advanced.lua | 115 + .../luasrc/model/cbi/wsplc/wsplc.lua | 155 + .../luci-wsplc/luasrc/view/wsplc/btn_adv.htm | 11 + .../luci-wsplc/luasrc/view/wsplc/dview_js.htm | 165 + qaa/lte-cm/cm/Makefile | 61 + qaa/lte-cm/cm/files/etc/config/sierra-cm | 38 + .../cm/files/usr/bin/channel_avoidance.sh | 69 + qaa/lte-cm/cm/files/usr/bin/lte_apn_setup.sh | 63 + qaa/lte-cm/cm/files/usr/bin/sierra-cm | 89 + .../usr/lib/lte-cm/lte_channel_table.txt | 15 + .../cm/files/usr/lib/lte-cm/lte_info.json | 21 + .../patches/001-add_support_to_compile.patch | 55 + qaa/lte-cm/cm/src/connectionmgr.c | 2299 +++ qaa/lte-cm/driver/Makefile | 35 + qaa/minidump/minidump/Makefile | 48 + qaa/minidump/minidump/files/00-minidump | 78 + qaa/minidump/minidump/files/minidump.conf | 8 + qaa/nss-prop/aq-fw-download/Makefile | 55 + qaa/nss-prop/aq-fw-download/src/Makefile | 14 + .../aq-fw-download/src/include/AQ_API.h | 246 + .../src/include/AQ_PhyInterface.h | 171 + .../src/include/AQ_PlatformRoutines.h | 71 + .../aq-fw-download/src/include/AQ_RegMacro.h | 323 + .../src/include/AQ_ReturnCodes.h | 113 + .../aq-fw-download/src/include/AQ_User.h | 97 + .../APPIA/AQ_APPIA_Global_registers.h | 5581 +++++++ .../APPIA/AQ_APPIA_Global_registers_Defines.h | 2134 +++ .../AQ_APPIA_Global_registers_reversed.h | 5581 +++++++ .../include/registerMap/AQ_RegGroupMaxSizes.h | 387 + .../src/include/registerMap/AQ_RegMaps.h | 69 + .../registerMap/HHD/AQ_HHD_Global_registers.h | 12123 ++++++++++++++++ .../HHD/AQ_HHD_Global_registers_Defines.h | 4413 ++++++ .../HHD/AQ_HHD_Global_registers_reversed.h | 12123 ++++++++++++++++ .../aq-fw-download/src/mdioBootLoadCLD.c | 193 + qaa/nss-prop/aq-fw-download/src/src/AQ_API.c | 1021 ++ .../aq-fw-download/src/src/AQ_PhyInterface.c | 141 + qaa/nss-prop/qca-nss-fw-eip-cp/Makefile | 46 + qaa/nss-prop/qca-nss-fw-eip-hk/Makefile | 46 + qaa/nss/nss-ifb/Makefile | 49 - qaa/nss/nss-ifb/README.md | 45 - qaa/nss/nss-ifb/src/Makefile | 3 - qaa/nss/nss-ifb/src/nss_ifb.c | 304 - qaa/nss/qca-nss-cfi/Makefile | 99 - .../patches/0001-compile-only-cryptoapi.patch | 30 - .../patches/0002-wip-support-5.4.patch | 78 - .../0003-Convert-ablkcipher-to-skcipher.patch | 707 - qaa/nss/qca-nss-clients-64/Makefile | 97 - .../qca-nss-clients-64/files/qca-nss-ipsec | 214 - .../files/qca-nss-mirred.init | 28 - .../files/qca-nss-ovpn.init | 69 - qaa/nss/qca-nss-clients/Makefile | 469 - qaa/nss/qca-nss-clients/files/qca-nss-ipsec | 92 - .../qca-nss-clients/files/qca-nss-mirred.init | 28 - .../qca-nss-clients/files/qca-nss-ovpn.init | 69 - .../100-kernel-5.4-support-qdisc.patch | 1145 -- .../patches/101-kernel-5.4-support-gre.patch | 106 - .../102-kernel-5.4-support-ipsec.patch | 29 - .../patches/103-kernel-5.4-support-dtls.patch | 11 - .../patches/104-kernel-5.4-support-l2tp.patch | 64 - .../patches/200-qdisc-fix-compile-error.patch | 14 - .../202-vlanmgr-fix-compile-error.patch | 48 - qaa/nss/qca-nss-crypto/Makefile | 74 - .../patches/100-kernel-5.4-support.patch | 42 - .../200-fix-NULL-pointer-exception.patch | 57 - qaa/nss/qca-nss-dp/Makefile | 62 - ...port-newer-kernels-time-stamping-API.patch | 44 - ...-phy-mode-code-compatible-with-newer.patch | 48 - ...03-Drop-_nocache-variants-of-ioremap.patch | 48 - .../0004-EDMA-Fix-NAPI-packet-counting.patch | 31 - ...-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch | 41 - .../0006-NSS-DP-fix-of_get_mac_address.patch | 50 - qaa/nss/qca-nss-drv-64/Makefile | 121 - qaa/nss/qca-nss-drv-64/files/qca-nss-drv.conf | 6 - .../qca-nss-drv-64/files/qca-nss-drv.debug | 26 - .../qca-nss-drv-64/files/qca-nss-drv.hotplug | 70 - qaa/nss/qca-nss-drv-64/files/qca-nss-drv.init | 50 - .../qca-nss-drv-64/files/qca-nss-drv.sysctl | 4 - ...ore-add-5.10-kernel-to-version-check.patch | 25 - ...replace-ioremap_nocache-with-ioremap.patch | 164 - ...0003-DMA-Fix-NULL-pointer-exceptions.patch | 49 - ...hack-support-for-mismatched-firmware.patch | 344 - qaa/nss/qca-nss-drv/Makefile | 125 - .../files/nss-firmware/LICENSE.TXT | 45 - .../qca-nss-drv/files/nss-firmware/NOTICE.TXT | 217 - .../qca-nss-drv/files/nss-firmware/README.md | 10 - .../files/nss-firmware/qca-nss0-retail.bin | Bin 536324 -> 0 bytes .../files/nss-firmware/qca-nss1-retail.bin | Bin 218224 -> 0 bytes qaa/nss/qca-nss-drv/files/qca-nss-drv.conf | 6 - qaa/nss/qca-nss-drv/files/qca-nss-drv.debug | 26 - qaa/nss/qca-nss-drv/files/qca-nss-drv.hotplug | 70 - qaa/nss/qca-nss-drv/files/qca-nss-drv.init | 50 - qaa/nss/qca-nss-drv/files/qca-nss-drv.sysctl | 4 - .../patches/100-kernel-5.4-support.patch | 107 - ...ol-fab-scaling-from-package-Makefile.patch | 38 - .../200-fix-NULL-pointer-exception.patch | 11 - ...1-Fix-Kernel-Panic-dma-with-NULL-dev.patch | 82 - .../400-Exported-set-nexthop-function.patch | 47 - qaa/nss/qca-nss-ecm-64/Makefile | 96 - qaa/nss/qca-nss-ecm-64/files/ecm_dump.sh | 95 - qaa/nss/qca-nss-ecm-64/files/on-demand-down | 6 - .../qca-nss-ecm-64/files/qca-nss-ecm.defaults | 28 - .../qca-nss-ecm-64/files/qca-nss-ecm.firewall | 18 - qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.init | 137 - .../qca-nss-ecm-64/files/qca-nss-ecm.sysctl | 2 - qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.uci | 2 - ...de-componentize-the-module-even-more.patch | 335 - .../patches/100-kernel-5.10-support.patch | 831 -- .../203-rework-nfct-notification.patch | 25 - .../patches/204-More-compile-fixes.patch | 58 - .../patches/205-resolve-high-load.patch | 61 - qaa/nss/qca-nss-ecm/Makefile | 278 - qaa/nss/qca-nss-ecm/files/ecm_dump.sh | 95 - qaa/nss/qca-nss-ecm/files/on-demand-down | 6 - .../qca-nss-ecm/files/qca-nss-ecm.defaults | 28 - .../qca-nss-ecm/files/qca-nss-ecm.firewall | 18 - qaa/nss/qca-nss-ecm/files/qca-nss-ecm.init | 133 - qaa/nss/qca-nss-ecm/files/qca-nss-ecm.sysctl | 2 - qaa/nss/qca-nss-ecm/files/qca-nss-ecm.uci | 2 - .../patches/001-Drop_SFE_from_ecm.patch | 12 - .../patches/100-kernel-5.4-support.patch | 1276 -- .../101-Fix_Kern_Panic_on_UDP_CONNTRACK.patch | 60 - .../patches/200-resolve-high-load.patch | 44 - .../203-rework-nfct-notification.patch | 20 - ...heck-TCP_UDP-conntrack-state-earlier.patch | 236 - ...ix-NSS-stats-request-roll-over-issue.patch | 52 - ...01-Fix-for-ref-leak-during-multicast.patch | 112 - ...neighbour-solicitation-send-function.patch | 33 - ...e-leak-during-multicast_PPPoE-bridge.patch | 260 - ...-global-accelerated-count-under-lock.patch | 59 - ...x-IPv6-neighbor-solicitation-request.patch | 83 - ...tation-fix-with-zero-gateway-address.patch | 63 - ...-port-when-bridge-hairpin-is-enabled.patch | 126 - qaa/nss/qca-nss-fw-cp-enterprise/Makefile | 45 + qaa/nss/qca-nss-fw-cp-retail/Makefile | 45 + qaa/nss/qca-nss-fw-hk-enterprise/Makefile | 46 + qaa/nss/qca-nss-fw-hk-retail/Makefile | 48 + qaa/nss/qca-nss-fw-mp-enterprise/Makefile | 45 + qaa/nss/qca-nss-fw-mp-retail/Makefile | 45 + qaa/nss/qca-nss-fw2-enterprise/Makefile | 46 + qaa/nss/qca-nss-fw2-retail/Makefile | 46 + qaa/nss/qca-nss-gmac/Makefile | 47 - .../patches/100-kernel-5.4-support.patch | 279 - .../patches/101-nss-gmac-test-ptr.patch | 25 - ...-work-around-interface-close-warning.patch | 15 - qaa/qca-IOT/qca-iot/Config.in | 7 + qaa/qca-IOT/qca-iot/Makefile | 74 + qaa/qca-IOT/qca-iot/files/Quartz_FW_UP.bin | Bin 0 -> 1638593 bytes qaa/qca-IOT/qca-iot/files/Quartz_HASHED.elf | Bin 0 -> 1548464 bytes qaa/qca-IOT/qca-iot/files/fw_upgrade.xml | 34 + .../qca-iot/files/gen_fw_upgrade_img.py | 415 + .../qca-iot/files/ioe_ram_m0_threadx_ipt.mbn | Bin 0 -> 89528 bytes .../qca-iot/files/iotd_config_cp01.ini | 59 + .../qca-iot/files/iotd_config_cp02.ini | 59 + qaa/qca-IOT/qca-iot/files/iotd_config_hk.ini | 59 + qaa/qca-IOT/qca-iot/files/qca-iot.init | 60 + qaa/qca-IOT/qca-iot/files/qca402x_flash.sh | 90 + .../patches/005-fw-upgrade-support.patch | 17 + .../patches/010-diag-api-support.patch | 13 + .../patches/020-gen_fw_upgrade_img.patch | 180 + .../patches/030-htc_mbox_utils_support.patch | 13 + .../qca-iot/patches/035-mml-support.patch | 16 + qaa/qca-cp/net/qca-cyp/Makefile | 60 + qaa/qca-lib/libqcacommon/Makefile | 73 + qaa/qca-lib/libwifisoncfg/Config.in | 21 + qaa/qca-lib/libwifisoncfg/Makefile | 153 + qaa/qca-lib/qca-wifison-ext-lib/Makefile | 95 + .../qti-autorole/autorole-run.sh | 424 + .../qti-autorole/autorole.config | 17 + .../qti-autorole/autorole.init | 67 + qaa/qca-lib/rdk-v-wifi-ath10k/Makefile | 62 + qaa/qca-mad/qca-mad/Makefile | 87 + qaa/qca-mad/qca-mad/files/mat | 1 + qaa/qca-mad/qca-mad/files/mesh_app.config | 20 + qaa/qca-mad/qca-mad/files/mesh_app.init | 192 + qaa/qca-mcs/qca-mcs-apps/Makefile | 85 + qaa/qca-mcs/qca-mcs-apps/files/mcsd.config | 4 + qaa/qca-mcs/qca-mcs-apps/files/mcsd.hotplug | 52 + qaa/qca-mcs/qca-mcs-apps/files/mcsd.init | 195 + .../qca-mcs-apps/files/mcsd.netifd.hotplug | 32 + .../qca-mcs-apps/files/mcsd.uci_default | 8 + qaa/qca-mcs/qca-mcs-apps/files/mcst | 1 + qaa/qca-mcs/{ => qca-mcs-lkm}/Makefile | 43 +- qaa/qca-platform-utils/clk-debug/Makefile | 30 + .../clk-debug/files/clk-debug-ipq5018.sh | 548 + .../clk-debug/files/clk-debug-ipq6018.sh | 691 + .../clk-debug/files/clk-debug-ipq807x.sh | 735 + .../clk-debug/files/clk-dump.sh | 22 + qaa/qca-platform-utils/dashboard/Makefile | 27 + .../dashboard/files/dashboard.sh | 420 + qaa/qca-platform-utils/gpio-debug/Makefile | 32 + .../gpio-debug/files/gpio-debug-ipq40xx.sh | 271 + .../gpio-debug/files/gpio-debug-ipq5018.sh | 173 + .../gpio-debug/files/gpio-debug-ipq6018.sh | 182 + .../gpio-debug/files/gpio-debug-ipq806x.sh | 171 + .../gpio-debug/files/gpio-debug-ipq807x.sh | 173 + .../gpio-debug/files/gpio-dump.sh | 28 + qaa/qca-platform-utils/qca-diag/Makefile | 79 + .../qca-qmi-framework/Makefile | 104 + .../qca-qmi-framework/files/qrtr.init | 35 + .../qca-thermald-10.4/Makefile | 51 + .../qca-thermald-10.4/files/thermal.config | 2 + .../qca-thermald-10.4/files/thermal.init | 37 + .../qca-time-services/Makefile | 40 + .../qca-wlanfw-upgrade/Makefile | 27 + .../files/wlanfw-upgrade.sh | 185 + qaa/qca-rfs/Makefile | 51 - qaa/qca-rfs/files/qrfs.init | 27 - .../patches/100-add-kernel-5.4-support.patch | 57 - .../200-rework-nfct-notification.patch | 20 - .../qca-son-mem-debug/Config.in | 7 + .../qca-son-mem-debug/Makefile | 63 + qaa/qca-ssdk-shell/Makefile | 48 - qaa/qca-ssdk/Makefile | 125 - qaa/qca-ssdk/files/qca-ssdk | 206 - .../0001-SSDK-config-add-kernel-5.10.patch | 56 - ...replace-ioremap_nocache-with-ioremap.patch | 102 - ...use-of_mdio_find_bus-to-get-MDIO-bus.patch | 40 - .../patches/0005-add-kernel-5.4-support.patch | 108 - .../0006-fix-mdio-probe-on-ipq806x.patch | 11 - ...0007-SSDK-dts-fix-of_get_mac_address.patch | 42 - .../0008-add-aquantia-phy-id-113CB0.patch | 37 - qaa/qca/ath11k_utils/ath11k-fwtest/Makefile | 48 + qaa/qca/ath11k_utils/ath11k-qdss/Makefile | 31 + .../ath11k-qdss/files/qdss_trace_config.bin | 99 + qaa/qca/net/qca-acfg/Makefile | 80 + qaa/qca/net/qca-acfg/files/qca-acfg.init | 24 + .../net/qca-acfg/files/qca-acfg_fw_rec.init | 24 + qaa/qca/net/qca-hostap/Makefile | 321 + .../files/dpp-hostapd-update-uci.sh | 230 + .../files/dpp-operating-class-update.sh | 151 + .../files/dpp-supplicant-update-uci.sh | 323 + qaa/qca/net/qca-hostap/files/hapd.sh | 30 + .../qca-hostap/files/hostapd-default.config | 99 + .../net/qca-hostap/files/hostapd-lite.config | 88 + .../qca-hostap/files/hostapd-macsec.config | 101 + qaa/qca/net/qca-hostap/files/hostapd.sh | 1892 +++ qaa/qca/net/qca-hostap/files/macsec.config | 2 + qaa/qca/net/qca-hostap/files/macsec.init | 76 + qaa/qca/net/qca-hostap/files/qca-hostapd.init | 21 + .../qca-hostap/files/qca-wpa-supplicant.init | 22 + .../files/wpa_supplicant-default.config | 106 + .../files/wpa_supplicant-lite.config | 91 + .../files/wpa_supplicant-macsec.config | 102 + .../net/qca-hostap/files/wpa_supplicant.sh | 630 + .../qca-hostap/files/wps-extender-hotplug.sh | 36 + .../files/wps-hostapd-nbh-update.sh | 29 + .../files/wps-hostapd-update-uci.sh | 120 + qaa/qca/net/qca-hostap/files/wps-hotplug.sh | 69 + .../net/qca-hostap/files/wps-reset-hotplug.sh | 25 + .../files/wps-supplicant-hotplug.sh | 51 + .../files/wps-supplicant-update-uci.sh | 316 + qaa/qca/net/qca-hostap/files/wpsd.sh | 28 + qaa/qca/net/qca-iface-mgr-10.4/Config.in | 9 + qaa/qca/net/qca-iface-mgr-10.4/Makefile | 72 + .../net/qca-iface-mgr-10.4/files/iface_mgr.sh | 307 + qaa/qca/net/qca-lowi/Makefile | 96 + qaa/qca/net/qca-lowi/files/lowi.sh | 22 + qaa/qca/net/qca-wifi-fw-10.2.4/Makefile | 80 + qaa/qca/net/qca-wifi-fw-10.4-ar71xx/Makefile | 141 + qaa/qca/net/qca-wifi-fw-10.4/Makefile | 109 + qaa/qca/net/qca-wifi/Makefile | 763 + qaa/qca/net/qca-wifi/files/boot-ftm | 81 + .../files/counters_wlan_prompt_Dakota.sh | 138 + .../files/counters_wlan_prompt_akronite.sh | 138 + .../files/counters_wlan_prompt_hawkeye.sh | 130 + qaa/qca/net/qca-wifi/files/diag_socket_app | 21 + qaa/qca/net/qca-wifi/files/ini/QCA5018.ini | 2 + qaa/qca/net/qca-wifi/files/ini/QCA6018.ini | 4 + qaa/qca/net/qca-wifi/files/ini/QCA6290.ini | 2 + qaa/qca/net/qca-wifi/files/ini/QCA8074.ini | 2 + qaa/qca/net/qca-wifi/files/ini/QCA9984.ini | 3 + qaa/qca/net/qca-wifi/files/ini/QCN6122.ini | 3 + qaa/qca/net/qca-wifi/files/ini/QCN9000.ini | 5 + qaa/qca/net/qca-wifi/files/ini/global.ini | 170 + .../qca-wifi/files/ini/internal/AR900B_i.ini | 33 + .../qca-wifi/files/ini/internal/IPQ4019_i.ini | 33 + .../qca-wifi/files/ini/internal/QCA5018_i.ini | 79 + .../qca-wifi/files/ini/internal/QCA6018_i.ini | 87 + .../qca-wifi/files/ini/internal/QCA6290_i.ini | 72 + .../files/ini/internal/QCA8074V2_i.ini | 92 + .../qca-wifi/files/ini/internal/QCA8074_i.ini | 85 + .../qca-wifi/files/ini/internal/QCA9888_i.ini | 34 + .../qca-wifi/files/ini/internal/QCA9984_i.ini | 33 + .../qca-wifi/files/ini/internal/QCN6122_i.ini | 76 + .../qca-wifi/files/ini/internal/QCN9000_i.ini | 80 + .../qca-wifi/files/ini/internal/global_i.ini | 97 + .../qca-wifi/files/ini/wifi_module_param.ini | 8 + qaa/qca/net/qca-wifi/files/qcacfg80211.config | 4 + qaa/qca/net/qca-wifi/files/qcawifi-config-cmd | 22 + qaa/qca/net/qca-wifi/files/qcawifi.sh | 4687 ++++++ .../qca-wifi/files/qcawifi_countrycode.txt | 239 + qaa/qca/net/qca-wifi/files/qcawificfg80211.sh | 5972 ++++++++ .../net/qca-wifi/files/ssid-steering.config | 4 + qaa/qca/net/qca-wifi/files/ssid_steering.init | 38 + qaa/qca/net/qca-wifi/files/tools_config | 1 + qaa/qca/net/qca-wifi/files/wifi-fw.hotplug | 25 + qaa/qca/net/qca-wifi/files/wifi_hw_mode | 298 + qaa/qca/net/qca-wifi/files/wifi_nss.upgrade | 7 + qaa/qca/net/qca-wifi/files/wifi_try | 218 + .../net/qca-wifi/files/ybqcawificfg80211.sh | 5983 ++++++++ .../0001-0002-enable_nss_wifi_offload.patch | 49 + qaa/qca/net/qca-wpc/Makefile | 72 + qaa/qca/net/qca-wpc/files/wpc.sh | 23 + qaa/qca/net/qca-wrapd/Makefile | 64 + qaa/qca/net/qca-wrapd/files/qwrap.sh | 246 + .../net/qca-wrapd/files/wrap-vma-wifi0.conf | 18 + .../net/qca-wrapd/files/wrap-vma-wifi1.conf | 18 + .../net/qca-wrapd/files/wrap-vma-wifi2.conf | 20 + qaa/qca/utils/btdiag/Makefile | 67 + qaa/qca/utils/cnssdiag/Makefile | 66 + qaa/qca/utils/cnssdiag/files/cnss_diag.config | 8 + qaa/qca/utils/cnssdiag/files/cnss_diag.init | 61 + .../0001-Makefile-changes-for-QSDK.patch | 17 + qaa/qca/utils/ftm/Makefile | 76 + qaa/qca/utils/ftm/files/compress_vart.sh | 74 + qaa/qca/utils/ftm/files/ftm.init | 97 + qaa/qca/utils/libathtestcmd/Makefile | 66 + qaa/qca/utils/libtcmd/Makefile | 62 + qaa/qca/utils/libtlv2/Makefile | 64 + qaa/qca/utils/libtlvutil/Makefile | 63 + qaa/qca/utils/myftm/Makefile | 57 + qaa/qca/utils/qca-cfg80211/Makefile | 69 + qaa/qca/utils/qca-cfg80211tool/Makefile | 59 + qaa/qca/utils/qca-cnss-daemon/Makefile | 43 + .../patches/001-add-basic-makefile.patch | 41 + qaa/qca/utils/qca-icm/Makefile | 86 + qaa/qca/utils/qca-icm/files/icm.conf | 84 + qaa/qca/utils/qca-icm/files/icm.sh | 63 + qaa/qca/utils/qca-spectral/Makefile | 64 + qaa/qca/utils/qcmbr-10.4/Makefile | 107 + qaa/qca/utils/qcmbr-10.4/files/qcmbr.init | 218 + qaa/qca/utils/qmsct_client/Makefile | 49 + qaa/qca_hk/net/qca-hk/Makefile | 62 + qaa/whc/qca-whc-init/Makefile | 34 + qaa/whc/qca-whc-init/files/whc-debug.sh | 72 + qaa/whc/qca-whc-init/files/whc-iface.sh | 127 + qaa/whc/qca-whc-init/files/wifimeshconfig | 66 + qaa/whc/qca-whc-lbd/Config.in | 33 + qaa/whc/qca-whc-lbd/Makefile | 195 + qaa/whc/qca-whc-lbd/files/lbd-config.sh | 630 + qaa/whc/qca-whc-lbd/files/lbd.config | 187 + qaa/whc/qca-whc-lbd/files/lbd.init | 115 + qaa/whc/qca-whc-lbd/files/lbd_noprocd.init | 158 + qaa/whc/qca-whc-lbd/files/lbt | 1 + qaa/whc/qca-whc-luci/Makefile | 138 + qaa/whc/qca-whc-luci/files/luci-whc/Makefile | 12 + .../files/luci-whc/luasrc/controller/whc.lua | 35 + .../luci-whc/luasrc/model/cbi/whc/LICENSE | 194 + .../luci-whc/luasrc/model/cbi/whc/NOTICE | 50 + .../luci-whc/luasrc/model/cbi/whc/lbd.lua | 264 + .../luasrc/model/cbi/whc/lbd_advanced.lua | 235 + .../luasrc/model/cbi/whc/lbd_diaglog.lua | 81 + .../luci-whc/luasrc/model/cbi/whc/repacd.lua | 192 + .../luasrc/model/cbi/whc/repacd_advanced.lua | 192 + .../luci-whc/luasrc/view/whc/lbd_btn_adv.htm | 20 + .../luci-whc/luasrc/view/whc/lbd_btn_diag.htm | 20 + .../luci-whc/luasrc/view/whc/lbd_dview_js.htm | 131 + .../luasrc/view/whc/repacd_btn_adv.htm | 20 + .../luasrc/view/whc/repacd_dview_js.htm | 70 + qaa/whc/qca-whc-repacd/Makefile | 191 + qaa/whc/qca-whc-repacd/files/apconf.edge | 50 + qaa/whc/qca-whc-repacd/files/lp.switch | 28 + qaa/whc/qca-whc-repacd/files/netdet.switch | 23 + qaa/whc/qca-whc-repacd/files/repacd-cmn.sh | 991 ++ qaa/whc/qca-whc-repacd/files/repacd-init.sh | 177 + qaa/whc/qca-whc-repacd/files/repacd-map.sh | 2496 ++++ qaa/whc/qca-whc-repacd/files/repacd-son.sh | 2006 +++ qaa/whc/qca-whc-repacd/files/repacd.button | 15 + qaa/whc/qca-whc-repacd/files/repacd.config | 301 + .../files/repacd.config.status-led | 288 + qaa/whc/qca-whc-repacd/files/repacd.iface | 13 + qaa/whc/qca-whc-repacd/files/repacd.init | 5313 +++++++ qaa/whc/qca-whc-repacd/files/whc-network.sh | 56 + qaa/whc/whc/Makefile | 105 + 451 files changed, 111139 insertions(+), 12069 deletions(-) create mode 100644 qaa/art2/art2/Makefile create mode 100644 qaa/art2/art2/files/art.init create mode 100644 qaa/art2/art2/patches/0001-build_fix_with_gcc5.patch create mode 100644 qaa/art2/art2/patches/0002-add-lrt-dependency.patch create mode 100644 qaa/art2/art2/patches/0002-fix-build-with-musl.patch create mode 100644 qaa/athdiag/athdiag/Makefile create mode 100644 qaa/athtestcmd/athtestcmd/Makefile create mode 100644 qaa/bluetopia/bluetopia-mini/Makefile create mode 100644 qaa/bluetopia/bluetopia-mini/files/PS_KEY_CSR8811.txt create mode 100644 qaa/bluetopia/bluetopia-mini/files/bluetopia.init create mode 100644 qaa/bluetopia/bluetopia-mini/files/bt_env.sh create mode 100644 qaa/bluetopia/bluetopia-mini/patches/001-otp-support.patch create mode 100644 qaa/bluetopia/bluetopia/Makefile create mode 100644 qaa/bluetopia/bluetopia/files/PS_KEY_CSR8811.txt create mode 100644 qaa/bluetopia/bluetopia/files/bluetopia.init create mode 100644 qaa/bluetopia/bluetopia/files/bt_env.sh create mode 100644 qaa/bluetopia/bluetopia/patches/001-otp-support.patch create mode 100644 qaa/btdaemon/btdaemon/Config.in create mode 100644 qaa/btdaemon/btdaemon/Makefile delete mode 100644 qaa/firmware/nss-firmware/Makefile create mode 100644 qaa/hyfi/hyfi/Makefile create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-hyctl/Makefile create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/Makefile create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/files/hyfi-bridging.init create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-hyfi-iptv-helper/Makefile create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-hyfi-qdisc/Makefile create mode 100644 qaa/hyfi/qca-hyfi-bridging/qca-libhyfi-bridge/Makefile create mode 100644 qaa/hyfi/qca-hyfi-luci/Makefile create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/Makefile create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/controller/hyfi.lua create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/advanced.lua create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/btn_adv.htm create mode 100644 qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/dview_js.htm create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-acd/Makefile create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd-run.sh create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.config create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.init create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/Config.in create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/Makefile create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd-map-cmd create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.config create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.hotplug create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.init create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd_noprocd.init create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyt create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-hyd/files/sp-rules.conf create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/Makefile create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/files/start_hyfi create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/files/stop_hyfi create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/files/vhyfi.sh create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/files/vhyfid.config create mode 100644 qaa/hyfi/qca-hyfi-networking/qca-vhyfid/files/vhyfid.init create mode 100644 qaa/hyfi/qca-son-cli/Config.in create mode 100644 qaa/hyfi/qca-son-cli/Makefile create mode 100644 qaa/hyfi/qca-son-cli/files/commands.sh create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/libieee1905/Makefile create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/libstorage/Makefile create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/libwpa2/Makefile create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-ieee1905-init/Makefile create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-ieee1905-init/files/hyfi-debug.sh create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-ieee1905-init/files/hyfi-iface.sh create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-ieee1905-init/files/hyfi-network.sh create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/Config.in create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/Makefile create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/scheme-a.conf create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/scheme-b.conf create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/scheme-c.conf create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/scheme-d.conf create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/uci2cfg.sh create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/wsplcd.button create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/wsplcd.config create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/wsplcd.init create mode 100644 qaa/ieee1905-security/qca-ieee1905-security-config/qca-wsplcd/files/wsplcd_no_procd.init create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/Makefile create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/Makefile create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/luasrc/controller/wsplc.lua create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/luasrc/model/cbi/wsplc/advanced.lua create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/luasrc/model/cbi/wsplc/wsplc.lua create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/luasrc/view/wsplc/btn_adv.htm create mode 100644 qaa/ieee1905-security/qca-wsplc-luci/files/luci-wsplc/luasrc/view/wsplc/dview_js.htm create mode 100644 qaa/lte-cm/cm/Makefile create mode 100644 qaa/lte-cm/cm/files/etc/config/sierra-cm create mode 100644 qaa/lte-cm/cm/files/usr/bin/channel_avoidance.sh create mode 100644 qaa/lte-cm/cm/files/usr/bin/lte_apn_setup.sh create mode 100644 qaa/lte-cm/cm/files/usr/bin/sierra-cm create mode 100644 qaa/lte-cm/cm/files/usr/lib/lte-cm/lte_channel_table.txt create mode 100644 qaa/lte-cm/cm/files/usr/lib/lte-cm/lte_info.json create mode 100644 qaa/lte-cm/cm/patches/001-add_support_to_compile.patch create mode 100644 qaa/lte-cm/cm/src/connectionmgr.c create mode 100644 qaa/lte-cm/driver/Makefile create mode 100644 qaa/minidump/minidump/Makefile create mode 100644 qaa/minidump/minidump/files/00-minidump create mode 100644 qaa/minidump/minidump/files/minidump.conf create mode 100644 qaa/nss-prop/aq-fw-download/Makefile create mode 100644 qaa/nss-prop/aq-fw-download/src/Makefile create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_API.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_PhyInterface.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_PlatformRoutines.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_RegMacro.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_ReturnCodes.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/AQ_User.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/APPIA/AQ_APPIA_Global_registers.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/APPIA/AQ_APPIA_Global_registers_Defines.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/APPIA/AQ_APPIA_Global_registers_reversed.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/AQ_RegGroupMaxSizes.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/AQ_RegMaps.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/HHD/AQ_HHD_Global_registers.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/HHD/AQ_HHD_Global_registers_Defines.h create mode 100644 qaa/nss-prop/aq-fw-download/src/include/registerMap/HHD/AQ_HHD_Global_registers_reversed.h create mode 100644 qaa/nss-prop/aq-fw-download/src/mdioBootLoadCLD.c create mode 100644 qaa/nss-prop/aq-fw-download/src/src/AQ_API.c create mode 100644 qaa/nss-prop/aq-fw-download/src/src/AQ_PhyInterface.c create mode 100644 qaa/nss-prop/qca-nss-fw-eip-cp/Makefile create mode 100644 qaa/nss-prop/qca-nss-fw-eip-hk/Makefile delete mode 100644 qaa/nss/nss-ifb/Makefile delete mode 100644 qaa/nss/nss-ifb/README.md delete mode 100644 qaa/nss/nss-ifb/src/Makefile delete mode 100644 qaa/nss/nss-ifb/src/nss_ifb.c delete mode 100644 qaa/nss/qca-nss-cfi/Makefile delete mode 100644 qaa/nss/qca-nss-cfi/patches/0001-compile-only-cryptoapi.patch delete mode 100644 qaa/nss/qca-nss-cfi/patches/0002-wip-support-5.4.patch delete mode 100644 qaa/nss/qca-nss-cfi/patches/0003-Convert-ablkcipher-to-skcipher.patch delete mode 100644 qaa/nss/qca-nss-clients-64/Makefile delete mode 100644 qaa/nss/qca-nss-clients-64/files/qca-nss-ipsec delete mode 100644 qaa/nss/qca-nss-clients-64/files/qca-nss-mirred.init delete mode 100644 qaa/nss/qca-nss-clients-64/files/qca-nss-ovpn.init delete mode 100644 qaa/nss/qca-nss-clients/Makefile delete mode 100644 qaa/nss/qca-nss-clients/files/qca-nss-ipsec delete mode 100644 qaa/nss/qca-nss-clients/files/qca-nss-mirred.init delete mode 100644 qaa/nss/qca-nss-clients/files/qca-nss-ovpn.init delete mode 100644 qaa/nss/qca-nss-clients/patches/100-kernel-5.4-support-qdisc.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/101-kernel-5.4-support-gre.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/102-kernel-5.4-support-ipsec.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/103-kernel-5.4-support-dtls.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/104-kernel-5.4-support-l2tp.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/200-qdisc-fix-compile-error.patch delete mode 100644 qaa/nss/qca-nss-clients/patches/202-vlanmgr-fix-compile-error.patch delete mode 100644 qaa/nss/qca-nss-crypto/Makefile delete mode 100644 qaa/nss/qca-nss-crypto/patches/100-kernel-5.4-support.patch delete mode 100644 qaa/nss/qca-nss-crypto/patches/200-fix-NULL-pointer-exception.patch delete mode 100644 qaa/nss/qca-nss-dp/Makefile delete mode 100644 qaa/nss/qca-nss-dp/patches/0001-edma_tx_rx-support-newer-kernels-time-stamping-API.patch delete mode 100644 qaa/nss/qca-nss-dp/patches/0002-nss_dp_main-make-phy-mode-code-compatible-with-newer.patch delete mode 100644 qaa/nss/qca-nss-dp/patches/0003-Drop-_nocache-variants-of-ioremap.patch delete mode 100644 qaa/nss/qca-nss-dp/patches/0004-EDMA-Fix-NAPI-packet-counting.patch delete mode 100644 qaa/nss/qca-nss-dp/patches/0005-EDMA-Use-NAPI_POLL_WEIGHT-as-NAPI-weight.patch delete mode 100644 qaa/nss/qca-nss-dp/patches/0006-NSS-DP-fix-of_get_mac_address.patch delete mode 100644 qaa/nss/qca-nss-drv-64/Makefile delete mode 100644 qaa/nss/qca-nss-drv-64/files/qca-nss-drv.conf delete mode 100644 qaa/nss/qca-nss-drv-64/files/qca-nss-drv.debug delete mode 100644 qaa/nss/qca-nss-drv-64/files/qca-nss-drv.hotplug delete mode 100644 qaa/nss/qca-nss-drv-64/files/qca-nss-drv.init delete mode 100644 qaa/nss/qca-nss-drv-64/files/qca-nss-drv.sysctl delete mode 100644 qaa/nss/qca-nss-drv-64/patches/0001-core-add-5.10-kernel-to-version-check.patch delete mode 100644 qaa/nss/qca-nss-drv-64/patches/0002-nss-drv-replace-ioremap_nocache-with-ioremap.patch delete mode 100644 qaa/nss/qca-nss-drv-64/patches/0003-DMA-Fix-NULL-pointer-exceptions.patch delete mode 100644 qaa/nss/qca-nss-drv-64/patches/999-treewide-hack-support-for-mismatched-firmware.patch delete mode 100644 qaa/nss/qca-nss-drv/Makefile delete mode 100644 qaa/nss/qca-nss-drv/files/nss-firmware/LICENSE.TXT delete mode 100644 qaa/nss/qca-nss-drv/files/nss-firmware/NOTICE.TXT delete mode 100644 qaa/nss/qca-nss-drv/files/nss-firmware/README.md delete mode 100644 qaa/nss/qca-nss-drv/files/nss-firmware/qca-nss0-retail.bin delete mode 100644 qaa/nss/qca-nss-drv/files/nss-firmware/qca-nss1-retail.bin delete mode 100644 qaa/nss/qca-nss-drv/files/qca-nss-drv.conf delete mode 100644 qaa/nss/qca-nss-drv/files/qca-nss-drv.debug delete mode 100644 qaa/nss/qca-nss-drv/files/qca-nss-drv.hotplug delete mode 100644 qaa/nss/qca-nss-drv/files/qca-nss-drv.init delete mode 100644 qaa/nss/qca-nss-drv/files/qca-nss-drv.sysctl delete mode 100644 qaa/nss/qca-nss-drv/patches/100-kernel-5.4-support.patch delete mode 100644 qaa/nss/qca-nss-drv/patches/101-nss-drv-Control-fab-scaling-from-package-Makefile.patch delete mode 100644 qaa/nss/qca-nss-drv/patches/200-fix-NULL-pointer-exception.patch delete mode 100644 qaa/nss/qca-nss-drv/patches/201-Fix-Kernel-Panic-dma-with-NULL-dev.patch delete mode 100644 qaa/nss/qca-nss-drv/patches/400-Exported-set-nexthop-function.patch delete mode 100644 qaa/nss/qca-nss-ecm-64/Makefile delete mode 100644 qaa/nss/qca-nss-ecm-64/files/ecm_dump.sh delete mode 100644 qaa/nss/qca-nss-ecm-64/files/on-demand-down delete mode 100644 qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.defaults delete mode 100644 qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.firewall delete mode 100644 qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.init delete mode 100644 qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.sysctl delete mode 100644 qaa/nss/qca-nss-ecm-64/files/qca-nss-ecm.uci delete mode 100644 qaa/nss/qca-nss-ecm-64/patches/001-treewide-componentize-the-module-even-more.patch delete mode 100644 qaa/nss/qca-nss-ecm-64/patches/100-kernel-5.10-support.patch delete mode 100644 qaa/nss/qca-nss-ecm-64/patches/203-rework-nfct-notification.patch delete mode 100644 qaa/nss/qca-nss-ecm-64/patches/204-More-compile-fixes.patch delete mode 100644 qaa/nss/qca-nss-ecm-64/patches/205-resolve-high-load.patch delete mode 100644 qaa/nss/qca-nss-ecm/Makefile delete mode 100644 qaa/nss/qca-nss-ecm/files/ecm_dump.sh delete mode 100644 qaa/nss/qca-nss-ecm/files/on-demand-down delete mode 100644 qaa/nss/qca-nss-ecm/files/qca-nss-ecm.defaults delete mode 100644 qaa/nss/qca-nss-ecm/files/qca-nss-ecm.firewall delete mode 100644 qaa/nss/qca-nss-ecm/files/qca-nss-ecm.init delete mode 100644 qaa/nss/qca-nss-ecm/files/qca-nss-ecm.sysctl delete mode 100644 qaa/nss/qca-nss-ecm/files/qca-nss-ecm.uci delete mode 100644 qaa/nss/qca-nss-ecm/patches/001-Drop_SFE_from_ecm.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/100-kernel-5.4-support.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/101-Fix_Kern_Panic_on_UDP_CONNTRACK.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/200-resolve-high-load.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/203-rework-nfct-notification.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/400-Check-TCP_UDP-conntrack-state-earlier.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/401-Fix-NSS-stats-request-roll-over-issue.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/401-Fix-for-ref-leak-during-multicast.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/401-Fix-neighbour-solicitation-send-function.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/402-Reference-leak-during-multicast_PPPoE-bridge.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/403-Access-global-accelerated-count-under-lock.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/403-Fix-IPv6-neighbor-solicitation-request.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/404-IPv6-solicitation-fix-with-zero-gateway-address.patch delete mode 100644 qaa/nss/qca-nss-ecm/patches/405-Allow-egress-on-same-port-when-bridge-hairpin-is-enabled.patch create mode 100644 qaa/nss/qca-nss-fw-cp-enterprise/Makefile create mode 100644 qaa/nss/qca-nss-fw-cp-retail/Makefile create mode 100644 qaa/nss/qca-nss-fw-hk-enterprise/Makefile create mode 100644 qaa/nss/qca-nss-fw-hk-retail/Makefile create mode 100644 qaa/nss/qca-nss-fw-mp-enterprise/Makefile create mode 100644 qaa/nss/qca-nss-fw-mp-retail/Makefile create mode 100644 qaa/nss/qca-nss-fw2-enterprise/Makefile create mode 100644 qaa/nss/qca-nss-fw2-retail/Makefile delete mode 100644 qaa/nss/qca-nss-gmac/Makefile delete mode 100644 qaa/nss/qca-nss-gmac/patches/100-kernel-5.4-support.patch delete mode 100644 qaa/nss/qca-nss-gmac/patches/101-nss-gmac-test-ptr.patch delete mode 100644 qaa/nss/qca-nss-gmac/patches/200-work-around-interface-close-warning.patch create mode 100644 qaa/qca-IOT/qca-iot/Config.in create mode 100644 qaa/qca-IOT/qca-iot/Makefile create mode 100644 qaa/qca-IOT/qca-iot/files/Quartz_FW_UP.bin create mode 100644 qaa/qca-IOT/qca-iot/files/Quartz_HASHED.elf create mode 100644 qaa/qca-IOT/qca-iot/files/fw_upgrade.xml create mode 100644 qaa/qca-IOT/qca-iot/files/gen_fw_upgrade_img.py create mode 100644 qaa/qca-IOT/qca-iot/files/ioe_ram_m0_threadx_ipt.mbn create mode 100644 qaa/qca-IOT/qca-iot/files/iotd_config_cp01.ini create mode 100644 qaa/qca-IOT/qca-iot/files/iotd_config_cp02.ini create mode 100644 qaa/qca-IOT/qca-iot/files/iotd_config_hk.ini create mode 100644 qaa/qca-IOT/qca-iot/files/qca-iot.init create mode 100644 qaa/qca-IOT/qca-iot/files/qca402x_flash.sh create mode 100644 qaa/qca-IOT/qca-iot/patches/005-fw-upgrade-support.patch create mode 100644 qaa/qca-IOT/qca-iot/patches/010-diag-api-support.patch create mode 100644 qaa/qca-IOT/qca-iot/patches/020-gen_fw_upgrade_img.patch create mode 100644 qaa/qca-IOT/qca-iot/patches/030-htc_mbox_utils_support.patch create mode 100644 qaa/qca-IOT/qca-iot/patches/035-mml-support.patch create mode 100644 qaa/qca-cp/net/qca-cyp/Makefile create mode 100644 qaa/qca-lib/libqcacommon/Makefile create mode 100644 qaa/qca-lib/libwifisoncfg/Config.in create mode 100644 qaa/qca-lib/libwifisoncfg/Makefile create mode 100644 qaa/qca-lib/qca-wifison-ext-lib/Makefile create mode 100644 qaa/qca-lib/qca-wifison-ext-lib/qti-autorole/autorole-run.sh create mode 100644 qaa/qca-lib/qca-wifison-ext-lib/qti-autorole/autorole.config create mode 100644 qaa/qca-lib/qca-wifison-ext-lib/qti-autorole/autorole.init create mode 100644 qaa/qca-lib/rdk-v-wifi-ath10k/Makefile create mode 100644 qaa/qca-mad/qca-mad/Makefile create mode 100644 qaa/qca-mad/qca-mad/files/mat create mode 100644 qaa/qca-mad/qca-mad/files/mesh_app.config create mode 100644 qaa/qca-mad/qca-mad/files/mesh_app.init create mode 100644 qaa/qca-mcs/qca-mcs-apps/Makefile create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcsd.config create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcsd.hotplug create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcsd.init create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcsd.netifd.hotplug create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcsd.uci_default create mode 100644 qaa/qca-mcs/qca-mcs-apps/files/mcst rename qaa/qca-mcs/{ => qca-mcs-lkm}/Makefile (63%) create mode 100644 qaa/qca-platform-utils/clk-debug/Makefile create mode 100644 qaa/qca-platform-utils/clk-debug/files/clk-debug-ipq5018.sh create mode 100644 qaa/qca-platform-utils/clk-debug/files/clk-debug-ipq6018.sh create mode 100644 qaa/qca-platform-utils/clk-debug/files/clk-debug-ipq807x.sh create mode 100644 qaa/qca-platform-utils/clk-debug/files/clk-dump.sh create mode 100644 qaa/qca-platform-utils/dashboard/Makefile create mode 100644 qaa/qca-platform-utils/dashboard/files/dashboard.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/Makefile create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq40xx.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq5018.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq6018.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq806x.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-debug-ipq807x.sh create mode 100644 qaa/qca-platform-utils/gpio-debug/files/gpio-dump.sh create mode 100644 qaa/qca-platform-utils/qca-diag/Makefile create mode 100644 qaa/qca-platform-utils/qca-qmi-framework/Makefile create mode 100644 qaa/qca-platform-utils/qca-qmi-framework/files/qrtr.init create mode 100644 qaa/qca-platform-utils/qca-thermald-10.4/Makefile create mode 100644 qaa/qca-platform-utils/qca-thermald-10.4/files/thermal.config create mode 100644 qaa/qca-platform-utils/qca-thermald-10.4/files/thermal.init create mode 100644 qaa/qca-platform-utils/qca-time-services/Makefile create mode 100644 qaa/qca-platform-utils/qca-wlanfw-upgrade/Makefile create mode 100644 qaa/qca-platform-utils/qca-wlanfw-upgrade/files/wlanfw-upgrade.sh delete mode 100644 qaa/qca-rfs/Makefile delete mode 100644 qaa/qca-rfs/files/qrfs.init delete mode 100644 qaa/qca-rfs/patches/100-add-kernel-5.4-support.patch delete mode 100644 qaa/qca-rfs/patches/200-rework-nfct-notification.patch create mode 100644 qaa/qca-son-mem-debug/qca-son-mem-debug/Config.in create mode 100644 qaa/qca-son-mem-debug/qca-son-mem-debug/Makefile delete mode 100644 qaa/qca-ssdk-shell/Makefile delete mode 100644 qaa/qca-ssdk/Makefile delete mode 100644 qaa/qca-ssdk/files/qca-ssdk delete mode 100644 qaa/qca-ssdk/patches/0001-SSDK-config-add-kernel-5.10.patch delete mode 100644 qaa/qca-ssdk/patches/0002-SSDK-replace-ioremap_nocache-with-ioremap.patch delete mode 100644 qaa/qca-ssdk/patches/0004-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch delete mode 100644 qaa/qca-ssdk/patches/0005-add-kernel-5.4-support.patch delete mode 100644 qaa/qca-ssdk/patches/0006-fix-mdio-probe-on-ipq806x.patch delete mode 100644 qaa/qca-ssdk/patches/0007-SSDK-dts-fix-of_get_mac_address.patch delete mode 100644 qaa/qca-ssdk/patches/0008-add-aquantia-phy-id-113CB0.patch create mode 100644 qaa/qca/ath11k_utils/ath11k-fwtest/Makefile create mode 100644 qaa/qca/ath11k_utils/ath11k-qdss/Makefile create mode 100644 qaa/qca/ath11k_utils/ath11k-qdss/files/qdss_trace_config.bin create mode 100644 qaa/qca/net/qca-acfg/Makefile create mode 100644 qaa/qca/net/qca-acfg/files/qca-acfg.init create mode 100644 qaa/qca/net/qca-acfg/files/qca-acfg_fw_rec.init create mode 100644 qaa/qca/net/qca-hostap/Makefile create mode 100644 qaa/qca/net/qca-hostap/files/dpp-hostapd-update-uci.sh create mode 100644 qaa/qca/net/qca-hostap/files/dpp-operating-class-update.sh create mode 100644 qaa/qca/net/qca-hostap/files/dpp-supplicant-update-uci.sh create mode 100644 qaa/qca/net/qca-hostap/files/hapd.sh create mode 100644 qaa/qca/net/qca-hostap/files/hostapd-default.config create mode 100644 qaa/qca/net/qca-hostap/files/hostapd-lite.config create mode 100644 qaa/qca/net/qca-hostap/files/hostapd-macsec.config create mode 100644 qaa/qca/net/qca-hostap/files/hostapd.sh create mode 100644 qaa/qca/net/qca-hostap/files/macsec.config create mode 100644 qaa/qca/net/qca-hostap/files/macsec.init create mode 100644 qaa/qca/net/qca-hostap/files/qca-hostapd.init create mode 100644 qaa/qca/net/qca-hostap/files/qca-wpa-supplicant.init create mode 100644 qaa/qca/net/qca-hostap/files/wpa_supplicant-default.config create mode 100644 qaa/qca/net/qca-hostap/files/wpa_supplicant-lite.config create mode 100644 qaa/qca/net/qca-hostap/files/wpa_supplicant-macsec.config create mode 100644 qaa/qca/net/qca-hostap/files/wpa_supplicant.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-extender-hotplug.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-hostapd-nbh-update.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-hostapd-update-uci.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-hotplug.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-reset-hotplug.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-supplicant-hotplug.sh create mode 100644 qaa/qca/net/qca-hostap/files/wps-supplicant-update-uci.sh create mode 100644 qaa/qca/net/qca-hostap/files/wpsd.sh create mode 100644 qaa/qca/net/qca-iface-mgr-10.4/Config.in create mode 100644 qaa/qca/net/qca-iface-mgr-10.4/Makefile create mode 100644 qaa/qca/net/qca-iface-mgr-10.4/files/iface_mgr.sh create mode 100644 qaa/qca/net/qca-lowi/Makefile create mode 100644 qaa/qca/net/qca-lowi/files/lowi.sh create mode 100644 qaa/qca/net/qca-wifi-fw-10.2.4/Makefile create mode 100644 qaa/qca/net/qca-wifi-fw-10.4-ar71xx/Makefile create mode 100644 qaa/qca/net/qca-wifi-fw-10.4/Makefile create mode 100644 qaa/qca/net/qca-wifi/Makefile create mode 100644 qaa/qca/net/qca-wifi/files/boot-ftm create mode 100644 qaa/qca/net/qca-wifi/files/counters_wlan_prompt_Dakota.sh create mode 100644 qaa/qca/net/qca-wifi/files/counters_wlan_prompt_akronite.sh create mode 100644 qaa/qca/net/qca-wifi/files/counters_wlan_prompt_hawkeye.sh create mode 100644 qaa/qca/net/qca-wifi/files/diag_socket_app create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCA5018.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCA6018.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCA6290.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCA8074.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCA9984.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCN6122.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/QCN9000.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/global.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/AR900B_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/IPQ4019_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA5018_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA6018_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA6290_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA8074V2_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA8074_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA9888_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCA9984_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCN6122_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/QCN9000_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/internal/global_i.ini create mode 100644 qaa/qca/net/qca-wifi/files/ini/wifi_module_param.ini create mode 100644 qaa/qca/net/qca-wifi/files/qcacfg80211.config create mode 100644 qaa/qca/net/qca-wifi/files/qcawifi-config-cmd create mode 100644 qaa/qca/net/qca-wifi/files/qcawifi.sh create mode 100644 qaa/qca/net/qca-wifi/files/qcawifi_countrycode.txt create mode 100644 qaa/qca/net/qca-wifi/files/qcawificfg80211.sh create mode 100644 qaa/qca/net/qca-wifi/files/ssid-steering.config create mode 100644 qaa/qca/net/qca-wifi/files/ssid_steering.init create mode 100644 qaa/qca/net/qca-wifi/files/tools_config create mode 100644 qaa/qca/net/qca-wifi/files/wifi-fw.hotplug create mode 100644 qaa/qca/net/qca-wifi/files/wifi_hw_mode create mode 100644 qaa/qca/net/qca-wifi/files/wifi_nss.upgrade create mode 100644 qaa/qca/net/qca-wifi/files/wifi_try create mode 100644 qaa/qca/net/qca-wifi/files/ybqcawificfg80211.sh create mode 100644 qaa/qca/net/qca-wifi/patches/0001-0002-enable_nss_wifi_offload.patch create mode 100644 qaa/qca/net/qca-wpc/Makefile create mode 100644 qaa/qca/net/qca-wpc/files/wpc.sh create mode 100644 qaa/qca/net/qca-wrapd/Makefile create mode 100644 qaa/qca/net/qca-wrapd/files/qwrap.sh create mode 100644 qaa/qca/net/qca-wrapd/files/wrap-vma-wifi0.conf create mode 100644 qaa/qca/net/qca-wrapd/files/wrap-vma-wifi1.conf create mode 100644 qaa/qca/net/qca-wrapd/files/wrap-vma-wifi2.conf create mode 100644 qaa/qca/utils/btdiag/Makefile create mode 100644 qaa/qca/utils/cnssdiag/Makefile create mode 100644 qaa/qca/utils/cnssdiag/files/cnss_diag.config create mode 100644 qaa/qca/utils/cnssdiag/files/cnss_diag.init create mode 100644 qaa/qca/utils/cnssdiag/patches/0001-Makefile-changes-for-QSDK.patch create mode 100644 qaa/qca/utils/ftm/Makefile create mode 100644 qaa/qca/utils/ftm/files/compress_vart.sh create mode 100644 qaa/qca/utils/ftm/files/ftm.init create mode 100644 qaa/qca/utils/libathtestcmd/Makefile create mode 100644 qaa/qca/utils/libtcmd/Makefile create mode 100644 qaa/qca/utils/libtlv2/Makefile create mode 100644 qaa/qca/utils/libtlvutil/Makefile create mode 100644 qaa/qca/utils/myftm/Makefile create mode 100644 qaa/qca/utils/qca-cfg80211/Makefile create mode 100644 qaa/qca/utils/qca-cfg80211tool/Makefile create mode 100644 qaa/qca/utils/qca-cnss-daemon/Makefile create mode 100644 qaa/qca/utils/qca-cnss-daemon/patches/001-add-basic-makefile.patch create mode 100644 qaa/qca/utils/qca-icm/Makefile create mode 100644 qaa/qca/utils/qca-icm/files/icm.conf create mode 100644 qaa/qca/utils/qca-icm/files/icm.sh create mode 100644 qaa/qca/utils/qca-spectral/Makefile create mode 100644 qaa/qca/utils/qcmbr-10.4/Makefile create mode 100644 qaa/qca/utils/qcmbr-10.4/files/qcmbr.init create mode 100644 qaa/qca/utils/qmsct_client/Makefile create mode 100644 qaa/qca_hk/net/qca-hk/Makefile create mode 100644 qaa/whc/qca-whc-init/Makefile create mode 100644 qaa/whc/qca-whc-init/files/whc-debug.sh create mode 100644 qaa/whc/qca-whc-init/files/whc-iface.sh create mode 100644 qaa/whc/qca-whc-init/files/wifimeshconfig create mode 100644 qaa/whc/qca-whc-lbd/Config.in create mode 100644 qaa/whc/qca-whc-lbd/Makefile create mode 100644 qaa/whc/qca-whc-lbd/files/lbd-config.sh create mode 100644 qaa/whc/qca-whc-lbd/files/lbd.config create mode 100644 qaa/whc/qca-whc-lbd/files/lbd.init create mode 100644 qaa/whc/qca-whc-lbd/files/lbd_noprocd.init create mode 100644 qaa/whc/qca-whc-lbd/files/lbt create mode 100644 qaa/whc/qca-whc-luci/Makefile create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/Makefile create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/controller/whc.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/LICENSE create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/NOTICE create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/lbd.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/lbd_advanced.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/lbd_diaglog.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/repacd.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/model/cbi/whc/repacd_advanced.lua create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/view/whc/lbd_btn_adv.htm create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/view/whc/lbd_btn_diag.htm create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/view/whc/lbd_dview_js.htm create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/view/whc/repacd_btn_adv.htm create mode 100644 qaa/whc/qca-whc-luci/files/luci-whc/luasrc/view/whc/repacd_dview_js.htm create mode 100644 qaa/whc/qca-whc-repacd/Makefile create mode 100644 qaa/whc/qca-whc-repacd/files/apconf.edge create mode 100644 qaa/whc/qca-whc-repacd/files/lp.switch create mode 100644 qaa/whc/qca-whc-repacd/files/netdet.switch create mode 100644 qaa/whc/qca-whc-repacd/files/repacd-cmn.sh create mode 100644 qaa/whc/qca-whc-repacd/files/repacd-init.sh create mode 100644 qaa/whc/qca-whc-repacd/files/repacd-map.sh create mode 100644 qaa/whc/qca-whc-repacd/files/repacd-son.sh create mode 100644 qaa/whc/qca-whc-repacd/files/repacd.button create mode 100644 qaa/whc/qca-whc-repacd/files/repacd.config create mode 100644 qaa/whc/qca-whc-repacd/files/repacd.config.status-led create mode 100644 qaa/whc/qca-whc-repacd/files/repacd.iface create mode 100644 qaa/whc/qca-whc-repacd/files/repacd.init create mode 100644 qaa/whc/qca-whc-repacd/files/whc-network.sh create mode 100644 qaa/whc/whc/Makefile diff --git a/qaa/art2/art2/Makefile b/qaa/art2/art2/Makefile new file mode 100644 index 000000000..6023b3eeb --- /dev/null +++ b/qaa/art2/art2/Makefile @@ -0,0 +1,137 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=LinuxART2 +PKG_VERSION:=CS10.2v4.9.455 +PKG_RELEASE:=1 + +PKG_BRANCH:=$(basename $(PKG_VERSION)) +PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://qcawebsrvr.qualcomm.com/cnss_win/santaclara/dev01/ART2/$(PKG_NAME)$(PKG_BRANCH)/$(PKG_NAME)$(PKG_VERSION) +PKG_MD5SUM:=9607e35711cba23d247b642cd726bcc5 + +PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +######################################################### +############ ART DRIVER BUILD CONFIGURATION ############ +######################################################### + +ifeq ($(CONFIG_TARGET_ar71xx), y) +TARGET_CFLAGS+=-fpie +else +TARGET_CFLAGS+=-Wall -Werror -fpie +endif +TARGET_LDFLAGS+=-pie + +export C_FLAGS:=$(TARGET_CFLAGS) +export LD_FLAGS:=$(TARGET_LDFLAGS) + +ART2_APP_OPTS+= \ + $(TARGET_CONFIGURE_OPTS) \ + ART_ROOT=$(PKG_BUILD_DIR) \ + WORKAREA=$(PKG_BUILD_DIR) \ + TOOL_PREFIX=$(TARGET_CROSS) + +ifeq ($(BUILD_VARIANT),netlink) +ART2_APP_OPTS+=USE_NETLINK=1 +endif + +EXTRA_CFLAGS+= \ + -DUSE_PLATFORM_FRAMEWORK=1 \ + -DCFG_64BIT=0 \ + -I$(PKG_BUILD_DIR) \ + -I$(PKG_BUILD_DIR)/driver/linux/modules/include \ + +ifneq ($(CONFIG_DEBUG),) +ART2_APP_OPTS+= \ + GDB=1 +endif + +ifeq (y, $(findstring y, $(CONFIG_TARGET_ipq)$(CONFIG_TARGET_ipq806x)$(CONFIG_TARGET_ipq_ipq806x)$(CONFIG_TARGET_ipq40xx)$(CONFIG_TARGET_ipq_ipq40xx)$(CONFIG_TARGET_ipq807x)$(CONFIG_TARGET_ipq_ipq807x)$(CONFIG_TARGET_ipq807x_64)$(CONFIG_TARGET_ipq_ipq807x_64))) +ART2_APP_OPTS+=AKRONITE=1 +EXTRA_CFLAGS+=-DAKRONITE_ART +endif + +ifeq ($(CONFIG_TARGET_ar71xx), y) +EXTRA_CFLAGS+= -DAP83 -DWASP +endif + +define KernelPackage/art2/Default + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + TITLE:=$(1) - QCA ART Driver & tools + DEPENDS:=@!TARGET_ipq50xx @!TARGET_ipq807x_generic @!TARGET_ipq_ipq807x_64 @!TARGET_ipq_ipq60xx_64 @!TARGET_ipq_ipq50xx_64 +libpthread +libc +librt + FILES:=$(PKG_BUILD_DIR)/driver/linux/modules/art.$(LINUX_KMOD_SUFFIX) +endef + +define KernelPackage/art2/Description/Default + This package contains a driver for ART and the tools to use it: + - art.ko + - nart.out + - NART related libs + It has been build specifically for $(1) +endef + +define Build/Compile + $(MAKE) -C "$(LINUX_DIR)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + ARCH="$(LINUX_KARCH)" \ + SUBDIRS="$(PKG_BUILD_DIR)/driver/linux/modules" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + modules + $(MAKE) -C $(PKG_BUILD_DIR) $(strip $(ART2_APP_OPTS)) \ + -f makefile.nart all +endef + +define KernelPackage/art2/install/Default + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) $(PKG_BUILD_DIR)/nartbuild/*.out $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/nartbuild/*.so $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/BoardData/*.bin $(1)/usr/sbin + $(INSTALL_BIN) ./files/art.init $(1)/etc/init.d/art +endef + +define KernelPackage/art2 +$(call KernelPackage/art2/Default) + DEPENDS+=libnl-tiny +endef + +define KernelPackage/art2/Description +$(call KernelPackage/art2/Description/Default) +endef + +define KernelPackage/art2/config +$(call KernelPackage/art2/config/Default) +endef + +define KernelPackage/art2/install +$(call KernelPackage/art2/install/Default,$(1)) +endef + +$(eval $(call KernelPackage,art2)) + +define KernelPackage/art2-netlink +$(call KernelPackage/art2/Default,netlink) + VARIANT:=netlink + DEPENDS+=libnl-tiny +endef + +define KernelPackage/art2-netlink/Description +$(call KernelPackage/art2/Description/Default) +endef + +define KernelPackage/art2-netlink/config +$(call KernelPackage/art2/config/Default,-netlink) +endef + +define KernelPackage/art2-netlink/install +$(call KernelPackage/art2/install/Default,$(1)) +endef + +$(eval $(call KernelPackage,art2-netlink)) diff --git a/qaa/art2/art2/files/art.init b/qaa/art2/art2/files/art.init new file mode 100644 index 000000000..d155241e5 --- /dev/null +++ b/qaa/art2/art2/files/art.init @@ -0,0 +1,372 @@ +#!/bin/sh /etc/rc.common +# +# Copyright (c) 2013, 2017 Qualcomm Technologies, Inc. +# +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# 2013 Qualcomm Atheros, Inc. +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. +# + +# We don't want to start ART2 automatically at boot time as we want the +# default to be a working user configuration. +# At the end of the boot process, the user can start art using: +# put the START value as 99 in below defined variable ( ex. START=99) +# /etc/init.d/art enable +# /etc/init.d/art start +# now art should be running automatically at every boot, but if user wants +# to disable it back then he should use below command to disable it back: +# /etc/init.d/art disable +START= +SERVICE_DAEMONIZE=1 +SERVICE_WRITE_PID=1 +#wlan_dir is for ath10K platform +wlan_dir=/sys/class/net/wlan +wifi_dir=/sys/class/net/wifi +arm_platform=`uname -m | grep arm` +third_party="" +board_id="" + +if [ -f /etc/modules.d/33-qca-wifi* ]; then + qcawifi_modules=/etc/modules.d/33-qca-wifi* +else + qcawifi_modules=/lib/wifi/qca-wifi-modules +fi + +ART_QCA_WIFI_DETECTED=1 +MTD_ART_PART_NAME="ART" + +unload_wifi_art_modules() { + if [ "${ART_QCA_WIFI_DETECTED}" -eq 1 ]; then + for mod in art $(cat $qcawifi_modules | sed '1!G;h;$!d'); do + case ${mod} in + mem_manager) continue; + ;; + art) continue; + ;; + esac + [ -d /sys/module/${mod} ] && rmmod ${mod} + done + else + [ -d /sys/module/art ] && rmmod art + fi +} + +load_wifi_art_modules() { + if [ "${ART_QCA_WIFI_DETECTED}" -eq 1 ]; then + if [ -n "$arm_platform" ] ; then + for mod in $(cat $qcawifi_modules) art ; do + case ${mod} in + umac) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} ahbskip=1 || { \ + unload_wifi_art_modules + } + };; + qca_ol) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} testmode=1 || { \ + unload_wifi_art_modules + } + };; + *) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} || { \ + unload_wifi_art_modules + } + };; + esac + done + else + for mod in art $(cat $qcawifi_modules) ; do + case ${mod} in + umac) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} ahbskip=1 || { \ + unload_wifi_art_modules + } + };; + qca_ol) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} testmode=1 || { \ + unload_wifi_art_modules + } + };; + *) [ -d /sys/module/${mod} ] || { \ + insmod ${mod} || { \ + unload_wifi_art_modules + } + };; + esac + done + fi + else + for mod in $(lsmod | grep ath) ; do + case ${mod} in + ath9k) rmmod ${mod};; + esac + done + [ -d /sys/module/art ] || insmod art + fi +} + +is_art_runnable() { + # First argument represents wifi_dir/wlan_dir + # Second argument represents wifi index/wlan index + local dir=$1 + local index=$2 + if [ -e "$dir$index/device/device" ]; then + read dev_id < "$dir$index/device/device" + case "$dev_id" in + "0x0040") + return 0 + ;; + "0x0046") + return 0 + ;; + "0x0056") + return 0 + ;; + "0x0050") + return 0 + ;; + "0x003c") + return 0 + ;; + *) + return 1 + ;; + esac + fi + return 1 +} + +start_nart_out() { + # First argument represents the wifi directory name/wlan directory name to be use + # Second argument represents the wifi index/wlan index to be use + local dir=$1 + local wifi_index=$2 + local inst=$3 + + is_art_runnable $dir $wifi_index && return + + SERVICE_PID_FILE=/var/run/nart${wifi_index}.pid + if [ -n "$arm_platform" ] || [ -n "$third_party" ]; then + service_start /usr/sbin/nart.out -instance ${wifi_index} -pcie ${wifi_index} + else + case "$board_id" in + "ap135"|\ + "ap147"|\ + "ap151"|\ + "ap152"|\ + "ap137"|\ + "apjet01") + SERVICE_PID_FILE=/var/run/nart${inst}.pid + service_start /usr/sbin/nart.out -instance ${inst} -pcie ${wifi_index} + ;; + *) + service_start /usr/sbin/nart.out -instance ${wifi_index} + ;; + esac + fi +} + +stop_nart_out() { + # First argument represents the wifi directory name/wlan directory name to be use + # Second argument represents the wifi index/wlan index to be use + local dir=$1 + local wifi_index=$2 + local inst=$3 + + is_art_runnable $dir $wifi_index && return + + # in qca-wifi, cfg name is the wifi iface name + SERVICE_PID_FILE=/var/run/nart${wifi_index}.pid + if [ -n "$arm_platform" ] || [ -n "$third_party" ]; then + service_stop /usr/sbin/nart.out -instance ${wifi_index} -pcie ${wifi_index} + else + case "$board_id" in + "ap135"|\ + "ap147"|\ + "ap151"|\ + "ap152"|\ + "ap137"|\ + "apjet01") + SERVICE_PID_FILE=/var/run/nart${inst}.pid + service_stop /usr/sbin/nart.out -instance ${inst} -pcie ${wifi_index} + ;; + *) + service_stop /usr/sbin/nart.out -instance ${wifi_index} + ;; + esac + fi +} + +art_qca_wifi_detect() { + local qca_wifi_entry + local wlan_entry + + if [ -f $qcawifi_modules ]; then + qca_wifi_entry=`cat $qcawifi_modules` + [ -n "$qca_wifi_entry" ] || ART_QCA_WIFI_DETECTED=0 + elif [ -f /etc/modules.d/ath10k ]; then + wlan_entry=`cat /etc/modules.d/ath10k` + [ -n "$wlan_entry" ] || ART_QCA_WIFI_DETECTED=0 + else + ART_QCA_WIFI_DETECTED=0 + fi + +} + +start() { + local art_inst=1 + local nor_flash="" + + art_qca_wifi_detect + + config_load wireless + + # ART2 conflicts with the WiFi driver so we don't start anything here + # We'll just prepare the field in case we want to start nart.out + [ -c /dev/dk0 ] || mknod /dev/dk0 c 63 0 + [ -c /dev/dk1 ] || mknod /dev/dk1 c 63 1 + + mtd_name=$(grep -i -w ${MTD_ART_PART_NAME} /proc/mtd | cut -f1 -d:) + + nor_flash=`find /sys/bus/spi/devices/*/mtd -name ${mtd_name} 2> /dev/null` + + if [ -n "$nor_flash" -a -n "$arm_platform" ]; then + [ -L /dev/caldata ] || \ + ln -s /dev/${mtd_name} /dev/caldata + elif [ -n "$mtd_name" ]; then + [ -L /dev/caldata ] || \ + ln -s /dev/${mtd_name//mtd/mtdblock} /dev/caldata + fi + + unload_wifi_art_modules + + load_wifi_art_modules + + if [ -n "$mtd_name" ]; then + third_party="" + if [ -n "$arm_platform" ]; then + . /lib/ipq806x.sh + board_id=$(ipq806x_board_name) + else + . /lib/ar71xx.sh + board_id=$(ar71xx_board_name) + fi + else + third_party="true" + fi + + # Start the daemon + if [ "${ART_QCA_WIFI_DETECTED}" -eq 1 ]; then + case "$board_id" in + "ap135"|\ + "ap147"|\ + "ap151"|\ + "ap152"|\ + "ap137"|\ + "apjet01") + SERVICE_PID_FILE=/var/run/nart0.pid + service_start /usr/sbin/nart.out -instance 0 + service_start /usr/sbin/nart.out -instance 1 -pcie 0 + # Check for ath10K driver + # If ath10K driver installed, + # use wlan_dir instead of wifi_dir to check for device existence + # and launch nart.out application accordingly + if [ -n "`lsmod | grep ath10k`" ] ; then + for dir in /sys/class/net/wlan*; do + [ -d "$dir" ] || continue + start_nart_out $wlan_dir "${dir#"$wlan_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + else + for dir in /sys/class/net/wifi*; do + [ -d "$dir" ] || continue + start_nart_out $wifi_dir "${dir#"$wifi_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + fi + ;; + *) + if [ -n "`lsmod | grep ath10k`" ] ; then + for dir in /sys/class/net/wlan*; do + [ -d "$dir" ] || continue + start_nart_out $wlan_dir "${dir#"$wlan_dir"}" $art_inst + done + else + #config_foreach start_nart_out $wifi_dir wifi-device "0" + for dir in /sys/class/net/wifi*; do + [ -d "$dir" ] || continue + start_nart_out $wifi_dir "${dir#"$wifi_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + fi + ;; + esac + else + start_nart_out "0" "0" "0" + fi +} + +stop() { + local art_inst=1 + art_qca_wifi_detect + + config_load wireless + + # Stop the daemon + if [ "${ART_QCA_WIFI_DETECTED}" -eq 1 ]; then + case "$board_id" in + "ap135"|\ + "ap147"|\ + "ap151"|\ + "ap152"|\ + "ap137"|\ + "apjet01") + SERVICE_PID_FILE=/var/run/nart0.pid + service_stop /usr/sbin/nart.out -instance 0 + # Check for ath10K driver + # If ath10K driver installed, + # use wlan_dir instead of wifi_dir to check for device existence + # and stop art application accordingly + if [ -n "`lsmod | grep ath10k`" ] ; then + for dir in /sys/class/net/wlan*; do + [ -d "$dir" ] || continue + stop_nart_out $wlan_dir "${dir#"$wlan_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + else + for dir in /sys/class/net/wifi*; do + [ -d "$dir" ] || continue + stop_nart_out $wifi_dir "${dir#"$wifi_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + fi + ;; + *) + if [ -n "`lsmod | grep ath10k`" ] ; then + for dir in /sys/class/net/wlan*; do + [ -d "$dir" ] || continue + stop_nart_out $wlan_dir "${dir#"$wlan_dir"}" $art_inst + done + else + #config_foreach stop_nart_out $wifi_dir wifi-device "0" + for dir in /sys/class/net/wifi*; do + [ -d "$dir" ] || continue + stop_nart_out $wifi_dir "${dir#"$wifi_dir"}" $art_inst + art_inst=`expr $art_inst + 1` + done + fi + ;; + esac + else + stop_nart_out "0" "0" "0" + fi + + unload_wifi_art_modules + + [ -c /dev/dk0 ] && rm /dev/dk0 + [ -c /dev/dk1 ] && rm /dev/dk1 + [ -L /dev/caldata ] && rm /dev/caldata + +} diff --git a/qaa/art2/art2/patches/0001-build_fix_with_gcc5.patch b/qaa/art2/art2/patches/0001-build_fix_with_gcc5.patch new file mode 100644 index 000000000..0a46a698c --- /dev/null +++ b/qaa/art2/art2/patches/0001-build_fix_with_gcc5.patch @@ -0,0 +1,10 @@ +--- a/os/Linux/os_if_nl.c ++++ b/os/Linux/os_if_nl.c +@@ -4,6 +4,7 @@ + * Qualcomm Atheros Confidential and Proprietary. + */ + ++#define _GNU_SOURCE + #include + #include + #include diff --git a/qaa/art2/art2/patches/0002-add-lrt-dependency.patch b/qaa/art2/art2/patches/0002-add-lrt-dependency.patch new file mode 100644 index 000000000..b3beb3d23 --- /dev/null +++ b/qaa/art2/art2/patches/0002-add-lrt-dependency.patch @@ -0,0 +1,13 @@ +Index: LinuxART2CS10.2v4.9.437/art/makefile.dart +=================================================================== +--- LinuxART2CS10.2v4.9.437.orig/art/makefile.dart 2016-11-24 17:40:31.000000000 +0530 ++++ LinuxART2CS10.2v4.9.437/art/makefile.dart 2017-04-12 16:19:15.857810084 +0530 +@@ -54,7 +54,7 @@ + + LDFLAGS = -L./ -L../shared/Linux -L../field/Linux -L../anwi/Linux -L../Link/Linux -L../libtlv/outputTemplate/Linux -L../libtlv/libtlvutil/Linux -L../LinkQc9K/Linux -L../calibration/cal-2p/Linux_ar9300 -L../devlib/Linux_ar9287 -L../devlib/Linux_qc98xx -L../devlib/Linux_ar9300 \ + -rdynamic \ +--lm -lpthread -ldl \ ++-lm -lpthread -ldl -lrt \ + -lfield -lpart -lanwi -llinkAr9k -ltlvtemplate -ltlvutil -lLinkQc9K -lcal-2p -lar9300 -lar9287 -lqc98xx\ + + BIN = $(OUTPUT_DIR)/nart.out diff --git a/qaa/art2/art2/patches/0002-fix-build-with-musl.patch b/qaa/art2/art2/patches/0002-fix-build-with-musl.patch new file mode 100644 index 000000000..e47d61b4e --- /dev/null +++ b/qaa/art2/art2/patches/0002-fix-build-with-musl.patch @@ -0,0 +1,83 @@ +--- a/art/AnwiDriverInterface.h ++++ b/art/AnwiDriverInterface.h +@@ -10,7 +10,10 @@ + #ifdef __LINUX_MIPS64_ARCH__ + #include + #endif +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0) ++ ++#ifdef __KERNEL__ ++#include ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + + #if defined(THIRD_PARTY_INTEL) + #if !defined(__LINUX_MIPS64_ARCH__) && !defined(__LINUX_ARM_ARCH__)&& !defined(__i386__) +@@ -22,6 +25,7 @@ + #endif + #endif + #endif ++#endif + #endif + + extern ANWIDLLSPEC int AnwiDriverDetach(void); +--- a/common/hw_routines.c ++++ b/common/hw_routines.c +@@ -8,7 +8,7 @@ + + #if defined(Linux) || defined(__APPLE__) + #include +-#include ++ //#include + #include + #include + #include +--- a/devlib/qc98xx/Qc98xxEepromPrint.c ++++ b/devlib/qc98xx/Qc98xxEepromPrint.c +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #include "wlantype.h" + #include "smatch.h" +--- a/devlib/qc98xx/Qc98xxEepromSave.h ++++ b/devlib/qc98xx/Qc98xxEepromSave.h +@@ -1,6 +1,7 @@ + #ifndef _QC98XX_EEPROM_SAVE_H_ + #define _QC98XX_EEPROM_SAVE_H_ + ++#include + + #if defined (AP_BUILD) || defined (MDK_AP) + #define SWAP16(_x) ( (u_int16_t)( (((const u_int8_t *)(&_x))[0] ) |\ +--- a/libtlv/libtlvutil/genTxBinCmdTlv.c ++++ b/libtlv/libtlvutil/genTxBinCmdTlv.c +@@ -1,6 +1,7 @@ + #include + #include + #include ++#include + + #if defined(_HOST_SIM_TESTING) + #include "otaHostCommon.h" +--- a/common/linux_ansi.h ++++ b/common/linux_ansi.h +@@ -5,7 +5,6 @@ + extern "C" { + #endif // __cplusplus + +-#include + + extern void ansi_init(); + extern void itoa(int,char *,int); +--- a/devlib/qc98xx/Qc98xxEepromSave.c ++++ b/devlib/qc98xx/Qc98xxEepromSave.c +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + #if 0 + #include diff --git a/qaa/athdiag/athdiag/Makefile b/qaa/athdiag/athdiag/Makefile new file mode 100644 index 000000000..448805d97 --- /dev/null +++ b/qaa/athdiag/athdiag/Makefile @@ -0,0 +1,50 @@ +include $(TOPDIR)/rules.mk +PKG:=athdiag +PKG_NAME:=$(PKG) +PKG_SOURCE_PROTO:=git +PKG_BRANCH:=master +PKG_RELEASE:=1 + +ifeq ($(CONFIG_WIFI_TARGET_WIFI_2_0),y) +export WIFI_TARGET_2_0:=1 +endif + +include $(INCLUDE_DIR)/local-development.mk +TARGET_LDFLAGS += $(if $(CONFIG_USE_EGLIBC),-lrt) -pie +TARGET_CFLAGS += -fpie -Wall -Werror + +include $(INCLUDE_DIR)/package.mk + +FW_hw2_asic:=qca-wifi-fw-hw2-10.4-asic + +define Package/athdiag + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + TITLE:= QCA ATHDIAG(athdiag) Driver & tools + URL:=http://www.qca.qualcomm.com + PKG_BUILD_DEPENDS+=$(FW_hw2_asic) +endef + +define Package/athdiag/description + athdiag command support for ath10k +endef + +define Build/Compile + CFLAGS="$(TARGET_CFLAGS)" \ + $(MAKE) -C $(PKG_BUILD_DIR)/ \ + TOOLPREFIX="$(TARGET_CROSS)" \ + LIBS="$(TARGET_LDFLAGS)" \ + DL_DIR="$(DL_DIR)" \ + WLAN_TOP=$(PKG_BUILD_DIR) \ + all +endef + +define Package/athdiag/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/athdiag $(1)/usr/sbin + #$(INSTALL_DATA) $(PKG_BUILD_DIR)/testcmd_tlv/Linux/*.so $(1)/lib +endef + +$(eval $(call BuildPackage,athdiag)) + diff --git a/qaa/athtestcmd/athtestcmd/Makefile b/qaa/athtestcmd/athtestcmd/Makefile new file mode 100644 index 000000000..3aa388c2a --- /dev/null +++ b/qaa/athtestcmd/athtestcmd/Makefile @@ -0,0 +1,119 @@ + +include $(TOPDIR)/rules.mk +PKG:=athtestcmd +PKG_NAME:=$(PKG) +PKG_SOURCE_PROTO:=git +PKG_BRANCH:=master +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk + +include $(INCLUDE_DIR)/package.mk + +define Package/athtestcmd + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + TITLE:= QCA TLVCMD(athtestcmd) Driver & tools + DEPENDS:=+librt +libnl-tiny + URL:=http://www.qca.qualcomm.com + VARIANT:=ath10k +endef + +define Package/athtestcmd/description + athtestcmd command support for ath10k +endef + +define Package/athtestcmd-lith + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + TITLE:= QCA TLVCMD(qcatestcmd) Driver & tools + DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_64||TARGET_ipq807x||TARGET_ipq_ipq60xx||TARGET_ipq_ipq60xx_64||TARGET_ipq60xx||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 + URL:=http://www.qca.qualcomm.com + VARIANT:=lithium +endef + +define Package/athtestcmd-lith/description + qcatestcmd command support for lithium +endef + +define Package/athtestcmd-lith-nl + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + TITLE:= QCA TLVCMD(qcatestcmd) Driver & tools + DEPENDS:=@TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_64||TARGET_ipq_ipq60xx||TARGET_ipq_ipq60xx_64||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 +libnl +libtcmd + URL:=http://www.qca.qualcomm.com + VARIANT:=lithium-netlink +endef + +define Package/athtestcmd-lith-nl/description + qcatestcmd command support for lithium-netlink +endef + +ifeq ($(BUILD_VARIANT),ath10k) +TARGET_CPPFLAGS += \ + -I$(STAGING_DIR)/usr/include/libnl-tiny +endif + +ifeq ($(BUILD_VARIANT),lithium-netlink) +export $(BUILD_VARIANT) +endif + +define Build/Compile/lithium-netlink + CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + $(MAKE) -C $(PKG_BUILD_DIR)/lithium/tools/testcmd \ + -f makefile.linux \ + TOOLPREFIX="$(TARGET_CROSS)" \ + LIBS="$(TARGET_LDFLAGS)" \ + WLAN_TOP=$(PKG_BUILD_DIR)/$(BUILD_VARIANT) +endef + +define Build/Compile/lithium + CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + $(MAKE) -C $(PKG_BUILD_DIR)/lithium/tools/testcmd \ + -f makefile.linux \ + TOOLPREFIX="$(TARGET_CROSS)" \ + LIBS="$(TARGET_LDFLAGS)" \ + WLAN_TOP=$(PKG_BUILD_DIR)/$(BUILD_VARIANT) +endef + +define Build/Compile/ath10k + CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + $(MAKE) -C $(PKG_BUILD_DIR)/ath10k/testcmd_tlv \ + TOOLPREFIX="$(TARGET_CROSS)" \ + LIBS="$(TARGET_LDFLAGS)" \ + WLAN_TOP=$(PKG_BUILD_DIR)/$(BUILD_VARIANT) \ + all +endef + +define Build/Compile + $(Build/Compile/$(BUILD_VARIANT)) +endef + +define Package/athtestcmd/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/ath10k/testcmd_tlv/Linux/athtestcmd $(1)/usr/sbin + $(INSTALL_DATA) $(PKG_BUILD_DIR)/ath10k/testcmd_tlv/Linux/*.so $(1)/lib +endef + +define Package/athtestcmd-lith/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/lithium/tools/testcmd/Linux/qcatestcmd $(1)/usr/sbin + $(INSTALL_DATA) $(PKG_BUILD_DIR)/lithium/tools/testcmd/Linux/*.so $(1)/usr/lib +endef + +define Package/athtestcmd-lith-nl/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/lithium/tools/testcmd/Linux/qcatestcmd $(1)/usr/sbin + $(INSTALL_DATA) $(PKG_BUILD_DIR)/lithium/tools/testcmd/Linux/*.so $(1)/usr/lib +endef + +$(eval $(call BuildPackage,athtestcmd)) +$(eval $(call BuildPackage,athtestcmd-lith)) +$(eval $(call BuildPackage,athtestcmd-lith-nl)) + diff --git a/qaa/bluetopia/bluetopia-mini/Makefile b/qaa/bluetopia/bluetopia-mini/Makefile new file mode 100644 index 000000000..2b1b7672d --- /dev/null +++ b/qaa/bluetopia/bluetopia-mini/Makefile @@ -0,0 +1,195 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_SOURCE_NAME:=bluetopia +PKG_NAME:=bluetopia-mini +PKG_VERSION:=4.2.1.c1_26 +PKG_DIST_VERSION:=4.2.1.c1 +PKG_RELEASE:=1 +PKG_FOLDER=BLUETOPIA + +PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://qcawebsrvr.qualcomm.com/cnss_win/santaclara/dev01/$(PKG_FOLDER)/ +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_DIST_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_DIST_VERSION) +PKG_MD5SUM:=ad1a200e30c51254bf1f63b948134037 + +# Bluetopia Root Paths +export BLUETOPIA_SOURCE_PATH:=$(PKG_BUILD_DIR)/bt_host/Build +export BLUETOPIAPM_SOURCE_PATH:=$(PKG_BUILD_DIR)/bt_host_pm/Build +export BLUETOPIA_ROOT_PATH:=$(PKG_DIST_DIR)/Bluetopia_Dist +export BTPM_DIST_PATH:=$(PKG_DIST_DIR)/BluetopiaPM_Dist + +# Bluetopia Core Include and Library Path +BLUETOPIA_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/include +export BLUETOPIA_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/lib + +# Bluetopia Debug Include and Library Path +BLUETOPIA_DEBUG_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/debug/include +BLUETOPIA_DEBUG_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/debug/lib + +# Bluetopia Profiles Root Path +export BLUETOPIA_PROFILE_ROOT_PATH:=$(BLUETOPIA_ROOT_PATH)/profiles + +# Bluetopia VSER Include and Library Path +BLUETOPIA_VSER_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/VSER/include +BLUETOPIA_VSER_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/VSER/lib + +# Bluetopia VNET Include and Library Path +BLUETOPIA_VNET_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/VNET/include +BLUETOPIA_VNET_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/VNET/lib + +# Bluetopia SBC Include and Library Path +BLUETOPIA_SBC_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/SBC/include +BLUETOPIA_SBC_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/SBC/lib + +# Bluetopia Simple XML Parser Path +export BLUETOPIA_XML_PATH:=$(BLUETOPIA_ROOT_PATH)/XML/SS1SXMLP + +# Bluetopia Distribution Path +export BLUETOPIA_PATH:=$(BLUETOPIA_ROOT_PATH) + + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=QTI + CATEGORY:=QTI software + TITLE:=$(1) - QTI mini-Bluetopia + DEPENDS:=+libpthread +libopenssl +endef + +define Package/$(PKG_NAME)/description + This package contains mini-Bluetopia PM and mini-Bluetopia binaries +endef + +SOC=DK07 +ifneq (, $(findstring $(SUBTARGET), ipq50xx ipq50xx_64)) + SOC=Maple +endif + +TARGET_CFLAGS += -Werror -Wall + +MAKE_FLAGS="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS)" \ + "GLOBLDLIBS= -lssl -lcrypto" + +MAKE_KWFLAG_BTPSKRNL="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS) -DBTPS_KERNEL_USE_C_RUN_TIME_IMPLEMENTATION=0" + +INCLDIRS = -I$(BLUETOPIA_INCLUDE_PATH) \ + -I$(BLUETOPIA_DEBUG_INCLUDE_PATH) \ + -I$(BLUETOPIA_VSER_INCLUDE_PATH) \ + -I$(BLUETOPIA_VNET_INCLUDE_PATH) \ + -I$(BLUETOPIA_SBC_INCLUDE_PATH) + +LIBDIRS = -L$(BLUETOPIA_LIB_PATH) \ + -L$(BLUETOPIA_DEBUG_LIB_PATH) \ + -L$(BLUETOPIA_VSER_LIB_PATH) \ + -L$(BLUETOPIA_VNET_LIB_PATH) \ + -L$(BLUETOPIA_SBC_LIB_PATH) + +PM_MAKE_FLAGS="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS)" \ + "BLUETOPIA_INCLUDE_PATH=$$(BLUETOPIA_ROOT_PATH)/include" \ + "GLOBLDLIBS= -lssl -lcrypto" + +define Build/Prepare + $(TAR) xjvf $(TOPDIR)/dl/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) + $(Build/Patch) + $(CP) $(PKG_BUILD_DIR)/bt_host/Build/Ports/Platform/$(SOC)/* $(PKG_BUILD_DIR)/bt_host/Build/Linux/ +ifeq ($(SOC), DK07) + $(CP) $(PKG_BUILD_DIR)/bt_host/Build/Ports/Common/btpssec/openssl/* $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpssec/ +endif +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpscert -f BTPSCERT.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpsfile -f BTPSFILE.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpskrnl -f BTPSKRNL.mak all $(MAKE_KWFLAG_BTPSKRNL) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpsvend -f BTPSVEND.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpssec -f BTPSSEC.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/debug/SS1BTDBG -f SS1BTDBG.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/hcidrv_lin -f HCIDRV.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/ss1btps -f SS1BTPS.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/ss1btle -f SS1BTPS.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VSER/SS1SER -f SS1SER.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VSER/SS1VSER -f SS1VSER.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VNET/SS1VNET -f SS1VNET.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/XML/SS1SXMLP -f SS1SXMLP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles/GATT -f SS1BTGAT.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles/GATT -f SS1BTGAT_LE.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/GAPS -f SS1BTGAP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/DIS -f SS1BTDIS.mak all $(MAKE_FLAGS) + +ifeq ($(SOC), DK07) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/sample/LinuxSPPLE -f LinuxSPPLE.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSPP -f LinuxSPP.mak all $(MAKE_FLAGS) +endif + + echo 'creating mini-Bluetopia Dist area' + /bin/sh $(PKG_BUILD_DIR)/bt_host/Build/MakeFull_win.sh /d $(BLUETOPIA_ROOT_PATH) /s $(BLUETOPIA_SOURCE_PATH) + echo 'done creating mini-Bluetopia Dist area' + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmcert -f BTPMCERT.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdbg -f BTPMDBG.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmerr -f BTPMERR.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmset -f BTPMSET.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmipc/client -f BTPMIPC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmipc/server -f BTPMIPC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmmodc/client -f BTPMMODC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmmodc/server -f BTPMMODC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmscom/client -f BTPMSCOM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmscom/server -f BTPMSCOM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmsppm/client -f BTPMSPPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmsppm/server -f BTPMSPPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmgatm/client -f BTPMGATM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmgatm/server -f BTPMGATM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdevm/client -f BTPMDEVM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdevm/server -f BTPMDEVM.mak all $(PM_MAKE_FLAGS) + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpml/client -f SS1BTPML.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpml/server -f SS1BTPML.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/client -f SS1BTPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/server -f SS1BTPM.mak all $(PM_MAKE_FLAGS) + +ifeq ($(SOC), Maple) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPLE_PM -f LinuxSPPLE_PM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPM -f LinuxSPPM.mak all $(PM_MAKE_FLAGS) +endif + + echo 'creating mini-BluetopiaPM Dist area with default interval 20sec' + /bin/sh $(PKG_BUILD_DIR)/bt_host_pm/Build/MakeFull.sh /d $(BTPM_DIST_PATH) /s $(BLUETOPIAPM_SOURCE_PATH) + echo 'done creating mini-Bluetopia Dist area' +endef + + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + +ifeq ($(SOC), DK07) + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/profile.d + $(INSTALL_BIN) ./files/PS_KEY_CSR8811.txt $(1)/usr/bin + $(INSTALL_BIN) ./files/bluetopia.init $(1)/etc/init.d/bluetopia + $(INSTALL_BIN) ./files/bt_env.sh $(1)/etc/profile.d/bt_env.sh + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/sample/LinuxSPPLE/LinuxSPPLE $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSPP/LinuxSPP $(1)/usr/bin +endif + +ifeq ($(SOC), Maple) + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/server/SS1BTPM $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPLE_PM/LinuxSPPLE_PM $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPM/LinuxSPPM $(1)/usr/bin +endif +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/qaa/bluetopia/bluetopia-mini/files/PS_KEY_CSR8811.txt b/qaa/bluetopia/bluetopia-mini/files/PS_KEY_CSR8811.txt new file mode 100644 index 000000000..3b551258d --- /dev/null +++ b/qaa/bluetopia/bluetopia-mini/files/PS_KEY_CSR8811.txt @@ -0,0 +1,83 @@ +# +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + + +# PSKEY_COEX_SCHEME +\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# PSKEY_PATCH63 +\x05\xC2\x02\x00\x29\x00\x20\x00\x03\x70\x00\x00\x39\x21\x21\x00\x00\x00\x02\x00\xDD\x2C\x1B\x01\x12\x0B\x80\x10\xF0\x05\x17\x00\x36\x00\x19\xE1\x12\x02\x14\x02\x99\xE0\xF4\x02\x14\x11\x1B\x00\x12\x2F\x80\x0F\x2C\x05\x19\xE0\x00\xFA\x26\x43\xE0\x05\x00\xF8\x30\x5A\x19\xE0\x26\x00\x18\x02\x2B\xFF\x0E\xFF\x00\x2D\x18\xEB\xE2\x00\xFC\x4C" +# PSKEY_PATCH64 +\x05\xC2\x02\x00\x29\x00\x21\x00\x03\x70\x00\x00\x3A\x21\x21\x00\x00\x00\x02\x00\x41\x2E\x1B\x01\x12\x0B\x80\x10\xF0\x05\x17\x00\x36\x00\x19\xE1\x12\x02\x14\x02\x99\xE0\xF4\x02\x14\x0E\x1B\x00\x12\x2F\x80\x0F\x2C\x05\x19\xE0\x00\xFA\x26\x43\xE0\x05\x00\xF8\x30\x5A\x19\xE0\x26\x00\x18\x02\x2B\xFF\x0E\xFF\x00\x2E\x18\x4F\xE2\x00\x99\xE9" +# PSKEY_PATCH65 +\x05\xC2\x02\x00\x3E\x00\x22\x00\x03\x70\x00\x00\x3B\x21\x36\x00\x00\x00\x02\x00\x13\x2B\x12\x25\xC0\x10\xF0\x30\x19\xE1\x1A\x00\x00\xE7\x11\x6A\x39\xE0\x16\x02\x99\xE1\xF4\x03\x14\x11\xE0\x02\x14\x02\x19\xE0\x12\x28\xF4\x04\x80\x01\xF0\x20\xE0\x04\x84\x02\xF4\x02\x14\x0E\x1A\x2F\x88\x0F\x2C\x04\x00\xFA\x26\x43\xE0\x04\x00\xF8\x38\x5A\x26\x00\x00\xE7\x15\x6A\x99\xE0\xF4\x08\x11\xE1\x18\x02\x2B\xFF\x0E\xFF\x00\x2B\x18\x3D\xE2\x00\x11\xE1\x18\x02\x2B\xFF\x0E\xFF\x00\x2B\x18\x27\xE2\x00\x0F\xFE\xC4\xB0" +# WARM RESET +\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For CASCADE PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x09\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x00\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For HAWKEYE PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For CYPRESS PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# diff --git a/qaa/bluetopia/bluetopia-mini/files/bluetopia.init b/qaa/bluetopia/bluetopia-mini/files/bluetopia.init new file mode 100644 index 000000000..636b930ee --- /dev/null +++ b/qaa/bluetopia/bluetopia-mini/files/bluetopia.init @@ -0,0 +1,20 @@ +#!/bin/sh /etc/rc.common +# +# +#Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +START=15 + +boot() { +. /lib/functions.sh + art_partition=$(find_mtd_part 0:ART) + + export BTHOST_BD_ADDR=0x$(hexdump -n 6 -s 64 $art_partition | cut -d " " -f2-4 | sed 's/ //g'| head -n 1) + echo "$BTHOST_BD_ADDR" > /tmp/BTHOST_BD_ADDR + export BTHOST_XCAL_TRIM=0x$(hexdump -n 7 -s 64 $art_partition | cut -d " " -f5 | head -n 1) + echo "$BTHOST_XCAL_TRIM" > /tmp/BTHOST_XCAL_TRIM + +} diff --git a/qaa/bluetopia/bluetopia-mini/files/bt_env.sh b/qaa/bluetopia/bluetopia-mini/files/bt_env.sh new file mode 100644 index 000000000..17b9d95f0 --- /dev/null +++ b/qaa/bluetopia/bluetopia-mini/files/bt_env.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +[ -f /tmp/BTHOST_BD_ADDR ] && export BTHOST_BD_ADDR=$(cat /tmp/BTHOST_BD_ADDR) +[ -f /tmp/BTHOST_XCAL_TRIM ] && export BTHOST_XCAL_TRIM=$(cat /tmp/BTHOST_XCAL_TRIM) + diff --git a/qaa/bluetopia/bluetopia-mini/patches/001-otp-support.patch b/qaa/bluetopia/bluetopia-mini/patches/001-otp-support.patch new file mode 100644 index 000000000..4d20020d3 --- /dev/null +++ b/qaa/bluetopia/bluetopia-mini/patches/001-otp-support.patch @@ -0,0 +1,50 @@ +diff --git a/bt_host/Build/Core/ss1btps/OTP.c b/bt_host/Build/Core/ss1btps/OTP.c +index a70d71a..751354a 100644 +--- a/bt_host/Build/Core/ss1btps/OTP.c ++++ b/bt_host/Build/Core/ss1btps/OTP.c +@@ -1694,7 +1694,7 @@ static char *ExtractNameFromObjectInfo(OTP_ObjectInfo_t *ObjectInfoPtr) + /* The Extended Name Bit is set, extract the pointer to the */ + /* Name from the end of the Name member in the Object */ + /* Information Structure. */ +- ret_val = (char *)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); ++ ret_val = (char *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); + } + else + { +@@ -1738,7 +1738,7 @@ static unsigned int ExtractNameLengthFromObjectInfo(OTP_ObjectInfo_t *ObjectInfo + /* The Extended Name Bit is set, extract the pointer to the */ + /* Name from the end of the Name member in the Object */ + /* Information Structure. */ +- TempCharPtr = (char *)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); ++ TempCharPtr = (char *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); + + /* Set the return value to the length of the name. */ + ret_val = BTPS_StringLength(TempCharPtr); +@@ -4798,7 +4798,7 @@ static void OTP_GetResponseEvent(unsigned int BluetoothStackID, OTP_Info_t *OTPI + /* Name member. If so free the memory that was */ + /* allocated for this response. */ + if(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].FieldMask & OTP_OBJECT_INFO_MASK_EXTENDED_NAME) +- BTPS_FreeMemory((void *)READ_OBJECT_INFO_EXTENDED_NAME(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].Name)); ++ BTPS_FreeMemory((void *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].Name)); + } + } + } +diff --git a/bt_host/Build/Linux/include/BaseTypes.h b/bt_host/Build/Linux/include/BaseTypes.h +index e04173a..cef6b84 100644 +--- a/bt_host/Build/Linux/include/BaseTypes.h ++++ b/bt_host/Build/Linux/include/BaseTypes.h +@@ -218,10 +218,10 @@ typedef __PACKED_STRUCT_BEGIN__ struct _tagNonAlignedSQWord_t /* Unaligned Sign + /* format of the Native Host's processor. */ + #define ASSIGN_HOST_DWORD_TO_LITTLE_ENDIAN_UNALIGNED_DWORD(_x, _y) \ + { \ +- ((Byte_t *)(_x))[0] = ((Byte_t)(((DWord_t)(_y)) & 0xFF)); \ +- ((Byte_t *)(_x))[1] = ((Byte_t)((((DWord_t)(_y)) >> 8) & 0xFF)); \ +- ((Byte_t *)(_x))[2] = ((Byte_t)((((DWord_t)(_y)) >> 16) & 0xFF)); \ +- ((Byte_t *)(_x))[3] = ((Byte_t)((((DWord_t)(_y)) >> 24) & 0xFF)); \ ++ ((Byte_t *)(_x))[0] = ((Byte_t)(((DWord_t)(uintptr_t)(_y)) & 0xFF)); \ ++ ((Byte_t *)(_x))[1] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 8) & 0xFF)); \ ++ ((Byte_t *)(_x))[2] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 16) & 0xFF)); \ ++ ((Byte_t *)(_x))[3] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 24) & 0xFF)); \ + } + + /* The following is a utility MACRO that exists to Assign a */ diff --git a/qaa/bluetopia/bluetopia/Makefile b/qaa/bluetopia/bluetopia/Makefile new file mode 100644 index 000000000..d46ea822d --- /dev/null +++ b/qaa/bluetopia/bluetopia/Makefile @@ -0,0 +1,213 @@ +# +# Copyright (c) 2015 Qualcomm Atheros, Inc. +# +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=bluetopia +PKG_VERSION:=4.2.1.c1_26 +PKG_DIST_VERSION:=4.2.1.c1 +PKG_RELEASE:=1 +PKG_FOLDER=BLUETOPIA + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://qcawebsrvr.qualcomm.com/cnss_win/santaclara/dev01/$(PKG_FOLDER)/ +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_DIST_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_DIST_VERSION) +PKG_MD5SUM:=ad1a200e30c51254bf1f63b948134037 + +# Bluetopia Root Paths +export BLUETOPIA_SOURCE_PATH:=$(PKG_BUILD_DIR)/bt_host/Build +export BLUETOPIAPM_SOURCE_PATH:=$(PKG_BUILD_DIR)/bt_host_pm/Build +export BLUETOPIA_ROOT_PATH:=$(PKG_DIST_DIR)/Bluetopia_Dist +export BTPM_DIST_PATH:=$(PKG_DIST_DIR)/BluetopiaPM_Dist + +# Bluetopia Core Include and Library Path +BLUETOPIA_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/include +export BLUETOPIA_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/lib + +# Bluetopia Debug Include and Library Path +BLUETOPIA_DEBUG_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/debug/include +BLUETOPIA_DEBUG_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/debug/lib + +# Bluetopia Profiles Root Path +export BLUETOPIA_PROFILE_ROOT_PATH:=$(BLUETOPIA_ROOT_PATH)/profiles + +# Bluetopia VSER Include and Library Path +BLUETOPIA_VSER_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/VSER/include +BLUETOPIA_VSER_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/VSER/lib + +# Bluetopia VNET Include and Library Path +BLUETOPIA_VNET_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/VNET/include +BLUETOPIA_VNET_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/VNET/lib + +# Bluetopia SBC Include and Library Path +BLUETOPIA_SBC_INCLUDE_PATH:=$(BLUETOPIA_ROOT_PATH)/SBC/include +BLUETOPIA_SBC_LIB_PATH:=$(BLUETOPIA_ROOT_PATH)/SBC/lib + +# Bluetopia Simple XML Parser Path +export BLUETOPIA_XML_PATH:=$(BLUETOPIA_ROOT_PATH)/XML/SS1SXMLP + +# Bluetopia Distribution Path +export BLUETOPIA_PATH:=$(BLUETOPIA_ROOT_PATH) + + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=QCA + CATEGORY:=QTI software + TITLE:=$(1) - QCA Bluetopia + DEPENDS:=+libpthread +libopenssl +endef + +define Package/$(PKG_NAME)/description + This package contains Bluetopia PM and Bluetopia binaries +endef + +SOC=DK07 +ifneq (, $(findstring $(SUBTARGET), ipq50xx ipq50xx_64)) + SOC=Maple +endif + +TARGET_CFLAGS += -Werror -Wall + +MAKE_FLAGS="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS)" \ + "GLOBLDLIBS= -lssl -lcrypto" + +MAKE_KWFLAG_BTPSKRNL="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS) -DBTPS_KERNEL_USE_C_RUN_TIME_IMPLEMENTATION=0" + +INCLDIRS = -I$(BLUETOPIA_INCLUDE_PATH) \ + -I$(BLUETOPIA_DEBUG_INCLUDE_PATH) \ + -I$(BLUETOPIA_VSER_INCLUDE_PATH) \ + -I$(BLUETOPIA_VNET_INCLUDE_PATH) \ + -I$(BLUETOPIA_SBC_INCLUDE_PATH) + +LIBDIRS = -L$(BLUETOPIA_LIB_PATH) \ + -L$(BLUETOPIA_DEBUG_LIB_PATH) \ + -L$(BLUETOPIA_VSER_LIB_PATH) \ + -L$(BLUETOPIA_VNET_LIB_PATH) \ + -L$(BLUETOPIA_SBC_LIB_PATH) + +PM_MAKE_FLAGS="CC=$$(TARGET_CC)" \ + "GLOBLDFLAGS=$$(TARGET_LDFLAGS)" \ + "GLOBCFLAGS=$$(TARGET_CFLAGS)" \ + "BLUETOPIA_INCLUDE_PATH=$$(BLUETOPIA_ROOT_PATH)/include" \ + "GLOBLDLIBS= -lssl -lcrypto" + +define Build/Prepare + $(TAR) xjvf $(TOPDIR)/dl/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) + $(Build/Patch) + $(CP) $(PKG_BUILD_DIR)/bt_host/Build/Ports/Platform/$(SOC)/* $(PKG_BUILD_DIR)/bt_host/Build/Linux/ +ifeq ($(SOC), DK07) + $(CP) $(PKG_BUILD_DIR)/bt_host/Build/Ports/Common/btpssec/openssl/* $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpssec/ +endif +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpscert -f BTPSCERT.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpsfile -f BTPSFILE.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpskrnl -f BTPSKRNL.mak all $(MAKE_KWFLAG_BTPSKRNL) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpsvend -f BTPSVEND.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/btpssec -f BTPSSEC.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/debug/SS1BTDBG -f SS1BTDBG.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/hcidrv_lin -f HCIDRV.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/ss1btps -f SS1BTPS.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/ss1btle -f SS1BTPS.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VSER/SS1SER -f SS1SER.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VSER/SS1VSER -f SS1VSER.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/VNET/SS1VNET -f SS1VNET.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/XML/SS1SXMLP -f SS1SXMLP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles/GATT -f SS1BTGAT.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles/GATT -f SS1BTGAT_LE.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/GAPS -f SS1BTGAP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/DIS -f SS1BTDIS.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/sample/LinuxSPPLE -f LinuxSPPLE.mak all $(MAKE_FLAGS) + + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSCO -f LinuxSCO.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxHCI -f LinuxHCI.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxL2CAP -f LinuxL2CAP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSDP -f LinuxSDP.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/SS1BTVEN -f SS1BTVEN.mak all $(MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSPP -f LinuxSPP.mak all $(MAKE_FLAGS) + + echo 'creating Bluetopia Dist area' + /bin/sh $(PKG_BUILD_DIR)/bt_host/Build/MakeFull_win.sh /d $(BLUETOPIA_ROOT_PATH) /s $(BLUETOPIA_SOURCE_PATH) + echo 'done creating Bluetopia Dist area' + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmcert -f BTPMCERT.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdbg -f BTPMDBG.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmerr -f BTPMERR.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmset -f BTPMSET.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmipc/client -f BTPMIPC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmipc/server -f BTPMIPC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmmodc/client -f BTPMMODC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmmodc/server -f BTPMMODC.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmscom/client -f BTPMSCOM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmscom/server -f BTPMSCOM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmsppm/client -f BTPMSPPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmsppm/server -f BTPMSPPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmgatm/client -f BTPMGATM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmgatm/server -f BTPMGATM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdevm/client -f BTPMDEVM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/btpmdevm/server -f BTPMDEVM.mak all $(PM_MAKE_FLAGS) + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpml/client -f SS1BTPML.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpml/server -f SS1BTPML.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/client -f SS1BTPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/server -f SS1BTPM.mak all $(PM_MAKE_FLAGS) + + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPLE_PM -f LinuxSPPLE_PM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPM -f LinuxSPPM.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxGATM -f LinuxGATM_CLT.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxGATM -f LinuxGATM_SRV.mak all $(PM_MAKE_FLAGS) + $(MAKE) -C $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxDEVM -f LinuxDEVM.mak all $(PM_MAKE_FLAGS) + + echo 'creating BluetopiaPM Dist area with default interval 20sec' + /bin/sh $(PKG_BUILD_DIR)/bt_host_pm/Build/MakeFull.sh /d $(BTPM_DIST_PATH) /s $(BLUETOPIAPM_SOURCE_PATH) + echo 'done creating Bluetopia Dist area' + +endef + + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/profile.d + $(INSTALL_BIN) ./files/PS_KEY_CSR8811.txt $(1)/usr/bin + $(INSTALL_BIN) ./files/bluetopia.init $(1)/etc/init.d/bluetopia + $(INSTALL_BIN) ./files/bt_env.sh $(1)/etc/profile.d/bt_env.sh + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxHCI/LinuxHCI $(1)/usr/bin/ + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxL2CAP/LinuxL2CAP $(1)/usr/bin/ + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSCO/LinuxSCO $(1)/usr/bin/ + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSDP/LinuxSDP $(1)/usr/bin/ + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/profiles_gatt/sample/LinuxSPPLE/LinuxSPPLE $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host/Build/Linux/sample/LinuxSPP/LinuxSPP $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/ss1btpm/server/SS1BTPM $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPLE_PM/LinuxSPPLE_PM $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxSPPM/LinuxSPPM $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxGATM/LinuxGATM_CLT $(1)/usr/bin + $(INSTALL_BIN) \ + $(PKG_BUILD_DIR)/bt_host_pm/Build/Linux/sample/LinuxDEVM/LinuxDEVM $(1)/usr/bin +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/qaa/bluetopia/bluetopia/files/PS_KEY_CSR8811.txt b/qaa/bluetopia/bluetopia/files/PS_KEY_CSR8811.txt new file mode 100644 index 000000000..87b9f1e4c --- /dev/null +++ b/qaa/bluetopia/bluetopia/files/PS_KEY_CSR8811.txt @@ -0,0 +1,76 @@ +# PSKEY_COEX_SCHEME +\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# PSKEY_PATCH63 +\x05\xC2\x02\x00\x29\x00\x20\x00\x03\x70\x00\x00\x39\x21\x21\x00\x00\x00\x02\x00\xDD\x2C\x1B\x01\x12\x0B\x80\x10\xF0\x05\x17\x00\x36\x00\x19\xE1\x12\x02\x14\x02\x99\xE0\xF4\x02\x14\x11\x1B\x00\x12\x2F\x80\x0F\x2C\x05\x19\xE0\x00\xFA\x26\x43\xE0\x05\x00\xF8\x30\x5A\x19\xE0\x26\x00\x18\x02\x2B\xFF\x0E\xFF\x00\x2D\x18\xEB\xE2\x00\xFC\x4C" +# PSKEY_PATCH64 +\x05\xC2\x02\x00\x29\x00\x21\x00\x03\x70\x00\x00\x3A\x21\x21\x00\x00\x00\x02\x00\x41\x2E\x1B\x01\x12\x0B\x80\x10\xF0\x05\x17\x00\x36\x00\x19\xE1\x12\x02\x14\x02\x99\xE0\xF4\x02\x14\x0E\x1B\x00\x12\x2F\x80\x0F\x2C\x05\x19\xE0\x00\xFA\x26\x43\xE0\x05\x00\xF8\x30\x5A\x19\xE0\x26\x00\x18\x02\x2B\xFF\x0E\xFF\x00\x2E\x18\x4F\xE2\x00\x99\xE9" +# PSKEY_PATCH65 +\x05\xC2\x02\x00\x3E\x00\x22\x00\x03\x70\x00\x00\x3B\x21\x36\x00\x00\x00\x02\x00\x13\x2B\x12\x25\xC0\x10\xF0\x30\x19\xE1\x1A\x00\x00\xE7\x11\x6A\x39\xE0\x16\x02\x99\xE1\xF4\x03\x14\x11\xE0\x02\x14\x02\x19\xE0\x12\x28\xF4\x04\x80\x01\xF0\x20\xE0\x04\x84\x02\xF4\x02\x14\x0E\x1A\x2F\x88\x0F\x2C\x04\x00\xFA\x26\x43\xE0\x04\x00\xF8\x38\x5A\x26\x00\x00\xE7\x15\x6A\x99\xE0\xF4\x08\x11\xE1\x18\x02\x2B\xFF\x0E\xFF\x00\x2B\x18\x3D\xE2\x00\x11\xE1\x18\x02\x2B\xFF\x0E\xFF\x00\x2B\x18\x27\xE2\x00\x0F\xFE\xC4\xB0" +# WARM RESET +\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For CASCADE PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x09\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x00\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For HAWKEYE PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# +# For CYPRESS PLATFORM, USE THE BELOW PSKEYS +# +# PSKEY_COEX_SCHEME +#\x06\xC2\x02\x00\x09\x00\x34\x00\x03\x70\x00\x00\x80\x24\x01\x00\x00\x00\x03\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_ACTIVE (BT_active) +#\x05\xC2\x02\x00\x0A\x00\x35\x00\x03\x70\x00\x00\x83\x24\x02\x00\x00\x00\x05\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_STATUS (BT_STATUS) +#\x05\xC2\x02\x00\x0A\x00\x36\x00\x03\x70\x00\x00\x84\x24\x02\x00\x00\x00\x01\x00\x01\x00 +# PSKEY_COEX_PIO_UNITY_3_BT_DENY (WLAN active?) +#\x05\xC2\x02\x00\x0A\x00\x37\x00\x03\x70\x00\x00\x85\x24\x02\x00\x00\x00\x04\x00\x01\x00 +#PSKEY_COEX_BLE_TRANSACTION_PRIORITY_TABLE (0x2493, 16 word) +#\x05\xC2\x02\x00\x18\x00\x38\x00\x03\x70\x00\x00\x93\x24\x10\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00 +#PSKEY_COEX_TRANSACTION_PRIORITY_TABLE (0x2488, 17 word) +#\x05\xC2\x02\x00\x19\x00\x39\x00\x03\x70\x00\x00\x88\x24\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 +# WARM RESET +#\x00\xC2\x02\x00\x09\x00\x47\x00\x02\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 +# +# diff --git a/qaa/bluetopia/bluetopia/files/bluetopia.init b/qaa/bluetopia/bluetopia/files/bluetopia.init new file mode 100644 index 000000000..ddcf7bf86 --- /dev/null +++ b/qaa/bluetopia/bluetopia/files/bluetopia.init @@ -0,0 +1,20 @@ +#!/bin/sh /etc/rc.common +# +# +#Copyright (c) 2016 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +START=15 + +boot() { +. /lib/functions.sh + art_partition=$(find_mtd_part 0:ART) + + export BTHOST_BD_ADDR=0x$(hexdump -n 6 -s 64 $art_partition | cut -d " " -f2-4 | sed 's/ //g'| head -n 1) + echo "$BTHOST_BD_ADDR" > /tmp/BTHOST_BD_ADDR + export BTHOST_XCAL_TRIM=0x$(hexdump -n 7 -s 64 $art_partition | cut -d " " -f5 | head -n 1) + echo "$BTHOST_XCAL_TRIM" > /tmp/BTHOST_XCAL_TRIM + +} diff --git a/qaa/bluetopia/bluetopia/files/bt_env.sh b/qaa/bluetopia/bluetopia/files/bt_env.sh new file mode 100644 index 000000000..17b9d95f0 --- /dev/null +++ b/qaa/bluetopia/bluetopia/files/bt_env.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# +# Copyright (c) 2020 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# + +[ -f /tmp/BTHOST_BD_ADDR ] && export BTHOST_BD_ADDR=$(cat /tmp/BTHOST_BD_ADDR) +[ -f /tmp/BTHOST_XCAL_TRIM ] && export BTHOST_XCAL_TRIM=$(cat /tmp/BTHOST_XCAL_TRIM) + diff --git a/qaa/bluetopia/bluetopia/patches/001-otp-support.patch b/qaa/bluetopia/bluetopia/patches/001-otp-support.patch new file mode 100644 index 000000000..4d20020d3 --- /dev/null +++ b/qaa/bluetopia/bluetopia/patches/001-otp-support.patch @@ -0,0 +1,50 @@ +diff --git a/bt_host/Build/Core/ss1btps/OTP.c b/bt_host/Build/Core/ss1btps/OTP.c +index a70d71a..751354a 100644 +--- a/bt_host/Build/Core/ss1btps/OTP.c ++++ b/bt_host/Build/Core/ss1btps/OTP.c +@@ -1694,7 +1694,7 @@ static char *ExtractNameFromObjectInfo(OTP_ObjectInfo_t *ObjectInfoPtr) + /* The Extended Name Bit is set, extract the pointer to the */ + /* Name from the end of the Name member in the Object */ + /* Information Structure. */ +- ret_val = (char *)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); ++ ret_val = (char *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); + } + else + { +@@ -1738,7 +1738,7 @@ static unsigned int ExtractNameLengthFromObjectInfo(OTP_ObjectInfo_t *ObjectInfo + /* The Extended Name Bit is set, extract the pointer to the */ + /* Name from the end of the Name member in the Object */ + /* Information Structure. */ +- TempCharPtr = (char *)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); ++ TempCharPtr = (char *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(ObjectInfoPtr->Name); + + /* Set the return value to the length of the name. */ + ret_val = BTPS_StringLength(TempCharPtr); +@@ -4798,7 +4798,7 @@ static void OTP_GetResponseEvent(unsigned int BluetoothStackID, OTP_Info_t *OTPI + /* Name member. If so free the memory that was */ + /* allocated for this response. */ + if(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].FieldMask & OTP_OBJECT_INFO_MASK_EXTENDED_NAME) +- BTPS_FreeMemory((void *)READ_OBJECT_INFO_EXTENDED_NAME(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].Name)); ++ BTPS_FreeMemory((void *)(uintptr_t)READ_OBJECT_INFO_EXTENDED_NAME(EventData->Event_Data.OTP_Get_Directory_Response_Data->DirInfo.ObjectInfo[TempIndex].Name)); + } + } + } +diff --git a/bt_host/Build/Linux/include/BaseTypes.h b/bt_host/Build/Linux/include/BaseTypes.h +index e04173a..cef6b84 100644 +--- a/bt_host/Build/Linux/include/BaseTypes.h ++++ b/bt_host/Build/Linux/include/BaseTypes.h +@@ -218,10 +218,10 @@ typedef __PACKED_STRUCT_BEGIN__ struct _tagNonAlignedSQWord_t /* Unaligned Sign + /* format of the Native Host's processor. */ + #define ASSIGN_HOST_DWORD_TO_LITTLE_ENDIAN_UNALIGNED_DWORD(_x, _y) \ + { \ +- ((Byte_t *)(_x))[0] = ((Byte_t)(((DWord_t)(_y)) & 0xFF)); \ +- ((Byte_t *)(_x))[1] = ((Byte_t)((((DWord_t)(_y)) >> 8) & 0xFF)); \ +- ((Byte_t *)(_x))[2] = ((Byte_t)((((DWord_t)(_y)) >> 16) & 0xFF)); \ +- ((Byte_t *)(_x))[3] = ((Byte_t)((((DWord_t)(_y)) >> 24) & 0xFF)); \ ++ ((Byte_t *)(_x))[0] = ((Byte_t)(((DWord_t)(uintptr_t)(_y)) & 0xFF)); \ ++ ((Byte_t *)(_x))[1] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 8) & 0xFF)); \ ++ ((Byte_t *)(_x))[2] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 16) & 0xFF)); \ ++ ((Byte_t *)(_x))[3] = ((Byte_t)((((DWord_t)(uintptr_t)(_y)) >> 24) & 0xFF)); \ + } + + /* The following is a utility MACRO that exists to Assign a */ diff --git a/qaa/btdaemon/btdaemon/Config.in b/qaa/btdaemon/btdaemon/Config.in new file mode 100644 index 000000000..f65629a71 --- /dev/null +++ b/qaa/btdaemon/btdaemon/Config.in @@ -0,0 +1,8 @@ +config FEATURE_QCA_IOT_IPQ50XX_SUPPORT + bool "Enables btdaemon package for ipq50xx" + depends on TARGET_ipq_ipq50xx || TARGET_ipq_ipq50xx_64 + default no + select PACKAGE_btdaemon + help + Enables btdaemon for IPQ50xx Platform + diff --git a/qaa/btdaemon/btdaemon/Makefile b/qaa/btdaemon/btdaemon/Makefile new file mode 100644 index 000000000..532fe0241 --- /dev/null +++ b/qaa/btdaemon/btdaemon/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/package.mk + +PKG_NAME:=btdaemon +PKG_VERSION:=1.0 +PKG_RELEASE:=1 + +LOCAL_SRC:=$(TOPDIR)/qca/src/btdaemon + +define Package/$(PKG_NAME) + SECTION:=btdaemon + CATEGORY:=btdaemon + TITLE:=Bluetooth Daemon Library to transport Packets from FTM Application to Future Platforms. + DEPENDS:=@TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64 +qca-diag +endef + +define Package/$(PKG_NAME)/description + Bluetooth Daemon Application to transport HCI Packets +endef + +TARGET_CFLAGS += \ + -DIPQ_IPQ50XX_SUPPORT \ + -DDEBUG \ + -DBTD_DEBUG \ + -I$(STAGING_DIR)/usr/include \ + -I$(STAGING_DIR)/usr/include/qca-diag \ + -Wall \ + -Werror + +define Package/$(PKG_NAME)/config + source "$(SOURCE)/Config.in" +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + cp $(LOCAL_SRC)/* $(PKG_BUILD_DIR) + $(Build/Patch) +endef + +define Build/InstallDev + $(INSTALL_DIR) $(STAGING_DIR)/usr/include/btdaemon + $(CP) $(PKG_BUILD_DIR)/btdaemon.h $(STAGING_DIR)/usr/include/btdaemon + $(CP) $(PKG_BUILD_DIR)/libbtdaemon.so $(STAGING_DIR)/usr/lib +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/libbtdaemon.so $(1)/usr/lib +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/qaa/firmware/nss-firmware/Makefile b/qaa/firmware/nss-firmware/Makefile deleted file mode 100644 index 6ea4a57c0..000000000 --- a/qaa/firmware/nss-firmware/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright (C) 2021 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=nss-firmware -PKG_SOURCE_DATE:=2021-03-12 -PKG_SOURCE_VERSION:=73f378d6be21a9c20a69b77000dbb54a537006a9 -PKG_MIRROR_HASH:=0c21afe29002754edf2983bc9e8543dddd722e75bd12e961e300e99a310d1f62 -PKG_RELEASE:=$(AUTORELEASE) - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/quic/qca-sdk-nss-fw.git - -PKG_LICENSE_FILES:=LICENSE.md - -PKG_MAINTAINER:=Robert Marko - -include $(INCLUDE_DIR)/package.mk - -VERSION_PATH=$(PKG_BUILD_DIR)/QCA_Networking_2020.SPF_11.3/CS - -define Package/nss-firmware-default - SECTION:=firmware - CATEGORY:=Firmware - URL:=$(PKG_SOURCE_URL) - DEPENDS:=@(TARGET_ipq807x||TARGET_ipq60xx) -endef - -define Package/nss-firmware-ipq6018 -$(Package/nss-firmware-default) - TITLE:=NSS firmware for IPQ6018 devices - NSS_ARCHIVE:=$(VERSION_PATH)/IPQ6018.ATH.11.3/BIN-NSS.CP.11.3-9-R.tar.bz2 -endef - -define Package/nss-firmware-ipq8074 -$(Package/nss-firmware-default) - TITLE:=NSS firmware for IPQ8074 devices - NSS_ARCHIVE:=$(VERSION_PATH)/IPQ8074.ATH.11.3/BIN-NSS.HK.11.3-9-R.tar.bz2 -endef - -define Build/Compile - -endef - -define Package/nss-firmware-ipq6018/install - $(TAR) -C $(PKG_BUILD_DIR) -xf $(NSS_ARCHIVE) - $(INSTALL_DIR) $(1)/lib/firmware/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/BIN-NSS.CP.11.3-9-R/retail_router0.bin \ - $(1)/lib/firmware/qca-nss0-retail.bin -endef - -define Package/nss-firmware-ipq8074/install - $(TAR) -C $(PKG_BUILD_DIR) -xf $(NSS_ARCHIVE) - $(INSTALL_DIR) $(1)/lib/firmware/ - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/BIN-NSS.HK.11.3-9-R/retail_router0.bin \ - $(1)/lib/firmware/qca-nss0-retail.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/BIN-NSS.HK.11.3-9-R/retail_router1.bin \ - $(1)/lib/firmware/qca-nss1-retail.bin -endef - -$(eval $(call BuildPackage,nss-firmware-ipq6018)) -$(eval $(call BuildPackage,nss-firmware-ipq8074)) diff --git a/qaa/hyfi/hyfi/Makefile b/qaa/hyfi/hyfi/Makefile new file mode 100644 index 000000000..14fa7514d --- /dev/null +++ b/qaa/hyfi/hyfi/Makefile @@ -0,0 +1,132 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/package.mk + +PKG_RELEASE:=1 + +define Package/hyfi/Default + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + DEPENDS:=+kmod-qca-hyfi-bridge +qca-libhyfi-bridge \ + +qca-hyctl +libwpa2 \ + +libhyficommon +libstorage +libieee1905 +SUPPORT_WIFISON_EXT_LIB:qca-wifison-ext-lib + MAINTAINER:=Qualcomm Atheros +endef + +define Package/hyfi + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi components for build + DEPENDS+=+qca-hyd +qca-wsplcd + MAINTAINER:=Qualcomm Atheros +endef + +define Package/hyfi/description + Meta package which selects all Hy-Fi components require for build +endef + +define Package/hyfi/install + @true +endef + +define Package/hyfi-plc + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi and PLC components for build + DEPENDS+=+qca-hyd-plc +qca-wsplcd +qca-vhyfid +qca-plc-serv +endef + +define Package/hyfi-plc/description + Meta package which selects all Hy-Fi and PLC components require for build +endef + +define Package/hyfi-plc/install + @true +endef + +define Package/hyfi-son + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi components for build (with SON Features) + DEPENDS+=+qca-hyd-son +qca-wsplcd-son +endef + +define Package/hyfi-son/description + Meta package which selects all Hy-Fi SON components require for build +endef + +define Package/hyfi-son/install + @true +endef + +define Package/hyfi-map + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi components for build (with MAP Features) + DEPENDS+=+qca-wsplcd-map +endef + +define Package/hyfi-map/description + Meta package which selects all Hy-Fi MAP components require for build +endef + +define Package/hyfi-map/install + @true +endef + +define Package/hyfi-sonplc + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi and PLC components for build (with SON Features) + DEPENDS+=+qca-hyd-sonplc +qca-wsplcd-son +qca-vhyfid +qca-plc-serv +endef + +define Package/hyfi-sonplc/description + Meta package which selects all Hy-Fi SON and PLC components require for build +endef + +define Package/hyfi-sonplc/install + @true +endef + +# =============== Engg +# +define Package/hyfi-mesh + $(call Package/hyfi/Default) + TITLE:=Hy-Fi - selects all Hy-Fi components for build + DEPENDS+=+qca-wsplcd-map +qca-hyd-son +qca-wsplcd-son +endef + +define Package/hyfi-mesh/description + Meta package which selects all Hy-Fi components require for build +endef + +define Package/hyfi-mesh/install + @true +endef + +PKG_NAME:=hyfi-ui +define Package/$(PKG_NAME) + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + TITLE:=Hy-Fi - selects all Hy-Fi web interfaces + DEPENDS:=+luci-hyfi +luci-hyfi-advanced +luci-wsplc +luci-wsplc-advanced + MAINTAINER:=Qualcomm Atheros +endef + +define Package/$(PKG_NAME)/description + Meta package which selects all Hy-Fi web interfaces +endef + +define Package/$(PKG_NAME)/install + @true +endef + +define Build/Compile +endef + +$(eval $(call BuildPackage,hyfi)) +$(eval $(call BuildPackage,hyfi-plc)) +$(eval $(call BuildPackage,hyfi-ui)) +$(eval $(call BuildPackage,hyfi-son)) +$(eval $(call BuildPackage,hyfi-map)) +$(eval $(call BuildPackage,hyfi-sonplc)) +$(eval $(call BuildPackage,hyfi-mesh)) diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-hyctl/Makefile b/qaa/hyfi/qca-hyfi-bridging/qca-hyctl/Makefile new file mode 100644 index 000000000..6f772376e --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-hyctl/Makefile @@ -0,0 +1,64 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-hyctl +PKG_VERSION:=g26508a7 + +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_REV:=26508a7 +PKG_VERSION:=g26508a7 +endif +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +TARGET_CFLAGS += -fpie +TARGET_LDFLAGS += -pie + +QCAHYCTL_MAKE_OPTS:= \ + CROSS=$(TARGET_CROSS) \ + GWLIB=$(STAGING_DIR)/usr/lib \ + GWINCLUDE=$(STAGING_DIR)/usr/include/qca \ + HYFIDIR=$(STAGING_DIR)/usr/include/hyfibr \ + HYFIMCDIR=$(STAGING_DIR)/usr/include/hyfibr \ + HYFIBRLIBDIR=$(STAGING_DIR)/usr/include/libhyfibr \ + EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ + EXTRA_LDFLAGS="-Wl,--gc-sections $(TARGET_LDFLAGS)" \ + INSTALL_ROOT=$(PKG_BUILD_DIR)/install + +QCAHYCTL_DEPENDS+=+ENABLE_SON_MEMORY_DEBUG:qca-son-mem-debug + +ifeq ($(CONFIG_ENABLE_SON_MEMORY_DEBUG),y) + QCAHYCTL_MAKE_OPTS+=ENABLE_SON_MEMORY_DEBUG=y + QCAHYCTL_MAKE_OPTS+=SONMEMDEBUGINCLUDE=$(STAGING_DIR)/usr/include/son-mem-dbg +endif + +define Package/qca-hyctl + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros, Inc. + DEPENDS:=+kmod-qca-hyfi-bridge +qca-libhyfi-bridge $(QCAHYCTL_DEPENDS) + TITLE:=Hy-Fi Control and Configuration command line utility + SUBMENU:=Hy-Fi features +endef + +define Package/qca-hyctl/description + This package installs the Hy-Fi control command line utility +endef + +define Build/Compile + mkdir -p $(PKG_BUILD_DIR)/install/lib + mkdir -p $(PKG_BUILD_DIR)/install/include + $(MAKE) -C $(PKG_BUILD_DIR) $(strip $(QCAHYCTL_MAKE_OPTS)) all +endef + +define Package/qca-hyctl/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/hyctl $(1)/usr/sbin +endef + +$(eval $(call BuildPackage,qca-hyctl)) diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/Makefile b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/Makefile new file mode 100644 index 000000000..bd7de3c14 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/Makefile @@ -0,0 +1,88 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-hyfi-bridge +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_VERSION:=g3cfe593 +endif + +PKG_BUILD_DEPENDS += qca-ssdk +include $(INCLUDE_DIR)/package.mk + +QCAHYFI_BRIDGE_MAKE_OPTS:= \ + CROSS_COMPILE=$(KERNEL_CROSS) \ + ARCH=$(LINUX_KARCH) \ + HYBRID_MC_MLD=1 \ + KERNELPATH=$(LINUX_SRC_DIR) \ + KBUILDPATH=$(LINUX_DIR) \ + KERNELRELEASE=$(LINUX_RELEASE) \ + MDIR=$(PKG_BUILD_DIR) \ + STAGING_DIR=$(STAGING_DIR) + +ifeq ($(CONFIG_PACKAGE_qca-plc-serv),y) + QCAHYFI_BRIDGE_MAKE_OPTS += PLC_SUPPORT_NF=1 +endif + +ifeq ($(CONFIG_HYFI_DISABLE_SSDK_SUPPORT),y) + QCAHYFI_BRIDGE_MAKE_OPTS+= DISABLE_SSDK_SUPPORT=1 +endif + +ifneq ($(CONFIG_PACKAGE_kmod-emesh-sp),) + QCAHYFI_BRIDGE_MAKE_OPTS += HYFI_BRIDGE_EMESH_ENABLE=1 +endif + +QCAHYBRID_MODULE_LIST:=$(PKG_BUILD_DIR)/hyfi-bridging.ko + +define KernelPackage/qca-hyfi-bridge + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros, Inc. + TITLE:=Hy-Fi Bridging Netfilter Module + KCONFIG:= \ + CONFIG_NETFILTER=y \ + CONFIG_BRIDGE_NETFILTER=y + DEPENDS:=+LINUX_5_4:kmod-qca-ssdk-nohnat +PACKAGE_kmod-emesh-sp:kmod-emesh-sp + FILES:= $(strip $(QCAHYBRID_MODULE_LIST)) + AUTOLOAD:=$(call AutoLoad,51,hyfi-bridging) + SUBMENU:=Hy-Fi features +endef + +define KernelPackage/qca-hyfi-bridge/description + This package installs the Hy-Fi bridging Netfilter Module +endef + +define KernelPackage/qca-hyfi-bridge/config +config HYFI_DISABLE_SSDK_SUPPORT + bool "Disable SSDK support for IPQ platform" + default n + help + This option disable SSDK support +endef + +QCA_HYFI_BRIDGE_HEADERS= \ + $(PKG_BUILD_DIR)/hyfi-multicast/mc_api.h \ + $(PKG_BUILD_DIR)/hyfi-netfilter/hyfi_ecm.h \ + $(PKG_BUILD_DIR)/hyfi-netfilter/hyfi_api.h \ + $(PKG_BUILD_DIR)/hyfi-netfilter/hyfi_hash.h + +ifneq ($(CONFIG_PACKAGE_kmod-qca-hyfi-bridge),) +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include/hyfibr + $(foreach header_file,$(QCA_HYFI_BRIDGE_HEADERS), $(CP) $(header_file) $(1)/usr/include/hyfibr;) +endef +endif + +define Build/Compile + $(MAKE) -C $(LINUX_DIR) M=$(PKG_BUILD_DIR) $(strip $(QCAHYFI_BRIDGE_MAKE_OPTS)) +endef + +define KernelPackage/qca-hyfi-bridge/install + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/hyfi-bridging.init $(1)/etc/init.d/hyfi-bridging +endef + +$(eval $(call KernelPackage,qca-hyfi-bridge)) diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/files/hyfi-bridging.init b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/files/hyfi-bridging.init new file mode 100644 index 000000000..5eccbda2c --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-bridge/files/hyfi-bridging.init @@ -0,0 +1,92 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2016 Qualcomm Atheros, Inc. +# +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. + +START=54 +ECM_SYSFS_FILE="/sys/kernel/debug/ecm/ecm_classifier_hyfi/enabled" + +ieee1905managed_bridge= +ieee1905managed_bridge2= + +. /lib/functions/hyfi-debug.sh +. /lib/functions/hyfi-iface.sh +. /lib/functions/hyfi-network.sh +config_load 'repacd' +config_get_bool ezmesh repacd 'Ezmesh' '0' + if [ "$ezmesh" -eq 1 ]; then + MAP='ezmesh' + else + MAP='hyd' + fi + +start() { + config_load $MAP + config_get_bool enabled config 'Enable' '0' + local hyfi_bridging_rcd_enabled=`ls /etc/rc.d/S${START}hyfi-bridging 2> /dev/null` + + [ "$enabled" -gt 0 -a -n "$hyfi_bridging_rcd_enabled" ] || { + return 1 + } + + # Enable hyfi-netfilter + if [ -f /proc/sys/net/bridge/bridge-nf-call-custom ]; then + sysctl -w net.bridge.bridge-nf-call-custom=1 + fi + + # Get the IEEE1905.1 managed bridge name and attach + hyfi_get_ieee1905_managed_iface ieee1905managed_bridge ieee1905managed_bridge2 + + # Bail out from starting hyd if attach fails. + if ! hyctl attach br-$ieee1905managed_bridge; then + stop + return 1 + fi + + if [ -n "$ieee1905managed_bridge2" ];then + if ! hyctl attach br-$ieee1905managed_bridge2; then + stop + return 1 + fi + fi + + # Get Secondary bridge Names and attach + hyfi_get_ieee1905_brguest_map ieee1905_brguest_map ieee1905_brbh_map + if [ -n "$ieee1905_brguest_map" ];then + for br_name in $ieee1905_brguest_map; do + ifnames=`uci get "network.$br_name.ifname"` + if [ -n "$ifnames" -a "$ifnames" != " " ]; then + if ! hyctl attach br-$br_name; then + stop + return 1 + fi + fi + done + fi +} + +stop() { + config_load $MAP + + # Disable hyfi-netfilter + if [ -f /proc/sys/net/bridge/bridge-nf-call-custom ]; then + sysctl -w net.bridge.bridge-nf-call-custom=0 + fi + + # Get the IEEE1905.1 managed bridge name and detach + hyfi_get_ieee1905_managed_iface ieee1905managed_bridge ieee1905managed_bridge2 + hyctl detach br-$ieee1905managed_bridge + + if [ -n "$ieee1905managed_bridge2" ]; then + hyctl detach br-$ieee1905managed_bridge2 + fi + + # Get Secondary bridge Names and detach + hyfi_get_ieee1905_brguest_map ieee1905_brguest_map ieee1905_brbh_map + if [ -n "$ieee1905_brguest_map" ];then + for br_name in $ieee1905_brguest_map; do + hyctl detach br-$br_name + done + fi +} diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-iptv-helper/Makefile b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-iptv-helper/Makefile new file mode 100644 index 000000000..28f4e8143 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-iptv-helper/Makefile @@ -0,0 +1,61 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-hyfi-iptv-helper +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_REV:=98e294d +PKG_VERSION:=g98e294d +endif +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +WIFI_U:=PACKAGE_kmod-qca-wifi-unified-profile +WIFI_C:=PACKAGE_kmod-qca-wifi-custc-profile +WIFI_A:=PACKAGE_kmod-qca-wifi-akronite-perf +WIFI_D:=PACKAGE_kmod-qca-wifi-dakota-perf +WIFI_MIPS:=PACKAGE_kmod-qca-wifi-perf +WIFI_MIPS_UNIFIED:=PACKAGE_kmod-qca-wifi-unified-perf +WIFI_10_2_MIPS:=PACKAGE_kmod-qca-wifi-perf +WIFI_10_2_ARM:=PACKAGE_kmod-qca-wifi-akronite-perf +WIFI_L:=PACKAGE_kmod-qca-wifi-lowmem-profile +WIFI_16M:=PACKAGE_kmod-qca-wifi-flash_16mb-profile +WIFI_PKGS:=$(WIFI_U)||$(WIFI_C)||$(WIFI_A)||$(WIFI_D)||$(WIFI_MIPS)||$(WIFI_MIPS_UNIFIED)||$(WIFI_10_2_MIPS)||$(WIFI_10_2_ARM)||$(WIFI_L)||$(WIFI_16M) +PKG_BUILD_DEPENDS:=$(WIFI_U):qca-wifi $(WIFI_C):qca-wifi $(WIFI_A):qca-wifi $(WIFI_D):qca-wifi $(WIFI_MIPS):qca-wifi \ + $(WIFI_MIPS_UNIFIED):qca-wifi $(WIFI_10_2_MIPS):qca-wifi $(WIFI_10_2_ARM):qca-wifi $(WIFI_L):qca-wifi $(WIFI_16M):qca-wifi + +QCAHYFI_IPTV_HELPER_MAKE_OPTS:= \ + CROSS_COMPILE=$(KERNEL_CROSS) \ + ARCH=$(LINUX_KARCH) \ + KERNELPATH=$(LINUX_SRC_DIR) \ + KBUILDPATH=$(LINUX_DIR) \ + KERNELRELEASE=$(LINUX_RELEASE) + +include $(INCLUDE_DIR)/package.mk + +QCAHYBRID_MODULE_LIST:=$(PKG_BUILD_DIR)/hyfi-iptv-helper.ko + +define KernelPackage/qca-hyfi-iptv-helper + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros, Inc. + TITLE:=IPTV on Wireless Interface Netfilter Module + DEPENDS:=@$(WIFI_PKGS) +kmod-bridge + KCONFIG:= \ + CONFIG_NETFILTER=y \ + CONFIG_BRIDGE_NETFILTER=y + FILES:= $(strip $(QCAHYBRID_MODULE_LIST)) + SUBMENU:=Hy-Fi features +endef + +define KernelPackage/qca-hyfi-iptv-helper/description + This package installs the QCA Hy-Fi Netfilter for IPTV implementations on Wireless interface +endef + +define Build/Compile + $(MAKE) -C $(LINUX_DIR) M=$(PKG_BUILD_DIR) $(strip $(QCAHYFI_IPTV_HELPER_MAKE_OPTS)) +endef + +$(eval $(call KernelPackage,qca-hyfi-iptv-helper)) diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-qdisc/Makefile b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-qdisc/Makefile new file mode 100644 index 000000000..122a66781 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-hyfi-qdisc/Makefile @@ -0,0 +1,43 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-hyfi-qdisc +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_VERSION:=g846e528 +endif + +QCAHYFI_QDISC_MAKE_OPTS:= \ + CROSS_COMPILE=$(KERNEL_CROSS) \ + ARCH=$(LINUX_KARCH) \ + KERNELPATH=$(LINUX_DIR) \ + KERNELRELEASE=$(LINUX_RELEASE) + +include $(INCLUDE_DIR)/package.mk + +QCAHYBRID_MODULE_LIST:=$(PKG_BUILD_DIR)/hyfi_qdisc.ko + +define KernelPackage/qca-hyfi-qdisc + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + TITLE:=Hy-Fi Queue Discipline Module + DEPENDS:= + KCONFIG:=CONFIG_NET_SCHED=y + FILES:= $(strip $(QCAHYBRID_MODULE_LIST)) + AUTOLOAD:=$(call AutoLoad,40,hyfi_qdisc) + SUBMENU:=Hy-Fi features +endef + +define KernelPackage/qca-hyfi-qdisc/description + This package installs the QCA Hy-Fi QDISC for raising priority of IEEE 1905.1 and HomePlugAV MME packets +endef + +define Build/Compile + $(MAKE) -C $(LINUX_DIR) M=$(PKG_BUILD_DIR) $(strip $(QCAHYFI_QDISC_MAKE_OPTS)) +endef + +$(eval $(call KernelPackage,qca-hyfi-qdisc)) diff --git a/qaa/hyfi/qca-hyfi-bridging/qca-libhyfi-bridge/Makefile b/qaa/hyfi/qca-hyfi-bridging/qca-libhyfi-bridge/Makefile new file mode 100644 index 000000000..4d06e8b25 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-bridging/qca-libhyfi-bridge/Makefile @@ -0,0 +1,67 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-libhyfi-bridge +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_REV:=c5b6eb6 +PKG_VERSION:=gc5b6eb6 +endif +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +QCALIBHYFI_BRIDGE_MAKE_OPTS:= \ + CROSS=$(TARGET_CROSS) \ + GWLIB=$(STAGING_DIR)/usr/lib \ + GWINCLUDE=$(STAGING_DIR)/usr/include/qca \ + EXTRA_CFLAGS="$(TARGET_CFLAGS)" \ + EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \ + HYFIDIR=$(STAGING_DIR)/usr/include/hyfibr \ + HYFIMCDIR=$(STAGING_DIR)/usr/include/hyfibr + +QCALIBHYFI_BRIDGE_DEPENDS+=+ENABLE_SON_MEMORY_DEBUG:qca-son-mem-debug + +ifeq ($(CONFIG_ENABLE_SON_MEMORY_DEBUG),y) +QCALIBHYFI_BRIDGE_MAKE_OPTS+=ENABLE_SON_MEMORY_DEBUG=y +QCALIBHYFI_BRIDGE_MAKE_OPTS+=SONMEMDEBUGINCLUDE=$(STAGING_DIR)/usr/include/son-mem-dbg +endif + +define Package/qca-libhyfi-bridge + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros, Inc. + DEPENDS:=+kmod-qca-hyfi-bridge $(QCALIBHYFI_BRIDGE_DEPENDS) + TITLE:=Hy-Fi Bridging API Library + SUBMENU:=Hy-Fi features +endef + +define Package/qca-libhyfi-bridge/description + This package installs the Hy-Fi Bridging API Library +endef + +INSTALL_LIBS:= libhyfi-bridge +INSTALL_HEADERS=hyfi-bridge.h + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DIR) $(1)/usr/include/libhyfibr + $(if $(INSTALL_LIBS),$(CP) $(foreach lib,$(INSTALL_LIBS),$(PKG_BUILD_DIR)/install/lib/$(lib).so) $(1)/usr/lib) + $(if $(INSTALL_HEADERS),$(CP) $(foreach header,$(INSTALL_HEADERS),$(PKG_BUILD_DIR)/install/include/$(header)) $(1)/usr/include/libhyfibr) +endef + +define Build/Compile + mkdir -p $(PKG_BUILD_DIR)/install/lib + mkdir -p $(PKG_BUILD_DIR)/install/include + $(MAKE) -C $(PKG_BUILD_DIR) $(strip $(QCALIBHYFI_BRIDGE_MAKE_OPTS)) +endef + +define Package/qca-libhyfi-bridge/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/install/lib/libhyfi-bridge.so $(1)/usr/lib +endef + +$(eval $(call BuildPackage,qca-libhyfi-bridge)) diff --git a/qaa/hyfi/qca-hyfi-luci/Makefile b/qaa/hyfi/qca-hyfi-luci/Makefile new file mode 100644 index 000000000..67416af52 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/Makefile @@ -0,0 +1,58 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=hyfi-ui +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-hyfi/Default + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + SUBMENU:=Hy-Fi features +endef + +define Package/luci-hyfi + $(call Package/luci-hyfi/Default) + DEPENDS:=+luci +luci-mod-admin-full + TITLE:=Hy-Fi Web UI +endef + +define Package/luci-hyfi/description + Luci WebUI for Hy-Fi +endef + +define Package/luci-hyfi-advanced + $(call Package/luci-hyfi/Default) + DEPENDS:=+luci +luci-mod-admin-full +luci-hyfi + TITLE:=Hy-Fi Web UI - Advanced +endef + +define Package/luci-hyfi-advanced/description + Luci WebUI for Hy-Fi - Advanced +endef + +define Build/Compile + true +endef + +define Package/luci-hyfi/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/hyfi + $(CP) files/luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua /$(1)/usr/lib/lua/luci/model/cbi/hyfi/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/hyfi + $(CP) files/luci-hyfi/luasrc/view/hyfi/dview_js.htm /$(1)/usr/lib/lua/luci/view/hyfi/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(CP) files/luci-hyfi/luasrc/controller/hyfi.lua /$(1)/usr/lib/lua/luci/controller/ +endef + +define Package/luci-hyfi-advanced/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/hyfi + $(CP) files/luci-hyfi/luasrc/model/cbi/hyfi/advanced.lua /$(1)/usr/lib/lua/luci/model/cbi/hyfi/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/hyfi + $(CP) files/luci-hyfi/luasrc/view/hyfi/btn_adv.htm /$(1)/usr/lib/lua/luci/view/hyfi/ +endef + +$(eval $(call BuildPackage,luci-hyfi)) +$(eval $(call BuildPackage,luci-hyfi-advanced)) + diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/Makefile b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/Makefile new file mode 100644 index 000000000..f7fac7740 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/controller/hyfi.lua b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/controller/hyfi.lua new file mode 100644 index 000000000..c1fab9722 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/controller/hyfi.lua @@ -0,0 +1,23 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright (c) 2013 Qualcomm Atheros, Inc. + +All Rights Reserved. +Qualcomm Atheros Confidential and Proprietary. + +]]-- + +module("luci.controller.hyfi", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/hyd") then + return + end + + local page + + page = entry({"admin", "network", "hyfi"}, cbi("hyfi/hyfi"), _("HyFi Network")) + page.dependent = true + +end diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/advanced.lua b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/advanced.lua new file mode 100644 index 000000000..34d6bec3a --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/advanced.lua @@ -0,0 +1,711 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright (c) 2013, 2017-2019 Qualcomm Technologies, Inc. +All Rights Reserved. +Confidential and Proprietary - Qualcomm Technologies, Inc. + +2013 Qualcomm Atheros, Inc. +All Rights Reserved. +Qualcomm Atheros Confidential and Proprietary. + +]]-- + +local m, s = ... +------------------------------------------------------------------------------------------------ +--Advanced Hy-Fi +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "hy", translate("Advanced Hy-Fi Settings")) +s.anonymous = true + +li = s:option(ListValue, "LoadBalancingSeamless", translate("Load-balancing seamless path switching")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" + +vl = s:option(Value, "MaxLBReordTimeout", translate("Max LB reordering timeout")) +vl.datatype = "uinteger" + +li = s:option(ListValue, "StrictIEEE1905Mode", translate("Strict IEEE 1905.1 Mode")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" +function li.cfgvalue(self, section) + return m.uci:get(m.config, "IEEE1905Settings", self.option) +end +function li.write(self, section, value) + m.uci:set(m.config, "IEEE1905Settings", self.option, value) +end + +li = s:option(ListValue, "GenerateLLDP", translate("Generate LLDP packets")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" +function li.cfgvalue(self, section) + return m.uci:get(m.config, "IEEE1905Settings", self.option) +end +function li.write(self, section, value) + m.uci:set(m.config, "IEEE1905Settings", self.option, value) +end + +li = s:option(ListValue, "AvoidDupRenew", translate("Avoid Duplicate Renew packets Upstream")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "0" +function li.cfgvalue(self, section) + return m.uci:get(m.config, "IEEE1905Settings", self.option) +end +function li.write(self, section, value) + m.uci:set(m.config, "IEEE1905Settings", self.option, value) +end + +li = s:option(ListValue, "AvoidDupTopologyNotification", translate("Avoid Duplicate Topology Notification packets Upstream")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "0" +function li.cfgvalue(self, section) + return m.uci:get(m.config, "IEEE1905Settings", self.option) +end +function li.write(self, section, value) + m.uci:set(m.config, "IEEE1905Settings", self.option, value) +end + +li = s:option(ListValue, "V1Compat", translate("Hy-Fi 1.0 Compatibility Mode")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" +function li.cfgvalue(self, section) + return m.uci:get(m.config, "HCPSettings", self.option) +end +function li.write(self, section, value) + m.uci:set(m.config, "HCPSettings", self.option, value) +end + +li = s:option(ListValue, "ConstrainTCPMedium", translate("Constrain TCP-ACK streams to the same medium as their primary TCP-DATA stream")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" + +vl = s:option(Value, "HActiveMaxAge", translate("Maximum age of a H-Active entry before it will be aged out (ms)")) +vl.datatype = "uinteger" + +li = s:option(ListValue, "ForwardingMode", translate("Hy-Fi Netfilter forwarding mode")) +li:value("APS", translate("APS")) +li:value("SINGLE", translate("No Hybrid Tables")) +li:value("MCAST", translate("Multicast Only")) +li.default = "APS" + +vl = s:option(Value, "ExtraQueryResponseTime", translate("IGMP Extra Query response time")) +vl.datatype = "uinteger" +------------------------------------------------------------------------------------------------ +--Auto Configuration +------------------------------------------------------------------------------------------------ +if nixio.fs.access("/etc/init.d/acd") then +function acdValue(section, option, title) + vl = section:option(Value, option, translate(title)) + vl.datatype = "uinteger" + vl.cfgvalue = function (self, section) + return m.uci:get("acd", "config", self.option) + end + vl.write = function (self, section, value) + m.uci:set("acd", "config", self.option, value) + end + return vl +end + +function acdEnableList(section, option, title) + li = section:option(ListValue, option, translate(title)) + li:value("1", translate("Enable")) + li:value("0", translate("Disable")) + li.default = "1" + li.cfgvalue = function (self, section) + return m.uci:get("acd", "config", self.option) + end + li.write = function (self, section, value) + m.uci:set("acd", "config", self.option, value) + end + return li +end + +s = m:section(TypedSection, "hy", translate("Advanced Auto-Configuration Settings")) +s.anonymous = true + +acdValue(s, "HCSecsBetweenDHCPRequestPackets", "Interval Between DHCP Discovery Messages (sec)") +acdValue(s, "HRSecsBetweenDHCPRequestPackets", "HR Number of Seconds Between DHCP Retries") +acdValue(s, "HRSecsBetweenStateContinuityCheck", "HR Maintenance Interval Between DHCP Discovery Messages (sec)") +acdValue(s, "HRMaxTriesWaitingForDHCPResponse", "HR Max Number of DHCP Retries") +acdValue(s, "HCMaxTxTriesBeforeGettingIPAddr", "Re-Check IP Address on Every N Retries") +acdValue(s, "SecsBetweenChecksForCableConnection", "Link Status Check Interval (sec)") +acdValue(s, "AcdDebugLevel", "Debug Level") +acdEnableList(s, "DisableHCMode", "Hybrid Client Always in Range Extender Mode") +acdEnableList(s, "DisableWDSSTAInHREMode", "Disable local WDS station in Range Extender Mode") +end + +------------------------------------------------------------------------------------------------ +--General WLAN Path Characterization Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathChWlan", translate("General WLAN Path Characterization Setting")) +s.anonymous = true +vl = s:option(Value, "UseWHCAlgorithm", translate("Use the WHC algorithm to calculate link capacity")) +vl.datatype = "uinteger" +vl = s:option(Value, "NumUpdatesUntilStatsValid", translate("Number of capacity updates to receive after link change before considered valid")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--WLAN 5G Path Characterization Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathChWlan", translate("WLAN 5G Path Characterization Setting")) +s.anonymous = true +vl = s:option(Value, "UpdatedStatsInterval_W5", translate("UpdatedStatsInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "StatsAgedOutInterval_W5", translate("StatsAgedOutInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilization_W5", translate("MaxMediumUtilization")) +vl.datatype = "uinteger" +vl = s:option(Value, "MediumChangeThreshold_W5", translate("MediumChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "LinkChangeThreshold_W5", translate("LinkChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilizationForLC_W5", translate("MaxMediumUtilizationForLC")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedTCPThroughput_W5", translate("CPULimitedTCPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedUDPThroughput_W5", translate("CPULimitedUDPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "PHYRateThresholdForMU_W5", translate("PHYRateThresholdForMU")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketInterval_W5", translate("ProbePacketInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketSize_W5", translate("ProbePacketSize")) +vl.datatype = "uinteger" +vl = s:option(Value, "EnableProbe_W5", translate("EnableProbe")) +vl.datatype = "uinteger" +vl = s:option(Value, "AssocDetectionDelay_W5", translate("AssocDetectionDelay")) +vl.datatype = "uinteger" +vl = s:option(Value, "ScalingFactorHighRate_W5", translate("Rate above which ScalingFactorHigh is used")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--WLAN 6G Path Characterization Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathChWlan", translate("WLAN 6G Path Characterization Setting")) +s.anonymous = true +vl = s:option(Value, "UpdatedStatsInterval_W6", translate("UpdatedStatsInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "StatsAgedOutInterval_W6", translate("StatsAgedOutInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilization_W6", translate("MaxMediumUtilization")) +vl.datatype = "uinteger" +vl = s:option(Value, "MediumChangeThreshold_W6", translate("MediumChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "LinkChangeThreshold_W6", translate("LinkChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilizationForLC_W6", translate("MaxMediumUtilizationForLC")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedTCPThroughput_W6", translate("CPULimitedTCPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedUDPThroughput_W6", translate("CPULimitedUDPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "PHYRateThresholdForMU_W6", translate("PHYRateThresholdForMU")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketInterval_W6", translate("ProbePacketInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketSize_W6", translate("ProbePacketSize")) +vl.datatype = "uinteger" +vl = s:option(Value, "EnableProbe_W6", translate("EnableProbe")) +vl.datatype = "uinteger" +vl = s:option(Value, "AssocDetectionDelay_W6", translate("AssocDetectionDelay")) +vl.datatype = "uinteger" +vl = s:option(Value, "ScalingFactorHighRate_W6", translate("Rate above which ScalingFactorHigh is used")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--WLAN 2G Path Characterization Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathChWlan", translate("WLAN 2.4G Path Characterization Setting")) +s.anonymous = true +vl = s:option(Value, "UpdatedStatsInterval_W2", translate("UpdatedStatsInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "StatsAgedOutInterval_W2", translate("StatsAgedOutInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilization_W2", translate("MaxMediumUtilization")) +vl.datatype = "uinteger" +vl = s:option(Value, "MediumChangeThreshold_W2", translate("MediumChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "LinkChangeThreshold_W2", translate("LinkChangeThreshold")) +vl.datatype = "uinteger" +vl = s:option(Value, "MaxMediumUtilizationForLC_W2", translate("MaxMediumUtilizationForLC")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedTCPThroughput_W2", translate("CPULimitedTCPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "CPULimitedUDPThroughput_W2", translate("CPULimitedUDPThroughput")) +vl.datatype = "uinteger" +vl = s:option(Value, "PHYRateThresholdForMU_W2", translate("PHYRateThresholdForMU")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketInterval_W2", translate("ProbePacketInterval")) +vl.datatype = "uinteger" +vl = s:option(Value, "ProbePacketSize_W2", translate("ProbePacketSize")) +vl.datatype = "uinteger" +vl = s:option(Value, "EnableProbe_W2", translate("EnableProbe")) +vl.datatype = "uinteger" +vl = s:option(Value, "AssocDetectionDelay_W2", translate("AssocDetectionDelay")) +vl.datatype = "uinteger" +vl = s:option(Value, "ScalingFactorHighRate_W2", translate("Rate above which ScalingFactorHigh is used")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--PLC Path Characterization Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathChPlc", translate("PLC Path Characterization Setting")) +s.anonymous = true +vl = s:option(Value, "MaxMediumUtilization", translate("MaxMediumUtilization")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MediumChangeThreshold", translate("MediumChangeThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LinkChangeThreshold", translate("LinkChangeThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Value, "StatsAgedOutInterval", translate("StatsAgedOutInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UpdateStatsInterval", translate("UpdateStatsInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EntryExpirationInterval", translate("EntryExpirationInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MaxMediumUtilizationForLC", translate("MaxMediumUtilizationForLC")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LCThresholdForUnreachable", translate("LCThresholdForUnreachable")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LCThresholdForReachable", translate("LCThresholdForReachable")) +vl.datatype = "uinteger" + +vl = s:option(Value, "HostPLCInterfaceSpeed", translate("HostPLCInterfaceSpeed")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--Stream Estimation Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "HSPECEst", translate("Stream Estimation Setting")) +s.anonymous = true + +vl = s:option(Value, "UpdateHSPECInterval", translate("UpdateHSPECInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "NotificationThresholdLimit", translate("NotificationThresholdLimit")) +vl.datatype = "uinteger" + +vl = s:option(Value, "NotificationThresholdPercentage", translate("NotificationThresholdPercentage")) +vl.datatype = "uinteger" + +vl = s:option(Value, "AlphaNumerator", translate("AlphaNumerator")) +vl.datatype = "uinteger" + +vl = s:option(Value, "AlphaDenominator", translate("AlphaDenominator")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LocalFlowRateThreshold", translate("LocalFlowRateThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LocalFlowRatioThreshold", translate("LocalFlowRatioThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MaxHActiveEntries", translate("Maximum number of H-Active entries supported in user-space")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--Topology Discovery Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "Topology", translate("Topology Discovery Setting")) +s.anonymous = true + +vl = s:option(Value, "ND_UPDATE_INTERVAL", translate("ND_UPDATE_INTERVAL")) +vl.datatype = "uinteger" + +vl = s:option(Value, "BD_UPDATE_INTERVAL", translate("BD_UPDATE_INTERVAL")) +vl.datatype = "uinteger" + +vl = s:option(Value, "HOLDING_TIME", translate("HOLDING_TIME")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TIMER_LOW_BOUND", translate("TIMER_LOW_BOUND")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TIMER_UPPER_BOUND", translate("TIMER_UPPER_BOUND")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MSGID_DELTA", translate("MSGID_DELTA")) +vl.datatype = "uinteger" + +vl = s:option(Value, "HA_AGING_INTERVAL", translate("HA_AGING_INTERVAL")) +vl.datatype = "uinteger" + +vl = s:option(Value, "ENABLE_TD3", translate("ENABLE_TD3")) +vl.datatype = "uinteger" + +vl = s:option(Value, "ENABLE_BD_SPOOFING", translate("ENABLE_BD_SPOOFING")) +vl.datatype = "uinteger" + +vl = s:option(Value, "NOTIFICATION_THROTTLING_WINDOW", translate("NOTIFICATION_THROTTLING_WINDOW")) +vl.datatype = "uinteger" + +vl = s:option(Value, "PERIODIC_QUERY_INTERVAL", translate("PERIODIC_QUERY_INTERVAL")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ENABLE_NOTIFICATION_UNICAST", translate("ENABLE_NOTIFICATION_UNICAST")) +vl.rmempty = false + +------------------------------------------------------------------------------------------------ +--Path Selection Setting +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "PathSelect", translate("Path Selection Setting")) +s.anonymous = true + +vl = s:option(Value, "UpdateHDInterval", translate("UpdateHDInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LinkCapacityThreshold", translate("LinkCapacityThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UDPInterfaceOrder", translate("UDPInterfaceOrder")) +vl.datatype = "string" + +vl = s:option(Value, "NonUDPInterfaceOrder", translate("NonUDPInterfaceOrder")) +vl.datatype = "string" + +vl = s:option(Value, "SerialflowIterations", translate("SerialflowIterations")) +vl.datatype = "uinteger" + +vl = s:option(Value, "DeltaLCThreshold", translate("DeltaLCThreshold")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "EnableBadLinkStatsSwitchFlow", translate("EnableBadLinkStatsSwitchFlow")) +vl.rmempty = false + +------------------------------------------------------------------------------------------------ +--WLAN Manager Settings +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "Wlan", translate("WLAN Manager Settings")) +s.anonymous = true + +vl = s:option(Value, "WlanCheckFreqInterval", translate("WlanCheckFreqInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "WlanALDNLNumOverride", translate("WlanALDNLNumOverride")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--LOG settings +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "LogSettings", translate("LOG settings")) +s.anonymous = true + +vl = s:option(Value, "EnableLog", translate("EnableLog")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LogRestartIntervalSec", translate("LogRestartIntervalSec")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LogPCSummaryPeriodSec", translate("LogPCSummaryPeriodSec")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LogServerIP", translate("LogServerIP")) +vl.datatype = "ipaddr" + +vl = s:option(Value, "LogServerPort", translate("LogServerPort")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPCW2", translate("EnableLogPCW2")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPCW5", translate("EnableLogPCW5")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPCW6", translate("EnableLogPCW6")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPCP", translate("EnableLogPCP")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogTD", translate("EnableLogTD")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogHE", translate("EnableLogHE")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogHETables", translate("EnableLogHETables")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPS", translate("EnableLogPS")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableLogPSTables", translate("EnableLogPSTables")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LogHEThreshold1", translate("LogHEThreshold1")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LogHEThreshold2", translate("LogHEThreshold2")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--Multi-AP Implementation settings +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "MultiAP", translate("Multi-AP Implementation settings")) +s.anonymous = true + +vl = s:option(Flag, "EnableController", translate("EnableController")) +vl.rmempty = false + +vl = s:option(Flag, "EnableAgent", translate("EnableAgent")) +vl.rmempty = false + +vl = s:option(Flag, "EnableSigmaDUT", translate("EnableSigmaDUT")) +vl.rmempty = false + +vl = s:option(Flag, "EnableMapV2", translate("EnableMapV2")) +vl.rmempty = false + +vl = s:option(Value, "ClientAssocCtrlTimeoutSec", translate("ClientAssocCtrlTimeout (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "ClientAssocCtrlTimeoutUsec", translate("ClientAssocCtrlTimeout (us)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "ShortBlacklistTimeSec", translate("ShortBlacklistTime (s)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "AlwaysClearBlacklists", translate("AlwaysClearBlacklists")) +vl.rmempty = true + +vl = s:option(Value, "ClientSteerTimeoutSec", translate("ClientSteerTimeout (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "ClientSteerTimeoutUsec", translate("ClientSteerTimeout (us)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MetricsReportingInterval", translate("MetricsReportingInterval (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "RSSIHysteresis_W2", translate("RSSIHysteresis on 2.4 GHz")) +vl.datatype = "uinteger" + +vl = s:option(Value, "RSSIHysteresis_W5", translate("RSSIHysteresis on 5 GHz")) +vl.datatype = "uinteger" + +vl = s:option(Value, "RSSIHysteresis_W6", translate("RSSIHysteresis on 6 GHz")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LoadBalancingInterval", translate("LoadBalancingInterval (s)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "EnableChannelSelection", translate("EnableChannelSelection")) +vl.rmempty = false + +vl = s:option(Value, "MinPreferredChannelIndex", translate("MinPreferredChannelIndex")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MaxPreferredChannelIndex", translate("MaxPreferredChannelIndex")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "EnableTopologyOpt", translate("EnableTopologyOpt")) +vl.rmempty = false + +vl = s:option(Value, "TopologyOptCron", translate("TopologyOptCron")) +vl.datatype = "string" + +vl = s:option(Value, "TopologyOptNewAgentDelay", translate("TopologyOptNewAgentDelay")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TopologyOptDelAgentDelay", translate("TopologyOptDelAgentDelay")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TopologyOptCollectionTime", translate("TopologyOptCollectionTime")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TopologyOptActivityMonitoringSecs", translate("TopologyOptActivityMonitoringSecs")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TopologyOptMinIncreasePercentage", translate("TopologyOptMinIncreasePercentage")) +vl.datatype = "and(uinteger(range(0, 100))" + +vl = s:option(Flag, "TopologyOptAllowActiveSteer", translate("TopologyOptAllowActiveSteer")) +vl.rmempty = false + +vl = s:option(Value, "TopologyOptMaxIdleWaitSecs", translate("TopologyOptMaxIdleWaitSecs")) +vl.datatype = "uinteger" + +vl = s:option(Value, "TopologyOptSettlingTime", translate("TopologyOptSettlingTime")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocMetricsRspWaitTimeSec", translate("UnassocMetricsRspWaitTime (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocMetricsRspMsgTimeout", translate("UnassocMetricsRspMsgTimeout (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "CBSDwellSplitMSec", translate("CBSDwellSplit (ms)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "CBSDelaySec", translate("CBSDelay (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "CBSStateResetSec", translate("CBSStateReset (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "BkScanIntervalMin", translate("BkScanInterval (minutes)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "EnableCronBasedBkScan", translate("EnableCronBasedBkScan")) +vl.rmempty = false + +vl = s:option(Value, "BkScanCron", translate("BkScanCron")) +vl.datatype = "string" + +vl = s:option(Flag, "UseCBSRankForHomeChan", translate("UseCBSRankForHomeChan")) +vl.rmempty = false + +vl = s:option(Flag, "EnableChanPrefQuery", translate("EnableChanPrefQuery")) +vl.rmempty = false + +vl = s:option(Value, "ChanPrefQueryCron", translate("ChanPrefQueryCron")) +vl.datatype = "string" + +vl = s:option(Flag, "ChannelSelectionOnGlobalPref", translate("ChannelSelectionOnGlobalPref")) +vl.rmempty = false + +vl = s:option(Flag, "ChannelSelectionDelaySec", translate("ChannelSelectionDelay (sec)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ChanSupervisionMinDelaySec", translate("MinChannelSupervisionDelay(sec)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ChanSupervisionMaxDelaySec", translate("MaxChannelSupervisionDelay (sec)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ChanSupervisionMaxAttempts", translate("MaxChannelSupervisionAttempts")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ChanSupervisionIntervalSec", translate("ChannelSupervisionInterval (sec)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "ChanSupervisionTolerate40MHzCoexRulesOn24GHz", translate("ChanSupervisionTolerate40MHzCoexRulesOn24GHz")) +vl.rmempty = false + +vl = s:option(Flag, "ControllerChanSelection160MHz", translate("ControllerChanSelection160MHz")) +vl.rmempty = false + +vl = s:option(Flag, "AgentChanSelection160MHz", translate("AgentChanSelection160MHz")) +vl.rmempty = false + +vl = s:option(Flag, "ControllerChanSelection40MHzOn2G", translate("ControllerChanSelection40MHzOn2G")) +vl.rmempty = false + +vl = s:option(Flag, "AgentChanSelection40MHzOn2G", translate("AgentChanSelection40MHzOn2G")) +vl.rmempty = false + +vl = s:option(Flag, "ChanSelectionMinIncPercent", translate("ChannelSelectionMinIncPercent")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "AgentChanMismatchCheckInterval", translate("AgentChanMismatchCheckInterval")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocRSSIAgeLimitSec", translate("UnassocRSSIAgeLimit (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocPeriodicQueryTimeSec", translate("UnassocPeriodicQueryTime (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocActiveClientTimeoutSec", translate("UnassocActiveClientTimeoutSec (s)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "UnassocMetricsDriverPollingTime", translate("UnassocMetricsDriverPollingTime (s)")) +vl.datatype = "uinteger" + +vl = s:option(Flag, "EnableBootOnlyScan", translate("EnableBootOnlyScan")) +vl.rmempty = false + +vl = s:option(Value, "ChanScanIntervalMin", translate("ChanScanIntervalMin (minutes)")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MapR1R2MixNotSupported", translate("MapR1R2MixNotSupported")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MapPFCompliant", translate("MapPFCompliant")) + +vl = s:option(Value, "NumberOfVLANSupported", translate("NumberOfVLANSupported")) +vl.datatype = "uinteger" + +vl = s:option(Value, "Map2TrafficSepEnabled", translate("Map2TrafficSepEnabled")) +vl.datatype = "uinteger" + +vl = s:option(Value, "Map8021QPCP", translate("Map8021QPCP")) +vl.datatype = "uinteger" + +vl = s:option(Value, "FronthaulSSIDPrimary", translate("FronthaulSSIDPrimary")) +vl.datatype = "string" + +vl = s:option(Value, "VlanIDNwPrimary", translate("VlanIDNwPrimary")) +vl.datatype = "uinteger" + +vl = s:option(Value, "FronthaulSSIDNwOne", translate("FronthaulSSIDNwOne")) +vl.datatype = "string" + +vl = s:option(Value, "VlanIDNwOne", translate("VlanIDNwOne")) +vl.datatype = "uinteger" + +vl = s:option(Value, "FronthaulSSIDNwTwo", translate("FronthaulSSIDNwTwo")) +vl.datatype = "string" + +vl = s:option(Value, "VlanIDNwTwo", translate("VlanIDNwTwo")) +vl.datatype = "uinteger" + +vl = s:option(Value, "FronthaulSSIDNwThree", translate("FronthaulSSIDNwThree")) +vl.datatype = "string" + +vl = s:option(Value, "VlanIDNwThree", translate("VlanIDNwThree")) +vl.datatype = "uinteger" + +vl = s:option(Value, "CombinedR1R2Backhaul", translate("CombinedR1R2Backhaul")) +vl.datatype = "uinteger" + +vl = s:option(Value, "VlanNetworkPrimary", translate("VlanNetworkPrimary")) +vl.datatype = "string" + +vl = s:option(Value, "EnableChannelScanRequest", translate("EnableChannelScanRequest")) +vl.datatype = "uinteger" + +vl = s:option(Value, "EnableRptIndependentScan", translate("EnableRptIndependentScan")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--Steering Message settings +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "SteerMsg", translate("Steering Message settings")) +s.anonymous = true + +vl = s:option(Value, "AvgUtilReqTimeout", translate("AvgUtilReqTimeout")) +vl.datatype = "uinteger" + +vl = s:option(Value, "LoadBalancingCompleteTimeout", translate("LoadBalancingCompleteTimeout")) +vl.datatype = "uinteger" + +vl = s:option(Value, "RspTimeout", translate("RspTimeout")) +vl.datatype = "uinteger" + +------------------------------------------------------------------------------------------------ +--Monitoring settings +------------------------------------------------------------------------------------------------ +s = m:section(TypedSection, "Monitor", translate("Monitoring settings")) +s.anonymous = true + +vl = s:option(Value, "MonitorTimer", translate("MonitorTimer")) +vl.datatype = "uinteger" + +vl = s:option(Value, "MonitorResponseTimeout", translate("MonitorResponseTimeout")) +vl.datatype = "uinteger" diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua new file mode 100644 index 000000000..c05497e95 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/model/cbi/hyfi/hyfi.lua @@ -0,0 +1,309 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright (c) 2013 Qualcomm Atheros, Inc. + +All Rights Reserved. +Qualcomm Atheros Confidential and Proprietary. + +]]-- + +local acd_enabled_prev = nil +local hyfi_enabled_prev = nil +local vhyfi_enabled_prev = nil +local uci = require "luci.model.uci" + +function isvhyfi() + local vhyfi = true + local fd = io.open("/tmp/sysinfo/board_name", "r") + if fd then + local ln = fd:read("*l") + if (ln and (ln == "reh132" or + ln == "aph131" or + ln == "aph126" or + ln == "aph128" )) then + vhyfi = false + end + fd:close() + end + + if (vhyfi == false) then + return false + end + + if not nixio.fs.access("/etc/init.d/vhyfid") then + return false + end + + return true +end + +function has_acd() + if not nixio.fs.access("/etc/init.d/acd") then + return false + else + return true + end +end + +function has_wan() + local uci_r = uci.cursor() + local wanif + wanif = uci_r:get("network", "wan", "ifname") + + if (wanif == nil) then + return false + else + return true + end +end + +function fork_exec(command) + local pid = nixio.fork() + if pid > 0 then + return + elseif pid == 0 then + -- change to root dir + nixio.chdir("/") + + -- patch stdin, out, err to /dev/null + local null = nixio.open("/dev/null", "w+") + if null then + nixio.dup(null, nixio.stderr) + nixio.dup(null, nixio.stdout) + nixio.dup(null, nixio.stdin) + if null:fileno() > 2 then + null:close() + end + end + + -- replace with target command + nixio.exec("/bin/sh", "-c", command) + end +end + +if (isvhyfi()) then +m1 = Map("vhyfid", translate("Virtual HyFi Settings"), + translate("Configuration of Virtual HyFi networks ")) + +m1.on_before_save = function() + local uci_r = uci.cursor() + vhyfi_enabled_prev = uci_r:get("vhyfid", "config", "Enable") +end + +s = m1:section(TypedSection, "config", translate("Virtual Hy-Fi Settings")) +s.anonymous = true + + +e = s:option(Flag, "Enable", translate("Virtual Hy-Fi Feature")) +e.rmempty = false + +vl = s:option(Value, "PLCHFIDList", translate("HFID List")) +vl.datatype = "string" + +vl = s:option(Value, "PLCOUIList", translate("OUI List")) +vl.datatype = "string" + +--[[li = s:option(ListValue, "AllowPLCFwUpdate", translate("Allow PLC Firmware Update")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" +--]] + +li = s:option(ListValue, "DisableHyFiIfNoManufacturerMatch", translate("Disable Virtual Hy-Fi if Manufacturer not Matching")) +li:value("1", translate("Enable")) +li:value("0", translate("Disable")) +li.default = "1" +end + +m2 = Map("hyd", translate("HyFi Network Settings"), + translate("Configuration of HyFi networks ")) +m2:chain("acd") + +m2.on_before_save = function() + local uci_r = uci.cursor() + if (has_acd()) then + acd_enabled_prev = uci_r:get("acd", "config", "AutoConfigEnable") + end + hyfi_enabled_prev = uci_r:get("hyd", "config", "Enable") +end + +m2.on_after_commit = function() + local command = "" + local acd_enabled_new + local hyfi_enabled_new + local vhyfi_enabled_new + local hyfi_control + + if (has_acd()) then + acd_enabled_new=m2.uci:get("acd", "config", "AutoConfigEnable") + if (acd_enabled_new == "0") then + command = "/etc/init.d/acd stop; " + elseif (acd_enabled_prev == "0") then + command = "/etc/init.d/acd start; " + else + command = "/etc/init.d/acd restart; " + end + end + + if (isvhyfi()) then + vhyfi_enabled_new = m2.uci:get("vhyfid", "config", "Enable") + if (vhyfi_enabled_new == "0") then + command = command .. "/etc/init.d/vhyfid stop; " + elseif (vhyfi_enabled_prev == "0") then + command = command .. "/etc/init.d/vhyfid start; " + else + command = command .. "/etc/init.d/vhyfid restart; " + end + end + + hyfi_control = m2.uci:get("hyd", "config", "Control") + if (hyfi_control == "manual" ) then + hyfi_enabled_new = m2.uci:get("hyd", "config", "Enable") + if (hyfi_enabled_new == "0") then + command = command .. "/etc/init.d/hyd stop" + command = command .. "/etc/init.d/hyfi-bridging stop" + command = command .. "uci set mcsd.config.Enable=1; " + command = command .. "uci commit; " + command = command .. "/etc/init.d/mcsd start; " + elseif (hyfi_enabled_prev == "0") then + command = command .. "uci set mcsd.config.Enable=0; " + command = command .. "uci commit; " + command = command .. "/etc/init.d/mcsd stop; " + command = command .. "/etc/init.d/hyfi-bridging start" + command = command .. "/etc/init.d/hyd start" + else + command = command .. "uci set mcsd.config.Enable=0; " + command = command .. "uci commit; " + command = command .. "/etc/init.d/mcsd stop; " + command = command .. "/etc/init.d/hyd stop; " + command = command .. "/etc/init.d/hyfi-bridging restart; " + command = command .. "/etc/init.d/hyd start" + end + end + + fork_exec(command) +end + +s = m2:section(TypedSection, "config", translate("Basic Hy-Fi Settings")) +s.anonymous = true + + +li = s:option(ListValue, "Enable", translate("Hy-Fi Feature")) +li:value("Enable", translate("Enable")) +li:value("Auto", translate("Auto")) +li:value("Disable", translate("Disable")) + +function li.cfgvalue(self, section) + local hyd_control + local hyfi_status + local vhyfi_enable + local hyd_enable + + if (isvhyfi() == true) then + vhyfi_enable = m2.uci:get("vhyfid", "config", "Enable") + else + vhyfi_enable = "0" + end + + if (vhyfi_enable == "1") then + hyd_control = m2.uci:get("hyd", "config", "Control") + if (hyd_control == "auto") then + hyfi_status = "Auto" + else + hyfi_status = "Enable" + end + else + hyd_enable = m2.uci:get("hyd", "config", "Enable") + if (hyd_enable == "0") then + hyfi_status = "Disable" + else + hyfi_status = "Enable" + end + end + + return hyfi_status +end + +function li.write(self, section, value) + local vhyfi_enable + local hyd_enable + local hyd_control + + if (isvhyfi() == true) then + vhyfi_enable = m2.uci:get("vhyfid", "config", "Enable") + else + vhyfi_enable = "0" + end + + + if (vhyfi_enable == "1") then + if (value == "Auto") then + hyd_enable = "0" + hyd_control = "auto" + else + hyd_enable = "1" + hyd_control = "manual" + end + else + if (value == "Enable") then + hyd_enable = "1" + hyd_control = "manual" + else + hyd_enable = "0" + hyd_control = "manual" + end + end + + m2.uci:set("hyd", "config", "Enable", hyd_enable) + m2.uci:set("hyd", "config", "Control", hyd_control) +end + +if (has_acd()) then +e = s:option(Flag, "AutoConfigEnable", translate("Hy-Fi Auto Configuration")) +e.rmempty = false +function e.cfgvalue(self, section) + return m2.uci:get("acd", section, self.option) +end + +function e.write(self, section, value) + local vhyfi_enable = "0" + local hyd_enable = "0" + + if (isvhyfi() == true) then + vhyfi_enable = m2.uci:get("vhyfid", "config", "Enable") + end + + hyd_enable = m2.uci:get("hyd", "config", "Enable") + + if (hyfi_enable == "0" and hyd_enable == "0") then + value = 0 + end + m2.uci:set("acd", section, self.option, value) +end +end + +li = s:option(ListValue, "Mode", translate("Hy-Fi Configuration Mode")) +if (has_wan()) then + li:value("HYROUTER", translate("Hy-Fi Enabled Router")) +else + li:value("HYROUTER", translate("Hy-Fi Enabled GW-Bridge")) + li:value("HYCLIENT", translate("Hy-Fi Enabled Range-Extender")) +end +li.default = "1" + +js = s:option(DummyValue, "script", translate("script for Hyfi")) +js.template = "hyfi/dview_js" + +local form, ferr = loadfile(luci.util.libpath() .. "/model/cbi/hyfi/advanced.lua") +if form then + bt = s:option(DummyValue, "showadv", translate("show advanced")) + bt.template = "hyfi/btn_adv" + setfenv(form, getfenv(1))(m2, s) +end + +if (m1 ~= nil) then + return m1, m2 +else + return m2 +end diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/btn_adv.htm b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/btn_adv.htm new file mode 100644 index 000000000..9315acecd --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/btn_adv.htm @@ -0,0 +1,11 @@ + + + + + + +
+ + +
+ diff --git a/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/dview_js.htm b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/dview_js.htm new file mode 100644 index 000000000..640faaa04 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-luci/files/luci-hyfi/luasrc/view/hyfi/dview_js.htm @@ -0,0 +1,207 @@ + + diff --git a/qaa/hyfi/qca-hyfi-networking/qca-acd/Makefile b/qaa/hyfi/qca-hyfi-networking/qca-acd/Makefile new file mode 100644 index 000000000..85eab3ca6 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-acd/Makefile @@ -0,0 +1,35 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-acd +PKG_VERSION:=master.131 + +include $(INCLUDE_DIR)/package.mk + +define Package/qca-acd + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros, Inc. + DEPENDS:=+qca-ieee1905-init +kmod-qca-hyfi-bridge +qca-hyctl + TITLE:=Hy-Fi Auto-configuration + SUBMENU:=Hy-Fi features +endef + +define Package/qca-acd/description + This package installs the Hy-Fi Auto-configuration scripts +endef + +define Build/Compile +endef + +define Package/qca-acd/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) ./files/acd-run.sh $(1)/usr/sbin + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/acd.init $(1)/etc/init.d/acd + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_CONF) ./files/acd.config $(1)/etc/config/acd +endef + +$(eval $(call BuildPackage,qca-acd)) diff --git a/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd-run.sh b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd-run.sh new file mode 100644 index 000000000..786f91284 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd-run.sh @@ -0,0 +1,335 @@ +#!/bin/sh +# Copyright (c) 2013 Qualcomm Atheros, Inc. +# +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. + +ACD_DEBUG_OUTOUT=0 +ACD_SWITCH_CONFIG_COMMAND=swconfig + +. /lib/functions.sh +. /lib/functions/hyfi-iface.sh +. /lib/functions/hyfi-network.sh + +local link prev_link=2 router_detected=0 gw_iface="" gw_switch_port="" +local ieee1905managed switch_iface="" vlan_group="" switch_ports +local cpu_portmap=0 +local start_mode="init" + +__acd_echo() { + if [ "$ACD_DEBUG_OUTOUT" -gt 0 ]; then + echo "$1" > /dev/console + else + echo "$1" + fi +} + +__acd_find_switch() { + local vlan_grp + + __hyfi_get_switch_iface switch_iface + + if [ -n "$switch_iface" ]; then + $ACD_SWITCH_CONFIG_COMMAND dev switch0 set flush_arl 2>/dev/null + vlan_grp="`echo $ether_iface | awk -F. '{print $2}' 2>/dev/null`" + fi + + if [ -z "$vlan_grp" ]; then + vlan_group="1" + else + vlan_group="$vlan_grp" + fi +} + +__acd_get_switch_ports() { + local local config="$1" + local vlan_group="$2" + local ports vlan cpu_port __cpu_portmap + + config_get vlan "$config" vlan + config_get ports "$config" ports + + [ ! "$vlan" = "$vlan_group" ] && return + + cpu_port=`echo $ports | awk '{print $1}'` + ports=`echo $ports | sed 's/'$cpu_port' //g'` + eval "$3='$ports'" + + cpu_port=`echo $cpu_port | awk -Ft '{print $1}'` + + case $cpu_port in + 0) __cpu_portmap=0x01;; + 1) __cpu_portmap=0x02;; + 2) __cpu_portmap=0x04;; + 3) __cpu_portmap=0x08;; + 4) __cpu_portmap=0x10;; + 5) __cpu_portmap=0x20;; + 6) __cpu_portmap=0x40;; + 7) __cpu_portmap=0x80;; + esac + eval "$4='$__cpu_portmap'" +} + +# __acd_check_links +# input: $1 1905.1 managed bridge +# output: $2 1 if link is up in at least 1 Ethernet port +__acd_check_links() { + local ether_ifaces_full ether_ifaces + local ether_iface ret + + # Get all Ethernet interfaces + hyfi_get_ether_ifaces $1 ether_ifaces_full + hyfi_strip_list $ether_ifaces_full ether_ifaces + + for ether_iface in $ether_ifaces; do + if [ "$switch_iface" = "$ether_iface" ]; then + local port link_status + + for port in $switch_ports; do + + if [ -n "$gw_switch_port" -a "$gw_switch_port" = "$port" ]; then + continue + fi + + link_status=`$ACD_SWITCH_CONFIG_COMMAND dev switch0 port $port show | grep link | awk -F: '{print $NF}' 2>/dev/null` + + if [ ! "$link_status" = "down" ]; then + # link is up + eval "$2='1'" + __acd_echo "acd: Link on port $port is UP" + return + fi + done + continue + fi + + if [ -n "$gw_iface" -a "$gw_iface" = "$ether_iface" ]; then + continue + fi + + ret=`ifconfig $ether_iface | grep UP[A-Z' ']*RUNNING` + if [ -n "$ret" ]; then + #link is up + eval "$2='1'" + __acd_echo "acd: Link on interface $ether_iface is UP" + return + fi + done + eval "$2='0'" + __acd_echo "acd: Link is DOWN" +} + +__acd_check_gw_iface_link() { + local ret + + if [ "$gw_iface" = "$switch_iface" ]; then + local link_status + + link_status=`$ACD_SWITCH_CONFIG_COMMAND dev switch0 port $gw_switch_port show | grep link | awk -F: '{print $NF}'` + if [ ! "$link_status" = "down" ]; then + # link is up + __acd_echo "acd: Link to GW UP" + return 1 + fi + else + ret=`ifconfig $gw_iface | grep UP[A-Z' ']*RUNNING` + [ -n "$ret" ] && return 1 + fi + __acd_echo "acd: Link to GW DOWN" + return 0 +} + +# __acd_check_gateway +# input: $1 1905.1 managed bridge +# output: $2 Gateway interface +# returns: 1 if gateway is detected +__acd_check_gateway() { + local gw_ip gw_mac __gw_iface + local ether_ifaces_full ether_ifaces + local ether_iface ret + + gw_ip=`route | grep default | grep br-$1 | awk '{print $2}'` + [ -z "$gw_ip" ] && return 0 + + ping $gw_ip -c1 >/dev/null + + gw_mac=`cat /proc/net/arp | grep -w $gw_ip | awk '{print $4}'` + [ -z "$gw_mac" ] && return 0 + + __gw_iface=`hyctl getfdb br-$1 1024 | grep -i $gw_mac | awk '{print $4}'` + [ -z "$__gw_iface" ] && return 0 + + # Get all Ethernet interfaces + hyfi_get_ether_ifaces $1 ether_ifaces_full + hyfi_strip_list $ether_ifaces_full ether_ifaces + + # Check if this interface belongs to our network + for ether_iface in $ether_ifaces; do + if [ "$ether_iface" = "$__gw_iface" ]; then + gw_iface=$__gw_iface + __acd_echo "acd: Detected Gateway on interface $gw_iface" + if [ "$ether_iface" = "$switch_iface" ]; then + local portmap __gw_switch_port=99 + local __switch_iface="`echo $ether_iface | awk -F. '{print $1}' 2>/dev/null`" + portmap=`$ACD_SWITCH_CONFIG_COMMAND dev $__switch_iface get dump_arl | grep -i $gw_mac | grep -v $cpu_portmap | awk '{print $NF}'` + + case $portmap in + 0x01) __gw_switch_port=0;; + 0x02) __gw_switch_port=1;; + 0x04) __gw_switch_port=2;; + 0x08) __gw_switch_port=3;; + 0x10) __gw_switch_port=4;; + 0x20) __gw_switch_port=5;; + 0x40) __gw_switch_port=6;; + 0x80) __gw_switch_port=7;; + esac + + if [ "$__gw_switch_port" -eq 99 ]; then + __acd_echo "acd: invalid port map $portmap" + return 0 + fi + gw_switch_port=$__gw_switch_port + fi + return 1 + fi + done + + return 0 +} + +__acd_restart() { + local __mode="$1" + __acd_echo "acd: restart in $__mode mode" + + /etc/init.d/acd restart_in_${__mode}_mode + exit 0 +} + +# __acd_disable_vaps +# input: $1 config +# input: $2 network +# input: $3 mode: sta or ap +# input: $4 1 - disable, 0 - enable +# input-output: $5 change counter +__acd_disable_vaps() { + local config="$1" + local mode network disabled + local changed="$5" + + config_get mode "$config" mode + config_get network "$config" network + config_get disabled "$config" disabled + + if [ "$2" = "$network" -a "$3" = "$mode" -a ! "$4" = "$disabled" ]; then + uci_set wireless $config disabled $4 + changed=$((changed + 1)) + eval "$5='$changed'" + fi +} + +# Get the IEEE1905.1 managed bridge name +hyfi_get_ieee1905_managed_iface ieee1905managed +__acd_find_switch $ieee1905managed +[ -n "$switch_iface" ] && __acd_echo "acd: found switch on $switch_iface VLAN=$vlan_group" + +config_load network +config_foreach __acd_get_switch_ports switch_vlan $vlan_group switch_ports cpu_portmap +__acd_echo "acd: switch ports in the $ieee1905managed network: $switch_ports" + +local hyd_mode + +config_load hyd +config_get hyd_mode config 'Mode' +[ -n "$1" ] && start_mode="$1" +__acd_echo "acd: Hy-Fi mode: $hyd_mode, start mode: $start_mode" + +__acd_check_gateway $ieee1905managed +router_detected=$? + +if [ "$hyd_mode" = "HYROUTER" ]; then + if [ "$router_detected" -eq 0 ]; then + if [ ! "$start_mode" = "hr" ]; then + __acd_restart hc + else + local retries=3 + + while [ "$retries" -gt 0 ]; do + __acd_check_gateway $ieee1905managed + router_detected=$? + [ "$router_detected" -gt 0 ] && break + retries=$((retries -1)) + __acd_echo "acd: redetecting gateway ($retries retries left)" + done + if [ "$router_detected" -gt 0 ]; then + __acd_restart hc + fi + fi + fi +else + if [ "$router_detected" -eq 1 ]; then + __acd_restart hr + fi +fi + +local config_changed + +while true; do + config_changed=0 + if [ "$router_detected" -eq 0 ]; then + __acd_check_gateway $ieee1905managed + router_detected=$? + + if [ "$router_detected" -gt 0 ]; then + __acd_restart hr + fi + else + __acd_check_gw_iface_link + + if [ "$?" -eq 0 ]; then + # Gateway is gone + router_detected=0 + gw_iface="" + gw_switch_port="" + __acd_restart hc + fi + + sleep 2; + continue + fi + + __acd_check_links $ieee1905managed link + + if [ ! "$prev_link" = "$link" ]; then + if [ "$link" -gt 0 ]; then + local disable_hc_mode + + config_load acd + config_get disable_hc_mode config DisableHCMode + + config_load wireless + + if [ "$disable_hc_mode" -eq 0 ]; then + # Link is up, turn off range extender + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'ap' '1' config_changed + else + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'ap' '0' config_changed + fi + + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'sta' '0' config_changed + else + config_load wireless + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'sta' '0' config_changed + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'ap' '0' config_changed + fi + + prev_link=link; + if [ "$config_changed" -gt 0 ]; then + uci commit wireless + [ -f "/etc/init.d/hyd" ] && /etc/init.d/hyd stop + [ -f "/etc/init.d/wsplcd" ] && /etc/init.d/wsplcd stop + hyfi_network_restart + fi + fi + + sleep 2; +done diff --git a/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.config b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.config new file mode 100644 index 000000000..d40ee8f26 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.config @@ -0,0 +1,12 @@ +config default 'config' + option AutoConfigEnable '0' + option HCSecsBetweenDHCPRequestPackets '2' + option HRSecsBetweenDHCPRequestPackets '3' + option HRSecsBetweenStateContinuityCheck '15' + option HRMaxTriesWaitingForDHCPResponse '3' + option HCMaxTxTriesBeforeGettingIPAddr '10' + option SecsBetweenChecksForCableConnection '5' + option AcdDebugLevel '1' + option DisableHCMode '1' + option DisableWDSSTAInHREMode '0' + diff --git a/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.init b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.init new file mode 100644 index 000000000..98006e08d --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-acd/files/acd.init @@ -0,0 +1,488 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2013 Qualcomm Atheros, Inc. +# +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. + +START=50 + +SERVICE_WRITE_PID=1 +SERVICE_DAEMONIZE=1 +#SERVICE_DEBUG=1 +NETWORK_RESTART=0 +SERVICE_DEBUG_OUTPUT=0 +ACD_DEBUG_OUTOUT=0 +SERVICE_PATH="/usr/sbin/acd" + +ACD_CONFIG_FILE="/tmp/acd.conf" +WIRELESS_CONFIG_FILE="/etc/config/wireless" + +EXTRA_COMMANDS="restart_in_hc_mode restart_in_hr_mode" +EXTRA_HELP=< /dev/console + else + echo "acd: $1" + fi +} + +__acd_append_wireless() { + echo "$1" >> "$WIRELESS_CONFIG_FILE" +} + +__acd_router_mode() { + local wan_iface + + config_load network + config_get wan_iface wan ifname + + [ -n "$wan_iface" ] && return 1 + + return 0 +} + +__acd_get_freq_from_standard() { + config_get hwmode $1 hwmode '11ng' + + case "$hwmode" in + 11ac|11na|11a) + eval "$2='5G'" + ;; + + *) + eval "$2='2G'" + ;; + esac +} + +__acd_vaps_in_default_config() { + local ssid encryption last_vap + + ssid=`uci show wireless | grep "ssid=OpenWrt"` + encryption=`uci show wireless | grep "encryption=none"` + + __acd_echo "ssid=$ssid encryption=$encryption" + + if [ -n "$ssid" -a -n "$encryption" ]; then + return 1 + fi + + last_vap=`uci show wireless.@wifi-iface[-1]` + __acd_echo "last_vap=$last_vap" + [ -z "$last_vap" ] && return 1 + + return 0 +} + +__acd_destroy_vaps() { + local retval + + /sbin/wifi down + /etc/init.d/network stop + uci delete wireless.@wifi-iface[0] 2>/dev/null; retval=$? + + while [ "$retval" -eq 0 ]; do + uci delete wireless.@wifi-iface[0] 2>/dev/null + retval=$? + done + + uci commit wireless +} + +__acd_enable_wifi() { + local DEVICES= + local device changed=0 + + config_cb() { + local type="$1" + local section="$2" + + case "$type" in + wifi-device) + append DEVICES "$section" + ;; + esac + } + config_load wireless + + for device in $DEVICES ; do + config_get_bool disabled $device disabled + [ -z "$disabled" ] && continue + [ "$disabled" -eq 0 ] && continue + + uci_set wireless $device disabled '0' + changed=1 + done + + if [ "$changed" -gt 0 ]; then + uci_commit wireless + config_changed=1 + fi +} + +__acd_create_vaps() { + local DEVICES= + local HYFI_SEED= + local AP_disabled=0 STA_disabled=0 + + config_cb() { + local type="$1" + local section="$2" + + case "$type" in + wifi-device) + append DEVICES "$section" + ;; + esac + } + config_load wireless + + HYFI_SEED=`ifconfig br-$ieee1905managed | grep HWaddr | awk '{print $5}' | awk -F":" '{print $4$5$6}'` + + if [ -z "$DEVICES" ]; then + DEVICES=`ls /sys/class/net/wifi* -d1 | awk -F/ '{print $NF}'` + fi + + for device in $DEVICES ; do + uci_set wireless $device disabled '0' + + __acd_append_wireless "" + __acd_append_wireless "config wifi-iface" + __acd_append_wireless " option device '$device'" + __acd_append_wireless " option mode 'ap'" + __acd_append_wireless " option athnewind '0'" + __acd_append_wireless " option ssid 'Hy-Fi Network $HYFI_SEED'" + __acd_append_wireless " option wds '1'" + __acd_append_wireless " option network '$ieee1905managed'" + __acd_append_wireless " option encryption 'psk2'" + __acd_append_wireless " option key 'hyfi$HYFI_SEED'" + __acd_append_wireless " option wps_pbc '1'" + __acd_append_wireless " option disabled '$AP_disabled'" + __acd_append_wireless "" + __acd_append_wireless "config wifi-iface" + __acd_append_wireless " option device '$device'" + __acd_append_wireless " option mode 'sta'" + __acd_append_wireless " option athnewind '0'" + __acd_append_wireless " option ssid 'Hy-Fi Network $HYFI_SEED'" + __acd_append_wireless " option wds '1'" + __acd_append_wireless " option network '$ieee1905managed'" + __acd_append_wireless " option encryption 'psk2'" + __acd_append_wireless " option key 'hyfi$HYFI_SEED'" + __acd_append_wireless " option wps_pbc '1'" + __acd_append_wireless " option disabled '$STA_disabled'" + __acd_append_wireless "" + done + uci_commit wireless +} + +# __acd_disable_vaps +# input: $1 config +# input: $2 network +# input: $3 mode: sta or ap +# input: $4 1 - disable, 0 - enable +# input-output: $5 change counter +__acd_disable_vaps() { + local config="$1" + local mode network disabled + local changed="$5" + + config_get mode "$config" mode + config_get network "$config" network + config_get disabled "$config" disabled + + if [ "$2" = "$network" -a "$3" = "$mode" -a ! "$4" = "$disabled" ]; then + uci_set wireless $config disabled $4 + changed=$((changed + 1)) + eval "$5='$changed'" + __acd_echo "Set VAP $config to Disabled=$4" + fi +} + +__acd_config_hr_mode() { + config_load hyd + config_get mode config 'Mode' + + if [ ! "$mode" = 'HYROUTER' ]; then + uci_set hyd config 'Mode' 'HYROUTER' + config_changed=1 + uci commit hyd + __acd_echo "Set hyd in HR mode" + fi + + config_load wsplcd + config_get mode config 'RunMode' + + if [ ! "$mode" = 'REGISTRAR' ]; then + uci_set wsplcd config 'RunMode' 'REGISTRAR' + config_changed=1 + uci commit wsplcd + __acd_echo "Set wsplcd in REGISTRAR mode" + wsplcd_restart=1 + fi + + config_load wireless + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'sta' '1' config_changed + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'ap' '0' config_changed + uci commit wireless +} + +__acd_config_hc_mode() { + config_load hyd + config_get mode config 'Mode' + + if [ ! "$mode" = 'HYCLIENT' ]; then + uci_set hyd config 'Mode' 'HYCLIENT' + config_changed=1 + uci commit hyd + __acd_echo "Set hyd in HC mode" + fi + + config_load wsplcd + config_get mode config 'RunMode' + + if [ ! "$mode" = 'ENROLLEE' ]; then + uci_set wsplcd config 'RunMode' 'ENROLLEE' + config_changed=1 + uci commit wsplcd + __acd_echo "Set wsplcd in ENROLLEE mode" + wsplcd_restart=1 + fi + + config_load wireless + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'sta' '0' config_changed + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'ap' '1' config_changed + uci commit wireless +} + +__acd_config_hc_boot_mode() { + config_load hyd + config_get mode config 'Mode' + config_get_bool hyd_enabled config 'Enable' 0 + config_load vhyfid + config_get_bool vhyfid_enabled config 'Enable' 0 + local disable_sta=1 + + if [ "$hyd_enabled" -eq 1 -a "$vhyfid_enabled" -eq 0 ]; then + disable_sta=0 + fi + + if [ ! "$mode" = 'HYCLIENT' ]; then + uci_set hyd config 'Mode' 'HYCLIENT' + config_changed=1 + uci commit hyd + __acd_echo "Set hyd in HC mode" + fi + + config_load wsplcd + config_get mode config 'RunMode' + + if [ ! "$mode" = 'ENROLLEE' ]; then + uci_set wsplcd config 'RunMode' 'ENROLLEE' + config_changed=1 + uci commit wsplcd + __acd_echo "Set wsplcd in ENROLLEE mode" + wsplcd_restart=1 + fi + + config_load wireless + config_foreach __acd_disable_vaps wifi-iface $ieee1905managed 'sta' $disable_sta config_changed + uci commit wireless +} + + +__acd_restart_dependencies() { + __acd_echo "Restarting network stack..." + hyfi_network_restart + if [ "$wsplcd_start" -gt 0 ]; then + /etc/init.d/wsplcd start + else + [ "$wsplcd_restart" -gt 0 ] && /etc/init.d/wsplcd restart + fi + [ "$hyd_start" -gt 0 ] && /etc/init.d/hyd start + [ "$vhyfid_start" -gt 0 ] && /etc/init.d/vhyfid start +} + +__stop_acd_run() { + PID=$(ps | grep acd-run | grep -v grep | awk '{print $1}') + if [ $PID ]; then + kill -s SIGTERM $PID + __acd_echo "stopped acd-run process $PID" + fi +} + +start() { + local enabled default_vaps router_mode + local mode + + stop + config_changed=0 + + config_load 'acd' + config_get_bool enabled config 'AutoConfigEnable' '0' + + [ "$enabled" -gt 0 ] || { + return 1 + } + + hyfi_echo acd "starting Hy-Fi auto-configuration" + # Get the IEEE1905.1 managed bridge name + hyfi_get_ieee1905_managed_iface ieee1905managed + + __acd_echo "Managed bridge: $ieee1905managed" + + __acd_vaps_in_default_config + + if [ "$?" -gt 0 ]; then + __acd_destroy_vaps + __acd_create_vaps + config_changed=1 + __acd_echo "Created new VAPs" + fi + + __acd_enable_wifi + + __acd_router_mode + if [ "$?" -gt 0 ]; then + # WAN group not empty + __acd_config_hr_mode + else + # WAN group empty or non-existent + # Disable all STAs and reset hyd state + __acd_config_hc_boot_mode + fi + + local vhyfid_rcd_enabled=`ls /etc/rc.d/S??vhyfid 2> /dev/null` + + config_load hyd + config_get_bool enabled config 'Enable' 0 + config_get hyd_control config 'Control' + + if [ "$hyd_control" = "manual" ]; then + if [ "$enabled" -eq 0 ]; then + uci_set hyd config 'Enable' '1' + config_changed=1 + uci commit hyd + hyd_start=1 + else + if [ ! -f /var/run/.hyd ]; then + config_changed=1 + hyd_start=1 + fi + fi + fi + + if [ -n "$vhyfid_rcd_enabled" ]; then + config_load vhyfid + config_get_bool enabled config 'Enable' 0 + + if [ "$enabled" -eq 0 ]; then + uci_set vhyfid config 'Enable' '1' + config_changed=1 + uci commit vhyfid + __acd_echo "Enabled Virtual Hy-Fi" + vhyfid_start=1 + fi + fi + + if [ -f "/etc/init.d/wsplcd" ]; then + config_load wsplcd + config_get_bool enabled config 'HyFiSecurity' 0 + + if [ "$enabled" -eq 0 ]; then + uci_set wsplcd config 'HyFiSecurity' '1' + config_changed=1 + uci commit wsplcd + __acd_echo "Enabled security and configuration" + wsplcd_start=1 + fi + fi + + if [ "$config_changed" -gt 0 ]; then + __acd_restart_dependencies + fi + + __acd_router_mode + if [ "$?" -eq 0 ]; then + config_load hyd + config_get_bool hyd_enabled config 'Enable' 0 + + hyfi_network_sync + __stop_acd_run + if [ "$hyd_enabled" -gt 0 ]; then + # Monitor Ethernet ports + start-stop-daemon -S -x /usr/sbin/acd-run.sh -b + fi + fi +} + +stop() { + hyfi_network_sync + __stop_acd_run +} + +restart() { + stop + + config_load 'acd' + config_get_bool enabled config 'AutoConfigEnable' '0' + + [ "$enabled" -gt 0 ] || { + return 1 + } + + __acd_router_mode + if [ "$?" -eq 0 ]; then + config_load hyd + config_get_bool hyd_enabled config 'Enable' 0 + + if [ "$hyd_enabled" -gt 0 ]; then + # Monitor Ethernet ports + start-stop-daemon -S -x /usr/sbin/acd-run.sh -b + fi + else + start + fi +} + +restart_in_hc_mode() { + hyfi_get_ieee1905_managed_iface ieee1905managed + + stop + __acd_config_hc_mode + __acd_restart_dependencies + /etc/init.d/hyd restart + + __acd_router_mode + if [ "$?" -eq 0 ]; then + # Monitor Ethernet ports + start-stop-daemon -S -x /usr/sbin/acd-run.sh -b + fi +} + +restart_in_hr_mode() { + hyfi_get_ieee1905_managed_iface ieee1905managed + + stop + __acd_config_hr_mode + __acd_restart_dependencies + /etc/init.d/hyd restart + + __acd_router_mode + if [ "$?" -eq 0 ]; then + # Monitor Ethernet ports + start-stop-daemon -S -x /usr/sbin/acd-run.sh -b -- hr + fi +} diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/Config.in b/qaa/hyfi/qca-hyfi-networking/qca-hyd/Config.in new file mode 100644 index 000000000..f4e1b327f --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/Config.in @@ -0,0 +1,61 @@ +choice + prompt "Ethernet Speed" + default HYD_GIGABIT_ETHERNET + help + set Ethernet speed + +config HYD_GIGABIT_ETHERNET + bool "Gigabit Ethernet" + help + use gigabit ethernet + +config HYD_FAST_ETHERNET + bool "Fast Ethernet" + help + use fast ethernet + +endchoice + +config HYD_WIFI_LOAD_BALANCING + bool "Enable Wi-Fi Load Balancing Feature" + default y + help + This enables Wi-Fi load balancing (aka. steering) in hyd + +config HYD_SUPPORT_VHT160 + bool "Support VHT 160 MHz" + depends on PACKAGE_kmod-qca-wifi-akronite-perf||PACKAGE_kmod-qca-wifi-dakota-perf||PACKAGE_kmod-qca-wifi-perf||PACKAGE_kmod-qca-wifi-unified-perf||PACKAGE_kmod-qca-wifi-unified-profile||PACKAGE_kmod-qca-wifi-custc-profile||PACKAGE_kmod-qca-wifi-lowmem-profile||PACKAGE_kmod-qca-wifi-flash_16mb-profile + + default y + help + This enables the HYD support for 160 MHz + +config HYD_SUPPORT_CFG80211 + bool "Flag cfg80211 based config layer for HYD" + depends on PACKAGE_qca-cfg80211 + default y + help + CFG80211 support for HYD + +config HYD_SUPPORT_CALLTRACE + bool "Enable calltrace support for HYD" + help + calltrace support for HYD + +config HYD_SUPPORT_BREAKPAD + bool "Enable Breakpad Debugging Support for HYD" + default y + help + Breakpad Debugging Support for HYD + +config SUPPORT_WIFISON_EXT_LIB + bool "Enable QCA Wifi-SON Extended library" + default y + help + Extended library support for SON event service in HYD + +config HYD_DPP_ONBOARD_ENABLE + bool "Device Provisioning Protocol for onboarding for EasyMesh Devices" + default y + help + This enables Device Provisioning Protocol for onboarding EasyMesh Devices diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/Makefile b/qaa/hyfi/qca-hyfi-networking/qca-hyd/Makefile new file mode 100644 index 000000000..48c4730be --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/Makefile @@ -0,0 +1,362 @@ +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=qca-hyd +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/local-development.mk +ifeq ($(DUMP)$(PKG_VERSION),) +PKG_REV:=4ce25fc +PKG_VERSION:=g4ce25fc +endif +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)$(PKG)_$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +WIFI_U:=PACKAGE_kmod-qca-wifi-unified-profile +WIFI_C:=PACKAGE_kmod-qca-wifi-custc-profile +WIFI_A:=PACKAGE_kmod-qca-wifi-akronite-perf +WIFI_D:=PACKAGE_kmod-qca-wifi-dakota-perf +WIFI_MIPS:=PACKAGE_kmod-qca-wifi-perf +WIFI_MIPS_UNIFIED:=PACKAGE_kmod-qca-wifi-unified-perf +WIFI_10_2_MIPS:=PACKAGE_kmod-qca-wifi-perf +WIFI_L:=PACKAGE_kmod-qca-wifi-lowmem-profile +WIFI_16M:=PACKAGE_kmod-qca-wifi-flash_16mb-profile +QCA_PLC:=PACKAGE_qca-plc-serv +WIFI_10_2_ARM:=PACKAGE_kmod-qca-wifi-akronite-perf +WIFI_PKGS:=$(WIFI_U)||$(WIFI_C)||$(WIFI_A)||$(WIFI_D)||$(WIFI_MIPS)||$(WIFI_MIPS_UNIFIED)||$(WIFI_10_2_MIPS)||$(WIFI_10_2_ARM)||$(WIFI_L)||$(WIFI_16M) +PKG_BUILD_DEPENDS:=$(WIFI_U):qca-wifi $(WIFI_C):qca-wifi $(WIFI_A):qca-wifi $(WIFI_D):qca-wifi $(WIFI_MIPS):qca-wifi $(WIFI_L):qca-wifi $(WIFI_16M):qca-wifi \ + $(WIFI_MIPS_UNIFIED):qca-wifi $(WIFI_10_2_MIPS):qca-wifi $(WIFI_10_2_ARM):qca-wifi +qca-ssdk + +TARGET_CFLAGS += \ + -I$(STAGING_DIR)/usr/include/plcserv/ + +TARGET_CFLAGS += -fpie +TARGET_LDFLAGS += -pie + +QCAHYD_MAKE_OPTS:= \ + CROSS=$(TARGET_CROSS) \ + GWLIB=$(STAGING_DIR)/usr/lib \ + HYTOP=$(PKG_BUILD_DIR) \ + GWINCLUDE=$(STAGING_DIR)/usr/include/hyficommon \ + ATHDIR=$(STAGING_DIR)/usr/include \ + PLCSRV=$(STAGING_DIR)/usr/include/plcserv \ + HYFIDIR=$(STAGING_DIR)/usr/include/hyfibr \ + HYFIMCDIR=$(STAGING_DIR)/usr/include/hyfibr \ + HYFIBRLIBDIR=$(STAGING_DIR)/usr/include/libhyfibr \ + IEEE1905DIR=$(STAGING_DIR)/usr/include/ieee1905 \ + WPA2INCLUDE=$(STAGING_DIR)/usr/include/wpa2 \ + QCASSDKDIR=$(STAGING_DIR)/usr/include/qca-ssdk \ + QCACFLAGS="$(TARGET_CFLAGS)" \ + QCALDFLAGS="-Wl,--gc-sections $(TARGET_LDFLAGS)" \ + INSTALL_ROOT=$(PKG_BUILD_DIR)/install \ + KERNELVERSION=$(LINUX_VERSION) \ + STAGING_DIR=$(STAGING_DIR) \ + ARCH="$(ARCH)" + +ifneq ($(CONFIG_SUPPORT_WIFISON_EXT_LIB),) +QCAHYD_MAKE_OPTS+= \ + SONEVENTINCLUDE=$(STAGING_DIR)/usr/include/qca-wifison-ext-lib \ + HYD_MODULE_SONEVENT=y +endif + +ifneq ($(CONFIG_HYD_SUPPORT_CFG80211),) +QCAHYD_MAKE_OPTS+= \ + LIBCFG80211_SUPPORT=y +endif + +ifneq ($(CONFIG_HYD_GIGABIT_ETHERNET),) +QCAHYD_MAKE_OPTS+= \ + HYBRID_ETH_SPEED=1000 +endif + +ifneq ($(CONFIG_PACKAGE_qca-plc-serv),) +QCAHYD_MAKE_OPTS+= \ + HYD_MODULE_PLC=y +endif + +ifneq ($(CONFIG_HYD_FAST_ETHERNET),) +QCAHYD_MAKE_OPTS+= \ + HYBRID_ETH_SPEED=100 +endif + +ifeq ($(CONFIG_PACKAGE_qca-vhyfid),y) +QCAHYD_MAKE_OPTS+= \ + GATEWAY_PROFILE_VHYFI=y +endif + +ifeq ($(CONFIG_HYD_WIFI_LOAD_BALANCING),y) +QCAHYD_MAKE_OPTS+= \ + WHCWLBDIR=$(STAGING_DIR)/usr/include/whc-wlb \ + HYD_MODULE_WLB=y +endif + +ifeq ($(CONFIG_HYD_SUPPORT_VHT160),y) +QCAHYD_MAKE_OPTS+= \ + HYD_SUPPORT_VHT160=y +endif + +ifneq ($(CONFIG_HYD_SUPPORT_CALLTRACE),) +RSTRIP:=: +STRIP:=: +QCAHYD_MAKE_OPTS+= \ + CALLTRACE_SUPPORT=y +endif + +ifeq ($(CONFIG_HYD_SUPPORT_BREAKPAD),y) +QCAHYD_MAKE_OPTS+=QCACFLAGS+=" -DINCLUDE_BREAKPAD -g3" +QCAHYD_MAKE_OPTS+=QCALDFLAGS+=" -lbreakpad_qcawrapper" +endif + +ifeq ($(CONFIG_ENABLE_SON_MEMORY_DEBUG),y) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON_MEMORY_DEBUG=y \ + SONMEMDEBUGINCLUDE=$(STAGING_DIR)/usr/include/son-mem-dbg +endif + +ifneq ($(CONFIG_PACKAGE_qca-mad),) +QCAHYD_MAKE_OPTS+= \ + HYD_SUPPORT_DESERVICE=y +endif +ifneq ($(CONFIG_HYD_DPP_ONBOARD_ENABLE),) +QCAHYD_MAKE_OPTS+= \ + MAP_SUPPORT_DPP_ENABLE=y +endif + + +QCAHYD_DEPENDS+=+ENABLE_SON_MEMORY_DEBUG:qca-son-mem-debug + +__busybox_have_default:=$(shell $(SH_FUNC) grep '^CONFIG_BUSYBOX_DEFAULT_HAVE_DOT_CONFIG' $(TOPDIR)/.config) +ifeq ($(__busybox_have_default),) +BUSYBOX_SYM:=CONFIG +else +BUSYBOX_SYM:=DEFAULT +endif + +LOCAL_VARIANT=$(patsubst qca-hyd-%,%,$(patsubst qca-hyd-%,%,$(BUILD_VARIANT))) + +ifeq ($(LOCAL_VARIANT),all) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON=y \ + ENABLE_MAP=y +endif + +ifeq ($(LOCAL_VARIANT),son) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON=y +endif + +ifeq ($(LOCAL_VARIANT),map) +QCAHYD_MAKE_OPTS+= \ + ENABLE_MAP=y +endif + +ifeq ($(LOCAL_VARIANT),init) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON=y \ + ENABLE_MAP=y +endif + +ifeq ($(LOCAL_VARIANT),plc) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON=y \ + ENABLE_MAP=y +endif + +ifeq ($(LOCAL_VARIANT),sonplc) +QCAHYD_MAKE_OPTS+= \ + ENABLE_SON=y +endif + +INSTALL_LIBS:= libpluginManager libpsService libmcfwdtblwlan5g libmcfwdtblwlan2g libmcfwdtblwlan6g libmcfwdtbleswitch + +define Package/qca-hyd/Default + SECTION:=QCA + CATEGORY:=$(QTI_SOFTWARE_CATEGORY) + URL:=http://www.qca.qualcomm.com + MAINTAINER:=Qualcomm Atheros + DEPENDS+=+HYD_SUPPORT_CALLTRACE:libunwind @$(WIFI_PKGS) +qca-ieee1905-init +kmod-qca-hyfi-bridge +qca-libhyfi-bridge +libieee1905 +libubus +libubox \ + +qca-hyctl +libhyficommon +SUPPORT_WIFISON_EXT_LIB:qca-wifison-ext-lib +libwifisoncfg +libpthread +libuci +libwpa2 +@BUSYBOX_$(BUSYBOX_SYM)_STAT \ + +@BUSYBOX_$(BUSYBOX_SYM)_FEATURE_STAT_FORMAT +HYD_WIFI_LOAD_BALANCING:qca-whc-lbd \ + +jansson +HYD_SUPPORT_BREAKPAD:breakpad-wrapper $(QCAHYD_DEPENDS) + TITLE:=Hy-Fi Path-Selection daemon + SUBMENU:=Hy-Fi features +endef + +define Package/qca-hyd/Default/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DIR) $(1)/etc/init.d + $(if $(INSTALL_LIBS),$(CP) $(foreach lib,$(INSTALL_LIBS),$(PKG_BUILD_DIR)/install/lib/$(lib).so) $(1)/usr/lib) + $(INSTALL_BIN) ./files/hyt $(1)/usr/sbin/hyt + $(INSTALL_CONF) ./files/hyd.config $(1)/etc/config/hyd +ifeq ($(LINUX_VERSION),3.3.8) + $(INSTALL_BIN) ./files/hyd_noprocd.init $(1)/etc/init.d/hyd +else + $(INSTALL_BIN) ./files/hyd.init $(1)/etc/init.d/hyd +endif + $(INSTALL_DIR) $(1)/etc/hotplug.d/net + $(INSTALL_BIN) ./files/hyd.hotplug $(1)/etc/hotplug.d/net/30-hyd +endef + +# HYD COMMON + +define Package/qca-hyd-init + $(call Package/qca-hyd/Default) + TITLE+= (Common package files) + VARIANT:=init +endef + +define Package/qca-hyd-init/description + This package installs the Hy-Fi Path-Selection daemon init package files for SON and MAP execution + support. +endef + + +# SINGLE PACKAGE (MAP + SON) ============================= + +define Package/qca-hyd + $(call Package/qca-hyd/Default) + TITLE+= (with SON and MAP features) + VARIANT:=all +endef + +define Package/qca-hyd/description + This package installs the Hy-Fi Path-Selection daemon build with both SON and MAP features +endef + +define Package/qca-hyd/config + source "$(SOURCE)/Config.in" +endef + +# SON PACKAGE ============================= + +define Package/qca-hyd-son + $(call Package/qca-hyd/Default) + DEPENDS+=+qca-hyd-init + TITLE+= (with SON features) + VARIANT:=son +endef + +define Package/qca-hyd-son/description + This package installs the Hy-Fi Path-Selection daemon build with SON +endef + +# MAP PACKAGE ============================= + +define Package/qca-hyd-map + $(call Package/qca-hyd/Default) + DEPENDS+=+qca-hyd-init + TITLE+= (with MAP features) + VARIANT:=map +endef + +define Package/qca-hyd-map/description + This package installs the Hy-Fi Path-Selection daemon build with MAP +endef + +# HYD PLC SON PACKAGE + +define Package/qca-hyd-sonplc + $(call Package/qca-hyd/Default) + DEPENDS+=+qca-hyd-init +qca-plc-serv + TITLE+= (with SON and PLC features) + VARIANT:=sonplc +endef + +define Package/qca-hyd-sonplc/description + This package installs the Hy-Fi Path-Selection daemon build with SON and PLC features +endef + +# HYD SON + MAP + PLC PACKAGE + +define Package/qca-hyd-plc + $(call Package/qca-hyd/Default) + DEPENDS+=+qca-plc-serv + TITLE+= (with SON/MAP and PLC features) + VARIANT:=plc +endef + +define Package/qca-hyd-plc/description + This package installs the Hy-Fi Path-Selection daemon build with SON/MAP and PLC + support. +endef + +# qca-wifison-ext-lib package + +define Package/qca-wifison-ext-lib + $(call Package/qca-hyd/Default) + DEPENDS+=+SUPPORT_WIFISON_EXT_LIB:qca-wifison-ext-lib +endef + +QCA_HYD_HEADERS= \ + $(PKG_BUILD_DIR)/include/heServiceConfig.h \ + $(PKG_BUILD_DIR)/include/logServiceConfig.h \ + $(PKG_BUILD_DIR)/include/pcpServiceConfig.h \ + $(PKG_BUILD_DIR)/include/pcwServiceConfig.h \ + $(PKG_BUILD_DIR)/include/psServiceConfig.h \ + $(PKG_BUILD_DIR)/include/tdServiceConfig.h \ + $(PKG_BUILD_DIR)/include/wlanManagerConfig.h \ + $(PKG_BUILD_DIR)/include/hcpConfig.h \ + $(PKG_BUILD_DIR)/include/ieee1905Config.h + +ifneq ($(shell [ -d $(LOCAL_SRC) ] && echo true),) +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include/hyd + $(foreach header_file,$(QCA_HYD_HEADERS), $(CP) $(header_file) $(1)/usr/include/hyd;) +endef +endif + + +define Build/Compile + mkdir -p $(PKG_BUILD_DIR)/install/lib + mkdir -p $(PKG_BUILD_DIR)/install/include + mkdir -p $(PKG_BUILD_DIR)/install/sbin + $(MAKE) -C $(PKG_BUILD_DIR) $(strip $(QCAHYD_MAKE_OPTS)) subdirs +endef + +# install + +define Package/qca-hyd/install + $(call Package/qca-hyd/Default/install, $(1)) + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/sbin/hyd $(1)/usr/sbin/ + $(INSTALL_BIN) ./files/hyd-map-cmd $(1)/usr/sbin/hyd-map-cmd +endef + +define Package/qca-hyd-plc/install + $(call Package/qca-hyd/Default/install, $(1)) + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/sbin/hyd $(1)/usr/sbin/ +endef + +define Package/qca-hyd-son/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/sbin/hyd-son $(1)/usr/sbin/ +endef + +define Package/qca-hyd-map/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_DIR) $(1)/etc/hyd/map/ + $(INSTALL_BIN) ./files/hyd-map-cmd $(1)/usr/sbin/hyd-map-cmd + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/sbin/hyd-map $(1)/usr/sbin/ + $(INSTALL_CONF) ./files/sp-rules.conf $(1)/etc/hyd/map/ +endef + +define Package/qca-hyd-sonplc/install + $(INSTALL_BIN) $(PKG_BUILD_DIR)/install/sbin/hyd-son $(1)/usr/sbin/ +endef + +define Package/qca-hyd-init/install + $(call Package/qca-hyd/Default/install, $(1)) +endef + + + +# Customer install - TBD + +$(eval $(call BuildPackage,qca-hyd)) +$(eval $(call BuildPackage,qca-hyd-plc)) +$(eval $(call BuildPackage,qca-hyd-son)) +$(eval $(call BuildPackage,qca-hyd-map)) +$(eval $(call BuildPackage,qca-hyd-sonplc)) +$(eval $(call BuildPackage,qca-hyd-init)) diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd-map-cmd b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd-map-cmd new file mode 100644 index 000000000..c85a5602a --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd-map-cmd @@ -0,0 +1,10 @@ +#!/bin/sh +# Copyright (c) 2018 Qualcomm Technologies, Inc. +# +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. + +PIPE_PATH="/var/run/hyd-map-cmd.fifo" +if [ -p $PIPE_PATH ] && [ -w $PIPE_PATH ]; then + echo $* > $PIPE_PATH +fi diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.config b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.config new file mode 100644 index 000000000..99344e242 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.config @@ -0,0 +1,275 @@ +config config 'config' + option Enable '0' + option ForceWextMode '0' + option SwitchInterface 'auto' + option SwitchLanVid '1' + option Control 'manual' + option DisableSteering '0' + +config hy 'hy' + option LoadBalancingSeamless '1' + option ConstrainTCPMedium '0' + option MaxLBReordTimeout '1500' + option HActiveMaxAge '120000' + option ForwardingMode 'APS' + option HMWDSProgramRetryCount '0' + +config Wlan 'Wlan' + option WlanCheckFreqInterval '10' + option WlanALDNLNumOverride '0' + option WlanALDMulticast '0' + +config Vlanid + option ifname 'eth1' + option vid '1' + +config Vlanid + option ifname 'eth0' + option vid '2' + +config PathChWlan 'PathChWlan' + option UpdatedStatsInterval_W2 '1' + option StatsAgedOutInterval_W2 '30' + option MaxMediumUtilization_W2 '70' + option MediumChangeThreshold_W2 '10' + option LinkChangeThreshold_W2 '10' + option MaxMediumUtilizationForLC_W2 '70' + option CPULimitedTCPThroughput_W2 '0' + option CPULimitedUDPThroughput_W2 '0' + option PHYRateThresholdForMU_W2 '2000' + option ProbePacketInterval_W2 '1' + option ProbePacketSize_W2 '64' + option EnableProbe_W2 '1' + option AssocDetectionDelay_W2 '5' + option UpdatedStatsInterval_W5 '1' + option StatsAgedOutInterval_W5 '30' + option MaxMediumUtilization_W5 '70' + option MediumChangeThreshold_W5 '10' + option LinkChangeThreshold_W5 '10' + option MaxMediumUtilizationForLC_W5 '70' + option CPULimitedTCPThroughput_W5 '0' + option CPULimitedUDPThroughput_W5 '0' + option PHYRateThresholdForMU_W5 '2000' + option ProbePacketInterval_W5 '1' + option ProbePacketSize_W5 '64' + option EnableProbe_W5 '1' + option AssocDetectionDelay_W5 '5' + option UpdatedStatsInterval_W6 '1' + option StatsAgedOutInterval_W6 '30' + option MaxMediumUtilization_W6 '70' + option MediumChangeThreshold_W6 '10' + option LinkChangeThreshold_W6 '10' + option MaxMediumUtilizationForLC_W6 '70' + option CPULimitedTCPThroughput_W6 '0' + option CPULimitedUDPThroughput_W6 '0' + option PHYRateThresholdForMU_W6 '2000' + option ProbePacketInterval_W6 '1' + option ProbePacketSize_W6 '64' + option EnableProbe_W6 '1' + option AssocDetectionDelay_W6 '5' + option UseWHCAlgorithm '1' + option NumUpdatesUntilStatsValid '3' + +config PathChPlc 'PathChPlc' + option MaxMediumUtilization '80' + option MediumChangeThreshold '10' + option LinkChangeThreshold '10' + option StatsAgedOutInterval '60' + option UpdateStatsInterval '1' + option EntryExpirationInterval '120' + option MaxMediumUtilizationForLC '80' + option LCThresholdForUnreachable '5' + option LCThresholdForReachable '10' + option HostPLCInterfaceSpeed '0' + +config Topology 'Topology' + option ND_UPDATE_INTERVAL '15' + option BD_UPDATE_INTERVAL '3' + option HOLDING_TIME '190' + option TIMER_LOW_BOUND '7' + option TIMER_UPPER_BOUND '11' + option MSGID_DELTA '64' + option HA_AGING_INTERVAL '120' + option ENABLE_TD3 '1' + option ENABLE_BD_SPOOFING '1' + option NOTIFICATION_THROTTLING_WINDOW '1' + option PERIODIC_QUERY_INTERVAL '60' + option ENABLE_NOTIFICATION_UNICAST '1' + +config HSPECEst 'HSPECEst' + option UpdateHSPECInterval '1' + option NotificationThresholdLimit '10' + option NotificationThresholdPercentage '20' + option AlphaNumerator '3' + option AlphaDenominator '8' + option LocalFlowRateThreshold '2000000' + option LocalFlowRatioThreshold '5' + option MaxHActiveEntries '8192' + +config PathSelect 'PathSelect' + option UpdateHDInterval '10' + option LinkCapacityThreshold '20' + option UDPInterfaceOrder 'EP652' + option NonUDPInterfaceOrder 'EP652' + option SerialflowIterations '10' + option DeltaLCThreshold '10' + option EnableBadLinkStatsSwitchFlow '1' + +config LogSettings 'LogSettings' + option EnableLog '0' + option LogRestartIntervalSec '10' + option LogPCSummaryPeriodSec '0' + option LogServerIP '192.168.1.10' + option LogServerPort '5555' + option EnableLogPCW2 '1' + option EnableLogPCW5 '1' + option EnableLogPCW6 '1' + option EnableLogPCP '1' + option EnableLogTD '1' + option EnableLogHE '1' + option EnableLogHETables '1' + option EnableLogPS '1' + option EnableLogPSTables '1' + option LogHEThreshold1 '200000' + option LogHEThreshold2 '10000000' + +config IEEE1905Settings 'IEEE1905Settings' + option StrictIEEE1905Mode '0' + option GenerateLLDP '1' + option AvoidDupRenew '0' + option AvoidDupTopologyNotification '0' + option MapVersionEnabled '0' + +config HCPSettings 'HCPSettings' + option V1Compat '1' + +config MultiAP 'MultiAP' + option EnableController '0' + option EnableAgent '0' + option EnableSigmaDUT '0' + option MapVersion '1' + option EnableIEEE1905Assist '0' + option ClientAssocCtrlTimeoutSec '0' + option ClientAssocCtrlTimeoutUsec '200000' + option ShortBlacklistTimeSec '2' + option AlwaysClearBlacklists '1' + option ClientSteerTimeoutSec '1' + option ClientSteerTimeoutUsec '0' + option MetricsReportingInterval '5' + option RSSIHysteresis_W2 '5' + option RSSIHysteresis_W5 '5' + option RSSIHysteresis_W6 '5' + option LoadBalancingInterval '30' + option EnableChannelSelection '0' + option MinPreferredChannelIndex '36' + option MaxPreferredChannelIndex '99' + option EnableTopologyOpt '0' + option TopologyOptCron '0 3 * * *' + option TopologyOptNewAgentDelay '300' + option TopologyOptDelAgentDelay '180' + option TopologyOptCollectionTime '3' + option TopologyOptActivityMonitoringSecs '45' + option TopologyOptMinIncreasePercentage '20' + option TopologyOptAllowActiveSteer '0' + option TopologyOptMaxIdleWaitSecs '1800' + option TopologyOptSettlingTime '120' + option BackhaulSteeringRspSendTimeout '10' + option UnassocMetricsRspWaitTimeSec '8' + option UnassocMetricsRspMsgTimeout '5' + option CBSDwellSplitMSec '50' + option CBSDelaySec '300' + option CBSStateResetSec '300' + option BkScanIntervalMin '0' + option EnableCronBasedBkScan '0' + option BkScanCron '0 * * * *' + option UseCBSRankForHomeChan '0' + option EnableChanPrefQuery '0' + option ChanPrefQueryCron '0 2 * * *' + option ChannelSelectionDelaySec '0' + option ChannelSelectionOnGlobalPref '0' + option ChanSupervisionMinDelaySec '4' + option ChanSupervisionMaxDelaySec '32' + option ChanSupervisionMaxAttempts '8' + option ChanSupervisionIntervalSec '450' + option ChanSupervisionTolerate40MHzCoexRulesOn24GHz '1' + option ControllerChanSelection160MHz '0' + option AgentChanSelection160MHz '0' + option ControllerChanSelection40MHzOn2G '0' + option AgentChanSelection40MHzOn2G '0' + option ChanSelectionMinIncPercent '30' + option AgentChanMismatchCheckInterval '60' + option UnassocRSSIAgeLimitSec '15' + option UnassocPeriodicQueryTimeSec '8' + option UnassocActiveClientTimeoutSec '300' + option UnassocMetricsDriverPollingTime '1' + option EnableBootOnlyScan '0' + option ChanScanIntervalMin '60' + option MapR1R2MixNotSupported '1' + option MapPFCompliant '0' + option NumberOfVLANSupported '0' + option Map2TrafficSepEnabled '0' + option Map8021QPCP '0' + option FronthaulSSIDPrimary '' + option VlanIDNwPrimary '0' + option FronthaulSSIDNwOne '' + option VlanIDNwOne '0' + option FronthaulSSIDNwTwo '' + option VlanIDNwTwo '0' + option FronthaulSSIDNwThree '' + option VlanIDNwThree '0' + option VlanNetworkPrimary '' + option CombinedR1R2Backhaul '1' + option EnableChannelScanRequest '1' + option EnableRptIndependentScan '1' + option UseCACResultForChanSelection '0' + option fallback_freq_5GH '5745' + option fallback_freq_5GL '5180' + option EnableZeroBss '0' + option BasicCap2G '02 03 51 e2 02 0c 0d 53 e2 00 54 e2 02 0c 0d' + option BasicCap5G '02 07 73 e2 00 74 e2 00 75 e2 00 76 e2 00 77 e2 00 78 e2 00 80 e2 04 6a 7a 8a 9b' + option EnableQCapability '0' + option Enable1905Security '0' + +config MultiAPSPSettings 'MAPSPSettings' + option EnableSP '0' + option EnableEnhancedSP '0' + option MaxSPRules '0' + option EnableQSP '0' + option SPRulesConfPath '/etc/hyd/map/sp-rules.conf' + +config MultiAPInventorySettings 'MAPInventorySettings' + option SerialNumber '8074' + option ExecutionEnvironment 'Linux' + option ChipsetVendor "QTI" + option SoftwareVersion "11.x" + +config SteerMsg 'SteerMsg' + option AvgUtilReqTimeout '1' + option LoadBalancingCompleteTimeout '90' + option RspTimeout '2' + +config Monitor 'Monitor' + option MonitorTimer '60' + option MonitorResponseTimeout '5' + +config Debug 'Debug' + option EnableMemDebug '0' + +config mc 'mc' + option AlwaysFloodUpdate '0' + +config MultiAPConfigSettings 'MAPConfigSettings' + option EnableConfigService '0' + option MapConfigDumpToFile '0' + option RoleController '0' + option RoleAgent '0' + option DebugLevel '0' + option MapEProfile 'generic' + option MapMaxBss '4' + option bridge1 '' + option bridge2 '' + option bridge3 '' + option backhaul '' + option MapOnboardingType '' + option DPPConfiguratorKey '' + option DPPMyBootstrap '' diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.hotplug b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.hotplug new file mode 100644 index 000000000..0c43751ef --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.hotplug @@ -0,0 +1,83 @@ +#!/bin/sh + +. /lib/functions.sh +. /lib/functions/network.sh +. /lib/functions/hyfi-iface.sh +. /lib/functions/hyfi-network.sh + +wan_protocol="pppoe" + +__wan_pppoe_mode() { + local ifname wan_proto + + ifname=`uci get network.wan.ifname` + wan_proto=`uci get network.wan.proto` + + case "$ACTION" in + add) + if [[ "${ifname}" = "${INTERFACE}" -a "${wan_protocol}" = "${wan_proto}" ]]; + then + return 1 + fi + ;; + remove) + if [[ "${ifname}" = "${INTERFACE}" -a "${wan_protocol}" = "${wan_proto}" ]]; + then + return 1 + fi + ;; + esac + return 0 +} + +hyd_restart_aggr() { + local fileflag="/tmp/.hyd.restart.pending" + + touch "$fileflag" + + sleep 7 + + [ -f "$fileflag" ] || return + + a=`stat -c %Y $fileflag` + b=`date +%s` + c=`expr $b - $a` + [ "$c" -ge 7 ] || return + + [ -f "$fileflag" ] || return + rm -f $fileflag + + /etc/init.d/hyd restart +} + +hyd_restart() { + local exescript + + exescript=`ls /etc/hotplug.d/net/*hyd* 2>&-` + [ -n "$exescript" ] || return + + # Restart with aggregation(background) + exescript="$exescript &" + eval $exescript +} + +trap '' INT TERM ABRT QUIT ALRM + +enabled +config_load 'hyd' +config_get_bool enabled config 'Enable' '0' +[ "$enabled" -eq 0 ] && return + +if [ -n "$1" ] ; then # Called by hotplugd + case "$INTERFACE" in + ath*|eth*|eth*.*|br*) + __wan_pppoe_mode + if [ "$?" -eq 0 ]; then + hyd_restart + fi + ;; + esac +else # Called directly + hyd_restart_aggr +fi + diff --git a/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.init b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.init new file mode 100644 index 000000000..5b7049326 --- /dev/null +++ b/qaa/hyfi/qca-hyfi-networking/qca-hyd/files/hyd.init @@ -0,0 +1,1074 @@ +#!/bin/sh /etc/rc.common +# +# Copyright (c) 2013, 2017-2019, 2021 Qualcomm Technologies, Inc. +# All Rights Reserved. +# Confidential and Proprietary - Qualcomm Technologies, Inc. +# +# 2013 Qualcomm Atheros, Inc. +# +# All Rights Reserved. +# Qualcomm Atheros Confidential and Proprietary. + +START=55 +USE_PROCD=1 +RESPAWN_THRESHOLD=120 +RESPAWN_TIMEOUT=5 +RESPAWN_RETRIES=10 +SERVICE_PATH="/usr/sbin/hyd" +HYD_CONFIG_FILE_PREFIX="/tmp/hyd" + +# The stop_wifidown command is a special command that does not try to do +# any locking in order to prevent deadlocks during a wifi down operation +# that is actually part of a Wi-Fi interface restart. +EXTRA_COMMANDS="stop_wifidown" +EXTRA_HELP=<> "$configfile" +} + +__hyd_cfg_nl_append() { + local configfile=$2 + echo "" >> "$configfile" + echo "$1" >> "$configfile" +} + +# __hyd_cfg_add_persist_str