Merge "Merge remote-tracking branch 'gfiber-internal/vendor_drops' into master"
diff --git a/HOW.GFIBER.quantenna.sdk.unpack b/HOW.GFIBER.quantenna.sdk.unpack
index b5e5cc1..b2b026c 100644
--- a/HOW.GFIBER.quantenna.sdk.unpack
+++ b/HOW.GFIBER.quantenna.sdk.unpack
@@ -10,21 +10,64 @@
$ cd uboot/qsr1000
$ git checkout -b l-vendor gfiber-internal/vendor_drops
- (use rm with -rf splat, but make sure you're in the right place)
+ $ use rm with -rf splat, but make sure you're in the right place
$ tar xvzpf $DOWNLOADS/$SDK
The SDK includes both u-boot and linux, but we're only interested in the u-boot part.
Prune the set of files/directories down to what we want
$ cd quantenna-sdk-*
- $ rm -rf buildroot call_qcsapi_client_src.zip dbdc-quantenna-bin-*.tar drivers Kconfig libqcsapi_client_src.zip linux linux_2.6.35.12 pcie-host-quantenna-bin-*.tar pcie-quantenna-bin-*.tar post-process-configs.awk power_tables quantenna-bin-*.tar quantenna-hostapd-*.tar rfic6-quantenna-bin-*.tar common/doxygen
-
-Move the remaining files into a quantenna specific directory under u-boot
$ mkdir u-boot/quantenna
- $ for ix in board_config.mk common configs host include Makefile Make.toolchain; do mv ${ix} u-boot/quantenna; done
+ $ cat <<EOF | xargs tar cpf - | ( cd u-boot/quantenna ; tar xvpf - )
+./common/common_mem.h
+./common/current_platform.h
+./common/ruby_arasan_emac_ahb.h
+./common/ruby_board_cfg.h
+./common/ruby_board_db.h
+./common/ruby_config.h
+./common/ruby_partitions.h
+./common/ruby_pcie_bda.h
+./common/ruby_platform.h
+./common/ruby_spi_api.h
+./common/ruby_spi_flash_data.h
+./common/ruby_version.h
+./common/topaz_config.h
+./common/uboot_header.h
+./host/utilities/lzma
+./include/qtn/shared_defs_common.h
+./Make.toolchain
+EOF
Then move everything up to where it really belongs
$ mv quantenna-sdk-v37.4.8.62/u-boot/* quantenna-sdk-v37.4.8.62/u-boot/.??* .
$ rm -rf quantenna-sdk-v37.4.8.62
$ git add --all
+
+
+============================================================
+The files we're interested in (and copied to u-boot/quantenna) was
+determined emperically by danielmentz@ using loggedfs and manual
+searching through the output.
+
+ To start loggedfs, I used
+ loggedfs -c ~/h/projects/skids/u-boot-loggedfs.xml -l /tmp/log $PWD ; cd $PWD
+
+ To stop it, I used
+ killall -w loggedfs ; cd $PWD
+
+ To analyse the output, I used:
+ grep -oe '/usr[^ ]*' /tmp/log | sort -u
+
+u-boot-loggedfs.xml contains:
+
+<?xml version="1.0" encoding="UTF-8"?>
+
+<loggedFS logEnabled="true" printProcessName="true">
+ <includes>
+ <include extension="<PATH-to-tree>/u-boot.build/.*" uid="*" action="^(open.*|readdir|readlink)$" retname="SUCCESS"/>
+ <!-- include extension="<PATH-to-tree>/u-boot.build/.*" uid="*" action=".*" retname="SUCCESS"/ -->
+ </includes>
+</loggedFS>
+
+Make sure to change the paths in the config file according to your setup.
diff --git a/quantenna/Makefile b/quantenna/Makefile
deleted file mode 100644
index 58a2180..0000000
--- a/quantenna/Makefile
+++ /dev/null
@@ -1,769 +0,0 @@
-#
-# Copyright (c) 2007-2014 Quantenna Communications, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# Top-level makefile for building the entire system.
-#
-
-default: help
-
-ifndef board_config
--include board_config.mk
-endif
-
-include Make.toolchain
-
-# Provide a default config
-board_config ?= topaz_config
-board_platform ?= $(shell perl -e 'if ( "$(board_config)" =~ /topaz/ ) { print "topaz"; } else { print "ruby"; }')
-board_type ?= asic
-spi ?= yes
-wmac_mode ?= ap
-arc770 ?= no
-arc_rev_ge_4_10 ?= no
-qtn_hal_pm_corrupt_debug ?= no
-pre ?= no # include prepopulated files
-bb_only ?= 1
-br2_jlevel ?= $(shell echo -n $$((`nproc || echo 0` + 1)))
-
-br2_jlevel_max := 5
-br2_jlevel := $(shell \
- if [ $(br2_jlevel) -gt $(br2_jlevel_max) ] ; \
- then echo $(br2_jlevel_max) ; \
- else echo $(br2_jlevel) ; \
- fi)
-
-ifneq ($(filter topaz_pcie_config topaz_rgmii_config topaz_vzn_config,$(board_config)),)
-mini_uboot_enabled ?= 1
-endif
-
-ifneq ($(filter topaz_pcie_config,$(board_config)),)
-tiny_uboot_enabled ?= 0
-endif
-
-sigma_testbed_support_enabled ?= 0
-tkip_support_enabled ?= $(sigma_testbed_support_enabled)
-flash_env_size ?= 24
-
-# export firmware staging area to child makefiles
-QTN_FW_STAGING_REL = buildroot/target/device/Quantenna/Ruby/fw/$(board_platform)-bin
-QTN_FW_PREBUILD_REL = buildroot/target/device/Quantenna/Ruby/fw_bin/$(board_platform)-bin
-QTN_FW_STAGING = $(shell pwd)/$(QTN_FW_STAGING_REL)
-
-QTN_FW_PREBUILD = $(shell pwd)/$(QTN_FW_PREBUILD_REL)
-export QTN_FW_STAGING QTN_FW_STAGING_REL QTN_FW_PREBUILD
-
-AWK := awk
-CONFIG_AWK := ./post-process-configs.awk
-export NEW_CONFIG = .config.new
-first_run = .first_run
-
-QDRV_DIR = drivers/qdrv
-QDRV_CONFIG_FILE = $(QDRV_DIR)/qdrv_config.h
-PLATFORM_ID_FILE = buildroot/target/device/Quantenna/Ruby/scripts/platform_id
-POWER_TABLES_DIR = power_tables
-
-# Directory sub-tree names for the major modules in the RUBY software tree
-kdir := linux
-udir := u-boot
-fsdir := buildroot
-hostdir := host
-commondir := common
-macfwdir := macfw
-aucfwdir := aucfw
-rdspfwdir := rdspfw
-tftpdir := tftp
-
-ifeq ($(ccache_enable),yes)
-compile_prefix := $(target_prefix)
-TARGET_CC_FOR_BR := TARGET_CC=$(target_prefix)gcc TARGET_CROSS=$(target_prefix)
-export PATH := $(PATH):$(tools_path)
-else
-compile_prefix := $(tools_path)$(target_prefix)
-TARGET_CC_FOR_BR :=
-endif
-
-# Where the kernel modules live
-INSTALL_MOD_PATH := $(PWD)/$(kdir)/modules
-
-# Configuration file names
-busybox := busybox-1.10.3
-qcsapi := $(shell cd buildroot/package/qcsapi; ls -d qcsapi-*.*)
-
-# The final image used by U-Boot to boot
-image_suffix :=
-.PHONY: image_suffix
-
-PROFILE_MUC_EP :=
-PROFILE_MUC_PG :=
-PROFILE_MUC_P :=
-PROFILE_LINUX_EP :=
-PROFILE_MUC_SAMPLE_DCACHE :=
-PROFILE_MUC_SAMPLE_IPTR :=
-PROFILE_MUC_SAMPLE_IPTR_AUC :=
-PROFILE_MUC_DROP_PACKETS :=
-PROFILE_LINUX_SAMPLE_IPTR :=
-PROFILE_LINUX_SAMPLE_DCACHE :=
-PROFILE_MUC_SAMPLE_DCACHE :=
-POST_RF_LOOP :=
-.PHONY: PROFILE_MUC_EP PROFILE_MUC_PG PROFILE_MUC_P PROFILE_LINUX_EP PROFILE_MUC_SAMPLE_DCACHE PROFILE_MUC_SAMPLE_IPTR PROFILE_MUC_SAMPLE_IPTR_AUC PROFILE_LINUX_SAMPLE_DCACHE PROFILE_MUC_DROP_PACKETS PROFILE_LINUX_SAMPLE_IPTR POST_RF_LOOP
-export PROFILE_MUC_EP
-export PROFILE_MUC_P
-export PROFILE_MUC_PG
-export PROFILE_LINUX_EP
-export PROFILE_MUC_SAMPLE_DCACHE
-export PROFILE_MUC_SAMPLE_IPTR
-export PROFILE_MUC_SAMPLE_IPTR_AUC
-export PROFILE_MUC_DROP_PACKETS
-export PROFILE_LINUX_SAMPLE_IPTR
-export PROFILE_LINUX_SAMPLE_DCACHE
-export POST_RF_LOOP
-
-uncompressed-boot-image := $(tftpdir)/$(board_platform)-linux.img$(image_suffix)
-gz-boot-image := $(tftpdir)/$(board_platform)-linux.gz.img$(image_suffix)
-lzma-boot-image := $(tftpdir)/$(board_platform)-linux.lzma.img$(image_suffix)
-
-# Where the kernel compiled image is...
-kimage := $(kdir)/arch/arc/boot/Image
-gz_compressed_kimage := $(kimage).gz
-lzma_compressed_kimage := $(kimage).lzma
-
-# lzma executable
-LZMA := host/utilities/lzma
-CHECK_LZMA_SIZE := host/utilities/check_lzma_image_size
-
-STORE_OBJS := linux/vmlinux macfw/qtn_ruby macfw/bb_only $(shell find drivers/ -name \*.ko)
-
-SPARSE = host/utilities/sparse/install/bin/sparse
-
-# What revision are we building?
-rev_num_file:=buildroot/target/device/Quantenna/Ruby/scripts/rev_num
-rev_num:=$(shell cat ${rev_num_file} 2>/dev/null)
-doc_rev_ext:=$(rev_num)
-
-$(fsdir)/.config.% $(fsdir)/package/busybox/$(busybox)/.config.%: ./configs/%
- rm -f $(@F)
- cat $< > $(@F)
- $(AWK) -f $(CONFIG_AWK) $(@F)
- cd $(fsdir); \
- if ! cmp -s $(@F) $(NEW_CONFIG); then \
- cp $(NEW_CONFIG) $(@F); fi
- cd $(fsdir)/package/busybox/$(busybox); \
- if ! cmp -s .config.$(@F) $(NEW_CONFIG); then \
- cp $(NEW_CONFIG) $(@F); fi
-
-$(kdir)/.config.%: $(kdir)/arch/arc/configs/%
- cat $< > $@
-
-BUILD_CONFIGS = $(fsdir)/.config.$(board_config) \
- $(fsdir)/package/busybox/$(busybox)/.config.$(board_config) \
- $(kdir)/.config.$(board_config)
-
-define setconfigs
- # setting configurations to $(1)
- cd $(kdir); \
- ln -fs .config.$(1) .config.current; \
- cp .config.current .config
- cd $(fsdir); \
- ln -fs .config.$(1) .config.current; \
- cp .config.current .config
- cd $(fsdir)/package/busybox/$(busybox); \
- ln -fs .config.$(1) .config.unpatched.current; \
- touch .config.unpatched.current
-endef
-
-# copy possibly modified configs back over the board specific config
-define syncconfigs
- # Syncing configs
- @if [ -f $(kdir)/.config ] ; then \
- cat $(kdir)/.config > $(kdir)/.config.current; \
- fi
-
- @if [ -f $(fsdir)/.config ] ; then \
- cat $(fsdir)/.config > $(fsdir)/.config.current; \
- fi
-endef
-
-test_config: buildroot/.config buildroot/package/busybox/busybox-1.10.3/.config
- perl -e 'foreach $$file qw($^) { foreach $$line (`cat $$file`) { $$p = `dirname $$file`; chop($$p); print "#prefix0#$$p/#\n$$line"; } }' > configs/test
- sed -i 's@#prefix0#buildroot/package@#prefix7#buildroot/package@' configs/test
-# -------------------------------------------------------------------------
-# Configuration targets
-# -------------------------------------------------------------------------
-
-help:
- @echo "Use make image or make fromscratch"
-
-config: configupdate
-
-ALL_CONFIGS = topaz_config \
- topaz_rfic6_config \
- topaz_host_config \
- topaz_pcie_config \
- topaz_np_config \
- topaz_rgmii_config \
- topaz_vzn_config \
- topaz_dbdc_config \
- topaz_msmr_config \
- topaz_msft_config
-
-.PHONY: $(ALL_CONFIGS) config get_current_config get_current_platform board_config board_platform
-
-ifeq ($(board_config),topaz_host_config)
-QTN_FWS := dsp
-else
-QTN_FWS := muc auc dsp
-endif
-
-define copy_if_changed
- cmp --quiet $1 $2 || cp -v $1 $2
-endef
-
-board_config.mk.tmp: force
- rm -f $@
- echo "# Automatically generated file. Do not edit." >> $@
- echo "# use 'make xxxx_config' instead" >> $@
- echo "export board_config = $(board_config)" >> $@
- echo "export board_type = $(board_type)" >> $@
- echo "export board_platform = $(board_platform)" >> $@
- echo "export spi = $(spi)" >> $@
- echo "export qtn_hal_pm_corrupt_debug = $(qtn_hal_pm_corrupt_debug)" >> $@
- echo "export wmac_mode = $(wmac_mode)" >> $@
- echo "export arc770 = $(arc770)" >> $@
- echo "export arc_rev_ge_4_10 = $(arc_rev_ge_4_10)" >> $@
- echo "export pre = $(pre)" >> $@
- echo "export bb_only = $(bb_only)" >> $@
- @if [ "$(hw_config_id)" != "" ] ; then \
- echo "export hw_config_id = $(hw_config_id)" >> $@; \
- fi
- $(call copy_if_changed,$@,board_config.mk)
- rm $@
-
-common/current_platform.h.tmp: force
- @echo "Board type: $(board_type) config: $(board_config) platform: $(board_platform) selected"
- rm -f $@
- touch $@
-ifeq ($(board_platform),topaz)
- echo "#define TOPAZ_PLATFORM" >> $@
-ifeq ($(board_type),asic)
- echo "#define TOPAZ_FPGA_PLATFORM 0" >> $@
-else
- echo "#define TOPAZ_FPGA_PLATFORM 1" >> $@
-endif # board type
-ifeq ($(filter topaz_pcie_config,$(board_config)),)
- echo "#define TOPAZ_EMAC_NULL_BUF_WR" >> $@
-endif
-ifeq ($(ddr),umctl1)
- @echo "DDR3 UMCTL-1 Configuration"
- echo "#define TOPAZ_FPGA_UMCTL1" >> $@
-else
- @echo "DDR3 UMCTL-2 Configuration"
- echo "#undef TOPAZ_FPGA_UMCTL1" >> $@
-endif
-endif # topaz
-ifeq ($(spi),no)
- echo "#define PLATFORM_NOSPI $(spi)" >> $@
-endif
-ifneq ($(wmac_mode),)
- @echo "WMAC Mode $(wmac_mode)"
- echo "#define PLATFORM_WMAC_MODE $(wmac_mode)" >> $@
-endif
-ifneq ($(hw_config_id),)
- @echo "Default hw_config_id $(hw_config_id)"
- echo "#define PLATFORM_DEFAULT_BOARD_ID $(hw_config_id)" >> $@
-else
- echo "#undef PLATFORM_DEFAULT_BOARD_ID" >> $@
-endif
-ifeq ($(arc770),yes)
- echo "#define PLATFORM_ARC7_MMU_VER 3" >> $@
-endif
-ifneq ($(arc_rev_ge_4_10),yes)
-# For ARC hardware revisions prior to 4.10,
-# there is a hardware bug causing an ITLB Miss exception even if a
-# respective TLB entry already exists. This leads to duplicate TLB entries
-# if an ITLB Miss exception handler does not check whether such an entry
-# already exists:
-#
-# 1. Processor takes an ITLB Miss exception when the entry already exists.
-#
-# 2. ITLB Miss handler presumes that there is no such entry in TLB, and
-# looks for a proper TLB way and set to store the entry.
-#
-# 3. Because the hardware way selection is pseudo-random, it can return a
-# way number that may or may not match the way number of the existing
-# entry. If the way number is different, a duplicate TLB entry is created,
-# because the MMU checks for duplicate TLB entries only at the time of
-# look-up but not at the time of adding entries.
-#
-# The following ITLB Miss exception is eventually triggered with a cause
-# code indicating duplicated TLB entries. This may cause unexpected
-# behavior of the software.
-#
-# This option enables a software workaround for this HW problem.
- echo "#define ARC_HW_REV_NEEDS_TLBMISS_FIX" >> $@
-endif
-ifeq ($(qtn_hal_pm_corrupt_debug),yes)
- echo "#define QTN_HAL_PM_CORRUPT_DEBUG" >> $@
-endif
-ifneq ($(hbm_skb_allocator),)
- echo "#define TOPAZ_HBM_SKB_ALLOCATOR_DEFAULT $(hbm_skb_allocator)" >> $@
-endif
-ifneq ($(hbm_payload_count_s),)
- echo "#define TOPAZ_HBM_PAYLOAD_COUNT_S $(hbm_payload_count_s)" >> $@
- echo "#define TOPAZ_HBM_PAYLOAD_PTR_SECTION" >> $@
-endif
-ifeq ($(board_config),topaz_host_config)
- echo "#define QTN_RC_ENABLE_HDP" >> $@
-endif
-ifeq ($(board_config),topaz_pcie_config)
- echo "#define TOPAZ_DISABLE_FWT_WAR" >> $@
-endif
-
-ifeq (topaz_rfic6,$(board_config:topaz_rfic6%=topaz_rfic6))
- echo "#define TOPAZ_RFIC6_PLATFORM" >> $@
- echo "#define FLASH_SUPPORT_256KB" >> $@
- echo "#define ENABLE_C0_CALIB" >> $@
- echo "#define ENABLE_C0" >> $@
-else
-ifeq ($(flash_env_size), 24)
- echo "#define FLASH_SUPPORT_64KB" >> $@
-else
-ifneq ($(flash_env_size), 64)
- $(error Wrong flash environment size)
-endif
-endif
-endif
- echo "#define WPA_TKIP_SUPPORT $(tkip_support_enabled)" >> $@
- echo "#define SIGMA_TESTBED_SUPPORT $(sigma_testbed_support_enabled)" >> $@
-
- $(call copy_if_changed,$@,common/current_platform.h)
- rm $@
-
-$(ALL_CONFIGS):
- @if [ ! -f $(kdir)/arch/arc/configs/$@ ]; then \
- echo No kernel config found for board_config $@ ; \
- false ; \
- fi
- $(MAKE) -C . board_config=$@ board_platform=$(shell perl -e 'if ( "$@" =~ /topaz/ ) { print "topaz"; } else { print "ruby"; }') board_config.mk.tmp
- $(MAKE) -C . board_config=$@ board_platform=$(shell perl -e 'if ( "$@" =~ /topaz/ ) { print "topaz"; } else { print "ruby"; }') common/current_platform.h.tmp
- $(MAKE) -C . board_config=$@ board_platform=$(shell perl -e 'if ( "$@" =~ /topaz/ ) { print "topaz"; } else { print "ruby"; }') configupdate
- @if [ -d $(POWER_TABLES_DIR)/$@ ]; then \
- (cd $(POWER_TABLES_DIR) && ln -nsf $@ board_config) ; \
- else \
- rm -f $(POWER_TABLES_DIR)/board_config ; \
- fi
- echo "/* Automatically generated file. Do not edit. */" > $(QDRV_CONFIG_FILE);
- @echo -n "#define QDRV_CFG_PLATFORM_ID " >> $(QDRV_CONFIG_FILE)
- @echo $(shell grep CONFIG_PLATFORM_ID configs/$@ 2>/dev/null | cut -d= -f2) >> $(QDRV_CONFIG_FILE)
- echo "#define QDRV_CFG_TYPE \"$@\"" >> $(QDRV_CONFIG_FILE);
- @echo $(shell grep CONFIG_PLATFORM_ID configs/$@ 2>/dev/null | cut -d= -f2) > $(PLATFORM_ID_FILE)
-
-get_current_config:
- @echo $(board_config)
-
-get_current_platform:
- @echo $(board_platform)
-
-# -------------------------------------------------------------------------
-# Cleaning targets
-# -------------------------------------------------------------------------
-
-distcleans := commondistclean udistclean kdistclean hostdistclean macfwdistclean rdspfwdistclean aucfwdistclean
-cleans := commonclean uclean kclean hostclean macfwclean rdspfwclean aucfwclean
-
-.PHONY: clean distclean fsclean $(cleans) $(distcleans) configclean
-
-clean: $(QTN_LICENSE_CLEAN) fsclean $(cleans)
-
-fsclean:
- $(MAKE) -C $(fsdir) CROSS_COMPILE=$(compile_prefix) clean
-
-$(cleans):
- @if [ -d $($(strip $(patsubst %clean, %dir, $@))) ] ; then \
- $(MAKE) -C $($(strip $(patsubst %clean, %dir, $@))) CROSS_COMPILE=$(compile_prefix) clean ; \
- fi
-
-distclean: $(QTN_LICENSE_CLEAN) fsdistclean $(distcleans) \
- driversclean cleantftpdir configclean doxygenclean fwstagingclean
- rm -f $(first_run)
-
-configclean:
- rm -f $(fsdir)/package/busybox/$(busybox)/.config* .config* $(fsdir)/.config* $(kdir)/.config*
- rm -f board_config.mk
- rm -f common/current_platform.h
- rm -f $(QDRV_CONFIG_FILE)
- rm -f $(PLATFORM_ID_FILE)
-
-fsdistclean:
- $(MAKE) -C $(fsdir) CROSS_COMPILE=$(compile_prefix) distclean
-
-doxygenclean:
- rm -rf ./doxygen.tar.bz2 ./doxygen/*
-
-fwstagingclean:
- rm -rf $(QTN_FW_STAGING)
-
-driversclean:
-ifeq ($(wildcard drivers),drivers)
- $(MAKE) -C drivers clean
- rm -f drivers/extra_kos.symvers
-endif
-
-$(distcleans):
- @if [ -d $($(strip $(patsubst %distclean, %dir, $@))) ] ; then \
- $(MAKE) -C $($(strip $(patsubst %distclean, %dir, $@))) CROSS_COMPILE=$(compile_prefix) distclean ; \
- fi
-
-clean_linux_modules:
- rm -rf $(kdir)/modules/lib/modules/*
-
-# -------------------------------------------------------------------------
-# Building targets
-# -------------------------------------------------------------------------
-
-.PHONY: include_gen force all ruby topaz $(QTN_FWS) auc_topaz fromscratch cleantftpdir configupdate copyconfigs u-boot host
-.PHONY: buildroot buildbot_package buildbot_nightly verify_binary_archive unpack_binary_archive clean_linux_modules kernel_modules external_modules
-.PHONY: qtn_license
-
-########### prerequisite image building
-CHILD_BUILD_PATH ?= $(shell pwd)
-export CHILD_BUILD_PATH
-
-this_config_prereqs =
-#this_config_prereqs += prereq_debug
-
-# define prerequisite configs for images that require them
-ifeq ($(QTN_LINUX_IMG_DIR),)
-topaz_host_config_prereqs = topaz_pcie_config
-topaz_np_config_prereqs = topaz_rgmii_config
-endif
-
-ifneq ($($(board_config)_prereqs),)
-QTN_FWS += u-boot
-endif
-
-# override image maximum size for images that will contain child images
-qtm710_np_config_maxsize = 7471104
-qtm710_rc_config_maxsize = 7471104
-# minimum ODM request for RGMII image size limit is 4.5M, including u-boot (128k)
-qtm710_rgmii_config_maxsize = 4350000
-qhs711_host_config_maxsize = 10000000
-
-prereq_debug:
- ## board_config: $(board_config) has prerequisites: $(this_config_prereqs)
-
-# template recipe/rule for building child prerequisites
-define PREREQ_TEMPLATE
-prereq_$(1):
- $(syncconfigs)
- ## target '$(board_config)' has prereq '$(1)', building '$(1)'...
- $(MAKE) -C $(CHILD_BUILD_PATH) board_config=$(1) configupdate
- $(MAKE) -C . board_config=$(1) common/current_platform.h.tmp
- +$(MAKE) -C $(CHILD_BUILD_PATH) board_config=$(1) image_no_prereq
- ## target '$(board_config)' prereq '$(1)' completed.
- ## restoring configs '$(board_config)'
- $(MAKE) -C . board_config=$(board_config) configupdate
- $(MAKE) -C . board_config=$(board_config) common/current_platform.h.tmp
-
-.PHONY: prereq_$(1)
-this_config_prereqs += prereq_$(1)
-endef
-$(foreach prereq,$($(board_config)_prereqs),$(eval $(call PREREQ_TEMPLATE,$(prereq))))
-
-PHONY: check_packages
-check_packages:
- if test -f tools/setup.sh; then tools/setup.sh --check-packages; fi
-
-.PHONY: image_no_prereq
-image_no_prereq: u-boot $(QTN_HOST_BOARD_UTILS) $(uncompressed-boot-image) qtn_license $(lzma-boot-image)
-
-####### current image building
-all image: check_packages $(BUILD_NAME_DEP)
- @for p in $(this_config_prereqs); do $(MAKE) $${p}; done;
- $(MAKE) image_no_prereq
-
-qtn_license: $(QTN_LICENSE_FILE)
-
-ruby topaz: $(uncompressed-boot-image) $(lzma-boot-image)
-
-fromscratch:
- $(MAKE) -j1 distclean
- $(MAKE) $(board_config)
- $(MAKE) all
-
-$(SPARSE):
- $(MAKE) -C host/utilities/sparse
-
-$(tftpdir):
- mkdir -p $@
-
-cleantftpdir:
- rm -rf $(tftpdir)/
-
-configupdate: $(BUILD_CONFIGS) clean_linux_modules unpack_binary_archive
- $(syncconfigs)
- $(call setconfigs,$(board_config))
- @if [ "$(spi)" = "no" ] ; then \
- echo "BR2_PACKAGE_QTN_PREPOPULATE=y" >> $(fsdir)/.config; \
- fi
- @if [ "$(pre)" = "yes" ] ; then \
- echo "BR2_PACKAGE_QTN_PREPOPULATE=y" >> $(fsdir)/.config; \
- fi
- @if [ $(br2_jlevel) != '1' ] && [ "$(findstring j,$(MAKEFLAGS))" != "" ] ; then \
- sed --in-place "s/BR2_JLEVEL=.*/BR2_JLEVEL=$(br2_jlevel)/" $(fsdir)/.config ; \
- fi
-
-copyconfigs: configupdate
- cd $(fsdir); yes "" | $(MAKE) config
- cd $(fsdir); mkdir -p dl; cp download_backup/* dl; chmod u+w dl/*
-
-u-boot: common $(tftpdir)
- $(MAKE) -C $(udir) CROSS_COMPILE=$(compile_prefix) ruby_config
- $(MAKE) -C $(udir) CROSS_COMPILE=$(compile_prefix) all
- $(MAKE) -C $(udir) CROSS_COMPILE=$(compile_prefix) ruby_mini_config
- $(MAKE) -C $(udir) CROSS_COMPILE=$(compile_prefix) ruby_mini
-ifeq ($(tiny_uboot_enabled),1)
- $(MAKE) -C $(udir) -f qtn_tiny.mk CROSS_COMPILE=$(compile_prefix)
- $(MAKE) -C $(udir) -f piggy.mk CROSS_COMPILE=$(compile_prefix) TARGET=u-boot-tiny
-endif
- $(MAKE) -C $(udir) -f piggy.mk CROSS_COMPILE=$(compile_prefix) TARGET=u-boot-mini
- $(MAKE) -C $(udir) -f piggy.mk CROSS_COMPILE=$(compile_prefix) TARGET=u-boot
- mv $(udir)/u-boot.bin $(udir)/u-boot.bin.full
-ifneq ($(NO_CHECK_SIZE),1)
- $(CHECK_LZMA_SIZE) $(udir)/u-boot-mini-piggy.bin 20480
-ifeq ($(tiny_uboot_enabled),1)
- $(CHECK_LZMA_SIZE) $(udir)/u-boot-tiny-piggy.bin 20480
-endif
- $(CHECK_LZMA_SIZE) $(udir)/u-boot-piggy.bin 81920
-endif
- cp $(udir)/u-boot-piggy.bin $(tftpdir)/u-boot.bin$(image_suffix)
-ifeq ($(mini_uboot_enabled),1)
- cp $(udir)/u-boot-mini-piggy.bin $(tftpdir)/u-boot-mini-piggy.bin$(image_suffix)
-endif
- @mkdir -p $(QTN_FW_STAGING)/
- cp $(udir)/u-boot-piggy.bin $(QTN_FW_STAGING)/u-boot.bin
-ifeq ($(tiny_uboot_enabled),1)
- cp $(udir)/u-boot-tiny-piggy.bin $(tftpdir)/u-boot-tiny.bin$(image_suffix)
- $(udir)/tools/mkimage -A arc -C none -O u-boot -T firmware \
- -name UBOOT_STAGE2 \
- -d $(udir)/u-boot-piggy.bin $(tftpdir)/u-boot-stage2.img$(image_suffix)
-endif
-
-host:
- if [ -d $(hostdir) ] ; then $(MAKE) -C $(hostdir) ; fi
-
-.PHONY: do_buildroot
-do_buildroot:
- @echo "################################### Do buildroot"
- -$(MAKE) -j1 -C $(fsdir) KERNEL_MODULES_PATH=$(INSTALL_MOD_PATH)/lib clean-fs
- @if [ "topaz_msft_config" = "$(board_config)" ]; then \
- $(MAKE) -j1 -C $(fsdir) $(TARGET_CC_FOR_BR) KERNEL_MODULES_PATH=$(INSTALL_MOD_PATH)/lib MSFT=y; \
- else \
- $(MAKE) -j1 -C $(fsdir) $(TARGET_CC_FOR_BR) KERNEL_MODULES_PATH=$(INSTALL_MOD_PATH)/lib; \
- fi
- $(syncconfigs)
-
-buildroot: check_packages $(QTN_FWS) kernel_modules external_modules strip_modules $(QTN_REGULATORY_DB)
- $(MAKE) do_buildroot
-
-kernel_image: buildroot
- @echo "################################### Making kernel image"
- @mkdir -p buildroot/build_arc/root/etc/default
- $(MAKE) -C $(kdir) ARCH=arc CROSS_COMPILE=$(compile_prefix) Image
- $(syncconfigs)
-
-kernel_modules: $(first_run)
- @echo "################################### Making kernel modules"
- $(MAKE) -C $(kdir) ARCH=arc CROSS_COMPILE=$(compile_prefix) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) vmlinux modules
- $(MAKE) -C $(kdir) ARCH=arc CROSS_COMPILE=$(compile_prefix) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) modules_install
- $(syncconfigs)
-
-verify_binary_archive:
- @if [ $$(echo quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives, correct and restart"; \
- ls -l quantenna-bin-*tar; \
- exit 1; \
- fi
- @if [ $$(echo pcie-quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives for pcie build, correct and restart"; \
- ls -l pcie-quantenna-bin-*tar; \
- exit 1; \
- fi
- @if [ $$(echo pcie-host-quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives for pcie build, correct and restart"; \
- ls -l pcie-host-quantenna-bin-*tar; \
- exit 1; \
- fi
- @if [ $$(echo dbdc-quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives for dbdc build, correct and restart"; \
- ls -l dbdc-quantenna-bin-*tar; \
- exit 1; \
- fi
- @if [ $$(echo rgmii-quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives for rgmii build, correct and restart"; \
- ls -l rgmii-quantenna-bin-*tar; \
- exit 1; \
- fi
- @if [ $$(echo rfic6-quantenna-bin-*tar | wc -w) -gt 1 ]; \
- then \
- echo "Too many binary archives for rfic6 vb build, correct and restart"; \
- ls -l rfic6-quantenna-bin-*tar; \
- exit 1; \
- fi
-
-unpack_binary_archive: verify_binary_archive
- @if [ "$(board_config)" = "topaz_pcie_config" ]; then \
- if [ -f pcie-quantenna-bin-*.tar ] ; then tar xvf pcie-quantenna-bin-*.tar ; \
- fi \
- elif [ "$(board_config)" = "topaz_host_config" ]; then \
- if [ -f pcie-host-quantenna-bin-*.tar ] ; then tar xvf pcie-host-quantenna-bin-*.tar ; \
- fi \
- elif [ "$(board_config)" = "topaz_dbdc_config" ] ; then \
- if [ -f dbdc-quantenna-bin-*.tar ] ; then tar xvf dbdc-quantenna-bin-*.tar ; \
- fi \
- elif [ "$(board_config:topaz_rfic6%=topaz_rfic6)" = "topaz_rfic6" ]; then \
- if [ -f rfic6-quantenna-bin-*.tar ] ; then tar xvf rfic6-quantenna-bin-*.tar ; \
- fi \
- else \
- if [ -f quantenna-bin-*.tar ] ; then tar xvf quantenna-bin-*.tar ; \
- fi \
- fi
-
-.PHONY: do_external_modules
-do_external_modules: include_gen
- @echo "################################### Making external modules"
- if [ -d drivers ]; \
- then \
- $(MAKE) -C drivers ARCH=arc CROSS_COMPILE=$(compile_prefix) CHECK=../$(SPARSE); \
- fi
- if [ -d drivers ]; \
- then \
- $(MAKE) -C drivers ARCH=arc CROSS_COMPILE=$(compile_prefix) install; \
- fi
- $(syncconfigs)
-
-external_modules: kernel_modules
- $(MAKE) do_external_modules
-
-ifeq ($(board_platform),topaz)
-QTN_AUCFW := auc_topaz
-endif
-
-ifeq ($(bb_only),1)
-MUC_BUILD_TARGETS += bb_only
-endif
-MUC_BUILD_TARGETS += qtn_ruby
-
-muc: $(QTN_FW_STAGING_REL) ${QTN_FW_PREBUILD_REL} $(QTN_FW_STAGING_REL)/$(QTN_MACFW_BIN)
-dsp: $(QTN_FW_STAGING_REL) ${QTN_FW_PREBUILD_REL} $(QTN_FW_STAGING_REL)/$(QTN_RDSPFW_BIN)
-auc: $(QTN_AUCFW)
-auc_topaz: $(QTN_FW_STAGING_REL) ${QTN_FW_PREBUILD_REL} $(QTN_FW_STAGING_REL)/$(QTN_AUCFW_BIN)
-
-$(QTN_FW_STAGING_REL) $(QTN_FW_PREBUILD_REL):
- @mkdir -p $@
-
-uncompressed_kimage: common kernel_image $(udir)/tools/mkimage
-
-$(gz_compressed_kimage): uncompressed_kimage
- rm -f $@
- gzip -c --best $(kimage) > $(gz_compressed_kimage)
-
-$(lzma_compressed_kimage): uncompressed_kimage
- rm -f $@
- $(LZMA) -k --best $(kimage)
-
-kernel_base_util := ./host/utilities/kernel_base_util
-kernel_base_util_src := $(kernel_base_util).c
-$(kernel_base_util): $(kernel_base_util_src) force
- gcc -Wall -Icommon $< -o $@
-
-uboot_qtn_flags = 0x1
-
-$(uncompressed-boot-image): uncompressed_kimage $(tftpdir) $(kernel_base_util)
- @echo "################################### Creating uncompressed U-Boot image"
- $(udir)/tools/mkimage -A arc -C none -T kernel \
- -a `$(kernel_base_util) -a` -e `$(kernel_base_util) -e` \
- -name $(board_platform)-linux -Q $(uboot_qtn_flags) \
- -d $(kimage) $(uncompressed-boot-image)
-
-$(gz-boot-image): $(gz_compressed_kimage) $(tftpdir) $(kernel_base_util)
- @echo "################################### Creating gzip compressed U-Boot image"
- $(udir)/tools/mkimage -A arc -C gzip -T kernel \
- -a `$(kernel_base_util) -e` -e `$(kernel_base_util) -e` \
- -name $(board_platform)-linux -Q $(uboot_qtn_flags) \
- -d $(gz_compressed_kimage) $(gz-boot-image)
-
-$(lzma-boot-image): $(lzma_compressed_kimage) $(tftpdir) $(kernel_base_util)
- @echo "################################### Creating lzma compressed U-Boot image"
- $(udir)/tools/mkimage -A arc -C lzma -T kernel \
- -a `$(kernel_base_util) -e` -e `$(kernel_base_util) -e` \
- -name $(board_platform)-linux -Q $(uboot_qtn_flags) \
- -d $(lzma_compressed_kimage) $(lzma-boot-image)
- @mkdir -p $(QTN_FW_STAGING)/$(board_config)
- cp $@ $(QTN_FW_STAGING)/$(board_config)/$(board_platform)-linux.lzma.img
-ifneq ($(NO_CHECK_SIZE),1)
- $(CHECK_LZMA_SIZE) $@ $($(board_config)_maxsize)
-endif
-
-strip_modules: kernel_modules external_modules
- @echo "################################### Strip modules"
- if [ "`find $(INSTALL_MOD_PATH) -name '*\.ko'`" != "" ] ; then \
- $(compile_prefix)strip --strip-unneeded `find $(INSTALL_MOD_PATH) -name '*\.ko'` ; \
- fi
-
-common:
- $(MAKE) -C common
-
-$(udir)/tools/mkimage: | u-boot
- @true # empty rule
-
-$(first_run): | $(QTN_FWS) $(QTN_REGULATORY_DB)
- $(MAKE) copyconfigs
- $(MAKE) do_buildroot && touch $(first_run)
-
-install:
- cp $(uncompressed-boot-image) /tftpboot
- cp $(lzma-boot-image) /tftpboot
-
-all_doxygen:
- @echo "generate document of drivers,mucfw,qcsapi now...."
- rm -rf ./doxygen.tar.bz2 ./doxygen/*
- $(MAKE) -C drivers doxygen
- $(MAKE) -C macfw doxygen
- $(MAKE) -C rdspfw doxygen
- $(MAKE) -C buildroot/package/qcsapi/qcsapi-1.0.1 doxygen
- tar -cvjf doxygen.tar.bz2 ./doxygen/*
-
-doxygen_pdf: force
- @echo "Auto-generated doxygen PDF files for QCSAPI and pktlogger"
- -rm -rf doxygen_pdf
- -rm -rf doxygen
- -rm -f doxygen-${doc_rev_ext}.tar
- mkdir doxygen_pdf
- REV_NUM=$(doc_rev_ext) $(MAKE) -e -C common/ doco
- find doxygen -name '*.pdf' | xargs -i cp {} doxygen_pdf/
- tar cvf doxygen-${doc_rev_ext}.tar doxygen_pdf/
-
-include_gen: force
- (cd include/qtn && make)
-
-show_configs:
- @echo ${ALL_CONFIGS}
diff --git a/quantenna/board_config.mk b/quantenna/board_config.mk
deleted file mode 100644
index be4efe1..0000000
--- a/quantenna/board_config.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Automatically generated file. Do not edit.
-# use 'make xxxx_config' instead
-export board_config = topaz_config
-export board_type = asic
-export board_platform = topaz
-export spi = yes
-export qtn_hal_pm_corrupt_debug = no
-export wmac_mode = ap
-export arc770 = no
-export arc_rev_ge_4_10 = no
-export pre = no
-export bb_only = 1
diff --git a/quantenna/common/Makefile b/quantenna/common/Makefile
deleted file mode 100755
index b25a070..0000000
--- a/quantenna/common/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# common/Makefile
-#
-# Copyright (c) Quantenna Communications Incorporated 2007.
-# All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# This file defines the major, minor and build numbers for this release, and
-# can create a C header file corresponding to those values.
-#
-
-# This section is AWK'd by the release script, so keep the format to be
-# <start of line><label><space>:=<space><number>
-UMS_RELEASE_MAJOR := 0
-UMS_RELEASE_MINOR := 6
-UMS_RELEASE_BUILD := 1
-
-HFILE := ums_release
-
-PDFTK = $(shell which pdftk)
-ENSCRIPT = $(shell which enscript)
-PS2PDF = $(shell which ps2pdf)
-
-$(HFILE).h: Makefile
- echo "/* This file is auto-generated by common/Makefile */" > $(HFILE).h
- echo "#ifndef __$(HFILE)_H" >> $(HFILE).h
- echo "#define __$(HFILE)_H" >> $(HFILE).h
- echo "#define UMS_RELEASE_MAJOR ($(UMS_RELEASE_MAJOR))" >> $(HFILE).h
- echo "#define UMS_RELEASE_MINOR ($(UMS_RELEASE_MINOR))" >> $(HFILE).h
- echo "#define UMS_RELEASE_BUILD ($(UMS_RELEASE_BUILD))" >> $(HFILE).h
- echo "#endif" >> $(HFILE).h
-
-header_version: check_enscript check_ps2pdf
- -rm rev-num.pdf .tmp.rev-num .tmp.rev-num.ps
- echo "$(REV_NUM)" > .tmp.rev-num
- enscript -B --margins 67:200:260:240 -f Courier24 -p ./.tmp.rev-num.ps .tmp.rev-num
- ps2pdf .tmp.rev-num.ps rev-num.pdf
- -rm .tmp.rev-num .tmp.rev-num.ps
-
-clean:
- rm -f $(HFILE).h
-
-distclean: clean
-
-doco_pktlogger_i: check_pdftk header_version
- REV_NUM=$(REV_NUM) make -e -C doxygen/pktlogger_doc Quantenna_pktlogger-INTERNAL-ONLY.pdf
-
-doco_pktlogger_ext_no_muc: check_pdftk header_version
- REV_NUM=$(REV_NUM) make -e -C doxygen/pktlogger_doc Quantenna_pktlogger-external-no-muc.pdf
-
-doco_pktlogger_ext: check_pdftk header_version
- REV_NUM=$(REV_NUM) make -e -C doxygen/pktlogger_doc Quantenna_pktlogger.pdf
-
-check_pdftk:
- @if [ "$(PDFTK)" = "" ]; then \
- echo "Please install pdftk to generate internal documentation"; \
- exit 1; \
- fi
-
-check_enscript:
- @if [ "$(ENSCRIPT)" = "" ]; then \
- echo "Please install enscript"; \
- exit 1; \
- fi
-
-check_ps2pdf:
- @if [ "$(PS2PDF)" = "" ]; then \
- echo "Please install ps2pdf"; \
- exit 1; \
- fi
-
-doco_qcsapi: check_pdftk header_version
- REV_NUM=$(REV_NUM) make -e -C doxygen/qcsapi_doc
-
-ALL_DOCS = doco_pktlogger_ext doco_qcsapi doco_pktlogger_i doco_pktlogger_ext_no_muc
-doco: $(ALL_DOCS)
-.PHONY: doco $(ALL_DOCS)
-
diff --git a/quantenna/common/queue.h b/quantenna/common/queue.h
deleted file mode 100644
index c384592..0000000
--- a/quantenna/common/queue.h
+++ /dev/null
@@ -1,648 +0,0 @@
-/*
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $Id: queue.h 1441 2006-02-06 16:03:21Z mrenzmann $
- */
-
-#ifndef _SYS_QUEUE_H_
-#define _SYS_QUEUE_H_
-
-#ifdef MUC_BUILD
-#include <stddef.h>
-#endif
-
-/*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
- *
- * A singly-linked list is headed by a single forward pointer. The elements
- * are singly linked for minimum space and pointer manipulation overhead at
- * the expense of O(n) removal for arbitrary elements. New elements can be
- * added to the list after an existing element or at the head of the list.
- * Elements being removed from the head of the list should use the explicit
- * macro for this purpose for optimum efficiency. A singly-linked list may
- * only be traversed in the forward direction. Singly-linked lists are ideal
- * for applications with large datasets and few or no removals or for
- * implementing a LIFO queue.
- *
- * A singly-linked tail queue is headed by a pair of pointers, one to the
- * head of the list and the other to the tail of the list. The elements are
- * singly linked for minimum space and pointer manipulation overhead at the
- * expense of O(n) removal for arbitrary elements. New elements can be added
- * to the list after an existing element, at the head of the list, or at the
- * end of the list. Elements being removed from the head of the tail queue
- * should use the explicit macro for this purpose for optimum efficiency.
- * A singly-linked tail queue may only be traversed in the forward direction.
- * Singly-linked tail queues are ideal for applications with large datasets
- * and few or no removals or for implementing a FIFO queue.
- *
- * A list is headed by a single forward pointer (or an array of forward
- * pointers for a hash table header). The elements are doubly linked
- * so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before
- * or after an existing element or at the head of the list. A list
- * may only be traversed in the forward direction.
- *
- * A tail queue is headed by a pair of pointers, one to the head of the
- * list and the other to the tail of the list. The elements are doubly
- * linked so that an arbitrary element can be removed without a need to
- * traverse the list. New elements can be added to the list before or
- * after an existing element, at the head of the list, or at the end of
- * the list. A tail queue may be traversed in either direction.
- *
- * For details on the use of these macros, see the queue(3) manual page.
- *
- *
- * SLIST LIST STAILQ TAILQ
- * _HEAD + + + +
- * _HEAD_INITIALIZER + + + +
- * _ENTRY + + + +
- * _INIT + + + +
- * _EMPTY + + + +
- * _FIRST + + + +
- * _NEXT + + + +
- * _PREV - - - +
- * _LAST - - + +
- * _FOREACH + + + +
- * _FOREACH_SAFE + + + +
- * _FOREACH_REVERSE - - - +
- * _FOREACH_REVERSE_SAFE - - - +
- * _INSERT_HEAD + + + +
- * _INSERT_BEFORE - + - +
- * _INSERT_AFTER + + + +
- * _INSERT_TAIL - - + +
- * _CONCAT - - + +
- * _REMOVE_HEAD + - + -
- * _REMOVE + + + +
- *
- */
-
-#ifdef MUC_BUILD
-# define QUEUE_MACRO_LOCK_DEBUG 0
-#else
-# define QUEUE_MACRO_LOCK_DEBUG 0
-#endif
-
-/*
- * Additional fields to try and locate unprotected accesses of fields.
- * These macros provide hooks to a function which is checked when the
- * various queue macros are
- */
-#if QUEUE_MACRO_LOCK_DEBUG
-# define QUEUE_MACRO_LOCK_FIELD(prefix) \
- int prefix##lockcontext;
-
-# define QUEUE_MACRO_LOCK_INIT(prefix, x) (x)->prefix##lockcontext = 0
-struct os_spinlock;
-int queue_debug_muc_context_check(int* context, const char* file, const int line);
-# define MUC_CONTEXT_CHECK_IN_INTERRUPT 0x00000001
-# define MUC_CONTEXT_CHECK_NOT_IN_INTERRUPT 0x00000002
-# define MUC_CONTEXT_CHECK(context) queue_debug_muc_context_check(&(context), __FILE__, __LINE__)
-# define QUEUE_MACRO_LOCK_ASSERT(context) MUC_CONTEXT_CHECK(context)
-#elif defined(SYSTEM_BUILD)
-# define QUEUE_MACRO_LOCK_FIELD(prefix) int dummy
-# define QUEUE_MACRO_LOCK_INIT(prefix, x) int dummy
-# define QUEUE_MACRO_LOCK_ASSERT(context) __queue_macro_lock_assert_noop()
-static __inline int __queue_macro_lock_assert_noop(void) {
- return 1;
-}
-#else
-# define QUEUE_MACRO_LOCK_FIELD(prefix)
-# define QUEUE_MACRO_LOCK_INIT(prefix, x)
-# define QUEUE_MACRO_LOCK_ASSERT(context) __queue_macro_lock_assert_noop()
-static __inline__ int __queue_macro_lock_assert_noop(void) {
- return 1;
-}
-#endif
-
-#define QUEUE_MACRO_DEBUG 0
-#if QUEUE_MACRO_DEBUG
-/* Store the last 2 places the queue element or head was altered */
-struct qm_trace {
- char *lastfile;
- int lastline;
- char *prevfile;
- int prevline;
-};
-
-#define TRACEBUF struct qm_trace trace;
-#define TRASHIT(x) do {(x) = (void *)-1;} while (0)
-
-#define QMD_TRACE_HEAD(head) do { \
- (head)->trace.prevline = (head)->trace.lastline; \
- (head)->trace.prevfile = (head)->trace.lastfile; \
- (head)->trace.lastline = __LINE__; \
- (head)->trace.lastfile = __FILE__; \
-} while (0)
-
-#define QMD_TRACE_ELEM(elem) do { \
- (elem)->trace.prevline = (elem)->trace.lastline; \
- (elem)->trace.prevfile = (elem)->trace.lastfile; \
- (elem)->trace.lastline = __LINE__; \
- (elem)->trace.lastfile = __FILE__; \
-} while (0)
-
-#else
-#define QMD_TRACE_ELEM(elem)
-#define QMD_TRACE_HEAD(head)
-#define TRACEBUF
-#define TRASHIT(x)
-#endif /* QUEUE_MACRO_DEBUG */
-
-/*
- * Singly-linked List declarations.
- */
-#define SLIST_HEAD(name, type) \
-struct name { \
- struct type *slh_first; /* first element */ \
- QUEUE_MACRO_LOCK_FIELD(slh_); \
-}
-
-#define SLIST_HEAD_INITIALIZER(head) \
- { NULL }
-
-#define SLIST_ENTRY(type) \
-struct { \
- struct type *sle_next; /* next element */ \
-}
-
-#define SLIST_LOCK_ASSERT(head) \
- QUEUE_MACRO_LOCK_ASSERT((head)->slh_lockcontext)
-
-/*
- * Singly-linked List functions.
- */
-#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
-
-#define SLIST_FIRST(head) ((head)->slh_first)
-
-#define SLIST_FOREACH(var, head, field) \
- for ((var) = SLIST_FIRST((head)); \
- SLIST_LOCK_ASSERT((head)) && (var); \
- (var) = SLIST_NEXT((var), field))
-
-#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
- for ((var) = SLIST_FIRST((head)); \
- SLIST_LOCK_ASSERT((head)) && \
- (var) && ((tvar) = SLIST_NEXT((var), field), 1); \
- (var) = (tvar))
-
-#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
- for ((varp) = &SLIST_FIRST((head)); \
- SLIST_LOCK_ASSERT((head)) && \
- ((var) = *(varp)) != NULL; \
- (varp) = &SLIST_NEXT((var), field))
-
-#define SLIST_INIT(head) do { \
- SLIST_FIRST((head)) = NULL; \
-} while (0)
-
-#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
- SLIST_LOCK_ASSERT((head)); \
- SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
- SLIST_NEXT((slistelm), field) = (elm); \
-} while (0)
-
-#define SLIST_INSERT_HEAD(head, elm, field) do { \
- SLIST_LOCK_ASSERT((head)); \
- SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
- SLIST_FIRST((head)) = (elm); \
-} while (0)
-
-#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
-
-#define SLIST_REMOVE(head, elm, type, field) do { \
- SLIST_LOCK_ASSERT((head)); \
- if (SLIST_FIRST((head)) == (elm)) { \
- SLIST_REMOVE_HEAD((head), field); \
- } \
- else { \
- struct type *curelm = SLIST_FIRST((head)); \
- while (SLIST_NEXT(curelm, field) != (elm)) \
- curelm = SLIST_NEXT(curelm, field); \
- SLIST_NEXT(curelm, field) = \
- SLIST_NEXT(SLIST_NEXT(curelm, field), field); \
- } \
-} while (0)
-
-#define SLIST_REMOVE_HEAD(head, field) do { \
- SLIST_LOCK_ASSERT((head)); \
- SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
-} while (0)
-
-/*
- * Singly-linked Tail queue declarations.
- */
-#define STAILQ_HEAD(name, type) \
-struct name { \
- struct type *stqh_first;/* first element */ \
- struct type **stqh_last;/* addr of last next element */ \
- QUEUE_MACRO_LOCK_FIELD(stqh_); /* debug locking primitive */ \
-}
-
-#define STAILQ_HEAD_INITIALIZER(head) \
- { NULL, &(head).stqh_first }
-
-#define STAILQ_ENTRY(type) \
-struct { \
- struct type *stqe_next; /* next element */ \
-}
-
-#define STAILQ_LOCK_ASSERT(head) \
- QUEUE_MACRO_LOCK_ASSERT((head)->stqh_lockcontext)
-#if QUEUE_MACRO_LOCK_DEBUG
-# define STAILQ_INIT_LOCK_DEBUG(head, lock) (head)->stqh_lock = lock;
-#else
-# define STAILQ_INIT_LOCK_DEBUG(head, intref)
-#endif
-
-/*
- * Singly-linked Tail queue functions.
- */
-#define STAILQ_CONCAT(head1, head2) do { \
- if (!STAILQ_EMPTY((head2))) { \
- *(head1)->stqh_last = (head2)->stqh_first; \
- (head1)->stqh_last = (head2)->stqh_last; \
- STAILQ_INIT((head2)); \
- } \
-} while (0)
-
-#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
-
-#define STAILQ_FIRST(head) ((head)->stqh_first)
-
-#define STAILQ_FOREACH(var, head, field) \
- for((var) = STAILQ_FIRST((head)); \
- STAILQ_LOCK_ASSERT((head)) && (var); \
- (var) = STAILQ_NEXT((var), field))
-
-
-#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
- for ((var) = STAILQ_FIRST((head)); \
- STAILQ_LOCK_ASSERT((head)) && \
- (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
- (var) = (tvar))
-
-#define STAILQ_INIT(head) do { \
- STAILQ_FIRST((head)) = NULL; \
- (head)->stqh_last = &STAILQ_FIRST((head)); \
- QUEUE_MACRO_LOCK_INIT(stqh_, (head)); \
-} while (0)
-
-#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
- (head)->stqh_last = &STAILQ_NEXT((elm), field); \
- STAILQ_NEXT((tqelm), field) = (elm); \
-} while (0)
-
-#define STAILQ_INSERT_HEAD(head, elm, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
- (head)->stqh_last = &STAILQ_NEXT((elm), field); \
- STAILQ_FIRST((head)) = (elm); \
-} while (0)
-
-#define STAILQ_INSERT_TAIL(head, elm, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- STAILQ_NEXT((elm), field) = NULL; \
- *(head)->stqh_last = (elm); \
- (head)->stqh_last = &STAILQ_NEXT((elm), field); \
-} while (0)
-
-#define STAILQ_LAST(head, type, field) \
- (STAILQ_EMPTY((head)) ? \
- NULL : \
- ((struct type *) \
- ((char *)((head)->stqh_last) - __offsetof(struct type, field))))
-
-#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-
-#define STAILQ_REMOVE(head, elm, type, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if (STAILQ_FIRST((head)) == (elm)) { \
- STAILQ_REMOVE_HEAD((head), field); \
- } \
- else { \
- struct type *curelm = STAILQ_FIRST((head)); \
- while (STAILQ_NEXT(curelm, field) != (elm)) \
- curelm = STAILQ_NEXT(curelm, field); \
- if ((STAILQ_NEXT(curelm, field) = \
- STAILQ_NEXT(STAILQ_NEXT(curelm, field), field)) == NULL)\
- (head)->stqh_last = &STAILQ_NEXT((curelm), field);\
- } \
-} while (0)
-
-
-#define STAILQ_REMOVE_AFTER(head, elm, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if (STAILQ_NEXT(elm, field)) { \
- if ((STAILQ_NEXT(elm, field) = \
- STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL)\
- (head)->stqh_last = &STAILQ_NEXT((elm), field); \
- } \
-} while (0)
-
-
-#define STAILQ_REMOVE_HEAD(head, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if ((STAILQ_FIRST((head)) = \
- STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
- (head)->stqh_last = &STAILQ_FIRST((head)); \
-} while (0)
-
-#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \
- STAILQ_LOCK_ASSERT(head); \
- if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \
- (head)->stqh_last = &STAILQ_FIRST((head)); \
-} while (0)
-
-/*
- * List declarations.
- */
-#define ATH_LIST_HEAD(name, type) \
-struct name { \
- struct type *lh_first; /* first element */ \
- QUEUE_MACRO_LOCK_FIELD(lh_); \
-}
-
-#define LIST_HEAD_INITIALIZER(head) \
- { NULL }
-
-#define LIST_ENTRY(type) \
-struct { \
- struct type *le_next; /* next element */ \
- struct type **le_prev; /* address of previous next element */ \
-}
-
-#define LIST_LOCK_ASSERT(head) \
- QUEUE_MACRO_LOCK_ASSERT((head)->lh_lockcontext)
-
-/*
- * List functions.
- */
-
-#define LIST_EMPTY(head) ((head)->lh_first == NULL)
-
-#define LIST_FIRST(head) ((head)->lh_first)
-
-#define LIST_FOREACH(var, head, field) \
- for ((var) = LIST_FIRST((head)); \
- LIST_LOCK_ASSERT((head)) && (var); \
- (var) = LIST_NEXT((var), field))
-
-#define LIST_FOREACH_SAFE(var, head, field, tvar) \
- for ((var) = LIST_FIRST((head)); \
- LIST_LOCK_ASSERT((head)) && \
- (var) && ((tvar) = LIST_NEXT((var), field), 1); \
- (var) = (tvar))
-
-#define LIST_INIT(head) do { \
- LIST_FIRST((head)) = NULL; \
-} while (0)
-
-#define LIST_INSERT_AFTER(listelm, elm, field) do { \
- if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
- LIST_NEXT((listelm), field)->field.le_prev = \
- &LIST_NEXT((elm), field); \
- LIST_NEXT((listelm), field) = (elm); \
- (elm)->field.le_prev = &LIST_NEXT((listelm), field); \
-} while (0)
-
-#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
- (elm)->field.le_prev = (listelm)->field.le_prev; \
- LIST_NEXT((elm), field) = (listelm); \
- *(listelm)->field.le_prev = (elm); \
- (listelm)->field.le_prev = &LIST_NEXT((elm), field); \
-} while (0)
-
-#define LIST_INSERT_HEAD(head, elm, field) do { \
- LIST_LOCK_ASSERT((head)); \
- if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \
- LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
- LIST_FIRST((head)) = (elm); \
- (elm)->field.le_prev = &LIST_FIRST((head)); \
-} while (0)
-
-#define LIST_NEXT(elm, field) ((elm)->field.le_next)
-
-#define LIST_REMOVE(elm, field) do { \
- if (LIST_NEXT((elm), field) != NULL) \
- LIST_NEXT((elm), field)->field.le_prev = \
- (elm)->field.le_prev; \
- *(elm)->field.le_prev = LIST_NEXT((elm), field); \
-} while (0)
-
-/*
- * Tail queue declarations.
- */
-#define TAILQ_HEAD(name, type) \
-struct name { \
- struct type *tqh_first; /* first element */ \
- struct type **tqh_last; /* addr of last next element */ \
- TRACEBUF \
- QUEUE_MACRO_LOCK_FIELD(tqh_); \
-}
-
-#define TAILQ_HEAD_INITIALIZER(head) \
- { NULL, &(head).tqh_first }
-#if (!defined(TAILQ_ENTRY))
-#define TAILQ_ENTRY(type) \
-struct { \
- struct type *tqe_next; /* next element */ \
- struct type **tqe_prev; /* address of previous next element */ \
- TRACEBUF \
-}
-#endif
-
-#define TAILQ_LOCK_ASSERT(head) \
- QUEUE_MACRO_LOCK_ASSERT((head)->tqh_lockcontext)
-
-/*
- * Tail queue functions.
- */
-#define TAILQ_CONCAT(head1, head2, field) do { \
- if (!TAILQ_EMPTY(head2)) { \
- *(head1)->tqh_last = (head2)->tqh_first; \
- (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
- (head1)->tqh_last = (head2)->tqh_last; \
- TAILQ_INIT((head2)); \
- QMD_TRACE_HEAD(head); \
- QMD_TRACE_HEAD(head2); \
- } \
-} while (0)
-
-#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
-
-#define TAILQ_FIRST(head) ((head)->tqh_first)
-
-#define TAILQ_FOREACH(var, head, field) \
- for ((var) = TAILQ_FIRST((head)); \
- TAILQ_LOCK_ASSERT((head)) && (var); \
- (var) = TAILQ_NEXT((var), field))
-
-#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
- for ((var) = TAILQ_FIRST((head)); \
- TAILQ_LOCK_ASSERT((head)) && \
- (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \
- (var) = (tvar))
-
-#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
- for ((var) = TAILQ_LAST((head), headname); \
- TAILQ_LOCK_ASSERT((head)) && (var); \
- (var) = TAILQ_PREV((var), headname, field))
-
-#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
- for ((var) = TAILQ_LAST((head), headname); \
- TAILQ_LOCK_ASSERT((head)) && \
- (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \
- (var) = (tvar))
-
-#define TAILQ_INIT(head) do { \
- TAILQ_FIRST((head)) = NULL; \
- (head)->tqh_last = &TAILQ_FIRST((head)); \
- QMD_TRACE_HEAD(head); \
-} while (0)
-
-#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
- TAILQ_LOCK_ASSERT((head)); \
- if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
- TAILQ_NEXT((elm), field)->field.tqe_prev = \
- &TAILQ_NEXT((elm), field); \
- else { \
- (head)->tqh_last = &TAILQ_NEXT((elm), field); \
- QMD_TRACE_HEAD(head); \
- } \
- TAILQ_NEXT((listelm), field) = (elm); \
- (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \
- QMD_TRACE_ELEM(&(elm)->field); \
- QMD_TRACE_ELEM(&listelm->field); \
-} while (0)
-
-#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
- (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
- TAILQ_NEXT((elm), field) = (listelm); \
- *(listelm)->field.tqe_prev = (elm); \
- (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \
- QMD_TRACE_ELEM(&(elm)->field); \
- QMD_TRACE_ELEM(&listelm->field); \
-} while (0)
-
-#define TAILQ_INSERT_HEAD(head, elm, field) do { \
- TAILQ_LOCK_ASSERT((head)); \
- if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \
- TAILQ_FIRST((head))->field.tqe_prev = \
- &TAILQ_NEXT((elm), field); \
- else \
- (head)->tqh_last = &TAILQ_NEXT((elm), field); \
- TAILQ_FIRST((head)) = (elm); \
- (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \
- QMD_TRACE_HEAD(head); \
- QMD_TRACE_ELEM(&(elm)->field); \
-} while (0)
-
-#define TAILQ_INSERT_TAIL(head, elm, field) do { \
- TAILQ_LOCK_ASSERT((head)); \
- TAILQ_NEXT((elm), field) = NULL; \
- (elm)->field.tqe_prev = (head)->tqh_last; \
- *(head)->tqh_last = (elm); \
- (head)->tqh_last = &TAILQ_NEXT((elm), field); \
- QMD_TRACE_HEAD(head); \
- QMD_TRACE_ELEM(&(elm)->field); \
-} while (0)
-
-#define TAILQ_LAST(head, headname) \
- (*(((struct headname *)((head)->tqh_last))->tqh_last))
-
-#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-
-#define TAILQ_PREV(elm, headname, field) \
- (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-
-#define TAILQ_REMOVE(head, elm, field) do { \
- TAILQ_LOCK_ASSERT((head)); \
- if ((TAILQ_NEXT((elm), field)) != NULL) \
- TAILQ_NEXT((elm), field)->field.tqe_prev = \
- (elm)->field.tqe_prev; \
- else { \
- (head)->tqh_last = (elm)->field.tqe_prev; \
- QMD_TRACE_HEAD(head); \
- } \
- *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \
- TRASHIT((elm)->field.tqe_next); \
- TRASHIT((elm)->field.tqe_prev); \
- QMD_TRACE_ELEM(&(elm)->field); \
-} while (0)
-
-
-#ifdef _KERNEL
-
-/*
- * XXX insque() and remque() are an old way of handling certain queues.
- * They bogusly assumes that all queue heads look alike.
- */
-
-struct quehead {
- struct quehead *qh_link;
- struct quehead *qh_rlink;
-};
-
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-
-static __inline void
-insque(void *a, void *b)
-{
- struct quehead *element = (struct quehead *)a,
- *head = (struct quehead *)b;
-
- element->qh_link = head->qh_link;
- element->qh_rlink = head;
- head->qh_link = element;
- element->qh_link->qh_rlink = element;
-}
-
-static __inline void
-remque(void *a)
-{
- struct quehead *element = (struct quehead *)a;
-
- element->qh_link->qh_rlink = element->qh_rlink;
- element->qh_rlink->qh_link = element->qh_link;
- element->qh_rlink = 0;
-}
-
-#else /* !(__GNUC__ || __INTEL_COMPILER) */
-
-void insque(void *a, void *b);
-void remque(void *a);
-
-#endif /* __GNUC__ || __INTEL_COMPILER */
-
-#endif /* _KERNEL */
-
-#endif /* !_SYS_QUEUE_H_ */
diff --git a/quantenna/common/ruby_flip.S b/quantenna/common/ruby_flip.S
deleted file mode 100644
index 31b57a2..0000000
--- a/quantenna/common/ruby_flip.S
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * (C) Copyright 2010 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#include <config.h>
-#include <asm/arcregs.h>
-#include <asm/arch/platform.h>
-#include "start.inl"
-
-#if RUBY_MMAP_FLIP || TOPAZ_MMAP_UNIFIED
-
-ruby_flip_mmap:
- .globl ruby_flip_mmap
- /* Code must be position-independent! */
-
- /*
- * Flush and invalidate data cache.
- * Please make sure that instructions which touch
- * d-cache are NOT used until flipping is done.
- */
- /* Set flush mode for invalidate operation */
- lr r1, [ARC_REG_DC_CTRL]
- bset r1, r1, 0x6
- sr r1, [ARC_REG_DC_CTRL]
- /* Start invalidate operation */
- mov r1, 0x1
- sr r1, [ARC_REG_DC_IVDC]
- /* Check while cache invalidating will be finished */
-dcache_flush_continue:
- lr r1, [ARC_REG_DC_CTRL]
- and r1, r1, ARC_DC_FLUSH_STATUS_BIT
- brne r1, 0x0, dcache_flush_continue
-
- /* Prepare flipping.
- * After code is finished, memory maps will change as follows:
- * Flip map:
- * SRAM 0x8000_0000 -> 0x8800_0000
- * DRAM 0x0 -> 0x8000_0000
- * Unified map:
- * SRAM 0x8000_0000 -> 0x9800_0000
- * DRAM 0x0 -> 0x8000_0000
- */
- mov r1, RUBY_SYS_CTL_BASE_ADDR_NOMAP
- mov r2, FLIPBIT | RUBY_SYS_CTL_REMAP(0x3)
- st.di r2, [r1, RUBY_SYS_CTL_MASK - RUBY_SYS_CTL_BASE_ADDR]
- mov r2, FLIPBIT
-
-.align ARC_ICACHE_LINE_LEN
- /* Do flipping.
- * Align to cache line to ensure we don't hit memory during following instructions.
- * Code must fit into 1 cache line (32 bytes).
- */
- st.di r2, [r1, RUBY_SYS_CTL_CTRL - RUBY_SYS_CTL_BASE_ADDR]
- ld.di r2, [r1, RUBY_SYS_CTL_CTRL - RUBY_SYS_CTL_BASE_ADDR] /* read back to clear pipeline */
- sync
- j boot_continue /* jump to absolute addr in sram */
- /* Align to cache line so code occupy strictly 1 cache line. */
-.align ARC_ICACHE_LINE_LEN
-
-boot_continue:
- /* Finalize flipping. */
- mov r2, 0x0
- st.di r2, [r1, RUBY_SYS_CTL_MASK - RUBY_SYS_CTL_BASE_ADDR]
-
- /* Let's discard instruction cache.
- */
- mov r2, 0x1
- sr r2, [ARC_REG_IC_IVIC] /* invalidate i-cache */
- lr r2, [ARC_REG_IC_CTRL] /* read will be not completed until i-cache is invalidated */
-
- /* Done. We are now sitting in different addresses. */
- b ruby_boot
-#endif // #if RUBY_MMAP_FLIP
-
diff --git a/quantenna/common/ruby_mem.h b/quantenna/common/ruby_mem.h
deleted file mode 100644
index 06c97bf..0000000
--- a/quantenna/common/ruby_mem.h
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- * (C) Copyright 2010 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Header file which describes Ruby platform.
- * Has to be used by runtime firmware.
- */
-
-#ifndef __RUBY_MEM_H
-#define __RUBY_MEM_H
-
-#include "common_mem.h"
-
-/* FIXME: Move CPU related macros to a separate header file. */
-#define ARC_DCACHE_LINE_LENGTH 32
-
-/* NEVTBD - put in real XYMEM values */
-#define RUBY_DSP_XYMEM_BEGIN 0xD0000000
-#define RUBY_DSP_XYMEM_END 0xDFFFFFFF
-
-/* SRAM layout */
-
-#ifdef QTN_RC_ENABLE_HDP
-#define TOPAZ_HBM_BUF_EMAC_RX_COUNT_S (14)
-#define TOPAZ_HBM_BUF_WMAC_RX_COUNT_S (0)
-#else
-#define TOPAZ_HBM_BUF_EMAC_RX_COUNT_S (13)
-#define TOPAZ_HBM_BUF_WMAC_RX_COUNT_S (11)
-#endif
-#define TOPAZ_HBM_EMAC_TX_DONE_COUNT_S (12)
-
-#define TOPAZ_HBM_BUF_EMAC_RX_COUNT (1 << TOPAZ_HBM_BUF_EMAC_RX_COUNT_S)
-#define TOPAZ_HBM_BUF_WMAC_RX_COUNT (1 << TOPAZ_HBM_BUF_WMAC_RX_COUNT_S)
-#define TOPAZ_HBM_EMAC_TX_DONE_COUNT (1 << TOPAZ_HBM_EMAC_TX_DONE_COUNT_S)
-
-/* dedicated SRAM space for HBM pointer pools */
-#define TOPAZ_HBM_POOL_PTR_SIZE 4 /* sizeof(void *), 32 bit arch */
-#define TOPAZ_HBM_POOL_EMAC_RX_START 0x00000000
-#define TOPAZ_HBM_POOL_EMAC_RX_SIZE (TOPAZ_HBM_BUF_EMAC_RX_COUNT * TOPAZ_HBM_POOL_PTR_SIZE)
-#define TOPAZ_HBM_POOL_EMAC_RX_END (TOPAZ_HBM_POOL_EMAC_RX_START + TOPAZ_HBM_POOL_EMAC_RX_SIZE)
-#define TOPAZ_HBM_POOL_WMAC_RX_START TOPAZ_HBM_POOL_EMAC_RX_END
-#define TOPAZ_HBM_POOL_WMAC_RX_SIZE (TOPAZ_HBM_BUF_WMAC_RX_COUNT * TOPAZ_HBM_POOL_PTR_SIZE)
-#define TOPAZ_HBM_POOL_WMAC_RX_END (TOPAZ_HBM_POOL_WMAC_RX_START + TOPAZ_HBM_POOL_WMAC_RX_SIZE)
-#define TOPAZ_HBM_POOL_EMAC_TX_DONE_START TOPAZ_HBM_POOL_WMAC_RX_END
-#define TOPAZ_HBM_POOL_EMAC_TX_DONE_SIZE (TOPAZ_HBM_EMAC_TX_DONE_COUNT * TOPAZ_HBM_POOL_PTR_SIZE)
-#define TOPAZ_HBM_POOL_EMAC_TX_DONE_END (TOPAZ_HBM_POOL_EMAC_TX_DONE_START + TOPAZ_HBM_POOL_EMAC_TX_DONE_SIZE)
-#define TOPAZ_FWT_SW_START TOPAZ_HBM_POOL_EMAC_TX_DONE_END
-#define TOPAZ_FWT_SW_SIZE (4096)
-#define TOPAZ_FWT_SW_END (TOPAZ_FWT_SW_START + TOPAZ_FWT_SW_SIZE)
-
-#define CONFIG_MUC_EXTRA_RES_BASE TOPAZ_FWT_SW_END
-#define CONFIG_MUC_EXTRA_RESERVE_SIZE (8 * 1024)
-#define CONFIG_MUC_EXTRA_RES_END (CONFIG_MUC_EXTRA_RES_BASE + CONFIG_MUC_EXTRA_RESERVE_SIZE)
-
-#define CONFIG_ARC_KERNEL_SRAM_B1_BASE ROUNDUP(CONFIG_MUC_EXTRA_RES_END, CONFIG_ARC_KERNEL_PAGE_SIZE)
-#define CONFIG_ARC_KERNEL_SRAM_B1_SIZE (22 * 1024)
-#define CONFIG_ARC_KERNEL_SRAM_B1_END (CONFIG_ARC_KERNEL_SRAM_B1_BASE + CONFIG_ARC_KERNEL_SRAM_B1_SIZE)
-#define CONFIG_ARC_KERNEL_SRAM_B2_BASE CONFIG_ARC_KERNEL_SRAM_B1_END
-#define CONFIG_ARC_KERNEL_SRAM_B2_END ROUNDUP(CONFIG_ARC_KERNEL_SRAM_B2_BASE, RUBY_SRAM_BANK_SIZE)
-#define CONFIG_ARC_KERNEL_SRAM_B2_SIZE (CONFIG_ARC_KERNEL_SRAM_B2_END - CONFIG_ARC_KERNEL_SRAM_B2_BASE)
-#define CONFIG_ARC_MUC_SRAM_B1_BASE ROUNDUP(CONFIG_ARC_KERNEL_SRAM_B2_END, CONFIG_ARC_KERNEL_PAGE_SIZE)
-#define CONFIG_ARC_MUC_SRAM_B1_END ROUNDUP(CONFIG_ARC_MUC_SRAM_B1_BASE + 1, RUBY_SRAM_BANK_SIZE)
-#define CONFIG_ARC_MUC_SRAM_B1_SIZE (CONFIG_ARC_MUC_SRAM_B1_END - CONFIG_ARC_MUC_SRAM_B1_BASE)
-#define CONFIG_ARC_MUC_SRAM_B2_BASE ROUNDUP(CONFIG_ARC_MUC_SRAM_B1_END, RUBY_SRAM_BANK_SIZE)
-#define CONFIG_ARC_MUC_SRAM_B2_SIZE (RUBY_SRAM_BANK_SAFE_SIZE - RUBY_CRUMBS_SIZE)
-#define CONFIG_ARC_MUC_SRAM_B2_END (CONFIG_ARC_MUC_SRAM_B2_BASE + CONFIG_ARC_MUC_SRAM_B2_SIZE)
-#define CONFIG_ARC_AUC_SRAM_BASE ROUNDUP(CONFIG_ARC_MUC_SRAM_B2_END, RUBY_SRAM_BANK_SIZE)
-#define CONFIG_ARC_AUC_SRAM_SIZE (3 * RUBY_SRAM_BANK_SIZE)
-#define CONFIG_ARC_AUC_SRAM_END (CONFIG_ARC_AUC_SRAM_BASE + CONFIG_ARC_AUC_SRAM_SIZE)
-#define CONFIG_ARC_SRAM_END CONFIG_ARC_AUC_SRAM_END
-
-/* MU TxBF qmatrix is stored at the last bank of SRAM, DSP writes to it, has to use SRAM BUS addr */
-#define CONFIG_ARC_MU_QMAT_BASE (RUBY_SRAM_BUS_BEGIN + 0X70000)
-#define CONFIG_ARC_MU_QMAT_SIZE RUBY_SRAM_BANK_SIZE
-#define CONFIG_ARC_MU_QMAT_END (CONFIG_ARC_MU_QMAT_BASE + CONFIG_ARC_MU_QMAT_SIZE)
-
-#if TOPAZ_RX_ACCELERATE
- /* TODO FIXME - MuC crashed when copying data between SRAM and DDR */
- #define CONFIG_ARC_MUC_STACK_OFFSET (CONFIG_ARC_MUC_SRAM_B2_END - 2048)
-#else
- #define CONFIG_ARC_MUC_STACK_OFFSET (CONFIG_ARC_MUC_SRAM_B2_END)
-#endif
-
-#if CONFIG_ARC_MUC_STACK_OFFSET_UBOOT != CONFIG_ARC_MUC_STACK_OFFSET
- #error "CONFIG_ARC_MUC_STACK_OFFSET_UBOOT must be equal to CONFIG_ARC_MUC_STACK_OFFSET!"
-#endif
-
-#define CONFIG_ARC_MUC_STACK_INIT (RUBY_SRAM_BEGIN + CONFIG_ARC_MUC_STACK_OFFSET)
-
-#define RUBY_CRUMBS_OFFSET (CONFIG_ARC_MUC_SRAM_B2_END)
-
-#if RUBY_CRUMBS_OFFSET != RUBY_CRUMBS_OFFSET_UBOOT
- #error "RUBY_CRUMBS_OFFSET_UBOOT must be equal to RUBY_CRUMBS_OFFSET!"
-#endif
-
-#define RUBY_CRUMBS_ADDR (RUBY_SRAM_BEGIN + RUBY_CRUMBS_OFFSET)
-
-/* DDR layout */
-#define CONFIG_ARC_PCIE_RSVD_SIZE (64 * 1024)
-#define CONFIG_ARC_DSP_BASE (CONFIG_ARC_NULL_END + CONFIG_ARC_PCIE_RSVD_SIZE)
-#define CONFIG_ARC_DSP_SIZE (768 * 1024)
-#define CONFIG_ARC_DSP_END (CONFIG_ARC_DSP_BASE + CONFIG_ARC_DSP_SIZE)
-#define CONFIG_ARC_MUC_BASE CONFIG_ARC_DSP_END
-#ifdef TOPAZ_128_NODE_MODE
-#define CONFIG_ARC_MUC_SIZE ((3 * 1024 * 1024) + (584 * 1024))
-#else
-#define CONFIG_ARC_MUC_SIZE ((2 * 1024 * 1024) + (772 * 1024))
-#endif
-#define MUC_DRAM_RX_RESVERED_RELOC_SIZE (8 * 1024)
-#define CONFIG_ARC_MUC_END (CONFIG_ARC_MUC_BASE + CONFIG_ARC_MUC_SIZE)
-#define CONFIG_ARC_MUC_MAPPED_BASE CONFIG_ARC_MUC_BASE
-#define CONFIG_ARC_MUC_MAPPED_SIZE (RUBY_MAX_DRAM_SIZE - CONFIG_ARC_MUC_MAPPED_BASE)
-
-#define CONFIG_ARC_AUC_BASE CONFIG_ARC_MUC_END
-#define CONFIG_ARC_AUC_SIZE (1024 * 1024 + 768 * 1024 + 40 * 1024)
-#define CONFIG_ARC_AUC_END (CONFIG_ARC_AUC_BASE + CONFIG_ARC_AUC_SIZE)
-#define TOPAZ_HBM_BUF_ALIGN (1 * 1024)
-
-#define TOPAZ_HBM_BUF_EMAC_RX_POOL 0
-#define TOPAZ_HBM_BUF_WMAC_RX_POOL 1
-#define TOPAZ_HBM_AUC_FEEDBACK_POOL 2
-#define TOPAZ_HBM_EMAC_TX_DONE_POOL 3
-
-#define TOPAZ_HBM_BUF_EMAC_RX_SIZE (4 * 1024)
-#define TOPAZ_HBM_BUF_WMAC_RX_SIZE (17 * 1024)
-
-#define TOPAZ_HBM_BUF_META_SIZE 64 /* keep it 2^n */
-#define TOPAZ_HBM_POOL_GUARD_SIZE (64 * 1024)
-
-#define TOPAZ_HBM_BUF_EMAC_RX_TOTAL (TOPAZ_HBM_BUF_EMAC_RX_COUNT * \
- TOPAZ_HBM_BUF_EMAC_RX_SIZE)
-#define TOPAZ_HBM_BUF_WMAC_RX_TOTAL (TOPAZ_HBM_BUF_WMAC_RX_COUNT * \
- TOPAZ_HBM_BUF_WMAC_RX_SIZE)
-#define TOPAZ_HBM_BUF_META_BASE CONFIG_ARC_AUC_END
-
-#define TOPAZ_HBM_BUF_META_EMAC_RX_BASE (TOPAZ_HBM_BUF_META_BASE + TOPAZ_HBM_BUF_META_SIZE)
-#define TOPAZ_HBM_BUF_META_EMAC_RX_BASE_VIRT (RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_META_EMAC_RX_BASE)
-#define TOPAZ_HBM_BUF_META_EMAC_RX_TOTAL (TOPAZ_HBM_BUF_EMAC_RX_COUNT * \
- TOPAZ_HBM_BUF_META_SIZE)
-#define TOPAZ_HBM_BUF_META_EMAC_RX_END (TOPAZ_HBM_BUF_META_EMAC_RX_BASE + \
- TOPAZ_HBM_BUF_META_EMAC_RX_TOTAL)
-
-#define TOPAZ_HBM_BUF_META_WMAC_RX_BASE (TOPAZ_HBM_BUF_META_EMAC_RX_END + TOPAZ_HBM_BUF_META_SIZE)
-#define TOPAZ_HBM_BUF_META_WMAC_RX_BASE_VIRT (RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_META_WMAC_RX_BASE)
-#define TOPAZ_HBM_BUF_META_WMAC_RX_TOTAL (TOPAZ_HBM_BUF_WMAC_RX_COUNT * \
- TOPAZ_HBM_BUF_META_SIZE)
-#define TOPAZ_HBM_BUF_META_WMAC_RX_END (TOPAZ_HBM_BUF_META_WMAC_RX_BASE + \
- TOPAZ_HBM_BUF_META_WMAC_RX_TOTAL)
-
-#define TOPAZ_HBM_BUF_META_END (TOPAZ_HBM_BUF_META_WMAC_RX_END + TOPAZ_HBM_BUF_META_SIZE)
-#define TOPAZ_HBM_BUF_META_TOTAL (TOPAZ_HBM_BUF_META_END - TOPAZ_HBM_BUF_META_BASE)
-
-#define TOPAZ_HBM_BUF_BASE ROUNDUP(TOPAZ_HBM_BUF_META_END, TOPAZ_HBM_BUF_ALIGN)
-
-#define TOPAZ_HBM_BUF_EMAC_RX_BASE (TOPAZ_HBM_BUF_BASE + TOPAZ_HBM_POOL_GUARD_SIZE)
-#define TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT (RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_EMAC_RX_BASE)
-#define TOPAZ_HBM_BUF_EMAC_RX_END (TOPAZ_HBM_BUF_EMAC_RX_BASE + \
- TOPAZ_HBM_BUF_EMAC_RX_TOTAL)
-
-#define TOPAZ_HBM_BUF_WMAC_RX_BASE (TOPAZ_HBM_BUF_EMAC_RX_END + TOPAZ_HBM_POOL_GUARD_SIZE)
-#define TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT (RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_WMAC_RX_BASE)
-#define TOPAZ_HBM_BUF_WMAC_RX_END (TOPAZ_HBM_BUF_WMAC_RX_BASE + \
- TOPAZ_HBM_BUF_WMAC_RX_TOTAL)
-
-#define TOPAZ_HBM_BUF_END (TOPAZ_HBM_BUF_WMAC_RX_END + TOPAZ_HBM_POOL_GUARD_SIZE)
-
-#define TOPAZ_FWT_MCAST_ENTRIES 2048
-#define TOPAZ_FWT_MCAST_FF_ENTRIES 1 /* one for all FF addresses */
-#define TOPAZ_FWT_MCAST_IPMAP_ENT_SIZE 64 /* sizeof(struct topaz_fwt_sw_ipmap) */
-#define TOPAZ_FWT_MCAST_TQE_ENT_SIZE 20 /* sizeof(struct topaz_fwt_sw_mcast_entry) */
-/* Tables are cache-line aligned to ensure proper memory flushing. */
-#define TOPAZ_FWT_MCAST_IPMAP_SIZE \
- ROUNDUP(TOPAZ_FWT_MCAST_ENTRIES * TOPAZ_FWT_MCAST_IPMAP_ENT_SIZE, \
- ARC_DCACHE_LINE_LENGTH)
-#define TOPAZ_FWT_MCAST_TQE_SIZE \
- ROUNDUP(TOPAZ_FWT_MCAST_ENTRIES * TOPAZ_FWT_MCAST_TQE_ENT_SIZE, \
- ARC_DCACHE_LINE_LENGTH)
-#define TOPAZ_FWT_MCAST_TQE_FF_SIZE \
- ROUNDUP(TOPAZ_FWT_MCAST_FF_ENTRIES * TOPAZ_FWT_MCAST_TQE_ENT_SIZE, \
- ARC_DCACHE_LINE_LENGTH)
-
-#define TOPAZ_FWT_MCAST_IPMAP_BASE TOPAZ_HBM_BUF_END
-#define TOPAZ_FWT_MCAST_IPMAP_END (TOPAZ_FWT_MCAST_IPMAP_BASE + TOPAZ_FWT_MCAST_IPMAP_SIZE)
-#define TOPAZ_FWT_MCAST_TQE_BASE TOPAZ_FWT_MCAST_IPMAP_END
-#define TOPAZ_FWT_MCAST_TQE_END (TOPAZ_FWT_MCAST_TQE_BASE + TOPAZ_FWT_MCAST_TQE_SIZE)
-#define TOPAZ_FWT_MCAST_TQE_FF_BASE TOPAZ_FWT_MCAST_TQE_END
-#define TOPAZ_FWT_MCAST_TQE_FF_END (TOPAZ_FWT_MCAST_TQE_FF_BASE + TOPAZ_FWT_MCAST_TQE_FF_SIZE)
-#define TOPAZ_FWT_MCAST_END TOPAZ_FWT_MCAST_TQE_FF_END
-
-/* Offset from DDR beginning, from which memory start to belong to Linux */
-#define CONFIG_ARC_KERNEL_MEM_BASE TOPAZ_FWT_MCAST_END
-
-#if TOPAZ_HBM_BUF_EMAC_RX_BASE & (TOPAZ_HBM_BUF_ALIGN - 1)
- #error EMAC Buffer start not aligned
-#endif
-#if TOPAZ_HBM_BUF_WMAC_RX_BASE & (TOPAZ_HBM_BUF_ALIGN - 1)
- #error WMAC Buffer start not aligned
-#endif
-#define CONFIG_ARC_UBOOT_RESERVED_SPACE (8 * 1024)
-
-/* Linux kernel u-boot image start address, for uncompressed images */
-#define CONFIG_ARC_KERNEL_BOOT_BASE ROUNDUP(CONFIG_ARC_KERNEL_MEM_BASE, \
- CONFIG_ARC_KERNEL_PAGE_SIZE)
-/* Linux kernel image start */
-#define CONFIG_ARC_KERNEL_BASE (CONFIG_ARC_KERNEL_BOOT_BASE + CONFIG_ARC_UBOOT_RESERVED_SPACE)
-#define CONFIG_ARC_KERNEL_MAX_SIZE (RUBY_MAX_DRAM_SIZE - CONFIG_ARC_KERNEL_MEM_BASE)
-#define CONFIG_ARC_KERNEL_MIN_SIZE (RUBY_MIN_DRAM_SIZE - CONFIG_ARC_KERNEL_MEM_BASE)
-
-/* AuC tightly coupled memory specification */
-#define TOPAZ_AUC_IMEM_ADDR 0xE5000000
-#define TOPAZ_AUC_IMEM_SIZE (32 * 1024)
-/* BBIC4 RevB AuC DMEM bottom 4KB: 0xE510_0000 to 0xE510_0FFF is aliased with Wmac1 TCM 0xE514_0000
- * exclude the bottom 4K from DMEM, and reduce the size from 16KB to 12KB
- */
-#define TOPAZ_AUC_DMEM_ADDR 0xE5101000
-#define TOPAZ_AUC_DMEM_SIZE (12 * 1024)
-#define TOPAZ_REVB_DMEM_SIZE_RESERVED (4 *1024)
-/***************/
-
-/* Utility functions */
-#ifndef __ASSEMBLY__
-
- #if defined(__CHECKER__)
- #define __sram_text
- #define __sram_data
- #elif defined(__GNUC__)
- /*GCC*/
- #if defined(CONFIG_ARCH_RUBY_NUMA) && defined(__KERNEL__) && defined(__linux__)
- /* Kernel is compiled with -mlong-calls option, so we can make calls between code fragments placed in different memories */
- #define __sram_text_sect_name ".sram.text"
- #define __sram_data_sect_name ".sram.data"
- #define __sram_text
- #define __sram_data
- #else
- #define __sram_text_sect_name ".text"
- #define __sram_data_sect_name ".data"
- #define __sram_text
- #define __sram_data
- #endif
- #else
- #pragma Offwarn(428)
- #endif
-
- RUBY_INLINE int is_valid_mem_addr(unsigned long addr)
- {
- if (__in_mem_range(addr, RUBY_SRAM_BEGIN, RUBY_SRAM_SIZE)) {
- return 1;
- } else if (__in_mem_range(addr, RUBY_DRAM_BEGIN, RUBY_MAX_DRAM_SIZE)) {
- return 1;
- }
- return 0;
- }
-
- #if TOPAZ_MMAP_UNIFIED
- RUBY_WEAK(virt_to_nocache) void* virt_to_nocache(const void *addr)
- {
- unsigned long ret = (unsigned long)addr;
- if (__in_mem_range(ret, RUBY_SRAM_BEGIN, RUBY_SRAM_SIZE)) {
- ret = ret - RUBY_SRAM_BEGIN + RUBY_SRAM_NOCACHE_BEGIN;
- } else if (__in_mem_range(ret, RUBY_DRAM_BEGIN, RUBY_MAX_DRAM_SIZE)) {
- ret = ret - RUBY_DRAM_BEGIN + RUBY_DRAM_NOCACHE_BEGIN;
- } else if (ret < RUBY_HARDWARE_BEGIN) {
- ret = (unsigned long)RUBY_BAD_VIRT_ADDR;
- }
- return (void*)ret;
- }
- RUBY_WEAK(nocache_to_virt) void* nocache_to_virt(const void *addr)
- {
- unsigned long ret = (unsigned long)addr;
- if (__in_mem_range(ret, RUBY_SRAM_NOCACHE_BEGIN, RUBY_SRAM_SIZE)) {
- ret = ret - RUBY_SRAM_NOCACHE_BEGIN + RUBY_SRAM_BEGIN;
- } else if (__in_mem_range(ret, RUBY_DRAM_NOCACHE_BEGIN, RUBY_MAX_DRAM_SIZE)) {
- ret = ret - RUBY_DRAM_NOCACHE_BEGIN + RUBY_DRAM_BEGIN;
- } else if (ret < RUBY_HARDWARE_BEGIN) {
- ret = (unsigned long)RUBY_BAD_VIRT_ADDR;
- }
- return (void*)ret;
- }
- #endif
-
- #if RUBY_MUC_TLB_ENABLE
- #if TOPAZ_MMAP_UNIFIED
- #define muc_to_nocache virt_to_nocache
- #define nocache_to_muc nocache_to_virt
- #else
- RUBY_WEAK(muc_to_nocache) void* muc_to_nocache(const void *addr)
- {
- unsigned long ret = (unsigned long)addr;
- if (__in_mem_range(ret, RUBY_SRAM_NOFLIP_BEGIN, RUBY_SRAM_SIZE)) {
- ret = ret - RUBY_SRAM_NOFLIP_BEGIN + RUBY_SRAM_NOFLIP_NOCACHE_BEGIN;
- } else if (__in_mem_range(ret, RUBY_DRAM_NOFLIP_BEGIN, RUBY_MAX_DRAM_SIZE)) {
- ret = ret - RUBY_DRAM_NOFLIP_BEGIN + RUBY_DRAM_NOFLIP_NOCACHE_BEGIN;
- } else if (ret < RUBY_HARDWARE_BEGIN) {
- ret = (unsigned long)RUBY_BAD_VIRT_ADDR;
- }
- return (void*)ret;
- }
- RUBY_WEAK(nocache_to_muc) void* nocache_to_muc(const void *addr)
- {
- unsigned long ret = (unsigned long)addr;
- if (__in_mem_range(ret, RUBY_SRAM_NOFLIP_NOCACHE_BEGIN, RUBY_SRAM_SIZE)) {
- ret = ret - RUBY_SRAM_NOFLIP_NOCACHE_BEGIN + RUBY_SRAM_NOFLIP_BEGIN;
- } else if (__in_mem_range(ret, RUBY_DRAM_NOFLIP_NOCACHE_BEGIN, RUBY_MAX_DRAM_SIZE)) {
- ret = ret - RUBY_DRAM_NOFLIP_NOCACHE_BEGIN + RUBY_DRAM_NOFLIP_BEGIN;
- } else if (ret < RUBY_HARDWARE_BEGIN) {
- ret = (unsigned long)RUBY_BAD_VIRT_ADDR;
- }
- return (void*)ret;
- }
- #endif
- #ifndef MUC_BUILD
- RUBY_INLINE unsigned long muc_to_lhost(unsigned long addr)
- {
- void *tmp = nocache_to_muc((void*)addr);
- if (tmp != RUBY_BAD_VIRT_ADDR) {
- addr = (unsigned long)tmp;
- }
- return (unsigned long)bus_to_virt(addr);
- }
- #endif // #ifndef MUC_BUILD
- #else
- #define muc_to_nocache(x) ((void*)(x))
- #define nocache_to_muc(x) ((void*)(x))
- #ifndef MUC_BUILD
- #define muc_to_lhost(x) ((unsigned long)bus_to_virt((unsigned long)(x)))
- #endif // #ifndef MUC_BUILD
- #endif // #if RUBY_MUC_TLB_ENABLE
-
- #ifndef __GNUC__
- /*MCC*/
- #pragma Popwarn()
- #endif
-
-#endif // #ifndef __ASSEMBLY__
-
-/*
- * "Write memory barrier" instruction emulation.
- * Ruby platform has complex net of connected buses.
- * Write transactions are buffered.
- * qtn_wmb() guarantees that all issued earlier and pending writes
- * to system controller, to SRAM and to DDR are completed
- * before qtn_wmb() is finished.
- * For complete safety Linux's wmb() should be defined
- * through qtn_wmb(), but I afraid it would kill performance.
- */
-#ifndef __ASSEMBLY__
- #define RUBY_SYS_CTL_SAFE_READ_REGISTER 0xE0000000
- #if defined(__GNUC__) && defined(__i386__)
- #define qtn_wmb() do {} while(0)
- static inline unsigned long _qtn_addr_wmb(unsigned long *addr) { return *addr; }
- #define qtn_addr_wmb(addr) _qtn_addr_wmb((unsigned long *)(addr))
- #define qtn_pipeline_drain() do {} while(0)
- #elif defined(__GNUC__)
- /*GCC*/
- #if defined(__arc__)
- #define qtn_wmb() \
- ({ \
- unsigned long temp; \
- __asm__ __volatile__ ( \
- "ld.di %0, [%1]\n\t" \
- "ld.di %0, [%2]\n\t" \
- "ld.di %0, [%3]\n\t" \
- "sync\n\t" \
- : "=r"(temp) \
- : "i"(RUBY_DRAM_BEGIN + CONFIG_ARC_KERNEL_MEM_BASE), "i"(RUBY_SRAM_BEGIN + CONFIG_ARC_KERNEL_SRAM_B1_BASE), "i"(RUBY_SYS_CTL_SAFE_READ_REGISTER) \
- : "memory"); \
- })
- #define qtn_addr_wmb(addr) \
- ({ \
- unsigned long temp; \
- __asm__ __volatile__ ( \
- "ld.di %0, [%1]\n\t" \
- "sync\n\t" \
- : "=r"(temp) \
- : "r"(addr) \
- : "memory"); \
- temp; \
- })
- #define qtn_pipeline_drain() \
- ({ \
- __asm__ __volatile__ ( \
- "sync\n\t" \
- : : : "memory"); \
- })
- #else
- #define qtn_wmb()
- #define qtn_addr_wmb(addr) *((volatile uint32_t*)addr)
- #define qtn_pipeline_drain()
- #endif
- #else
- /*MCC*/
- #if _ARCVER >= 0x31/*ARC7*/
- #define _qtn_pipeline_drain() \
- sync
- #else
- #define _qtn_pipeline_drain() \
- nop_s; nop_s; nop_s
- #endif
- _Asm void qtn_wmb(void)
- {
- /*r12 is temporary register, so we can use it inside this function freely*/
- ld.di %r12, [RUBY_DRAM_BEGIN + CONFIG_ARC_MUC_BASE]
- ld.di %r12, [RUBY_SRAM_BEGIN + CONFIG_ARC_MUC_SRAM_B1_BASE]
- ld.di %r12, [RUBY_SYS_CTL_SAFE_READ_REGISTER]
- _qtn_pipeline_drain()
- }
- _Asm u_int32_t qtn_addr_wmb(unsigned long addr)
- {
- %reg addr;
- ld.di %r0, [addr]
- _qtn_pipeline_drain()
- }
- _Asm void qtn_pipeline_drain(void)
- {
- _qtn_pipeline_drain()
- }
- #endif
-#endif
-
-/*
- * Problem - writing to first half of cache way trash second half.
- * Idea is to lock second half.
- * Need make sure that invalidation does not unlock these lines (whole
- * cache invalidation unlocks), or need to re-lock lines back.
- * Also side effect - half of lines will be cached, half - not.
- * So may need to shuffle data to make hot data cacheable.
- */
-#define TOPAZ_CACHE_WAR_OFFSET 2048
-#ifndef __ASSEMBLY__
-#ifdef __GNUC__
-RUBY_INLINE void qtn_cache_topaz_war_dcache_lock(unsigned long aux_reg, unsigned long val)
-{
- unsigned long addr;
- unsigned long way_iter;
- unsigned long line_iter;
-
- asm volatile (
- " sr %4, [%3]\n"
- " mov %0, 0xA0000000\n"
- " mov %1, 0\n"
- "1: add %0, %0, 2048\n"
- " mov %2, 0\n"
- "2: sr %0, [0x49]\n"
- " add %0, %0, 32\n"
- " add %2, %2, 1\n"
- " cmp %2, 64\n"
- " bne 2b\n"
- " add %1, %1, 1\n"
- " cmp %1, 4\n"
- " bne 1b\n"
- : "=r"(addr), "=r"(way_iter), "=r"(line_iter)
- : "r"(aux_reg), "r"(val)
- );
-}
-#else
-_Inline _Asm void qtn_cache_topaz_war_dcache_lock(unsigned long aux_reg, unsigned long val)
-{
- % reg aux_reg, reg val;
-
- sr val, [aux_reg]
- mov %r0, 0xA0000000
- mov %r1, 0
- 1: add %r0, %r0, 2048
- mov %r2, 0
- 2: sr %r0, [0x49]
- add %r0, %r0, 32
- add %r2, %r2, 1
- cmp %r2, 64
- bne 2b
- add %r1, %r1, 1
- cmp %r1, 4
- bne 1b
-}
-#endif // #ifdef __GNUC__
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __RUBY_MEM_H
diff --git a/quantenna/common/ruby_pm.h b/quantenna/common/ruby_pm.h
deleted file mode 100644
index 8319f2f..0000000
--- a/quantenna/common/ruby_pm.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __RUBY_PM_H
-#define __RUBY_PM_H
-
-/* Power save levels */
-#define BOARD_PM_LEVEL_FORCE_NO (0)
-#define BOARD_PM_LEVEL_NO (1)
-#define BOARD_PM_LEVEL_SLOW_DOWN (2)
-#define BOARD_PM_LEVEL_LATENCY_UP (3)
-#define BOARD_PM_LEVEL_DISTANCE_DOWN (4)
-#define BOARD_PM_LEVEL_IDLE (5)
-#define BOARD_PM_LEVEL_SUSPEND (6)
-
-#define BOARD_PM_LEVEL_INIT BOARD_PM_LEVEL_FORCE_NO
-
-/* Duty level, shared between Lhost and MuC */
-#define BOARD_PM_LEVEL_DUTY BOARD_PM_LEVEL_IDLE
-
-/* Names of power save governors */
-#define BOARD_PM_GOVERNOR_WLAN "wlan"
-#define BOARD_PM_GOVERNOR_QDISC "qdisc"
-#define BOARD_PM_GOVERNOR_QCSAPI "qcsapi"
-
-/* wlan timings to switch between modes */
-#define BOARD_PM_WLAN_IDLE_TIMEOUT (120 * HZ)
-#define BOARD_PM_WLAN_STA_IDLE_TIMEOUT (15 * HZ)
-#define BOARD_PM_WLAN_DEFAULT_TIMEOUT (0)
-#define BOARD_PM_WLAN_CHECK_IDLE_AFTER_CAC (30 * HZ)
-
-/* qdisc parameters to switch between modes */
-#define BOARD_PM_QDISC_TIMER_TIMEOUT (50/*ms*/ * HZ / 1000)
-#define BOARD_PM_QDISC_SPEEDUP_THRESHOLD (400)
-#define BOARD_PM_QDISC_SLOWDOWN_THRESHOLD (100)
-#define BOARD_PM_QDISC_SLOWDOWN_COUNT (80)
-#define BOARD_PM_QDISC_SLOWDOWN_TIMEOUT (3 * HZ)
-#define BOARD_PM_QDISC_DEFAULT_TIMEOUT (0)
-
-/* Beacon TSF setting */
-#define BOARD_PM_WAKE_BEACON_TSF_DEADLINE_PCT (50)
-#define BOARD_PM_WAKE_BEACON_TSF_ALERT_PCT (25)
-
-/* Default setting, shared between Lhost and MuC */
-#define BOARD_PM_PDUTY_PERIOD_MS_DEFAULT 80
-#define BOARD_PM_PDUTY_PCT_LOW_DEFAULT 80
-#define BOARD_PM_SUSPEND_PERIOD_MS_DEFAULT 100
-#define BOARD_PM_SUSPEND_PCT_LOW_DEFAULT 99
-
-/* Multiple Periods Support */
-#define BOARD_PM_PERIOD_CHANGE_INTERVAL 1
-#define BOARD_PM_PERIOD_CNT 3
-
-enum qtn_pm_param {
- QTN_PM_CURRENT_LEVEL,
-
- QTN_PM_SUSPEND,
- QTN_PM_SUSPEND_PERIOD_MS,
- QTN_PM_SUSPEND_PCT_LOW,
- QTN_PM_SUSPEND_HRESET,
- QTN_PM_SUSPEND_ALLCHAINS_DISABLE,
-
- QTN_PM_PDUTY,
- QTN_PM_PDUTY_PERIOD_MS,
- QTN_PM_PDUTY_PCT_LOW,
- QTN_PM_PDUTY_HRESET,
- QTN_PM_PDUTY_RXCHAINS_DISABLE,
-
- QTN_PM_MUC_SLEEP,
-
- QTN_PM_RXCHAIN_IDLE_COUNT,
- QTN_PM_RXCHAIN_IDLE_LEVEL,
- QTN_PM_TXCHAIN_IDLE_COUNT,
- QTN_PM_TXCHAIN_IDLE_LEVEL,
-
- QTN_PM_PAUSE_MGMT_PROBERESP,
- QTN_PM_PAUSE_MGMT_ASSOCRESP,
- QTN_PM_PAUSE_MGMT_AUTH,
- QTN_PM_PAUSE_DATA = QTN_PM_PAUSE_MGMT_AUTH,
-
- /* For Multiple Periods Support */
- QTN_PM_PERIOD_CHANGE_INTERVAL, /* How long period setting will be changed(unit: second) */
- QTN_PM_PERIOD_CNT, /* How many periods in period group(Max 3) */
- QTN_PM_PERIOD_GROUP, /* Period group(Max 3 periods, each <= 255ms, unit: millisecond)*/
-
- QTN_PM_IOCTL_MAX
-};
-
-#define QTN_PM_PARAM_NAMES { \
- "level", /* QTN_PM_CURRENT_LEVEL */ \
- "suspend_level", /* QTN_PM_SUSPEND */ \
- "suspend_period", /* QTN_PM_SUSPEND_PERIOD_MS */ \
- "suspend_pct", /* QTN_PM_SUSPEND_PCT_LOW */ \
- "suspend_hreset", /* QTN_PM_SUSPEND_HRESET */ \
- "suspend_allchains", /* QTN_PM_SUSPEND_ALLCHAINS_DISABLE */ \
- "pduty_level", /* QTN_PM_PDUTY */ \
- "pduty_period", /* QTN_PM_PDUTY_PERIOD_MS */ \
- "pduty_pct", /* QTN_PM_PDUTY_PCT_LOW */ \
- "pduty_hreset", /* QTN_PM_PDUTY_HRESET */ \
- "pduty_rxchains", /* QTN_PM_PDUTY_RXCHAINS_DISABLE */ \
- "muc_sleep_level", /* QTN_PM_MUC_SLEEP */ \
- "rxchain_count", /* QTN_PM_RXCHAIN_IDLE_COUNT */ \
- "rxchain_level", /* QTN_PM_RXCHAIN_IDLE_LEVEL */ \
- "txchain_count", /* QTN_PM_TXCHAIN_IDLE_COUNT */ \
- "txchain_level", /* QTN_PM_TXCHAIN_IDLE_LEVEL */ \
- "pause_proberesp", /* QTN_PM_PAUSE_MGMT_PROBERESP */ \
- "pause_assocresp", /* QTN_PM_PAUSE_MGMT_ASSOCRESP */ \
- "pause_auth", /* QTN_PM_PAUSE_MGMT_ASSOCRESP */ \
- "period_change_interval", /* QTN_PM_PERIOD_CHANGE_INTERVAL */ \
- "period_cnt", /* QTN_PM_PERIOD_CNT */ \
- "period_group" /* QTN_PM_PERIOD_GROUP */ \
-}
-
-#define QTN_PM_PARAM_DEFAULTS { \
- BOARD_PM_LEVEL_INIT, /* QTN_PM_CURRENT_LEVEL */ \
- BOARD_PM_LEVEL_SUSPEND, /* QTN_PM_SUSPEND */ \
- BOARD_PM_SUSPEND_PERIOD_MS_DEFAULT, /* QTN_PM_SUSPEND_PERIOD_MS */ \
- BOARD_PM_SUSPEND_PCT_LOW_DEFAULT, /* QTN_PM_SUSPEND_PCT_LOW */ \
- 1, /* QTN_PM_SUSPEND_HRESET */ \
- 1, /* QTN_PM_SUSPEND_ALL_CHAINS_DISABLE */ \
- BOARD_PM_LEVEL_DUTY, /* QTN_PM_PDUTY */ \
- BOARD_PM_PDUTY_PERIOD_MS_DEFAULT, /* QTN_PM_PDUTY_PERIOD_MS */ \
- BOARD_PM_PDUTY_PCT_LOW_DEFAULT, /* QTN_PM_PDUTY_PCT_LOW */ \
- 0, /* QTN_PM_PDUTY_HRESET */ \
- 1, /* QTN_PM_PDUTY_RXCHAINS_DISABLE */ \
- BOARD_PM_LEVEL_LATENCY_UP, /* QTN_PM_MUC_SLEEP */ \
- 4, /* QTN_PM_RXCHAIN_IDLE_COUNT */ \
- BOARD_PM_LEVEL_DISTANCE_DOWN, /* QTN_PM_RXCHAIN_IDLE_LEVEL */ \
- 4, /* QTN_PM_TXCHAIN_IDLE_COUNT */ \
- BOARD_PM_LEVEL_DISTANCE_DOWN, /* QTN_PM_TXCHAIN_IDLE_LEVEL */ \
- 60000, /* QTN_PM_PAUSE_MGMT_PROBERESP */ \
- 5000, /* QTN_PM_PAUSE_MGMT_ASSOCRESP */ \
- 5000, /* QTN_PM_PAUSE_MGMT_AUTH */ \
- BOARD_PM_PERIOD_CHANGE_INTERVAL, /* QTN_PM_PERIOD_CHANGE_INTERVAL */ \
- BOARD_PM_PERIOD_CNT, /* QTN_PM_PERIOD_CNT */ \
- 0x50321E /* QTN_PM_PERIOD_GROUP(30ms, 50ms, 80ms) */ \
-}
-
-#define QTN_PM_UNPACK_PARAM(x) ((x) & 0xFF)
-#define QTN_PM_UNPACK_VALUE(x) ((x) >> 8)
-#define QTN_PM_PACK_PARAM_VALUE(p, v) (((p) & 0xFF) | (((v) << 8) & 0xFFFFFF00))
-
-#endif /* __RUBY_PM_H */
-
diff --git a/quantenna/common/ruby_pm_mproc.h b/quantenna/common/ruby_pm_mproc.h
deleted file mode 100644
index 869303c..0000000
--- a/quantenna/common/ruby_pm_mproc.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __RUBY_PM_MPROC_H
-#define __RUBY_PM_MPROC_H
-
-#if defined(__KERNEL__) || defined(MUC_BUILD)
- #include <qtn/mproc_sync.h>
- #include "ruby_pm.h"
-
-#if QTN_SEM_TRACE
-#define qtn_pm_duty_try_lock(_cpu) qtn_pm_duty_try_lock_dbg(_cpu, __FILE__, __LINE__)
- RUBY_WEAK(qtn_pm_duty_try_lock_dbg) int
- qtn_pm_duty_try_lock_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
- RUBY_WEAK(qtn_pm_duty_try_lock) int
- qtn_pm_duty_try_lock(QTN_SOC_CPU current_cpu)
-#endif
- {
- int ret = 0;
- unsigned long flags;
- uint32_t fail_sem = 0;
-
- if (__qtn_mproc_sync_spin_try_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags, &fail_sem)) {
- u_int32_t lock = qtn_mproc_sync_addr(&qtn_mproc_sync_shared_params_get()->pm_duty_lock);
- if (!qtn_mproc_sync_mem_read(lock)) {
- qtn_mproc_sync_mem_write_wmb(lock, 1);
- ret = 1;
- }
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- }
-
- return ret;
- }
-
-#if QTN_SEM_TRACE
-#define qtn_pm_duty_unlock(_cpu) qtn_pm_duty_unlock_dbg(_cpu, __FILE__, __LINE__)
- RUBY_WEAK(qtn_pm_duty_unlock_dbg) void
- qtn_pm_duty_unlock_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
- RUBY_WEAK(qtn_pm_duty_unlock) void
- qtn_pm_duty_unlock(QTN_SOC_CPU current_cpu)
-#endif
- {
- u_int32_t lock = qtn_mproc_sync_addr(&qtn_mproc_sync_shared_params_get()->pm_duty_lock);
- unsigned long flags;
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- qtn_mproc_sync_mem_write_wmb(lock, 0);
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- }
-
-#endif // defined(__KERNEL__) || defined(MUC_BUILD)
-
-#endif /* __RUBY_PM_MPROC_H */
-
diff --git a/quantenna/common/topaz_emac.h b/quantenna/common/topaz_emac.h
deleted file mode 100644
index b6c0bcc..0000000
--- a/quantenna/common/topaz_emac.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_EMAC_H
-#define __TOPAZ_EMAC_H
-
-#include "topaz_platform.h"
-#ifdef _KERNEL
-#include "ruby_arasan_emac_ahb.h"
-#endif
-
-#define TOPAZ_EMAC_NUM_DPI_FIELDS 32
-#define TOPAZ_EMAC_NUM_DPI_FILTERS 16
-#define TOPAZ_EMAC_NUM_DPI_IPTUPLES 8
-
-#define TOPAZ_EMAC_WRAP_CTRL 0x300
-# define TOPAZ_EMAC_WRAP_CTRL_VERSION 0x0000000f
-#define TOPAZ_EMAC_RXP_CTRL 0x304
-# define TOPAZ_EMAC_RXP_CTRL_ENABLE BIT(0)
-# define TOPAZ_EMAC_RXP_CTRL_ENDIAN BIT(1)
-# define TOPAZ_EMAC_RXP_CTRL_TQE_SYNC_EN_BP BIT(2)
-# define TOPAZ_EMAC_RXP_CTRL_TQE_SYNC_EN_SUCC BIT(3)
-# define TOPAZ_EMAC_RXP_CTRL_SYNC_NONE 0
-# define TOPAZ_EMAC_RXP_CTRL_SYNC_TQE BIT(4)
-# define TOPAZ_EMAC_RXP_CTRL_SYNC_RX_DMA BIT(5)
-# define TOPAZ_EMAC_RXP_CTRL_SYNC_RX_PARSER (BIT(4) | BIT(5))
-# define TOPAZ_EMAC_RXP_CTRL_SRESET BIT(8)
-#define TOPAZ_EMAC_TXP_CTRL 0x308
-# define TOPAZ_EMAC_TXP_CTRL_AHB_ENABLE BIT(0)
-# define TOPAZ_EMAC_TXP_CTRL_SRESET BIT(8)
-#define TOPAZ_EMAC_TXP_Q_FULL 0x320
-# define TOPAZ_EMAC_TXP_Q_FULL_BIT BIT(31)
-#define TOPAZ_EMAC_TXP_DESC_PTR 0x324
-#define TOPAZ_EMAC_DEBUG_BUS_SEL 0x328
-#define TOPAZ_EMAC_DEBUG_BUS_SEL_TXP_PTR 0x00000001
-
-#define TOPAZ_EMAC_BUFFER_POOLS 0x32c
-# define TOPAZ_EMAC_BUFFER_POOLS_RX_REPLENISH 0x00000003
-# define TOPAZ_EMAC_BUFFER_POOLS_RX_REPLENISH_S 0
-# define TOPAZ_EMAC_BUFFER_POOLS_TX_RETURN 0x0000000c
-# define TOPAZ_EMAC_BUFFER_POOLS_TX_RETURN_S 2
-#define TOPAZ_EMAC_TXP_STATUS 0x330
-
-/*
- * EMAC Tx-ring read/write pointer, should write 0x1 to reg_0x328 before read the pointer.
- * Bit[12:0] : EMAC read pointer
- * Bit[25:13] : TQE write pointer
- */
-#define TOPAZ_EMAC_TXP_READ_PTR(stat) ((stat) & 0x1FFF)
-#define TOPAZ_EMAC_TXP_WRITE_PTR(stat) (((stat) >> 13) & 0x1FFF)
-
-#define TOPAZ_EMAC_DESC_LIMIT 0x334
-# define TOPAZ_EMAC_DESC_LIMIT_MASK 0x0000ffff
-#define TOPAZ_EMAC_RXP_PRIO_CTRL 0x350
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_TID_SEL 0x00000003
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_TID_SEL_S 0
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_TID_MINMAX 0x00000004
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_TID_MINMAX_S 2
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_SW_TID 0x00000f00
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_SW_TID_S 8
-# define TOPAZ_EMAC_RXP_PRIO_CTRL_SW_TID_SEL BIT(12)
-
-#define TOPAZ_EMAC_RXP_OUTPORT_CTRL 0x354
-# define TOPAZ_EMAC_RXP_OP_CTRL_DA 0x00000003
-# define TOPAZ_EMAC_RXP_OP_CTRL_DA_S 0
-# define TOPAZ_EMAC_RXP_OP_CTRL_VLAN 0x0000000c
-# define TOPAZ_EMAC_RXP_OP_CTRL_VLAN_S 2
-# define TOPAZ_EMAC_RXP_OP_CTRL_IP 0x00000030
-# define TOPAZ_EMAC_RXP_OP_CTRL_IP_S 4
-# define TOPAZ_EMAC_RXP_OP_CTRL_DPI 0x000000c0
-# define TOPAZ_EMAC_RXP_OP_CTRL_DPI_S 6
-# define TOPAZ_EMAC_RXP_OP_CTRL_MCAST_EN BIT(8)
-# define TOPAZ_EMAC_RXP_OP_CTRL_MCAST_SEL BIT(9)
-# define TOPAZ_EMAC_RXP_OP_CTRL_MCAST_PORT 0x00003c00
-# define TOPAZ_EMAC_RXP_OP_CTRL_MCAST_PORT_S 10
-# define TOPAZ_EMAC_RXP_OP_CTRL_DYNAMIC_FAIL_PORT 0x000f0000
-# define TOPAZ_EMAC_RXP_OP_CTRL_DYNAMIC_FAIL_PORT_S 16
-# define TOPAZ_EMAC_RXP_OP_CTRL_SW_BACKDOOR_PORT 0x00f00000
-# define TOPAZ_EMAC_RXP_OP_CTRL_SW_BACKDOOR_PORT_S 20
-# define TOPAZ_EMAC_RXP_OP_CTRL_STATIC_FAIL_PORT 0x0f000000
-# define TOPAZ_EMAC_RXP_OP_CTRL_STATIC_FAIL_PORT_S 24
-# define TOPAZ_EMAC_RXP_OP_CTRL_STATIC_PORT_SEL 0x70000000
-# define TOPAZ_EMAC_RXP_OP_CTRL_STATIC_PORT_SEL_S 28
-# define TOPAZ_EMAC_RXP_OP_CTRL_STATIC_ENABLE BIT(31)
-#ifndef __ASSEMBLY__
-union topaz_emac_rxp_outport_ctrl {
- struct {
- uint32_t word0;
- } raw;
- struct {
- uint32_t da_prio : 2,
- vlan_prio : 2,
- ip_prio : 2,
- dpi_prio : 2,
- mcast_en : 1,
- mcast_sel : 1,
- mcast_port : 4,
- __unused : 2,
- dynamic_fail_port : 4,
- sw_backdoor_port : 4,
- static_fail_port : 4,
- static_port_sel : 3,
- static_mode_en : 1;
- } data;
-};
-#endif // __ASSEMBLY__
-
-#define TOPAZ_EMAC_RXP_OUTNODE_CTRL 0x358
-union topaz_emac_rxp_outnode_ctrl {
- struct {
- uint32_t word0;
- } raw;
- struct {
- uint32_t mcast_node : 6,
- __unused : 4,
- dynamic_fail_node : 6,
- sw_backdoor_node : 6,
- static_fail_node : 6,
- static_node_sel : 3,
- __unused2 : 1;
- } data;
-};
-#define TOPAZ_EMAC_RXP_VLAN_PRI_TO_TID 0x380
-# define TOPAZ_EMAC_RXP_VLAN_PRI_TO_TID_PRI(pcp, tid) (((tid) & 0xf) << ((pcp) * 4))
-#define TOPAZ_EMAC_RXP_VLAN_PRI_CTRL 0x384
-# define TOPAZ_EMAC_RXP_VLAN_PRI_CTRL_TAG 0x00000003
-# define TOPAZ_EMAC_RXP_VLAN_PRI_CTRL_TAG_S 0
-#define TOPAZ_EMAC_RXP_VLAN_TAG_0_1 0x388
-# define TOPAZ_EMAC_RXP_VLAN_TAG_0 0x0000ffff
-# define TOPAZ_EMAC_RXP_VLAN_TAG_0_S 0
-# define TOPAZ_EMAC_RXP_VLAN_TAG_1 0xffff0000
-# define TOPAZ_EMAC_RXP_VLAN_TAG_1_S 16
-#define TOPAZ_EMAC_RXP_VLAN_TAG_2_3 0x38c
-# define TOPAZ_EMAC_RXP_VLAN_TAG_2 0x0000ffff
-# define TOPAZ_EMAC_RXP_VLAN_TAG_2_S 0
-# define TOPAZ_EMAC_RXP_VLAN_TAG_3 0xffff0000
-# define TOPAZ_EMAC_RXP_VLAN_TAG_3_S 16
-#define TOPAZ_EMAC_RXP_IP_DIFF_SRV_TID_REG(x) (0x390 + 4 * (x))
-#define TOPAZ_EMAC_RXP_IP_DIFF_SRV_TID_REGS 8
-#define TOPAZ_EMAC_RXP_IP_CTRL 0x3b0
-#define TOPAZ_EMAC_RXP_DPI_TID_MAP_REG(x) (0x3b4 + 4 * (x))
-#define TOPAZ_EMAC_RXP_DPI_TID_MAP_INDEX(x) TOPAZ_EMAC_RXP_DPI_TID_MAP_REG((x) >> 3)
-#define TOPAZ_EMAC_RXP_TID_MAP_INDEX_SHIFT(x) (((x) & 0x7) << 2)
-#define TOPAZ_EMAC_RXP_TID_MAP_INDEX_MASK(x) (0xF << TOPAZ_EMAC_RXP_TID_MAP_INDEX_SHIFT(x))
-#define TOPAZ_EMAC_RXP_DPI_CTRL 0x3bc
-# define TOPAZ_EMAC_RXP_DPI_CTRL_DPI_FAIL_TID 0x0000000f
-#define TOPAZ_EMAC_RXP_STATUS 0x3c0
-#define TOPAZ_EMAC_RXP_CST_SEL 0x3c4
-#define TOPAZ_EMAC_RXP_FRAME_CNT_CLEAR 0x3cc
-# define TOPAZ_EMAC_RXP_FRAME_CNT_CLEAR_ERROR BIT(0)
-# define TOPAZ_EMAC_RXP_FRAME_CNT_CLEAR_TOTAL BIT(1)
-# define TOPAZ_EMAC_RXP_FRAME_CNT_CLEAR_DA_MATCH BIT(2)
-# define TOPAZ_EMAC_RXP_FRAME_CNT_CLEAR_SA_MATCH BIT(3)
-#define TOPAZ_EMAC_FRM_COUNT_ERRORS 0x3d0
-#define TOPAZ_EMAC_FRM_COUNT_TOTAL 0x3d4
-#define TOPAZ_EMAC_FRM_COUNT_DA_MATCH 0x3d8
-#define TOPAZ_EMAC_FRM_COUNT_SA_MATCH 0x3dc
-#define TOPAZ_EMAC_RX_DPI_FIELD_VAL(x) (0x400 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_FIELD_MASK(x) (0x480 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_FIELD_CTRL(x) (0x500 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_FIELD_GROUP(x) (0x580 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_OUT_CTRL(x) (0x5c0 + 4 * (x))
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_NODE 0x0000007f
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_NODE_S 0
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_PORT 0x00000780
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_PORT_S 7
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_COMBO 0x00001800
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_COMBO_S 11
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_OFF 0x0
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_IPTUPLE 0x1
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_DPI 0x2
-# define TOPAZ_EMAC_RX_DPI_OUT_CTRL_BOTH 0x3
-
-#ifndef __ASSEMBLY__
-enum topaz_emac_rx_dpi_anchor {
- TOPAZ_EMAC_RX_DPI_ANCHOR_FRAME = 0x0,
- TOPAZ_EMAC_RX_DPI_ANCHOR_VLAN0 = 0x1,
- TOPAZ_EMAC_RX_DPI_ANCHOR_VLAN1 = 0x2,
- TOPAZ_EMAC_RX_DPI_ANCHOR_VLAN2 = 0x3,
- TOPAZ_EMAC_RX_DPI_ANCHOR_VLAN3 = 0x4,
- TOPAZ_EMAC_RX_DPI_ANCHOR_OTHER = 0x5,
- TOPAZ_EMAC_RX_DPI_ANCHOR_LLC = 0x6,
- TOPAZ_EMAC_RX_DPI_ANCHOR_IPV4 = 0x7,
- TOPAZ_EMAC_RX_DPI_ANCHOR_IPV6 = 0x8,
- TOPAZ_EMAC_RX_DPI_ANCHOR_TCP = 0x9,
- TOPAZ_EMAC_RX_DPI_ANCHOR_UDP = 0xa,
-};
-
-enum topaz_emac_rx_dpi_cmp_op {
- TOPAZ_EMAC_RX_DPI_CMP_OP_EQUAL = 0x0,
- TOPAZ_EMAC_RX_DPI_CMP_OP_NEQUAL = 0x1,
- TOPAZ_EMAC_RX_DPI_CMP_OP_GT = 0x2,
- TOPAZ_EMAC_RX_DPI_CMP_OP_LT = 0x3,
-};
-
-#define TOPAZ_EMAC_RX_DPI_ANCHOR_NAMES { \
- "frame", "vlan0", "vlan1", "vlan2", "vlan3", \
- "other", "llc", "ipv4", "ipv6", "tcp", "udp", \
-}
-
-#define TOPAZ_EMAC_RX_DPI_CMP_OP_NAMES { \
- "==", "!=", ">", "<", \
-}
-
-
-union topaz_emac_rx_dpi_ctrl {
- uint32_t raw;
- struct {
- uint32_t offset : 9,
- anchor : 4,
- cmp_op : 2,
- enable : 1,
- __unused : 16;
- } data;
-};
-#endif // __ASSEMBLY__
-
-#define TOPAZ_EMAC_RX_DPI_IPT_GROUP(x) (0x720 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_IPT_GROUP_SRCADDR(x) BIT((x) + 0)
-#define TOPAZ_EMAC_RX_DPI_IPT_GROUP_DESTADDR(x) BIT((x) + 8)
-#define TOPAZ_EMAC_RX_DPI_IPT_GROUP_DESTPORT(x) BIT((x) + 16)
-#define TOPAZ_EMAC_RX_DPI_IPT_GROUP_SRCPORT(x) BIT((x) + 24)
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_DATA(x) (0x600 + 4 * (x))
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_DATA_MAX 8
-#define TOPAZ_EMAC_RX_DPI_IPT_PORT_DEST 0x0000FFFF
-#define TOPAZ_EMAC_RX_DPI_IPT_PORT_DEST_S 0
-#define TOPAZ_EMAC_RX_DPI_IPT_PORT_SRC 0xFFFF0000
-#define TOPAZ_EMAC_RX_DPI_IPT_PORT_SRC_S 16
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_COM 0x620
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_ENT 0x0000000F
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_ENT_S 0
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_WRITE BIT(8)
-#define TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_READ BIT(9)
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRIES 9
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRY_SRCADDR_START 0
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRY_SRCADDR_END 4
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRY_DESTADDR_START 4
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRY_DESTADDR_END 8
-#define TOPAZ_EMAC_RX_DPI_IPT_ENTRY_PORTS 8
-
-
-#define TOPAZ_EMAC_IP_PROTO_ENTRY(x) (0xa000 + 4 * (x))
-#define TOPAZ_EMAC_IP_PROTO_ENTRIES 256
-#define TOPAZ_EMAC_IP_PROTO_OUT_NODE 0x0000007F
-#define TOPAZ_EMAC_IP_PROTO_OUT_NODE_S 0
-#define TOPAZ_EMAC_IP_PROTO_OUT_PORT 0x00000780
-#define TOPAZ_EMAC_IP_PROTO_OUT_PORT_S 7
-#define TOPAZ_EMAC_IP_PROTO_VALID BIT(11)
-#define TOPAZ_EMAC_IP_PROTO_VALID_S 11
-
-#define TOPAZ_EMAC_IPDSCP_HWT_SHIFT 2
-
-#define TOPAZ_EMAC_RXP_PRIO_IS_BIT2 0
-#define TOPAZ_EMAC_RXP_PRIO_IS_VLAN 1
-#define TOPAZ_EMAC_RXP_PRIO_IS_DSCP 2
-#define TOPAZ_EMAC_RXP_PRIO_IS_DPI 3
-
-extern void topaz_emac_to_lhost(uint32_t enable);
-extern int topaz_emac_get_bonding(void);
-
-#endif // __TOPAZ_EMAC_H
-
diff --git a/quantenna/common/topaz_platform.h b/quantenna/common/topaz_platform.h
deleted file mode 100644
index be27da5..0000000
--- a/quantenna/common/topaz_platform.h
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
- * (C) Copyright 2010 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Header file which describes Topaz platform.
- * Has to be used by both kernel and bootloader.
- */
-
-#ifndef __TOPAZ_PLATFORM_H
-#define __TOPAZ_PLATFORM_H
-
-#include "ruby_platform.h"
-
-#ifndef MS
-#define MS(_v, _f) (((_v) & _f) >> _f##_S)
-#endif
-#ifndef SM
-#define SM(_v, _f) (((_v) << _f##_S) & _f)
-#endif
-
-/*
- * The following macro couldn't be defined via SM because of issues with nesting ##
- * i.e. the following define does not work
- * do{ where = (where) & (~(bitmask)) | SM(new_value, bitmask); }while(0)
- */
-#define UPDATE_BITSET(where, bitmask, new_value) \
- do{ where = ((where) & (~(bitmask))) | (((new_value) << bitmask##_S) & bitmask); }while(0)
-
-/* Extra reset bits */
-#define TOPAZ_SYS_CTL_RESET_AUC (RUBY_BIT(10))
-#define TOPAZ_SYS_CTL_ALIAS_MAP (RUBY_BIT(29))
-#define TOPAZ_SYS_CTL_UNIFIED_MAP (RUBY_BIT(30))
-
-/* Extra system controller bits */
-#define TOPAZ_SYS_CTL_DDRCLK_S 22
-#define TOPAZ_SYS_CTL_DDRCLK (0x7 << TOPAZ_SYS_CTL_DDRCLK_S)
-#define TOPAZ_SYS_CTL_DDRCLK_400MHZ SM(0, TOPAZ_SYS_CTL_DDRCLK)
-#define TOPAZ_SYS_CTL_DDRCLK_320MHZ SM(1, TOPAZ_SYS_CTL_DDRCLK)
-#define TOPAZ_SYS_CTL_DDRCLK_250MHZ SM(2, TOPAZ_SYS_CTL_DDRCLK)
-#define TOPAZ_SYS_CTL_DDRCLK_200MHZ SM(3, TOPAZ_SYS_CTL_DDRCLK)
-#define TOPAZ_SYS_CTL_DDRCLK_160MHZ SM(4, TOPAZ_SYS_CTL_DDRCLK)
-
-/* Extra system controller registers */
-#define TOPAZ_SYS_CTL_M2D_2_INT (RUBY_SYS_CTL_BASE_ADDR + 0x0184)
-#define TOPAZ_SYS_CTL_M2D_2_INT_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x0188)
-#define TOPAZ_SYS_CTL_M2D_3_INT (RUBY_SYS_CTL_BASE_ADDR + 0x018C)
-#define TOPAZ_SYS_CTL_M2D_3_INT_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x0190)
-
-/* Temperature control registers */
-#define TOPAZ_SYS_CTL_TEMPSENS_CTL (RUBY_SYS_CTL_BASE_ADDR + 0x0108)
-#define TOPAZ_SYS_CTL_TEMPSENS_CTL_START_CONV 0x00000001
-#define TOPAZ_SYS_CTL_TEMPSENS_CTL_SHUTDWN 0x00000002
-
-#define TOPAZ_SYS_CTL_TEMP_SENS_TEST_CTL (RUBY_SYS_CTL_BASE_ADDR + 0x010C)
-
-#define TOPAZ_SYS_CTL_TEMP_SENS_DATA (RUBY_SYS_CTL_BASE_ADDR + 0x0110)
-#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_TEMP 0x00000FFF
-#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_END_CONV 0x00001000
-#define TOPAZ_SYS_CTL_TEMP_SENS_DATA_END_CONV_S 11
-
-/* AuC SoC interrupt controller registers */
-#define TOPAZ_AUC_INT_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x0174)
-#define TOPAZ_AUC_IPC_INT (RUBY_SYS_CTL_BASE_ADDR + 0x0178)
-#define TOPAZ_AUC_IPC_INT_MASK(val) ((val & 0xFFFF) << 16)
-#define TOPAZ_AUC_INT_STATUS (RUBY_SYS_CTL_BASE_ADDR + 0x00D0)
-
-/* Linux Host interrupt controller registers */
-#define TOPAZ_LH_IPC3_INT (RUBY_SYS_CTL_BASE_ADDR + 0x14C)
-#define TOPAZ_LH_IPC3_INT_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x150)
-#define TOPAZ_IPC4_INT(base) ((base) + 0x13C)
-#define TOPAZ_IPC4_INT_MASK(base) ((base) + 0x140)
-#define TOPAZ_LH_IPC4_INT (TOPAZ_IPC4_INT(RUBY_SYS_CTL_BASE_ADDR))
-#define TOPAZ_LH_IPC4_INT_MASK (TOPAZ_IPC4_INT_MASK(RUBY_SYS_CTL_BASE_ADDR))
-
-/* Multi-processor hardware semahpore */
-#define TOPAZ_MPROC_SEMA (RUBY_SYS_CTL_BASE_ADDR + 0x0170)
-
-/* MuC SoC Interrupt controller registers */
-#define TOPAZ_SYS_CTL_A2M_INT (RUBY_SYS_CTL_BASE_ADDR + 0x0144)
-#define TOPAZ_SYS_CTL_A2M_INT_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x0148)
-
-/* PCIE SoC Interrupt controller registers */
-#define TOPAZ_SYS_CTL_PCIE_INT_STATUS (RUBY_SYS_CTL_BASE_ADDR + 0x017c)
-#define TOPAZ_SYS_CTL_TQE_INT_STATS_BIT (RUBY_BIT(10))
-
-#define TOPAZ_SWITCH_BASE_ADDR 0xE1000000
-#define TOPAZ_SWITCH_OUT_NODE_BITS 7 /* Up to 128 output nodes */
-#define TOPAZ_SWITCH_OUT_NODE_MAX (1 << TOPAZ_SWITCH_OUT_NODE_BITS)
-#define TOPAZ_SWITCH_OUT_NODE_MASK ((1 << TOPAZ_SWITCH_OUT_NODE_BITS) - 1)
-#define TOPAZ_SWITCH_OUT_PORT_BITS 4 /* Up to 16 output ports. 8 are used */
-#define TOPAZ_SWITCH_OUT_PORT_MAX (1 << TOPAZ_SWITCH_OUT_PORT_BITS)
-#define TOPAZ_SWITCH_OUT_PORT_MASK ((1 << TOPAZ_SWITCH_OUT_PORT_BITS) - 1)
-
-/* TQE */
-#define TOPAZ_TQE_BASE_ADDR (TOPAZ_SWITCH_BASE_ADDR + 0x30000)
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL (TOPAZ_TQE_BASE_ADDR + 0x0000)
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_VAL 0x000000FF
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_VAL_S 0
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_SHIFT 24 /* reg bits [7:0] become emac ctrl [31:24] */
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_MCAST_APPEND_CNTR_EN_S 16
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_MCAST_APPEND_CNTR_EN 0x00010000
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_PRI_MODE 0x0F000000
-#define TOPAZ_TQE_EMAC_TDES_1_CNTL_PRI_MODE_S 24
-#define TOPAZ_TQE_MISC (TOPAZ_TQE_BASE_ADDR + 0x0004)
-#define TOPAZ_TQE_MISC_CLR_DONE_DLY_CYCLE_NUM 0x000003FF /* q_avail_clr_done delay cycles */
-#define TOPAZ_TQE_MISC_CLR_DONE_DLY_CYCLE_NUM_S 0
-#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT 0x000F0000 /* dest port for reflected pkts */
-#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_S 16
-#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_ENABLE 0x00100000 /* redirect emac0<->emac0 or emac1<->emac1 reflected pkts */
-#define TOPAZ_TQE_MISC_RFLCT_OUT_PORT_ENABLE_S 20
-#define TOPAZ_TQE_MISC_RFLCT_2_OUT_PORT_ENABLE 0x00200000 /* redirect emac0<->emac0/emac1 or emac1<->emac0/emac1 reflected pkts */
-#define TOPAZ_TQE_MISC_RFLCT_2_OUT_PORT_ENABLE_S 21
-#define TOPAZ_TQE_MISC_CLR_DONE_DLY_ENABLE 0x80000000 /* enable q_avail_clr_done delay */
-#define TOPAZ_TQE_MISC_CLR_DONE_DLY_ENABLE_S 31
-#define TOPAZ_TQE_WMAC_Q_STATUS_PTR (TOPAZ_TQE_BASE_ADDR + 0x0008)
-#define TOPAZ_TQE_CPU_SEM (TOPAZ_TQE_BASE_ADDR + 0x000c)
-#define TOPAZ_TQE_OUTPORT_EMAC0_CNT (TOPAZ_TQE_BASE_ADDR + 0x0010)
-#define TOPAZ_TQE_OUTPORT_EMAC1_CNT (TOPAZ_TQE_BASE_ADDR + 0x0014)
-#define TOPAZ_TQE_OUTPORT_WMAC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0018)
-#define TOPAZ_TQE_OUTPORT_LHOST_CNT (TOPAZ_TQE_BASE_ADDR + 0x001c)
-#define TOPAZ_TQE_OUTPORT_MUC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0020)
-#define TOPAZ_TQE_OUTPORT_DSP_CNT (TOPAZ_TQE_BASE_ADDR + 0x0024)
-#define TOPAZ_TQE_OUTPORT_AUC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0028)
-#define TOPAZ_TQE_OUTPORT_PCIE_CNT (TOPAZ_TQE_BASE_ADDR + 0x002c)
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL (TOPAZ_TQE_BASE_ADDR + 0x0030)
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_TID 0xF
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_TID_S 0
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_NODE 0x7F00
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_NODE_S 8
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_CLEAR RUBY_BIT(30)
-#define TOPAZ_TQE_Q_AVAIL_CLR_CNTL_CLEAR_DONE RUBY_BIT(31)
-#define TOPAZ_TQE_DROP_CNT (TOPAZ_TQE_BASE_ADDR + 0x0034)
-#define TOPAZ_TQE_DROP_EMAC0_CNT (TOPAZ_TQE_BASE_ADDR + 0x0040)
-#define TOPAZ_TQE_DROP_EMAC1_CNT (TOPAZ_TQE_BASE_ADDR + 0x0044)
-#define TOPAZ_TQE_DROP_WMAC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0048)
-#define TOPAZ_TQE_DROP_LHOST_CNT (TOPAZ_TQE_BASE_ADDR + 0x004c)
-#define TOPAZ_TQE_DROP_MUC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0050)
-#define TOPAZ_TQE_DROP_DSP_CNT (TOPAZ_TQE_BASE_ADDR + 0x0054)
-#define TOPAZ_TQE_DROP_AUC_CNT (TOPAZ_TQE_BASE_ADDR + 0x0058)
-#define TOPAZ_TQE_DROP_PCIE_CNT (TOPAZ_TQE_BASE_ADDR + 0x005c)
-
-/* TQE-CPU interface */
-#define TOPAZ_TQE_CPUIF_BASE(num) (TOPAZ_TQE_BASE_ADDR + 0x4000 + 0x1000 * (num)) // For FPGA build 72 and earlier need to use (0xE1040000 + 0x10000 * (num))
-#define TOPAZ_TQE_CPUIF_CSR(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0000)
-#define TOPAZ_TQE_CPUIF_RX_RING_SIZE(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0004)
-#define TOPAZ_TQE_CPUIF_RX_RING(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0008)
-#define TOPAZ_TQE_CPUIF_RX_CURPTR(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x000c)
-#define TOPAZ_TQE_CPUIF_PKT_FINISH(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0010)
-#define TOPAZ_TQE_CPUIF_Q_PTR_STATUS(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0014)
-#define TOPAZ_TQE_CPUIF_PPCTL0(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0020)
-#define TOPAZ_TQE_CPUIF_PPCTL1(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0024)
-#define TOPAZ_TQE_CPUIF_PPCTL2(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0028)
-#define TOPAZ_TQE_CPUIF_PPCTL3(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x002c)
-#define TOPAZ_TQE_CPUIF_PPCTL4(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0030)
-#define TOPAZ_TQE_CPUIF_PPCTL5(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0034)
-#define TOPAZ_TQE_CPUIF_TXSTART(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x0038)
-#define TOPAZ_TQE_CPUIF_STATUS(num) (TOPAZ_TQE_CPUIF_BASE(num) + 0x003C)
-/* Some bits definitions */
-#define TOPAZ_TQE_CPUIF_CSR_IRQ_EN RUBY_BIT(0)
-#define TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD(num) (((num) & 0x7F) << 8)
-#define TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD_EN RUBY_BIT(15)
-#define TOPAZ_TQE_CPUIF_CSR_RESET RUBY_BIT(31)
-/* Aux definitions */
-#define TOPAZ_TQE_CPUIF_RXDESC_ALIGN 8 /* TQE CPU rx descriptors must be 64 bit aligned */
-
-/**
- * Hardware Buffer Manager
- */
-#define TOPAZ_HBM_BASE_ADDR (TOPAZ_SWITCH_BASE_ADDR + 0x20000)
-#define TOPAZ_HBM_CSR_REG (TOPAZ_HBM_BASE_ADDR + 0x0000)
-#define TOPAZ_HBM_CSR_Q_EN(x) (BIT(0 + (x)))
-#define TOPAZ_HBM_CSR_INT_EN (BIT(7))
-#define TOPAZ_HBM_CSR_OFLOW_INT_MASK(x) (BIT(8 + (x)))
-#define TOPAZ_HBM_CSR_UFLOW_INT_MASK(x) (BIT(12 + (x)))
-#define TOPAZ_HBM_CSR_OFLOW_INT_RAW(x) (BIT(16 + (x)))
-#define TOPAZ_HBM_CSR_UFLOW_INT_RAW(x) (BIT(20 + (x)))
-#define TOPAZ_HBM_CSR_INT_MSK_RAW (0xff << 16)
-#define TOPAZ_HBM_CSR_OFLOW_INT_STATUS(x) (BIT(24 + (x)))
-#define TOPAZ_HBM_CSR_UFLOW_INT_STATUS(x) (BIT(28 + (x)))
-
-#define TOPAZ_HBM_BASE_REG(x) (TOPAZ_HBM_BASE_ADDR + 0x0004 + ((x) * 0x10))
-#define TOPAZ_HBM_LIMIT_REG(x) (TOPAZ_HBM_BASE_ADDR + 0x0008 + ((x) * 0x10))
-#define TOPAZ_HBM_WR_PTR(x) (TOPAZ_HBM_BASE_ADDR + 0x000c + ((x) * 0x10))
-#define TOPAZ_HBM_RD_PTR(x) (TOPAZ_HBM_BASE_ADDR + 0x0010 + ((x) * 0x10))
-
-#define TOPAZ_HBM_POOL(x) (TOPAZ_HBM_BASE_ADDR + 0x0100 + ((x) * 0x4))
-#define TOPAZ_HBM_POOL_REQ(x) (TOPAZ_HBM_BASE_ADDR + 0x0110 + ((x) * 0x4))
-#define TOPAZ_HBM_POOL_DATA(x) (TOPAZ_HBM_BASE_ADDR + 0x0140 + ((x) * 0x4))
-
-#define TOPAZ_HBM_OVERFLOW_CNT (TOPAZ_HBM_BASE_ADDR + 0x0190)
-#define TOPAZ_HBM_UNDERFLOW_CNT (TOPAZ_HBM_BASE_ADDR + 0x0194)
-
-#define TOPAZ_HBM_MASTER_COUNT 9
-#define TOPAZ_HBM_POOL_COUNT 4
-#define TOPAZ_HBM_POOL_REQUEST_CNT(master, pool) (TOPAZ_HBM_BASE_ADDR + 0x0200 + (master) * 0x20 + (pool) * 0x4)
-#define TOPAZ_HBM_POOL_RELEASE_CNT(master, pool) (TOPAZ_HBM_BASE_ADDR + 0x0210 + (master) * 0x20 + (pool) * 0x4)
-
-#define TOPAZ_HBM_RELEASE_BUF (BIT(0))
-#define TOPAZ_HBM_REQUEST_BUF (BIT(1))
-#define TOPAZ_HBM_POOL_NUM(x) ((x) << 2)
-#define TOPAZ_HBM_DONE (BIT(31))
-
-/* SoC interrupts */
-#define TOPAZ_SYS_CTL_M2L_HI_INT PLATFORM_REG_SWITCH(RUBY_SYS_CTL_M2L_INT, (RUBY_SYS_CTL_BASE_ADDR + 0xFC))
-
-/**
- * Forwarding Table
- */
-#define TOPAZ_FWT_BASE_ADDR (TOPAZ_SWITCH_BASE_ADDR + 0x0)
-#define TOPAZ_FWT_SIZE (BIT(12))
-
-#define TOPAZ_FWT_TABLE_BASE (TOPAZ_FWT_BASE_ADDR)
-
-#define TOPAZ_FWT_VLAN_TABLE_BASE (TOPAZ_FWT_BASE_ADDR + 0x10000)
-#define TOPAZ_FWT_VLAN_TABLE_LIMIT (TOPAZ_FWT_BASE_ADDR + 0x14000)
-
-#define TOPAZ_FWT_CTRL_BASE_ADDR (TOPAZ_FWT_BASE_ADDR + 0xA000)
-
-#define TOPAZ_FWT_CPU_ACCESS (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0000)
-#define TOPAZ_FWT_CPU_ACCESS_STATE 0x0000000F
-#define TOPAZ_FWT_CPU_ACCESS_STATE_S 0
-#define TOPAZ_FWT_CPU_ACCESS_STATE_GRANTED 0x3
-#define TOPAZ_FWT_CPU_ACCESS_REQ BIT(31)
-#define TOPAZ_FWT_TIME_STAMP_CTRL (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0004)
-#define TOPAZ_FWT_TIME_STAMP_CTRL_UNIT 0x0000001F
-#define TOPAZ_FWT_TIME_STAMP_CTRL_UNIT_S 0
-#define TOPAZ_FWT_TIME_STAMP_CTRL_SCALE 0x000003e0
-#define TOPAZ_FWT_TIME_STAMP_CTRL_SCALE_S 5
-#define TOPAZ_FWT_TIME_STAMP_DIS_AUTO_UPDATE_S (16)
-#define TOPAZ_FWT_TIME_STAMP_CTRL_CLEAR BIT(31)
-#define TOPAZ_FWT_TIME_STAMP_CNT (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0008)
-#define TOPAZ_FWT_HASH_CTRL (TOPAZ_FWT_CTRL_BASE_ADDR + 0x000c)
-#define TOPAZ_FWT_HASH_CTRL_ENABLE BIT(15)
-
-#define TOPAZ_FWT_LOOKUP_LHOST 0
-#define TOPAZ_FWT_LOOKUP_MUC 1
-#define TOPAZ_FWT_LOOKUP_DSP 2
-#define TOPAZ_FWT_LOOKUP_AUC 3
-
-#define __TOPAZ_FWT_LOOKUP_REG(x) (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0010 + ((x) * 0x10))
-#define __TOPAZ_FWT_LOOKUP_MAC_LO(x) (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0014 + ((x) * 0x10))
-#define __TOPAZ_FWT_LOOKUP_MAC_HI(x) (TOPAZ_FWT_CTRL_BASE_ADDR + 0x0018 + ((x) * 0x10))
-
-#define TOPAZ_FWT_LOOKUP_TRIG 0x00000001
-#define TOPAZ_FWT_LOOKUP_TRIG_S 0
-#define TOPAZ_FWT_LOOKUP_ENTRY_ADDR 0x7FF00000
-#define TOPAZ_FWT_LOOKUP_ENTRY_ADDR_S 20
-#define TOPAZ_FWT_LOOKUP_HASH_ADDR 0x0003FF00
-#define TOPAZ_FWT_LOOKUP_HASH_ADDR_S 8
-#define TOPAZ_FWT_LOOKUP_VALID 0x80000000
-#define TOPAZ_FWT_LOOKUP_VALID_S 31
-
-#define TOPAZ_FWT_PORT_EMAC0 (0)
-#define TOPAZ_FWT_PORT_EMAC1 (1)
-#define TOPAZ_FWT_PORT_WMAC (2)
-#define TOPAZ_FWT_PORT_PCIE (3)
-#define TOPAZ_FWT_PORT_LH (4)
-#define TOPAZ_FWT_PORT_MUC (5)
-#define TOPAZ_FWT_PORT_DSP (6)
-#define TOPAZ_FWT_PORT_AUC (7)
-
-#define TOPAZ_FWT_ENTRY_NXT_ENTRY 0x0FFE0000
-#define TOPAZ_FWT_ENTRY_NXT_ENTRY_S 17
-#define TOPAZ_FWT_ENTRY_VALID 0x80000000
-#define TOPAZ_FWT_ENTRY_VALID_S 31
-#define TOPAZ_FWT_ENTRY_PORTAL 0x40000000
-#define TOPAZ_FWT_ENTRY_PORTAL_S 30
-
-#define TOPAZ_FWT_ENTRY_OUT_NODE_0 0x0000007F
-#define TOPAZ_FWT_ENTRY_OUT_NODE_0_S 0
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_0 0x00000080
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_0_S 7
-#define TOPAZ_FWT_ENTRY_OUT_NODE_1 0x00007F00
-#define TOPAZ_FWT_ENTRY_OUT_NODE_1_S 8
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_1 0x00008000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_1_S 15
-#define TOPAZ_FWT_ENTRY_OUT_NODE_2 0x007F0000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_2_S 16
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_2 0x00800000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_2_S 23
-#define TOPAZ_FWT_ENTRY_OUT_NODE_3 0x7F000000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_3_S 24
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_3 0x80000000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_3_S 31
-#define TOPAZ_FWT_ENTRY_OUT_NODE_4 0x007F0000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_4_S 16
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_4 0x00800000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_4_S 23
-#define TOPAZ_FWT_ENTRY_OUT_NODE_5 0x7F000000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_5_S 24
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_5 0x80000000
-#define TOPAZ_FWT_ENTRY_OUT_NODE_VLD_5_S 31
-
-#define TOPAZ_FWT_ENTRY_OUT_PORT 0x00003C00
-#define TOPAZ_FWT_ENTRY_OUT_PORT_S 10
-
-#define TOPAZ_FWT_ENTRY_TIMESTAMP 0x000003FF
-#define TOPAZ_FWT_ENTRY_TIMESTAMP_S 0
-
-#define TOPAZ_FWT_HW_HASH_SHIFT 10
-#define TOPAZ_FWT_HW_HASH_MASK ((1 << TOPAZ_FWT_HW_HASH_SHIFT) - 1)
-#define TOPAZ_FWT_HW_LEVEL1_ENTRIES (1 << TOPAZ_FWT_HW_HASH_SHIFT)
-#define TOPAZ_FWT_HW_LEVEL2_ENTRIES 1024
-#define TOPAZ_FWT_HW_TOTAL_ENTRIES (TOPAZ_FWT_HW_LEVEL1_ENTRIES + TOPAZ_FWT_HW_LEVEL2_ENTRIES)
-
-/*
- * VLAN table
- */
-#define TOPAZ_VLAN_BASE_ADDR (TOPAZ_SWITCH_BASE_ADDR + 0x10000)
-#define TOPAZ_VLAN_ENTRIES (1 << 12) /* 802.1Q VLAN ID */
-#define TOPAZ_VLAN_ENTRY_ADDR(x) (TOPAZ_VLAN_BASE_ADDR + 4 * (x))
-#define TOPAZ_VLAN_OUT_NODE 0x0000007F
-#define TOPAZ_VLAN_OUT_NODE_S 0
-#define TOPAZ_VLAN_OUT_PORT 0x00000380
-#define TOPAZ_VLAN_OUT_PORT_S 7
-#define TOPAZ_VLAN_VALID 0x00000400
-#define TOPAZ_VLAN_VALID_S 10
-#define TOPAZ_VLAN_HW_BITMASK 0x000007ff
-
-/* TX AGG */
-#define TOPAZ_TX_AGG_BASE_ADDR 0xE5090000
-#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL(node) (TOPAZ_TX_AGG_BASE_ADDR + 0x000 + 4 * (node))
-#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_MASK(val) ((val & 0xFFFF) << 16)
-#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_SUP(node) (TOPAZ_TX_AGG_BASE_ADDR + 0x200 + 4 * (node))
-#define TOPAZ_TX_AGG_NODE_N_TID_Q_AVAIL_SUP_MASK(val) ((val & 0xFFFF) << 16)
-#define TOPAZ_TX_AGG_CSR (TOPAZ_TX_AGG_BASE_ADDR + 0x460)
-#define TOPAZ_TX_AGG_TAC_MAP_MODE_64 0
-#define TOPAZ_TX_AGG_TAC_MAP_MODE_128 1
-#define TOPAZ_TX_AGG_AC 0xF0000000
-#define TOPAZ_TX_AGG_AC_S 28
-#define TOPAZ_TX_AGG_CPU_Q_ACCESS_SEM (TOPAZ_TX_AGG_BASE_ADDR + 0x464)
-#define TOPAZ_TX_AGG_UC_Q_ACCESS_SEM (TOPAZ_TX_AGG_BASE_ADDR + 0x468)
-#define TOPAZ_TX_AGG_TAC_CNTL (TOPAZ_TX_AGG_BASE_ADDR + 0x46C)
-#ifdef TOPAZ_128_NODE_MODE
-#define TOPAZ_TX_AGG_TAC_CNTL_NODE(node) ((node) & 0x7F)
-#else
-#define TOPAZ_TX_AGG_TAC_CNTL_NODE(node) ((node) & 0x3F)
-#endif
-#define TOPAZ_TX_AGG_TAC_CNTL_TID(tid) (((tid) & 0xF) << 8)
-#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD(cmd) (((cmd) & 0x3) << 12)
-#define TOPAZ_TX_AGG_TAC_CNTL_READ_DATA_VLD RUBY_BIT(29)
-#define TOPAZ_TX_AGG_TAC_CNTL_READ RUBY_BIT(30)
-#define TOPAZ_TX_AGG_TAC_CNTL_WRITE RUBY_BIT(31)
-#define TOPAZ_TX_AGG_TAC_DATA (TOPAZ_TX_AGG_BASE_ADDR + 0x470)
-#define TOPAZ_TX_AGG_TAC_DATA_AC(__ac) ((__ac) & 0x3)
-#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY(__pri) (((__pri) & 0xFF) << 2)
-#ifdef TOPAZ_128_NODE_MODE
-#define TOPAZ_TX_AGG_TAC_DATA_AC_LO 0x00000003
-#define TOPAZ_TX_AGG_TAC_DATA_AC_LO_S 0
-#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_LO 0x0000001c
-#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_LO_S 2
-#define TOPAZ_TX_AGG_TAC_DATA_AC_HI 0x00000060
-#define TOPAZ_TX_AGG_TAC_DATA_AC_HI_S 5
-#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_HI 0x00000380
-#define TOPAZ_TX_AGG_TAC_DATA_PRIORITY_HI_S 7
-#endif
-#define TOPAZ_TX_AGG_AC_N_NODE_TID(ac) (TOPAZ_TX_AGG_BASE_ADDR + 0x478 + 4 * (ac))
-#define TOPAZ_TX_AGG_AC_N_STAT_PTR(ac) (TOPAZ_TX_AGG_BASE_ADDR + 0x488 + 4 * (ac))
-#define TOPAZ_TX_AGG_Q_FULL_THRESH (TOPAZ_TX_AGG_BASE_ADDR + 0x498)
-#define TOPAZ_TX_AGG_Q_FULL_THRESH_VAL(q0, q1, q2, q3) (((q0) & 0xF) | (((q1) & 0xF) << 4) | (((q2) & 0xF) << 8) | (((q3) & 0xF) << 12))
-#define TOPAZ_TX_AGG_CPU_IRQ_CSR (TOPAZ_TX_AGG_BASE_ADDR + 0x49C)
-#define TOPAZ_TX_AGG_STATUS_IRQ (TOPAZ_TX_AGG_BASE_ADDR + 0x4A0)
-#define TOPAZ_TX_AGG_AC_N_NODE_TID_NO_SEL(ac) (TOPAZ_TX_AGG_BASE_ADDR + 0x4A4 + 4 * (ac))
-#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_NODE_TAB 0
-#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_AVAIL_LO 1
-#define TOPAZ_TX_AGG_TAC_CNTL_READ_CMD_AVAIL_HI 3
-#define TOPAZ_TX_AGG_MAX_NODE_NUM 128
-#define TOPAZ_TX_AGG_HALF_MAX_NODE_NUM (TOPAZ_TX_AGG_MAX_NODE_NUM >> 1)
-
-/*
- * MuC/Lhost new interrupts.
- * Old interrupts (even changed number) are in ruby_platform, RUBY_IRQ_*
- */
-#define TOPAZ_IRQ_TQE (5)
-#define TOPAZ_IRQ_HDMA0 (RUBY_IRQ_DMA0)
-#define TOPAZ_IRQ_HBM (RUBY_IRQ_DMA1)
-#define TOPAZ_IRQ_HDMA1 (RUBY_IRQ_DMA3)
-#define TOPAZ_IRQ_PCIE (28)
-#define TOPAZ_IRQ_IPC_A2M (18)
-#define TOPAZ_IQR_TQE_DSP (19)
-#define TOPAZ_IRQ_PCIE_DMA (RUBY_IRQ_DMA2)
-#define TOPAZ_IRQ_IPC4 (29)
-#define TOPAZ_MUC_IRQ_BB_PER_PKT (31)
-#define TOPAZ_HBM_INT_EN RUBY_BIT(31)
-#define TOPAZ_PCIE_INTX_CLR_MASK RUBY_BIT(11)
-#define TOPAZ_PCIE_INT_MASK RUBY_PCIE_INT_MASK
-#define TOPAZ_PCIE_MSI_MASK RUBY_PCIE_MSI_MASK
-#define TOPAZ_PCIE_MSI_EN RUBY_BIT(0)
-#define TOPAZ_PCIE_MSI_BASE 0xE9000050
-#define TOPAZ_PCIE_MSI_CAP (TOPAZ_PCIE_MSI_BASE + 0x0)
-
-#define TOPAZ_PCIE_EXP_DEVCTL (0xE9000078)
-
-/* MSI defines to be used in Topaz PCIe host driver */
-#define TOPAZ_PCIE_MSI_REGION RUBY_PCIE_MSI_REGION
-#define TOPAZ_MSI_ADDR_LOWER RUBY_MSI_ADDR_LOWER
-#define TOPAZ_MSI_ADDR_UPPER RUBY_MSI_ADDR_UPPER
-#define TOPAZ_MSI_INT_ENABLE RUBY_MSI_INT_ENABLE
-
-/* AHB Bus monitors */
-#define TOPAZ_BUSMON_INTR_STATUS (RUBY_SYS_CTL_BASE_ADDR + 0x015c)
-#define TOPAZ_BUSMON_INTR_MASK (RUBY_SYS_CTL_BASE_ADDR + 0x0160)
-#define TOPAZ_BUSMON_INTR_MASK_TIMEOUT_EN(master) BIT((master) * 2 + 0)
-#define TOPAZ_BUSMON_INTR_MASK_RANGE_CHECK_EN(master) BIT((master) * 2 + 1)
-#define TOPAZ_BUSMON_DEBUG_VIEW (RUBY_SYS_CTL_BASE_ADDR + 0x0164)
-#define TOPAZ_BUSMON_DEBUG_VIEW_MASTER(x) (((x) & 0x3) << 0)
-#define TOPAZ_BUSMON_DEBUG_VIEW_DATA_SEL(x) (((x) & 0x7) << 2)
-#define TOPAZ_BUSMON_DEBUG_STATUS (RUBY_SYS_CTL_BASE_ADDR + 0x0168)
-#define TOPAZ_BUSMON_CTL_BASE_ADDR (RUBY_SYS_CTL_BASE_ADDR + 0x0200)
-#define TOPAZ_BUSMON_CTL(core) (TOPAZ_BUSMON_CTL_BASE_ADDR + ((core) * 0x40))
-#define __TOPAZ_BUSMON_CTL_RANGE(core, range) (TOPAZ_BUSMON_CTL(core) + 0x8 + ((range) * 0x8))
-#define TOPAZ_BUSMON_CTL_RANGE_LOW(core, range) (__TOPAZ_BUSMON_CTL_RANGE((core), (range)) + 0x0)
-#define TOPAZ_BUSMON_CTL_RANGE_HIGH(core, range) (__TOPAZ_BUSMON_CTL_RANGE((core), (range)) + 0x4)
-#define TOPAZ_BUSMON_HREADY_EN BIT(0)
-#define TOPAZ_BUSMON_TIMER_INT_EN BIT(1)
-#define TOPAZ_BUSMON_TIMER_ERROR_EN BIT(2)
-#define TOPAZ_BUSMON_ADDR_CHECK_EN BIT(3)
-#define TOPAZ_BUSMON_REGION_VALID(x) (((x) & 0xF) << 4)
-#define TOPAZ_BUSMON_TIMEOUT(cycles) (((cycles) & 0x3FF) << 8)
-#define TOPAZ_BUSMON_BLOCK_TRANS_EN BIT(18)
-#define TOPAZ_BUSMON_OUTSIDE_ADDR_CHECK BIT(19)
-
-/* AHB Bus monitor masters */
-#define TOPAZ_BUSMON_LHOST 0
-#define TOPAZ_BUSMON_MUC 1
-#define TOPAZ_BUSMON_DSP 2
-#define TOPAZ_BUSMON_AUC 3
-#define TOPAZ_BUSMON_WMAC 4
-#define TOPAZ_BUSMON_PCIE 5
-#define TOPAZ_BUSMON_SWE 6
-#define TOPAZ_BUSMON_EMAC 7
-
-#define TOPAZ_BUSMON_MASTER_NAMES { "lhost", "muc", "dsp", "auc", "wmac", "pcie", "swe", "emac" }
-
-/* AHB Bus monitor debug data select */
-#define TOPAZ_BUSMON_ADDR 0
-#define TOPAZ_BUSMON_WR_L32 1
-#define TOPAZ_BUSMON_WR_H32 2
-#define TOPAZ_BUSMON_RD_L32 3
-#define TOPAZ_BUSMON_RD_H32 4
-#define TOPAZ_BUSMON_CTRL0 5
-#define TOPAZ_BUSMON_CTRL1 6
-#define TOPAZ_BUSMON_CTRL2 7
-#define TOPAZ_BUSMON_DEBUG_MAX 8
-
-/* GPIO Registers */
-#define RUBY_GPIO3_PWM1 (RUBY_GPIO1_PWM0 + 4)
-#define RUBY_GPIO12_PWM3 (RUBY_GPIO1_PWM0 + 12)
-#define RUBY_GPIO13_PWM4 (RUBY_GPIO1_PWM0 + 16)
-#define RUBY_GPIO15_PWM5 (RUBY_GPIO1_PWM0 + 20)
-#define RUBY_GPIO16_PWM6 (RUBY_GPIO1_PWM0 + 24)
-#define RUBY_GPIO_PWM_LOW_SHIFT (0)
-#define RUBY_GPIO_PWM_HIGH_SHIFT (8)
-#define RUBY_GPIO_PWM_ENABLE (BIT(16))
-#define RUBY_GPIO_PWM_MAX_COUNT (255)
-
-#ifdef TOPAZ_AMBER_IP
-#define AMBER_GPIO11_PWM0 (RUBY_GPIO_REGS_ADDR + 0x20)
-#define AMBER_GPIO12_PWM1 (RUBY_GPIO_REGS_ADDR + 0x24)
-#define AMBER_GPIO13_PWM2 (RUBY_GPIO_REGS_ADDR + 0x28)
-#define AMBER_GPIO14_PWM3 (RUBY_GPIO_REGS_ADDR + 0x2C)
-#define AMBER_GPIO15_PWM4 (RUBY_GPIO_REGS_ADDR + 0x30)
-#define AMBER_GPIO16_PWM5 (RUBY_GPIO_REGS_ADDR + 0x34)
-#define AMBER_GPIO17_PWM6 (RUBY_GPIO_REGS_ADDR + 0x38)
-#endif
-
-/* Interrupt lines */
-#define TOPAZ_IRQ_MISC_WDT (57)
-#define TOPAZ_IRQ_MISC_SPI1 (58)
-#define TOPAZ_IRQ_MISC_AHB_MON (61)
-#define TOPAZ_IRQ_MISC_HBM (62)
-#define TOPAZ_IRQ_MISC_FWT (63)
-#define TOPAZ_IRQ_MISC_EXT_IRQ_COUNT (8)
-#define TOPAZ_IRQ_MISC_RST_CAUSE_START (9)
-
-/* RESET CAUSE */
-#define TOPAZ_SYS_CTL_INTR_TIMER_MSK(t) (1 << (3 + (t)))
-
-#endif /* #ifndef __TOPAZ_PLATFORM_H */
diff --git a/quantenna/common/topaz_reset.h b/quantenna/common/topaz_reset.h
deleted file mode 100644
index fab7393..0000000
--- a/quantenna/common/topaz_reset.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * (C) Copyright 2015 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/* This header file defines reset function to be used on Topaz */
-
-#ifndef __TOPAZ_RESET_H
-#define __TOPAZ_RESET_H
-
-#include <include/qtn/mproc_sync_base.h>
-#ifdef TOPAZ_AMBER_IP
-#include <include/qtn/amber.h>
-#endif
-
-static void topaz_set_reset_vec(int enable, unsigned long reset)
-{
-#ifdef TOPAZ_AMBER_IP
- unsigned long flush_mask = 0;
-
- switch (reset) {
- case TOPAZ_SYS_CTL_RESET_AUC:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_AUC;
- break;
- case RUBY_SYS_CTL_RESET_DSP_ALL:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_DSP;
- break;
- case RUBY_SYS_CTL_RESET_MUC_ALL:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_MUC;
- break;
- case RUBY_SYS_CTL_RESET_ENET0:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_RGMII;
- break;
- case RUBY_SYS_CTL_RESET_IOSS:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_BRIDGE | TOPAZ_AMBER_BUS_FLUSH_DMA;
- break;
- case RUBY_SYS_CTL_RESET_MAC:
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_WMAC;
- break;
- case RUBY_SYS_CTL_RESET_BB:
- flush_mask = 0;
- break;
- default:
- /* In the case we accidentally get here - request/release flush for everything to be safe */
- flush_mask = TOPAZ_AMBER_BUS_FLUSH_AUC |
- TOPAZ_AMBER_BUS_FLUSH_DSP |
- TOPAZ_AMBER_BUS_FLUSH_MUC |
- TOPAZ_AMBER_BUS_FLUSH_RGMII |
- TOPAZ_AMBER_BUS_FLUSH_BRIDGE |
- TOPAZ_AMBER_BUS_FLUSH_DMA |
- TOPAZ_AMBER_BUS_FLUSH_WMAC |
- TOPAZ_AMBER_BUS_FLUSH_LHOST;
- qtn_mproc_sync_log("%s:%u: error - invalid reset flag 0x%08x\n", __FILE__, __LINE__, reset);
- break;
- }
-
- if (!enable && flush_mask) {
- /* Need to request bus flush before switching off */
- amber_bus_flush_req(flush_mask);
- }
-#endif
-
- qtn_mproc_sync_mem_write(RUBY_SYS_CTL_CPU_VEC_MASK, reset);
- qtn_mproc_sync_mem_write_wmb(RUBY_SYS_CTL_CPU_VEC, enable ? reset : 0);
- qtn_mproc_sync_mem_write_wmb(RUBY_SYS_CTL_CPU_VEC_MASK, 0);
-
-#ifdef TOPAZ_AMBER_IP
- if (enable && flush_mask) {
- /* Need to release bus flush after switching on */
- amber_bus_flush_release(flush_mask);
- }
-#endif
-
-}
-#endif // #ifndef __TOPAZ_RESET_H
-
-
diff --git a/quantenna/common/topaz_rfic6_config b/quantenna/common/topaz_rfic6_config
deleted file mode 100644
index 0b7d498..0000000
--- a/quantenna/common/topaz_rfic6_config
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * (C) Copyright 2010 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Header file which describes Topaz platform.
- * Has to be used by both kernel and bootloader.
- */
-
-#ifndef __TOPAZ_CONFIG_H
-#define __TOPAZ_CONFIG_H
-
-#include "current_platform.h"
-
-#if !TOPAZ_FPGA_PLATFORM
-#undef TOPAZ_ICACHE_WORKAROUND
-#endif
-
-/*
- * Control registers move depending on unified + alias bit
- */
-
-#define TOPAZ_MMAP_UNIFIED 0
-#define TOPAZ_MMAP_ALIAS 0
-#define TOPAZ_RX_ACCELERATE 1
-
-/*
- * VSP/QTM
- * Macro TOPAZ_QTM is used to help identify changes between original VSP and QTM.
- * In Lhost kernel driver, it must be used within CONFIG_QVSP(in kernel .config).
- * CONFIG_QVSP TOPAZ_QTM ruby topaz
- * Y 1 invalid *QTM works
- * Y 0 *VSP works VSP alive but doesn't work for HDP
- * N 1 invalid *no VSP/QTM
- * N 0 *no VSP no VSP/QTM, and no QTM changes in MuC and AuC
- * So generally, sololy changing CONFIG_QVSP works for both ruby and topaz as indicated by *.
- * But to throughly clean QTM code in AuC and MuC, disable TOPAZ_QTM in topaz below.
- */
- #define TOPAZ_QTM 1
-
-/*
- * HBM buffer process in MuC requires that TOPAZ_AUC_RX is dependent on TOPAZ_RX_ACCELERATE, so let's
- * enable TOPAZ_AUC_RX only when TOPAZ_RX_ACCELERATE is enabled.
- */
-#if TOPAZ_RX_ACCELERATE
-#define TOPAZ_AUC_RX 1
-#else
-#define TOPAZ_AUC_RX 0
-#endif
-
-#if TOPAZ_MMAP_ALIAS && !TOPAZ_MMAP_UNIFIED
- #error Alias map requires unified map
-#endif
-
-#if TOPAZ_MMAP_ALIAS
- #define TOPAZ_ALIAS_MAP_SWITCH(a, b) (b)
-#else
- #define TOPAZ_ALIAS_MAP_SWITCH(a, b) (a)
-#endif
-
-/* Topaz fixed phy addresses */
-#define TOPAZ_FPGAA_PHY0_ADDR 2
-#define TOPAZ_FPGAA_PHY1_ADDR 3
-#define TOPAZ_FPGAB_PHY0_ADDR 4
-#define TOPAZ_FPGAB_PHY1_ADDR 1
-#define TOPAZ_PHY0_ADDR 1
-#define TOPAZ_PHY1_ADDR 3
-
-#ifndef TOPAZ_FPGA_PLATFORM
- #define TOPAZ_FPGA_PLATFORM 0
-#endif
-
-/* Definition indicates that Topaz platform is FPGA */
-#if TOPAZ_FPGA_PLATFORM
- /* CLK speeds are in MHz and 1/10th the speed of actual ASIC */
- #define TOPAZ_SERIAL_BAUD 38400
- #define TOPAZ_APB_CLK 12500000
- #define TOPAZ_AHB_CLK 25000000
- #define TOPAZ_CPU_CLK 50000000
- #define RUBY_FPGA_DDR
-#else
- #define TOPAZ_SERIAL_BAUD 115200
- #define TOPAZ_APB_CLK 125000000
- #define TOPAZ_AHB_CLK 250000000
- #define TOPAZ_CPU_CLK 500000000
- #define RUBY_ASIC_DDR
-#endif /* #if TOPAZ_FPGA_PLATFORM */
-
-/*
- * Setting UPF_SPD_FLAG gives a developer the option to set the
- * flag to match a UPF_ define from <linux>/include/linux/serial_core.h
- * or set the value to 0 to use the default baud rate setting DEFAULT_BAUD
- */
-#define UPF_SPD_FLAG 0
-#define DEFAULT_BAUD TOPAZ_SERIAL_BAUD
-
-/*
- * Re-use Ruby defines to simplify the number of changes required
- * to compile new binaries for Topaz
- */
-#define RUBY_SERIAL_BAUD TOPAZ_SERIAL_BAUD
-#define RUBY_FIXED_DEV_CLK TOPAZ_APB_CLK
-#define RUBY_FIXED_CPU_CLK TOPAZ_CPU_CLK
-
-#ifdef PLATFORM_DEFAULT_BOARD_ID
- #define DEFAULT_BOARD_ID PLATFORM_DEFAULT_BOARD_ID
-#else
- /* Default board id used to match Topaz setting if there is no SPI Flash */
- #define DEFAULT_BOARD_ID QTN_TOPAZ_BB_BOARD
-#endif /* TOPAZ_DEFAULT_BOARD_ID */
-
-#ifndef PLATFORM_ARC7_MMU_VER
- #define PLATFORM_ARC7_MMU_VER 2
-#endif
-
-#define CONFIG_RUBY_BROKEN_IPC_IRQS 0
-
-#define RUBY_IPC_HI_IRQ(bit_num) ((bit_num) + 8)
-#define RUBY_M2L_IPC_HI_IRQ(bit_num) (bit_num)
-
-#define PLATFORM_REG_SWITCH(reg1, reg2) (reg2)
-
-#define writel_topaz(a, b) writel(a, b)
-#define writel_ruby(a, b)
-
-#define QTN_VLAN_LLC_ENCAP 1
-
-#define TOPAZ_128_NODE_MODE 1
-
-#endif /* #ifndef __TOPAZ_CONFIG_H */
-
diff --git a/quantenna/common/ums_platform.h b/quantenna/common/ums_platform.h
deleted file mode 100755
index ff8e7bd..0000000
--- a/quantenna/common/ums_platform.h
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * common/ums_platform.h
- *
- * Copyright (c) Quantenna Communications Incorporated 2007.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * This file holds the hardware specific memory map and common declarations
- * for the UMS build system. The defines here are used in the bootrom,
- * the U-Boot bootloader and the linux kernel.
- *
- * This file should only contain definitions that are assembler-friendly.
- */
-
-#ifndef __UMS_PLATFORM_H
-#define __UMS_PLATFORM_H 1
-
-/* ================ System boot modes ================ */
-/* These are used in the boot rom which is hardcoded into
- * the chip. Do not change them unless the chip changes.
- */
-#define BMODE_PRODUCTION_TEST 0
-#define BMODE_SERIAL_ICC 1
-#define BMODE_NOR 2
-
-/* ================ Physical address map ================ */
-#define UMS_DDR 0x00000000
-#define UMS_SRAM 0x80000000
-#define UMS_SRAM_SIZE 0x00080000
-#define UMS_EBB_CS0 0x90000000
-#define UMS_EBB_CS1 0x91000000
-#define UMS_EBB_CS2 0x92000000
-#define UMS_EBB_CS3 0x93000000
-#define UMS_EBB_CS4 0x94000000
-#define UMS_BOOTROM 0xA0000000
-#define UMS_ARM_ITCM 0xB0000000
-#define UMS_ITCM_SIZE 0x00008000
-#define UMS_ARM_DTCM 0xB0100000
-#define UMS_DTCM_SIZE 0x00008000
-#define UMS_REGS_DSP_UART 0xD0000000
-#define UMS_REGS_DSP_GPIO 0xD1000000
-#define UMS_REGS_DSP_SPI 0xD3000000
-#define UMS_REGS_DSP_CTRLRESET 0xD8000000
-#define UMS_REGS_DSP_MSP 0xD9000000
-#define UMS_REGS_DSP_XMEM 0xDCF80000
-#define UMS_REGS_DSP_YMEM 0xDCFA0000
-#define UMS_REGS_SYSCTRL 0xE0000000
-#define UMS_REGS_DDR 0xE1000000
-#define UMS_REGS_EBI 0xE2000000
-#define UMS_REGS_SRAM 0xE3000000
-#define UMS_REGS_MB 0xE4000000
-#define UMS_REGS_MAC 0xE5000000
-#define UMS_REGS_BB 0xE6000000
-#define UMS_REGS_RADAR 0xE6080000
-#define UMS_REGS_BB2 0xE6800000
-#define UMS_REGS_RADAR2 0xE6880000
-#define UMS_REGS_ICC 0xE8000000
-#define UMS_REGS_USB 0xE9000000
-#define UMS_REGS_ULA 0xEC000000
-#define UMS_REGS_ULA_MB 0xEC200000
-#define UMS_REGS_ETHERNET0 0xED000000
-#define UMS_REGS_ARM_UART0 0xF0000000
-#define UMS_REGS_ARM_GPIO 0xF1000000
-#define UMS_REGS_ARM_SPI 0xF2000000
-#define UMS_REGS_ARM_TIMERS 0xF3000000
-#define UMS_REGS_ARM_WATCHDOG 0xF4000000
-#define UMS_REGS_ARM_UART1 0xF5000000
-#define UMS_REGS_ARM_DMA 0xF8000000
-#define UMS_REGS_ARM_DSPI2C 0xF9000000
-#define UMS_REGS_ARM_VICS 0xFFF00000
-
-/* Explicit virtual address mappings for TCMs */
-#define UMS_ARM_ITCM_VA 0xFB000000
-#define UMS_ARM_DTCM_VA 0xFB100000
-
-#define UMS_ARM_SRAM_AREA UMS_SRAM + CONFIG_ARCH_UMS_MUC_SRAM_REQUIREMENT
-#define UMS_ARM_SRAM_AREA_VA IO_ADDRESS(UMS_ARM_SRAM_AREA)
-
-/* !!! FIXME_UMS - at present SRAM lives in IO address space */
-#define UMS_IO_AREA_START UMS_SRAM
-
-/* ============== Interrupt functions ============== */
-
-/* Set bits in these values to make an interrupt a FIQ rather than an IRQ.
- SELECT0 is for interrupts 0-31, SELECT1 for the others.
-*/
-#define FIQ_SELECT0 (0)
-#define FIQ_SELECT1 (0)
-
-#define VIC0_OFFSET 0x000FF000
-#define VIC1_OFFSET 0x000FE000
-#define INTERRUPT_VA0(a) (IO_ADDRESS(UMS_REGS_ARM_VICS) + VIC0_OFFSET + (a))
-#define INTERRUPT_VA1(a) (IO_ADDRESS(UMS_REGS_ARM_VICS) + VIC1_OFFSET + (a))
-#define PL192_IRQSTATUS (0)
-#define PL192_INTSELECT (0x0c)
-#define PL192_ENABLE (0x10)
-#define PL192_DISABLE (0x14)
-#define PL192_SOFTINT (0x18)
-#define PL192_SOFTINT_CLEAR (0x1c)
-#define PL192_PROTECTION (0x20)
-#define PL192_PRIORITY_MASK (0x24)
-#define PL192_PRIORITY_DAISY (0x28)
-#define PL192_VECTOR_ADDR (0x100)
-#define PL192_VECTOR_PRIORITY (0x200)
-#define PL192_VECTORADDRESS 0x0F00
-
-/* ============== Timer functions ============== */
-
-#define TIMER_VA(a) (IO_ADDRESS(UMS_REGS_ARM_TIMERS) + (a))
-
-#define TIMER_PRESCALAR_ENABLE (0x00)
-#define TIMER_PRESCALAR0 (0x04)
-#define TIMER_PRESCALAR1 (0x08)
-#define TIMER_CONTROL0 (0x0c)
-#define TIMER_VALUE0 (0x10)
-#define TIMER_CONTROL1 (0x14)
-#define TIMER_VALUE1 (0x18)
-#define TIMER_CONTROL2 (0x1c)
-#define TIMER_VALUE2 (0x20)
-#define TIMER_CONTROL3 (0x24)
-#define TIMER_VALUE3 (0x28)
-#define TIMER_INT_ENABLE (0x2c)
-#define TIMER_INT_STATUS (0x30)
-#define TIMER_INT_CLEAR (0x34)
-
-/* GPIO block register offsets */
-#define GPIO_INPUT (0x00)
-#define GPIO_OUTPUT_MASK (0x04)
-#define GPIO_OUTPUT (0x08)
-#define GPIO_MODE1 (0x0c)
-#define GPIO_MODE2 (0x10)
-#define GPIO_ALTFN (0x14)
-#define GPIO_ALTFN_DEFVAL (0x18)
-
-/* GPIO special function GPIO line assignments (ARM GPIO block) */
-#define GPIO_UART0_SI (0)
-#define GPIO_UART0_nRI (1)
-#define GPIO_UART0_DSR (2)
-#define GPIO_UART0_nDCD (3)
-#define GPIO_UART0_nCTS (4)
-#define GPIO_SPI_MISO (5)
-#define GPIO_UART1_SI (6)
-#define GPIO_UART0_SO (8)
-#define GPIO_UART0_nRTS (9)
-#define GPIO_UART0_nDTR (10)
-#define GPIO_SPI_SCK (11)
-#define GPIO_SPI_MOSI (12)
-#define GPIO_UART1_SO (13)
-#define GPIO_SPI_nCS (14)
-
-/* alternate use for gpio5 */
-#define GPIO_RGMII_MODE (5)
-
-/* GPIO mode register values */
-#define GPIO_MODE_INPUT (0)
-#define GPIO_MODE_OUTPUT (1)
-#define GPIO_MODE_OSOURCE (2)
-#define GPIO_MODE_ODRAIN (3)
-
-/* SPI controller register offsets */
-#define SPI_SPCR (0x00)
-#define SPI_SPSR (0x04)
-#define SPI_SPDR (0x08)
-#define SPI_SPER (0x0c)
-#define SPI_SLVN (0x10)
-
-/* SPI status register bits */
-#define SPI_SPSR_RFEMPTY (1 << 0)
-#define SPI_SPSR_RFFULL (1 << 1)
-#define SPI_SPSR_WFEMPTY (1 << 2)
-#define SPI_SPSR_WFFULL (1 << 3)
-
-/* SPI control register bits */
-#define SPI_SPCR_SPR(x) (((x) & 3) << 0)
-#define SPI_SPCR_CPHA (1 << 2)
-#define SPI_SPCR_CPOL (1 << 3)
-#define SPI_SPCR_MSTR (1 << 4)
-#define SPI_SPCR_SPE (1 << 6)
-#define SPI_SPCR_SPIE (1 << 7)
-
-/* SPI extended control register bits */
-#define SPI_SPER_ESPR(x) (((x) & 3) << 0)
-#define SPI_SPER_ICNT(x) (((x) & 3) << 6)
-
-/* System controller register offset and bit position definitions */
-#define SYSCTRL_RESET_MASK (0x00)
-#define SYSCTRL_RESET (0x04)
-#define SYSCTRL_CTRL_MASK (0x08)
-#define SYSCTRL_CTRL (0x0c)
-#define SYSCTRL_RESET_CAUSE (0x10)
-#define SYSCTRL_REV_NUMBER (0x14)
-#define SYSCTRL_RGMII_DELAY (0x1c)
-
-/* Reset bit positions for RESET_MASK and RESET_VEC registers */
-#define SYSCTRL_ARM_RUN (1 << 0)
-#define SYSCTRL_EBI_RUN (1 << 1)
-#define SYSCTRL_DDR_RUN (1 << 2)
-#define SYSCTRL_SRAM_RUN (1 << 3)
-#define SYSCTRL_DSPSS_RUN (1 << 4)
-#define SYSCTRL_DSP_RUN (1 << 5)
-#define SYSCTRL_MUC_RUN (1 << 6)
-#define SYSCTRL_NETSS_RUN (1 << 7)
-#define SYSCTRL_MMC_RUN (1 << 8)
-#define SYSCTRL_ETHERNET_RUN (1 << 9)
-#define SYSCTRL_IOSS_RUN (1 << 10)
-#define SYSCTRL_ICC_RUN (1 << 12)
-#define SYSCTRL_USB_RUN (1 << 13)
-#define SYSCTRL_RESET_OUT (1 << 31)
-
-/* System controller control register */
-#define SYSCTRL_BOOT_MODE(x) (((x) & 7) << 0)
-#define SYSCTRL_REMAP(x) (((x) & 3) << 3)
-#define SYSCTRL_CLKSEL(x) (((x) & 3) << 5)
-#define SYSCTRL_ARM_IS_2X (1 << 7)
-#define SYSCTRL_DSP_CLK (1 << 8)
-#define SYSCTRL_MAC_CLK(x) (((x) & 7) << 9)
-#define SYSCTRL_REMAP_SRAM (1 << 12)
-#define SYSCTRL_ULPI_ENABLE (1 << 13)
-#define SYSCTRL_ARM_GPIO_ENABLE (1 << 14)
-#define SYSCTRL_DSP_GPIO_ENABLE (1 << 15)
-#define SYSCTRL_EBI_MUXMODE (1 << 16)
-#define SYSCTRL_ARBITER_MODE(x) (((x) & 0xf) << 17)
-#define SYSCTRL_SPLIT_DISABLE (1 << 21)
-#define SYSCTRL_EXT_USBCLK (1 << 22)
-#define SYSCTRL_PCIE_ENABLE (1 << 23)
-#define SYSCTRL_NETBUS_SWAP (1 << 24)
-#define SYSCTRL_IOBUS_SWAP (1 << 25)
-#define SYSCTRL_DSPBUS_SWAP (1 << 26)
-
-#define SYSCTRL_REMAP_DDR (0)
-#define SYSCTRL_REMAP_ROM (1)
-#define SYSCTRL_REMAP_NOR (2)
-#define SYSCTRL_REMAP_NAND (3)
-
-/* Reset cause definitions */
-#define SYSCTRL_HARD_RESET (1 << 0)
-#define SYSCTRL_SOFT_RESET (1 << 1)
-#define SYSCTRL_WATCHDOG (1 << 2)
-#define SYSCTRL_PLL_DRIFT (1 << 3)
-#define SYSCTRL_EBI_STRAP(x) (((x) & 3) >> 16)
-
-/* bbic2 bit to switch between 100M and 1000M */
-#define SYS_CTL_GMII_CLK_SEL (1 << 23)
-#define SYS_CTL_FORCE_RGMII (0xc0000000)
-
-/* Chip revision macros - use with SYSCTRL_REV_NUMBER */
-#define SYSCTRL_CHIP_MINOR(x) ((x) & 0xff)
-#define SYSCTRL_CHIP_MAJOR(x) (((x) & 0xff) >> 8)
-#define SYSCTRL_CHIP_TYPE(x) (((x) & 0xff) >> 16)
-#define SYSCTRL_CHIP_TYPE_UMS (0)
-
-/* UART register offsets */
-#define PL011_DR (0x00)
-#define PL011_RSR_ECR (0x04)
-#define PL011_FR (0x18)
-#define PL011_ILPR (0x20)
-#define PL011_IBRD (0x24)
-#define PL011_FBRD (0x28)
-#define PL011_LCR_H (0x2c)
-#define PL011_CR (0x30)
-#define PL011_IFLS (0x34)
-#define PL011_IMSC (0x38)
-#define PL011_RIS (0x3c)
-#define PL011_MIS (0x40)
-#define PL011_ICR (0x44)
-#define PL011_DMACR (0x48)
-#define PL011_PERIPHID0 (0xfe0)
-#define PL011_PERIPHID1 (0xfe4)
-#define PL011_PERIPHID2 (0xfe8)
-#define PL011_PERIPHID3 (0xfec)
-#define PL011_CELLID0 (0xff0)
-#define PL011_CELLID1 (0xff4)
-#define PL011_CELLID2 (0xff8)
-#define PL011_CELLID3 (0xffc)
-
-/* Static memory controller offsets */
-#define PL241_DIRCMD (0x1010)
-#define PL241_SETCYC (0x1014)
-#define PL241_SETOPM (0x1018)
-#define PL241_SETCYC0 (0x1100)
-#define PL241_SETOPM0 (0x1104)
-
-/* ICC register offsets */
-#define ICC_SRC (0x00)
-#define ICC_DST (0x04)
-#define ICC_CTRL (0x08)
-#define ICC_ISR (0x0C)
-#define ICC_MASKED_ISR (0x10)
-#define ICC_IEN (0x14)
-#define ICC_CLR_RIP (0x18)
-#define ICC_RD_CMD (0x20)
-#define ICC_BUSY_FLAG (1 << 31) /* Busy bit in CTRL register */
-#define ICC_RD_COMPLETE (1 << 1) /* Read complete bit in ISR register */
-#define ICC_MAX_XFER (0x8000) /* Max ICC length = 64kB !!! FIXME */
-
-/* MAC register offsets */
-#define UMS_MAC_IMEM (0x00000)
-#define UMS_MAC_DMEM (0x20000)
-#define UMS_MAC_PKTMEM (0x30000)
-#define UMS_MAC_TXMEM (0x40000)
-#define UMS_MAC_GBLCTRL (0x42000)
-#define UMS_MAC0_TXREGS (0x50000)
-#define UMS_MAC0_RXREGS (0x52000)
-#define UMS_MAC0_SHARED (0x53000)
-#define UMS_MAC1_TXREGS (0x60000)
-#define UMS_MAC1_RXREGS (0x62000)
-#define UMS_MAC1_SHARED (0x63000)
-#define UMS_MAC_DMA (0x70000)
-#define UMS_MAC_HOSTIF (0x71000)
-
-/* BB register offsets*/
-/* MAY need revisit XXX */
-#define UMS_BB_SPI (0x40000)
-#define UMS_BB_GAIN (0x50000)
-#define UMS_BB_XREF (0x60000)
-#define UMS_BB_RFIC (0x70000)
-#define UMS_BB_RDR (0x80000)
-#define UMS_BB_COMPQ_MEM (0xB0000)
-
-/* MBX register offsets */
-#define UMS_MBX_DSP_POP (0x0000)
-#define UMS_MBX_DSP_PUSH (0x0040)
-#define UMS_MBX_CTRL (0x0080)
-#define UMS_MBX_STATUS (0x0084)
-#define UMS_MBX_INT_MSK (0x0088)
-#define UMS_MBX_INT_CLR (0x008C)
-
-/* MBX register bitfields */
-#define UMS_MBX_INT0 (1 << 0)
-#define UMS_MBX_INT1 (1 << 1)
-
-#define UMS_MBX_DSP_TO_ARM_EMPTY ( 1 << 24 )
-
-#endif
diff --git a/quantenna/configs/topaz_config b/quantenna/configs/topaz_config
deleted file mode 100644
index 7a00dbe..0000000
--- a/quantenna/configs/topaz_config
+++ /dev/null
@@ -1,1883 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=410
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 Video Bridge with 128MB DDR"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA=y
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA_CA_PORT=9000
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA_DUT_PORT=6070
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHOW_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LFS is not set
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=3
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_CREATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HOSTID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHA1SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_TAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TEE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUDECODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUENCODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEALLOCVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OPENVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_START_STOP_DAEMON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SULOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HWCLOCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USE_TERMIOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_REGEXP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ARP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HTTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CGI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_TUNNEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RULE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DHCPRELAY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DUMPLEASES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPD_LEASES_FILE=""
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
-
diff --git a/quantenna/configs/topaz_dbdc_config b/quantenna/configs/topaz_dbdc_config
deleted file mode 100644
index f365e0e..0000000
--- a/quantenna/configs/topaz_dbdc_config
+++ /dev/null
@@ -1,1883 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=460
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 QV860"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWE_PAL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QWE_ADAPTER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBPHPIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF24=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHOW_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LFS is not set
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=3
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_CREATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HOSTID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHA1SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_TAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TEE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUDECODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUENCODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEALLOCVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OPENVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SULOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HWCLOCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USE_TERMIOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_REGEXP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HTTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CGI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_TUNNEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RULE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DHCPRELAY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DUMPLEASES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPD_LEASES_FILE=""
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
-
diff --git a/quantenna/configs/topaz_host_config b/quantenna/configs/topaz_host_config
deleted file mode 100644
index 5ec3112..0000000
--- a/quantenna/configs/topaz_host_config
+++ /dev/null
@@ -1,1859 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=454
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 PCIe Host"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_MACFW is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_AUCFW is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_UBOOT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_LINUX_IMG=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_LINUX_IMG_CONFIG="topaz_pcie_config"
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WPASUPPLICANT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ZHOSTAPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHOW_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LFS=y
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=2
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_CREATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHA1SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIQ=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUDECODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUENCODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DEALLOCVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_OPENVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SULOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HWCLOCK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_TERMIOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_REGEXP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HTTPD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_CGI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_TUNNEL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_RULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PING6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DHCPC_DEFAULT_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
diff --git a/quantenna/configs/topaz_msft_config b/quantenna/configs/topaz_msft_config
deleted file mode 100755
index a9dda31..0000000
--- a/quantenna/configs/topaz_msft_config
+++ /dev/null
@@ -1,1877 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=425
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 Video Bridge with mswbsp"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCURL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_JSON_C is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QHARVEST is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MINIHTTPD is not set
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-BR2_MSWBSP_SUPPORT=y
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHOW_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LFS is not set
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=3
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_CREATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HOSTID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHA1SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_TAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TEE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUDECODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUENCODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEALLOCVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OPENVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_START_STOP_DAEMON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SULOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HWCLOCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USE_TERMIOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_REGEXP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HTTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CGI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_TUNNEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RULE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DHCPRELAY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DUMPLEASES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPD_LEASES_FILE=""
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
-
diff --git a/quantenna/configs/topaz_msmr_config b/quantenna/configs/topaz_msmr_config
deleted file mode 100755
index ec26568..0000000
--- a/quantenna/configs/topaz_msmr_config
+++ /dev/null
@@ -1,1877 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=415
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 Video Bridge with mswbsp"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-BR2_MSWBSP_SUPPORT=y
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHOW_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LFS is not set
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=3
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_CREATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HOSTID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHA1SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_TAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TEE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUDECODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUENCODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEALLOCVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OPENVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_START_STOP_DAEMON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SULOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HWCLOCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USE_TERMIOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_REGEXP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HTTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CGI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_TUNNEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RULE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DHCPRELAY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DUMPLEASES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPD_LEASES_FILE=""
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
-
diff --git a/quantenna/configs/topaz_np_config b/quantenna/configs/topaz_np_config
deleted file mode 100644
index bfb9fc2..0000000
--- a/quantenna/configs/topaz_np_config
+++ /dev/null
@@ -1,1862 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=413
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 Network Processor"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_MACFW is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_DSPFW is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_UBOOT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_AUCFW is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_LINUX_IMG=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_LINUX_IMG_CONFIG="topaz_rgmii_config"
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PORTMAP=y
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_TFTPD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIRELESS_TOOLS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WPASUPPLICANT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ZHOSTAPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHOW_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LFS=y
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=2
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_CREATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHA1SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIQ=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUDECODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUENCODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DEALLOCVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_OPENVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SULOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HWCLOCK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_TERMIOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_REGEXP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HTTPD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_CGI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_TUNNEL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_RULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PING6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DHCPC_DEFAULT_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
diff --git a/quantenna/configs/topaz_pcie_config b/quantenna/configs/topaz_pcie_config
deleted file mode 100644
index 1be45b8..0000000
--- a/quantenna/configs/topaz_pcie_config
+++ /dev/null
@@ -1,1869 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=450
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 PCIe"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-#BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PORTMAP=y
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_STATELESS is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHOW_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LFS=y
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=2
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_CREATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHA1SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIQ=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUDECODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUENCODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DEALLOCVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_OPENVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SULOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HWCLOCK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_TERMIOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_REGEXP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HTTPD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_CGI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_TUNNEL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_RULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PING6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DHCPC_DEFAULT_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
diff --git a/quantenna/configs/topaz_rfic6_config b/quantenna/configs/topaz_rfic6_config
deleted file mode 100644
index 46085b0..0000000
--- a/quantenna/configs/topaz_rfic6_config
+++ /dev/null
@@ -1,1879 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=461
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 Video Bridge with 128MB DDR"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTMAP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA=y
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA_CA_PORT=9000
-#prefix0#buildroot/#
-BR2_PACKAGE_SIGMA_DUT_PORT=6070
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-#prefix0#buildroot/#
-BR2_INET_IPV6=y
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHOW_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LFS is not set
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=3
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUNZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GUNZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_CREATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GZIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNZIP is not set
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHGRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHOWN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DOS2UNIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIX2DOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HOSTID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SHA1SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_TAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TEE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNIQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUDECODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UUENCODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_WHOAMI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEALLOCVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OPENVT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_START_STOP_DAEMON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_COLON is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_YANKMARK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SEARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_USE_SIGNALS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_DOT_CMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_READONLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_SET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_WIN_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VI_OPTIMIZE_CURSOR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRINT0 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MTIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PERM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_XDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MAXDEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_EXEC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_USER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-#CONFIG_FEATURE_FIND_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DEPTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PAREN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_SIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PRUNE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_PATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_REGEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SULOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HWCLOCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MORE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USE_TERMIOS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RDATE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWAPONOFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SWITCH_ROOT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MAXLINES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_REGEXP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STRINGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TIME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ARP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HTTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CGI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_TUNNEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RULE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DHCPRELAY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_DUMPLEASES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPD_LEASES_FILE=""
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_8021Q is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WGET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
-
diff --git a/quantenna/configs/topaz_rgmii_config b/quantenna/configs/topaz_rgmii_config
deleted file mode 100644
index 1824f48..0000000
--- a/quantenna/configs/topaz_rgmii_config
+++ /dev/null
@@ -1,1864 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=432
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 RGMII with 64KB flash"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-#BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-#BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PORTMAP=y
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_STATELESS is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHOW_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VERBOSE_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LFS=y
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=2
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUNZIP2=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GUNZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_CREATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_BZIP2=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNZIP=y
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHGRP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DOS2UNIX=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIX2DOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHA1SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIQ=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUDECODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUENCODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHOAMI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HUMAN_READABLE=y
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DEALLOCVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_OPENVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_COLON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_YANKMARK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SEARCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_USE_SIGNALS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_DOT_CMD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_READONLY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SETOPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_WIN_RESIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PRINT0=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_MTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PERM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_XDEV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_MAXDEPTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_EXEC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_USER=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_GROUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_NOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_DEPTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PAREN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PRUNE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PATH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_REGEX=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SULOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HWCLOCK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MORE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_TERMIOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RDATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SWAPONOFF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SWITCH_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_MAXLINES=9999999
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_REGEXP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STRINGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ARP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HTTPD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_CGI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_TUNNEL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_RULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PING6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DHCPC_DEFAULT_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
diff --git a/quantenna/configs/topaz_vzn_config b/quantenna/configs/topaz_vzn_config
deleted file mode 100644
index b14a87b..0000000
--- a/quantenna/configs/topaz_vzn_config
+++ /dev/null
@@ -1,1864 +0,0 @@
-#
-# Platform
-#
-CONFIG_PLATFORM_ID=464
-CONFIG_PLATFORM_TYPE=topaz
-CONFIG_PLATFORM_DESCR="BBIC4 RGMII with 64KB flash for Verizon"
-
-#
-# Filesystem & toolchain
-#
-#prefix0#buildroot/#
-BR2_HAVE_DOT_CONFIG=y
-#prefix0#buildroot/#
-# BR2_alpha is not set
-#prefix0#buildroot/#
-# BR2_arm is not set
-#prefix0#buildroot/#
-# BR2_armeb is not set
-#prefix0#buildroot/#
-# BR2_avr32 is not set
-#prefix0#buildroot/#
-# BR2_cris is not set
-#prefix0#buildroot/#
-# BR2_i386 is not set
-#prefix0#buildroot/#
-# BR2_m68k is not set
-#prefix0#buildroot/#
-# BR2_mips is not set
-#prefix0#buildroot/#
-# BR2_mipsel is not set
-#prefix0#buildroot/#
-# BR2_nios2 is not set
-#prefix0#buildroot/#
-# BR2_powerpc is not set
-#prefix0#buildroot/#
-# BR2_sh is not set
-#prefix0#buildroot/#
-# BR2_sh64 is not set
-#prefix0#buildroot/#
-# BR2_sparc is not set
-#prefix0#buildroot/#
-# BR2_x86_64 is not set
-#prefix0#buildroot/#
-BR2_arc=y
-#prefix0#buildroot/#
-BR2_ARCH="arc"
-
-#
-# Build options
-#
-#prefix0#buildroot/#
-BR2_WGET="wget --passive-ftp"
-#prefix0#buildroot/#
-BR2_SVN="svn co"
-#prefix0#buildroot/#
-BR2_ZCAT="zcat"
-#prefix0#buildroot/#
-BR2_BZCAT="bzcat"
-#prefix0#buildroot/#
-BR2_TAR_OPTIONS=""
-#prefix0#buildroot/#
-BR2_DL_DIR="$(BASE_DIR)/dl"
-#prefix0#buildroot/#
-BR2_SOURCEFORGE_MIRROR="easynews"
-#prefix0#buildroot/#
-BR2_STAGING_DIR="$(BUILD_DIR)/staging_dir"
-#prefix0#buildroot/#
-BR2_TOPDIR_PREFIX=""
-#prefix0#buildroot/#
-BR2_TOPDIR_SUFFIX=""
-#prefix0#buildroot/#
-BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
-#prefix0#buildroot/#
-BR2_GNU_TARGET_SUFFIX="linux-uclibc"
-#prefix0#buildroot/#
-BR2_JLEVEL=1
-#prefix0#buildroot/#
-# BR2_PREFER_IMA is not set
-#prefix0#buildroot/#
-# BR2_DEPRECATED is not set
-#prefix0#buildroot/#
-# BR2_TOOLCHAIN_BUILDROOT is not set
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GDB_HOST is not set
-#prefix0#buildroot/#
-BR2_LARGEFILE=y
-#prefix0#buildroot/#
-BR2_TARGET_OPTIMIZATION="-Os -pipe"
-
-#
-# Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIB_C="libc.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_LIBS="libc.so.0 ld-uClibc.so libcrypt.so libresolv.so librt.so libpthread.so libdl.so libm.so libutil.so"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_STRIP=y
-#prefix0#buildroot/#
-BR2_KERNEL_HEADERS_LOCAL=y
-#prefix0#buildroot/#
-BR2_DEFAULT_KERNEL_HEADERS="local"
-#
-
-#
-# Gdb Options
-#
-
-#
-# Common Toolchain Options
-#
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PATH="/usr/local/ARC/gcc/"
-#prefix0#buildroot/#
-BR2_TOOLCHAIN_EXTERNAL_PREFIX="arc-linux-uclibc"
-
-#
-# Package Selection for the target
-#
-
-#
-# The default minimal system
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX=y
-#prefix0#buildroot/#
-BR2_BUSYBOX_VERSION_1_10_3=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.2.2.1.config"
-#prefix0#buildroot/#
-BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_BUSYBOX_SKELETON is not set
-
-#
-# The minimum needed to build a uClibc development system
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_BASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BZIP2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DIFFUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FLEX is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GCC_TARGET is not set
-#prefix0#buildroot/#
-BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS=""
-#prefix0#buildroot/#
-# BR2_PACKAGE_MAKE is not set
-
-#
-# Other development stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOCONF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AUTOMAKE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BISON is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CCACHE_TARGET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CVS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DISTCC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMALLOC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_EXPAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FAKEROOT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_GETTEXT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBINTL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBGMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBMPFR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_M4 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MPATROL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PKGCONFIG is not set
-#prefix0#buildroot/#
-# BR2_READLINE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VDEV is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_Q_PARSE_LOG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RFCALTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SSCLDBG is not set
-
-#
-# Other stuff
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_AT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BERKELEYDB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BSDIFF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CUSTOMIZE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DASH is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_FILE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_KEXEC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TESTIPC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBELF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBEVENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBFLOAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBSYSFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LSOF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTP-TESTSUITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LTT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MICROCOM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PORTAGE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SQLITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STRACE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SUDO is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_MACFW=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_DSPFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_UBOOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QTN_AUCFW=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QTN_LINUX_IMG is not set
-#prefix0#buildroot/#
-BR2_NETWORK_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_ARGUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_AVAHI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BOA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_BIND is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_BRIDGE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IGMPPROXY is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NEMESIS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_SERVER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DHCP_RELAY is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_DHCP_CLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DNSMASQ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DROPBEAR is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_ETHTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HASERL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HOSTAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPERF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_IPROUTE2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPSEC_TOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IPTABLES is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_L2TP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGI is not set
-#prefix0#buildroot/#
-#BR2_PACKAGE_LIBCURL=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_JSON_C=y
-#prefix0#buildroot/#
-#BR2_PACKAGE_QHARVEST=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBCGICC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBPCAP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIGHTTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINKS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LRZSZ is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MIIDL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MROUTED is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NBD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITBASE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETKITTELNET is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETPLUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NETSNMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NFS_UTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_NTP is not set
-#prefix0#buildroot/#
-#BR2_PACKAGE_NTPCLIENT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENNTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSH is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_OPENSSL=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSSL_TARGET_HEADERS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENVPN is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_OPENSWAN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_PORTMAP=y
-#prefix0#buildroot/#
-BR2_PACKAGE_PHP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_PPPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PROFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RSYNC is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBIF is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QWEBCGIIF is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QWEBPHPIF=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SAMBA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SOCAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_STUNNEL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TCPDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TFTPD is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TN5250 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_TTCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_VTUN is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WIRELESS_TOOLS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_Q_UTILS=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_CALL_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_CALL_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_PCIE_CLIENT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_QCSAPI_RPC_RAW_SOCKET_CLIENT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_RPC_SERVER=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RMT_QCSAPI_SERVER is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_QCSAPI_MONITOR_RFENABLE=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_WLANCONFIG is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_WPASUPPLICANT=y
-#prefix0#buildroot/#
-BR2_PACKAGE_ZHOSTAPD=y
-#prefix0#buildroot/#
-BR2_PACKAGE_QEVENTD=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_SYSSTAT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MINIHTTPD=y
-#prefix0#buildroot/#
-BR2_BLOCKDEV_SUPPORT=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_DBUS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_DMRAID is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_E2FSPROGS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_HWDATA is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_IOSTAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBRAW1394 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LIBUSB is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_LVM2 is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MDADM is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MEMTESTER is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MKDOSFS is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD=y
-
-#
-# MTD package selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SNAPSHOT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_ORIG_STRING="mtd_20050122.orig.tar.gz"
-
-#
-# MTD tools selection
-#
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASE=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_ERASEALL=y
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_FLASH_INFO=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_LOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FLASHCP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_ERASE is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_JFFS2DUMP=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_JFFS3DUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_SUMTOOL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_CHECK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_FTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NFTLDUMP is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_MTD_MKFSJFFS2=y
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MKFSJFFS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDDUMP is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_NANDWRITE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_MTD_DEBUG is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOCFDISK is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_PCIUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_RAIDTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SETSERIAL is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_SMARTMONTOOLS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBMOUNT is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_USBUTILS is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_WIPE is not set
-#prefix0#buildroot/#
-# BR2_PACKAGE_XFSPROGS is not set
-#prefix0#buildroot/#
-# BR2_AUDIO_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_GRAPHIC_SUPPORT is not set
-#prefix0#buildroot/#
-# BR2_COMPRESSOR_SUPPORT is not set
-#prefix0#buildroot/#
-BR2_PACKAGE_ZLIB=y
-#prefix0#buildroot/#
-# BR2_SCRIPTING_SUPPORT is not set
-
-#prefix0#buildroot/#
-# BR2_MSWBSP_SUPPORT is not set
-
-#
-# Target Options
-#
-
-#
-# filesystem for target device
-#
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CRAMFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_CLOOP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_EXT2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_JFFS2 is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_SQUASHFS is not set
-#prefix0#buildroot/#
-# BR2_TARGET_ROOTFS_TAR is not set
-#prefix0#buildroot/#
-BR2_TARGET_ROOTFS_CPIO=y
-
-#
-# bootloader for target device
-#
-
-#
-# Board Support Options
-#
-#prefix0#buildroot/#
-# BR2_PACKAGE_LINUX is not set
-
-#
-# Atmel Target
-#
-
-#
-# Add Atmel Target here
-#
-#prefix0#buildroot/#
-# BR2_TARGET_UMS88K is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY=y
-
-#
-# Ruby filesystem configuration
-#
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_IPC_SUBNET="192.168.101"
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_NONE is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC1_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC1_ETH_IP_DHCP=y
-#prefix0#buildroot/#
-BR2_TARGET_RUBY_SOC2_ETH_IP_NONE=y
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_STATIC is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_SOC2_ETH_IP_DHCP is not set
-#prefix0#buildroot/#
-# BR2_TARGET_RUBY_STATELESS is not set
-
-#
-# Generic System Support
-#
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_ACCESS_POINT is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_FIREWALL is not set
-#prefix0#buildroot/#
-# BR2_TARGET_GENERIC_DEV_SYSTEM is not set
-
-#
-# Busybox configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NITPICK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DESKTOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHOW_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VERBOSE_USAGE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_COMPRESS_USAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALLER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOCALE_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT_LONG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DEVPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PIDFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SUID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUID_CONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SELINUX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HAVE_RPC=y
-
-#
-# Build Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STATIC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOMMU is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BUILD_LIBBUSYBOX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LFS=y
-
-#
-# Debugging Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WERROR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NO_DEBUG_LIB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DMALLOC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EFENCE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_NO_USR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_INSTALL_APPLET_DONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PASSWORD_MINLEN=6
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5_SIZE_VS_SPEED=2
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FAST_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_VI is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_HISTORY=15
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAB_COMPLETION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_COPYBUF_KB=4
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MONOTONIC_SYSCALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IOCTL_HEX2STR_ERROR=y
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_AR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BUNZIP2=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BZIP2 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DPKG_DEB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GUNZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM2CPIO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RPM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_CREATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GZIP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_BZIP2=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_FROM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNCOMPRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNLZMA is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNZIP=y
-
-#
-# Common options for cpio and tar
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-
-#
-# Coreutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_BASENAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CAL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CATV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHGRP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CKSUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_COMM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DATE_ISOFMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DF_INODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DIRNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DOS2UNIX=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIX2DOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ENV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_EXPR_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FALSE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FOLD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEAD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_HEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ID=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSTALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LENGTH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FILETYPES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_RECURSIVE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_SORTFILES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_USERNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MD5SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFIFO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKNOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NOHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_OD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PRINTF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PWD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_READLINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_READLINK_FOLLOW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_REALPATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMDIR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SEQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SHA1SUM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SORT_BIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SPLIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_STAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYNC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TAC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_TAIL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TEST_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TOUCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TRUE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UNEXPAND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UNIQ=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_USLEEP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUDECODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UUENCODE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WC_LARGE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WHO is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHOAMI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HUMAN_READABLE=y
-
-#
-# Common options for md5sum, sha1sum
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CHVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CLEAR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DEALLOCVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DUMPKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KBD_MODE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADFONT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOADKMAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_OPENVT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RESET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RESIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETCONSOLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETKEYCODES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MKTEMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PIPE_PROGRESS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RUN_PARTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_START_STOP_DAEMON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_AWK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AWK_MATH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_CMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DIFF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PATCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_MAX_LEN=4096
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_8BIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_COLON=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_YANKMARK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SEARCH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_USE_SIGNALS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_DOT_CMD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_READONLY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SETOPTS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_SET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_WIN_RESIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FIND=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PRINT0=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_MTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_MMIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PERM=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_TYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_XDEV=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_MAXDEPTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_NEWER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_INUM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_EXEC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_USER=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_GROUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_NOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_DEPTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PAREN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PRUNE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FIND_DELETE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_PATH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FIND_REGEX=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GREP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_GREP_CONTEXT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_XARGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INIT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEBUG_INIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_INITTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_REMOVED=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_KILL_DELAY=0
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_SCTTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_EXTRA_QUIET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INIT_COREDUMPS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INITRD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HALT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_USE_BB_PWD_GRP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELGROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_CHECK_NAMES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADDUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DELUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WTMP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PAM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOGIN_SCRIPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_NOLOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SECURETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRYPTPW is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPASSWD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SU=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_SYSLOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SULOGIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHATTR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LSATTR is not set
-
-#
-# Linux Module Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RMMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LSMOD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MODPROBE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-
-#
-# Options common to multiple modutils
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_2_4_MODULES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_2_6_MODULES=y
-
-#
-# Linux System Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DMESG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_DMESG_PRETTY=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FBSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFLUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDFORMAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_AIX_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SGI_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SUN_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_OSF_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FINDFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FREERAMDISK is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FSCK_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKFS_MINIX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_GETOPT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HEXDUMP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HWCLOCK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCRM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LOSETUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MDEV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MKSWAP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MORE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_USE_TERMIOS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VOLUMEID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_NFS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FLAGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_FSTAB=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIVOT_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_RDATE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READPROFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RTCWAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETARCH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SWAPONOFF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SWITCH_ROOT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UMOUNT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_MOUNT_LOOP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ADJTIMEX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BBCONFIG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHAT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHRT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CROND is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CRONTAB is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_DC=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DEVFSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_DEVFS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_EJECT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LAST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_MAXLINES=9999999
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_BRACKETS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_LESS_MARKS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_LESS_REGEXP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HDPARM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MAKEDEVS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MICROCOM is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MOUNTPOINT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_MT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RAIDAUTORUN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_READAHEAD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNLEVEL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RX is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_STRINGS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETSID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TASKSET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TTYSIZE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IPV6=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ARP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BRCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DNSD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ETHER_WAKE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FAKEIDENTD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FTPPUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HOSTNAME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_HTTPD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_CGI=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFCONFIG_HW=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IFENSLAVE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_INETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_INETD_RPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_IP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ADDRESS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_LINK=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_TUNNEL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_IP_RULE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_IPCALC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NAMEIF is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NETSTAT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_NSLOOKUP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PING6 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_FANCY_PING=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PSCAN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ROUTE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SENDMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FETCHMAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SLATTACH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_TELNET_TTYPE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TELNETD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_TFTP=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TFTPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TRACEROUTE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_APP_UDHCPC is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_PORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_RFC3397 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_DHCPC_DEFAULT_SCRIPT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_VCONFIG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_WGET=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ZCIP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TCPSVD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FREE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FUSER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KILLALL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_KILLALL5 is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_NMETER is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PGREP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PIDOF=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_PKILL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_PS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_PS_WIDE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RENICE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_BB_SYSCTL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_TOP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_UPTIME=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_WATCH is not set
-
-#
-# Shells
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_SH_IS_ASH=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_MSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_IS_NONE is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_JOB_CONTROL=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_NCHARS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_READ_TIMEOUT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_ALIAS=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_MATH_SUPPORT_64=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_GETOPTS is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_ECHO=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_BUILTIN_TEST=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_CMDCMD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_MAIL is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_ASH_EXPAND_PRMT=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_HUSH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LASH is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_SYSLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_ROTATE_LOGFILE=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_FEATURE_REMOTE_LOG=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_KLOGD=y
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_RUNSVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SV is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SVLOGD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_CHPST is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SETUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVUIDGID is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_ENVDIR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_SOFTLIMIT is not set
-
-#
-# Print Utilities
-#
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPD is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPR is not set
-#prefix7#buildroot/package/busybox/busybox-1.10.3/#
-# CONFIG_LPQ is not set
diff --git a/quantenna/host/Makefile b/quantenna/host/Makefile
deleted file mode 100644
index 3eb0bee..0000000
--- a/quantenna/host/Makefile
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# (C) Copyright 2007 Quantenna Communications Inc.
-#
-
-modules := utilities
-modules_clean := $(patsubst %, %_clean, $(modules)) umsdl_clean qcsapi-client_clean pktlogger
-modules_distclean := $(patsubst %, %_distclean, $(modules)) umsdl_distclean qcsapi-client_distclean
-
-.PHONY: umsdl stat_parser struct-extract qcsapi-client qevt-client qregcheck \
-$(modules) $(modules_clean) $(modules_distclean)
-
-POST_ANALYSIS=pktlogger/post_analysis_tools.tar
-
-all: umsdl stat_parser struct-extract qcsapi-client qevt-client $(modules)
-
-clean: $(modules_clean)
-
-distclean: $(modules_distclean)
-
-umsdl:
- make -C umsdl BUILD_TARBALL=y
-
-qcsapi-client:
- make -C qcsapi-client clean zips
-
-qregcheck:
- make -C qregcheck all
-
-qevt-client:
- make -C qevt-client
-
-ifneq ($(modules),)
-$(modules):
- make -C $@
-endif
-
-$(modules_clean):
- make -C $(patsubst %_clean, %, $@) clean
-
-$(modules_distclean):
- make -C $(patsubst %_distclean, %, $@) distclean
-
-stat_parser: ${POST_ANALYSIS}
- make -C pktlogger all
-
-struct-extract:
- if [ -d struct-extract ] ; then make -C struct-extract clean se_prepro nodeps ; fi
-
-ll_trace:
- if [ -d ll_trace ] ; then
- echo "LL trace"
- fi
-
-${POST_ANALYSIS}: struct-extract
- if [ -d struct-extract -a -d ${@D} ] ; then tar cfv $@ struct-extract/ ; fi
-
diff --git a/quantenna/host/board_utils/QTN_board_customer.txt b/quantenna/host/board_utils/QTN_board_customer.txt
deleted file mode 100644
index 0b38af3..0000000
--- a/quantenna/host/board_utils/QTN_board_customer.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-//swdepot/bbic3/rel/rel_37_4_0_59/host/board_utils/QTN_board_customer_QHS840_5s1.txt#1 - branch change 42828 (text)
-//.txt for customer board provisioning and configurations
-//filename: board_customer.txt
------------------- // every entry should start with this string
-0 //start, this id number needs to conform what is defined in qtn_hw_board_db.bin
-012345678 0
-------------------
-1 //bc_board_id:length
-BOARD_ID 2,65535,
-------------------
-2 //bc_name
-QHS840_5S1 0
-------------------
-3 //bc_ddr_type, 1 byte each
-DDR3_16_WINBOND 1,7
-------------------
-4 //bc_ddr_speed
-DDR3_500MHz 2,500
-------------------
-5 //bc_ddr_size
-DDR_128MB 4,134217728
-------------------
-6 //bc_emac0
-EMAC_RTL8363SB_RGMII_BONDED 4,1835027
-------------------
-7 //bc_emac1
-EMAC_RTL8363SB_RGMII_BONDED 4,1835027
-------------------
-8 //bc_phy0_addr
-EMAC_PHY_ADDR_SCAN 1,32
-------------------
-9 //bc_phy1_addr
-EMAC_PHY_ADDR_SCAN 1,32
-------------------
-10 //bc_spi1_enable
-SPI1_NOT_IN_USE 1,0
-------------------
-11 //bc_wifi_hw
-QTN_TPZ_SE5003L1 1,5
-------------------
-12 //bc_uart1
-UART1_NOT_IN_USE 1,0
-------------------
-13 //bc_pcie1
-PCIE_NOT_IN_USE 1,0
-------------------
-14 //bc_rgmii_timing
-RGMII_NODELAY 4,522133279
-------------------
-15 //bc_ln_gain
-LNA_gain_12dB 1,12
-------------------
-16 //bc_tx_antenna
-TX_ANTENNA_NUM_4 1,4
-------------------
-17 // bc_flash_cfg
-FLASH_SIZE_JEDEC 1,0
-------------------
-18 //antenna gain
-TX_ANTENNA_GAIN_1_1dB 2,4506 //unsigned short, 16.12 (4506 means 1.1)
--------------------
-19 //bc_lna_bypass_gain, signed char
-LNA_gain_BYPASS_N5dB 4, -5
--------------------
-20 //bc_rfic
-RFIC_V4_IN_USE 1,4
--------------------
-21 //bc_tx_power_cal
-CALSTATE_VPD_LOG 1,0
-****************** //this string is necessory to indicate the end of .txt
diff --git a/quantenna/host/board_utils/QTN_board_database.txt b/quantenna/host/board_utils/QTN_board_database.txt
deleted file mode 100644
index 7db31b3..0000000
--- a/quantenna/host/board_utils/QTN_board_database.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-// TLV for board provisioning and configurations
-// Automatically generated by './board_hw_db_txt_gen', DO NOT EDIT
-==================
-22 // total number of TLVs
-------------------
-0 // bc_start
-1
-012345678 1,0,
-------------------
-1 // bc_board_id
-1
-UNIVERSAL_ID 2,65535,
-------------------
-2 // bc_name
-1
-hw_QTN_test 1,0,
-------------------
-3 // bc_ddr_type
-10
-DDR_16_ETRON 1,2,
-DDR_32_MICRON 1,0,
-DDR_16_MICRON 1,1,
-DDR_32_ETRON 1,4,
-DDR_32_SAMSUNG 1,5,
-DDR_16_SAMSUNG 1,3,
-DDR_16_HYNIX 1,6,
-DDR3_16_WINBOND 1,7,
-DDR3_32_WINBOND 1,8,
-DEFAULT_DDR_CFG 1,1,
-------------------
-4 // bc_ddr_speed
-10
-DDR_160 1,160,
-DDR_250 1,250,
-DDR_320 2,320,
-DDR_400 2,400,
-DDR3_320MHz 2,320,
-DDR3_400MHz 2,400,
-DDR3_500MHz 2,500,
-DDR3_640MHz 2,640,
-DDR3_800MHz 2,800,
-DEFAULT_DDR_SPEED 1,160,
-------------------
-5 // bc_ddr_size
-6
-DDR_32MB 4,33554432,
-DDR_64MB 4,67108864,
-DDR_128MB 4,134217728,
-DDR_256MB 4,268435456,
-DDR_AUTO 1,0,
-DEFAULT_DDR_SIZE 4,67108864,
-------------------
-6 // bc_emac0
-20
-EMAC_IN_USE 1,1,
-EMAC_RGMII_AN 1,1,
-EMAC_NOT_IN_USE 1,0,
-EMAC_MII_AN 1,129,
-EMAC_MII_100M 1,139,
-EMAC_MII_100M_PHY 1,137,
-EMAC_AR8327_RGMII 2,531,
-EMAC_RTL8363S_RGMII 1,19,
-EMAC_RTL8363SB_RGMII_P0 4,262163,
-EMAC_RTL8363SB_RGMII_P1 4,524307,
-EMAC_RTL8363SB_RGMII_BONDED 4,1835027,
-EMAC_RTL8211E_RGMII 1,19,
-EMAC_88E6071_MII 2,12427,
-EMAC_B2B_RGMII 1,11,
-EMAC_B2B_RGMII_100M 1,11,
-EMAC_B2B_RGMII_1000M 1,19,
-EMAC_AR8236_MII 2,395,
-EMAC_MII_GPIO1_RST 2,1153,
-EMAC_MII_100M_GPIO13_RST 2,2185,
-DEFAULT_EMAC 1,0,
-------------------
-7 // bc_emac1
-20
-EMAC_IN_USE 1,1,
-EMAC_RGMII_AN 1,1,
-EMAC_NOT_IN_USE 1,0,
-EMAC_MII_AN 1,129,
-EMAC_MII_100M 1,139,
-EMAC_MII_100M_PHY 1,137,
-EMAC_AR8327_RGMII 2,531,
-EMAC_RTL8363S_RGMII 1,19,
-EMAC_RTL8363SB_RGMII_P0 4,262163,
-EMAC_RTL8363SB_RGMII_P1 4,524307,
-EMAC_RTL8363SB_RGMII_BONDED 4,1835027,
-EMAC_RTL8211E_RGMII 1,19,
-EMAC_88E6071_MII 2,12427,
-EMAC_B2B_RGMII 1,11,
-EMAC_B2B_RGMII_100M 1,11,
-EMAC_B2B_RGMII_1000M 1,19,
-EMAC_AR8236_MII 2,395,
-EMAC_MII_GPIO1_RST 2,1153,
-EMAC_MII_100M_GPIO13_RST 2,2185,
-DEFAULT_EMAC 1,0,
-------------------
-8 // bc_phy0_addr
-6
-24 1,24,
-31 1,31,
-EMAC_PHY_ADDR_SCAN 1,32,
-EMAC_PHY0_ADDR 1,1,
-EMAC_PHY1_ADDR 1,3,
-DEFAULT_PHY_ADDR 1,32,
-------------------
-9 // bc_phy1_addr
-6
-24 1,24,
-31 1,31,
-EMAC_PHY_ADDR_SCAN 1,32,
-EMAC_PHY0_ADDR 1,1,
-EMAC_PHY1_ADDR 1,3,
-DEFAULT_PHY_ADDR 1,32,
-------------------
-10 // bc_spi1
-2
-SPI1_IN_USE 1,1,
-SPI1_NOT_IN_USE 1,0,
-------------------
-11 // bc_wifi_hw
-19
-QTN_RUBY_BRINGUP_RWPA 1,0,
-QTN_RUBY_REF_RWPA 1,1,
-QTN_RUBY_SIGE 1,2,
-QTN_RUBY_WIFI_NONE 1,4,
-QTN_TPZ_SE5003L1 1,5,
-QTN_TPZ_SE5003L1_INV 1,6,
-QTN_TPZ_SKY85703 1,7,
-QTN_TPZ_DBS 1,9,
-QTN_TPZ_SKY85405_BPF840 1,8,
-QTN_TPZ_DBS 1,9,
-QTN_TPZ_SE5502L 1,10,
-QTN_TPZ_SKY85710_NG 1,11,
-QTN_TPZ_DBS_5591 1,13,
-QTN_TPZ_DBS_5591 1,13,
-QTN_TPZ_DBS_NXP_BGU7224_BGU7258 1,14,
-QTN_TPZ_2_4GHZ_NXP_BGU7224 1,15,
-QTN_TPZ_5GHZ_NXP_BGU7258 1,16,
-QTN_TPZ_5GHZ_SKY85728 1,17,
-DEFAULT_WIFI_HW 1,1,
-------------------
-12 // bc_uart1
-3
-UART1_NOT_IN_USE 1,0,
-UART1_IN_USE 1,1,
-DEFAULT_UART1 1,0,
-------------------
-13 // bc_pcie
-3
-PCIE_NOT_IN_USE 1,0,
-PCIE_ENDPOINT 1,3,
-PCIE_ROOTCOMPLEX 1,7,
-------------------
-14 // bc_rgmii_timing
-7
-RGMII_DEFAULT_S2p7ns_H1p1ns 4,-1886417009,
-RGMII_S2p4ns_H1p4ns 4,-1886548081,
-RGMII_S1p8ns_H1p9ns 4,-1886839009,
-RGMII_P1RX00TX0E 4,244195103,
-RGMII_710F 4,522133279,
-RGMII_NODELAY 4,522133279,
-DEFAULT_RGMII_TIMING 4,-1886417009,
-------------------
-15 // bc_ext_lna_gain
-2
-LNA_gain_12dB 1,12,
-DEFAULT_EXT_LNA_GAIN 1,12,
-------------------
-16 // bc_tx_antenna_num
-5
-TX_ANTENNA_NUM_1 1,1,
-TX_ANTENNA_NUM_2 1,2,
-TX_ANTENNA_NUM_3 1,3,
-TX_ANTENNA_NUM_4 1,4,
-DEFAULT_TX_ANTENNA_NUM 1,4,
-------------------
-17 // bc_flash_cfg
-7
-FLASH_SIZE_JEDEC 1,0,
-FLASH_32MB 4,33554432,
-FLASH_16MB 4,16777216,
-FLASH_8MB 4,8388608,
-FLASH_4MB 4,4194304,
-FLASH_2MB 4,2097152,
-DEFAULT_FLASH_SIZE 4,8388608,
-------------------
-18 // bc_tx_antenna_gain
-2
-TX_ANTENNA_GAIN_1_1dB 2,4506,
-DEFAULT_TX_ANTENNA_GAIN 2,4506,
-------------------
-19 // bc_ext_lna_bypass_gain
-2
-LNA_gain_BYPASS_N5dB 4,-5,
-DEFAULT_EXT_LNA_BYPASS_GAIN 4,-5,
-------------------
-20 // bc_rfic
-4
-RFIC_NOT_IN_USE 1,0,
-RFIC_V4_IN_USE 1,4,
-RFIC_V6_IN_USE 1,6,
-DEFAULT_RFIC 1,4,
-------------------
-21 // bc_tx_power_cal
-3
-CALSTATE_VPD_LOG 1,0,
-CALSTATE_VPD_LINEAR 1,1,
-DEFAULT_CALSTATE_VPD 1,0,
-*******************
diff --git a/quantenna/host/board_utils/board_hw_bin_customer b/quantenna/host/board_utils/board_hw_bin_customer
deleted file mode 100755
index 4c44bf4..0000000
--- a/quantenna/host/board_utils/board_hw_bin_customer
+++ /dev/null
Binary files differ
diff --git a/quantenna/host/board_utils/qtn_hw_board_db.bin b/quantenna/host/board_utils/qtn_hw_board_db.bin
deleted file mode 100644
index e7e0101..0000000
--- a/quantenna/host/board_utils/qtn_hw_board_db.bin
+++ /dev/null
Binary files differ
diff --git a/quantenna/host/qcsapi-client/Makefile b/quantenna/host/qcsapi-client/Makefile
deleted file mode 100644
index f2b7a97..0000000
--- a/quantenna/host/qcsapi-client/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-
-.PHONY: all clean distclean zips
-
-QCSAPI_DIR = ../../buildroot/package/qcsapi/qcsapi-1.0.1/
-
-CALL_QCSAPI_SRCZIP = call_qcsapi_client_src.zip
-QCSAPI_CLIENT_SRCZIP = libqcsapi_client_src.zip
-
-ZIPS = $(CALL_QCSAPI_SRCZIP) $(QCSAPI_CLIENT_SRCZIP)
-DIRS = $(ZIPS:%.zip=%)
-
-all: $(ZIPS) $(DIRS)
-
-zips: $(ZIPS)
-
-%.zip:
- make -C $(QCSAPI_DIR) ${@F}
- cat $(QCSAPI_DIR)/${@F} > $@
-
-%: %.zip
- rm -rf $@
- mkdir $@
- cd $@ && unzip ../$< && make
-
-clean:
- rm -rf $(DIRS) $(ZIPS)
-
-distclean: clean
diff --git a/quantenna/host/qevt-client/Makefile b/quantenna/host/qevt-client/Makefile
deleted file mode 100644
index c8d2518..0000000
--- a/quantenna/host/qevt-client/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-PROG=qevt_client
-
-all: $(PROG)
-
-$(PROG): $(PROG).c
- gcc $(PROG).c -Wall -Werror -o $(PROG)
-clean:
- rm -f *.o $(PROG)
-
-distclean: clean
-
diff --git a/quantenna/host/qevt-client/qevt_client.c b/quantenna/host/qevt-client/qevt_client.c
deleted file mode 100644
index 2de8b96..0000000
--- a/quantenna/host/qevt-client/qevt_client.c
+++ /dev/null
@@ -1,508 +0,0 @@
-/**
- * Copyright (c) 2014 Quantenna Communications, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- **/
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <arpa/inet.h>
-
-#define QEVT_DEFAULT_PORT 3490
-#define QEVT_RX_BUF_SIZE 1024
-#define QEVT_CON_RETRY_DELAY 5U
-#define QEVT_MAX_LOG_SIZE 256
-#define QEVT_ID_LEN 4
-#define ENABLE_CONFIG_CMD 1
-#define ENABLE_CONFIG_EVENT_ID 2
-
-#define MAX_VERSION_LEN 5
-#define QEVT_CLIENT_VERSION "v1.10"
-#define QEVT_CONFIG "QEVT_CONFIG"
-#define QEVT_CONFIG_RESET QEVT_CONFIG"_RESET"
-#define QEVT_VERSION "QEVT_VERSION"
-#define QEVT_DEFAULT_CONFIG "WPACTRL3:-"
-#define QEVT_CONFIG_EVENT_ID "QEVT_CONFIG_EVENT_ID"
-#define QEVT_DEFAULT_CONFIG_EVENT_ID "default:+"
-
-char fpath[32] = "/tmp";
-const char * logname = "qtn5g.log";
-
-char fpath1[32] = "/tmp";
-const char * log1name = "qtn5g.log.1";
-
-int log_size = 5 * 1024;
-char * log_buf = NULL;
-
-struct qevt_client_config {
- struct sockaddr_in dest;
- struct in_addr ip_addr;
- int client_socket;
- uint16_t port;
- int fd;
- char rxbuffer[QEVT_RX_BUF_SIZE + 1];
- char *qevt_config_cmd;
-};
-
-static int qevt_write_log(int * fd, void * buf, int len)
-{
- off_t file_off;
- int bak_fd, log_bytes;
- int log_fd = *fd;
-
- if (log_fd > 0)
- close(log_fd);
-
- log_fd = open(fpath, O_RDWR | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR | S_IRGRP);
-
- if (log_fd < 0) {
- perror("fail to open qtn5g.log\n");
- return log_fd;
- }
-
- file_off = lseek(log_fd, 0, SEEK_END);
-
- if ((int)file_off + len > log_size) {
- file_off = lseek(log_fd, 0, SEEK_SET);
-
- log_bytes = read(log_fd, log_buf, log_size);
- if (log_bytes < 0 ) {
- perror("read error in qtn5g.log\n");
- return log_bytes;
- }
- close(log_fd);
- *fd = 0;
-
- bak_fd = open(fpath1, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP);
- if (bak_fd >= 0) {
- if (log_bytes != write(bak_fd, log_buf, log_bytes)) {
- perror ("fail to write qtn5g.log.1\n");
- }
- close (bak_fd);
- } else
- perror("fail to open qtn5g.log.1\n");
-
- log_fd = open(fpath, O_RDWR | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP);
-
- if (log_fd < 0) {
- perror("fail to open qtn5g.log after change log\n");
- return log_fd;
- }
-
- *fd = log_fd;
- }
-
- log_bytes = write(log_fd, buf, len);
-
- return log_bytes;
-
-}
-
-static int qevt_send_host(struct qevt_client_config *const cfg, const char *msg)
-{
- int sent_bytes = 0;
- int ret;
-
- do {
- ret = send(cfg->client_socket, msg + sent_bytes, strlen(msg) - sent_bytes, 0);
-
- if (ret > 0) {
- sent_bytes += ret;
- } else if (errno == EINTR) {
- continue;
- } else {
- break;
- }
- } while (sent_bytes < strlen(msg));
-
- if (ret <= 0) {
- fprintf(stderr, "%s: failure sending a message to event server\n", __func__);
- }
- return (ret > 0);
-}
-
-static int qevt_receive(struct qevt_client_config *const cfg)
-{
- int received_bytes;
-
- do {
- received_bytes = recv(cfg->client_socket, cfg->rxbuffer, sizeof(cfg->rxbuffer) - 1, 0);
-
- if (received_bytes > 0) {
- cfg->rxbuffer[received_bytes] = '\0';
- } else if (received_bytes == 0) {
- printf("Connection closed\n");
- break;
- } else if (errno != EINTR && errno != ECONNREFUSED) {
- perror("Receive failed");
- break;
- }
- } while ((received_bytes < 0) && (errno == EINTR));
-
- return received_bytes;
-}
-
-static char * qevt_config_cmd(struct qevt_client_config *const cfg, const int config_type)
-{
- char *msg;
- char *nl;
-
- /* first, clear to initial settings */
- if (!qevt_send_host(cfg, QEVT_CONFIG_RESET"\n")) {
- return NULL;
- }
- if (qevt_receive(cfg) <= 0) {
- return NULL;
- }
-
- /* then send config command */
- if (!qevt_send_host(cfg, cfg->qevt_config_cmd)) {
- return NULL;
- }
- if (qevt_receive(cfg) <= 0) {
- return NULL;
- }
-
- msg = strstr(cfg->rxbuffer, (config_type != ENABLE_CONFIG_CMD) ?
- QEVT_CONFIG_EVENT_ID" " : QEVT_CONFIG" ");
- if (msg) {
- msg = strstr(msg, " ");
- }
- if (msg && (nl = strstr(++msg, "\n"))) {
- *nl = 0;
- }
-
- return msg;
-}
-
-static int qevt_check_version(struct qevt_client_config *const cfg, char** report, const int config_type)
-{
- char *version;
- char *nl;
- const char *cmd = QEVT_VERSION" "QEVT_CLIENT_VERSION;
-
- if (report) {
- *report = "UNKNOWN";
- }
-
- if (!qevt_send_host(cfg, cmd) || (qevt_receive(cfg) < 0)) {
- return 0;
- }
-
- version = strstr(cfg->rxbuffer, QEVT_VERSION);
- if (!version) {
- return 0;
- }
-
- version += sizeof(QEVT_VERSION) - 1;
- version = strstr(version, "v");
- if (!version) {
- return 0;
- }
-
- nl = strstr(version, "\n");
- if (nl) {
- *nl = 0;
- }
-
- if (report) {
- *report = version;
- }
-
- if ((strcmp(version, QEVT_CLIENT_VERSION) < 0) &&
- config_type == ENABLE_CONFIG_EVENT_ID) {
- printf("qevt_server[version %s] does not support -e option\n", version);
- return 0;
- }
-
- return (strcmp(QEVT_CLIENT_VERSION, version) >= 0);
-}
-
-static void qevt_receiving_loop(struct qevt_client_config *const cfg)
-{
- int received_bytes;
- char *buffer = cfg->rxbuffer;
-
- for (;;) {
- received_bytes = qevt_receive(cfg);
-
- if (received_bytes <= 0) {
- break;
- }
- if (received_bytes != qevt_write_log(&(cfg->fd), (void *)buffer, received_bytes)) {
- fprintf(stderr, "write log fail\n");
- }
- printf("%s", buffer);
- }
-}
-
-static int qevt_client_init(struct qevt_client_config *const cfg)
-{
- if (cfg->client_socket >= 0)
- close(cfg->client_socket);
-
- cfg->client_socket = socket(AF_INET, SOCK_STREAM, 0);
- if (cfg->client_socket < 0) {
- perror("Failed to create client socket");
- return -1;
- }
-
- memset(&cfg->dest, 0, sizeof(cfg->dest));
- cfg->dest.sin_family = AF_INET;
- cfg->dest.sin_port = htons(cfg->port);
- cfg->dest.sin_addr = cfg->ip_addr;
- return 0;
-}
-
-static int qevt_connected_to_server(const struct qevt_client_config *const cfg)
-{
- fd_set fdset;
- struct timeval timeout = {.tv_sec = QEVT_CON_RETRY_DELAY, .tv_usec = 0};
- int connected = 0;
-
- FD_ZERO(&fdset);
- FD_SET(cfg->client_socket, &fdset);
-
- if (select(cfg->client_socket + 1, NULL, &fdset, NULL, &timeout) == 1) {
- int so_error;
- socklen_t so_len = sizeof(so_error);
-
- getsockopt(cfg->client_socket, SOL_SOCKET, SO_ERROR, &so_error, &so_len);
- if (!so_error) {
- connected = 1;
- }
- }
-
- return connected;
-}
-
-static void qevt_client_connect(struct qevt_client_config *const cfg)
-{
- int ret;
- int connected = 0;
-
- while (!connected) {
- fcntl(cfg->client_socket, F_SETFL, O_NONBLOCK);
- ret = connect(cfg->client_socket, (struct sockaddr *)&cfg->dest,
- sizeof(struct sockaddr));
-
- if (ret < 0) {
- switch (errno) {
- case EINPROGRESS:
- connected = qevt_connected_to_server(cfg);
- if (connected)
- break;
- if (qevt_client_init(cfg) < 0) {
- fprintf(stderr, "fail to create client\n");
- }
- /* Fall through */
- case ECONNREFUSED:
- case ETIMEDOUT:
- fprintf(stderr,
- "Cannot connect to the server. Trying again in %u secs.\n",
- QEVT_CON_RETRY_DELAY);
- sleep(QEVT_CON_RETRY_DELAY);
- break;
- case EINTR:
- break;
- default:
- perror("Cannot connect");
- }
- }
- }
-
- fcntl(cfg->client_socket, F_SETFL, fcntl(cfg->client_socket, F_GETFL, 0) & ~O_NONBLOCK);
- printf("Connection established\n");
-}
-
-static void qevt_usage(char *argv[])
-{
- printf("Usage: %s [option]\n\t-h <host ip addr>\n\t-p <host ip port>"
- "\n\t-d <file directory>\n\t-k <file size, unit k>\n\t-c <qevt config>\n\t"
- "-e <event_id:->\n\t <default:+/-event id:-/+ ...>\n\t "
- "<default:+/-[event_range_start:event_range_end]:-/+>\n\n\t"
- "* -c and -e are mutually exclusive\n", argv[0]);
-}
-
-int main(int argc, char *argv[])
-{
- static struct qevt_client_config client_cfg;
- uint8_t config_type = 0;
- int ch;
- int status = EXIT_FAILURE;
- char ip_addr[] = "255.255.255.255";
-
- memset(&client_cfg ,0 ,sizeof(struct qevt_client_config));
- client_cfg.port = QEVT_DEFAULT_PORT;
-
- while ((ch = getopt(argc, argv, "h:p:d:k:c::e::")) != -1) {
- switch (ch) {
- case 'h':
- strncpy(ip_addr, optarg, sizeof(ip_addr));
- ip_addr[sizeof(ip_addr) -1] = '\0';
- if (!inet_aton(optarg, &client_cfg.ip_addr)) {
- fprintf(stderr, "IP address specified is not valid\n");
- goto exit;
- }
- break;
- case 'p':
- client_cfg.port = atoi(optarg);
- break;
- case 'd':
- if ((int)strlen(optarg) > ((int)sizeof(fpath) - (int)strlen(log1name) - 2)) {
- printf("Directory path length should not exceed %d\n",
- ((int)sizeof(fpath) - (int)strlen(log1name) -2));
- goto exit;
- }
-
- strncpy(fpath,optarg, strlen(optarg));
- strncpy(fpath1,optarg,strlen(optarg));
- break;
- case 'k':
- if (atoi(optarg) <= QEVT_MAX_LOG_SIZE) {
- log_size = atoi(optarg) * 1024;
- } else {
- fprintf(stderr, "Log size cannot be larger than %d\n",
- QEVT_MAX_LOG_SIZE);
- goto exit;
- }
- break;
- case 'c':
- if (config_type) {
- printf("Option -c an -e cannot be used together\n");
- goto exit;
- }
-
- config_type = ENABLE_CONFIG_CMD;
- if (!optarg)
- optarg = QEVT_DEFAULT_CONFIG;
- /* calculate the space needed (include extra for space and '\n') */
- client_cfg.qevt_config_cmd = malloc(sizeof(QEVT_CONFIG) +
- strlen(optarg) + 4);
-
- if (client_cfg.qevt_config_cmd) {
- sprintf(client_cfg.qevt_config_cmd, QEVT_CONFIG" %s\n",
- optarg);
- } else {
- fprintf(stderr, "fail to malloc memory %u bytes\n",
- (unsigned int)(sizeof(QEVT_CONFIG) +
- strlen(optarg) + 4));
- goto exit;
- }
- break;
- case 'e':
- if (config_type) {
- printf("Option -c an -e cannot be used together\n");
- goto exit;
- }
-
- config_type = ENABLE_CONFIG_EVENT_ID;
- if (!optarg)
- optarg = QEVT_DEFAULT_CONFIG_EVENT_ID;
-
- /* calculate the space needed (include extra for space and '\n') */
- client_cfg.qevt_config_cmd = malloc(sizeof(QEVT_CONFIG_EVENT_ID)
- + strlen(optarg) + 4);
- if (client_cfg.qevt_config_cmd) {
- sprintf(client_cfg.qevt_config_cmd,
- QEVT_CONFIG_EVENT_ID" %s", optarg);
- } else {
- fprintf(stderr, "Failed to allocate memory for %u bytes\n",
- (unsigned int)(sizeof(QEVT_CONFIG_EVENT_ID) +
- strlen(optarg) + 4));
- goto exit;
- }
- break;
- default:
- qevt_usage(argv);
- goto exit;
- }
- }
-
- if (!strncmp("255.255.255.255", ip_addr, strlen(ip_addr))) {
- fprintf(stderr, "please select a valid ip address\n");
- goto exit;
- }
-
- strncat(fpath, "/",1);
- strncat(fpath,logname,strlen(logname));
- strncat(fpath1, "/",1);
- strncat(fpath1,log1name,strlen(log1name));
-
- client_cfg.client_socket = -1;
-
- if (!client_cfg.qevt_config_cmd) {
- printf("Not enough options provided, either -c or -e option is required\n");
- goto exit;
- }
-
- if (qevt_client_init(&client_cfg) < 0) {
- goto exit;
- }
-
- log_buf = malloc(log_size);
-
- if(log_buf == NULL) {
- fprintf(stderr, "fail to malloc memory %d bytes\n", log_size);
- goto exit;
- }
-
- for (;;) {
- char *report = NULL;
- qevt_client_connect(&client_cfg);
-
- if (!qevt_check_version(&client_cfg, &report, config_type)) {
- fprintf(stderr, "incompatible client version '"QEVT_CLIENT_VERSION
- "'/server version '%s'\n", report);
- goto exit;
- }
-
- if ((report = qevt_config_cmd(&client_cfg, config_type))) {
- printf("Server configuration '%s'\n", report);
- } else {
- fprintf(stderr, "unable to set/get config\n");
- goto exit;
- }
-
- qevt_receiving_loop(&client_cfg);
- qevt_client_init(&client_cfg);
- }
- /*
- * This point is only reached if the above loop exits (which it should not currently).
- * In case clean exit is added in future, exit with success status.
- */
- status = EXIT_SUCCESS;
-
-exit:
- if (log_buf) {
- free(log_buf);
- }
- if (client_cfg.qevt_config_cmd) {
- free(client_cfg.qevt_config_cmd);
- }
- return status;
-}
-
diff --git a/quantenna/host/region_utils/qtn_regulatory_db.bin b/quantenna/host/region_utils/qtn_regulatory_db.bin
deleted file mode 100644
index 50a91f6..0000000
--- a/quantenna/host/region_utils/qtn_regulatory_db.bin
+++ /dev/null
Binary files differ
diff --git a/quantenna/host/scripts/struct_get.sh b/quantenna/host/scripts/struct_get.sh
deleted file mode 100755
index 5aec759..0000000
--- a/quantenna/host/scripts/struct_get.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sed -f
-
-# Skip anything that is not a struct
-/^struct[ \t]/!d
-/;[ \t]*$/d
-
-# Add opening brace if not present on the 'struct' line
-/{/ !{ s/$/ {/ }
-
-:next_struct_line
-# Remove opening brace if present in column 1
-s/^{//
-
-# Split any single lines into multiple lines
-s/; /;\n/g
-
-# Delete macros (lines starting with #)
-s/\W*\#.*//
-
-# Delete C++ style comments (starting with //)
-s/\/\/.*//
-
-# Delete C style comments (/* ... */)
-# - skip this loop unless it contains the start of a C comment (/*)
-# - if '/*' is found, join lines until the corresponding '*/'
-# - on exiting the loop, delete the joined line
-/\/\*/ !{ b not_in_comment }
-:in_comment
-/\*\// !{ N; b in_comment }
-s/\/\*.*\*\///
-:not_in_comment
-
-# Read the next line of the struct
-/}/ !{n; b next_struct_line}
-
-# Remove special attributes
-s/}.*__attribute__.*;/};/
-
-# Finished reading a struct - print
diff --git a/quantenna/host/umsdl/Makefile b/quantenna/host/umsdl/Makefile
deleted file mode 100644
index 26c5bff..0000000
--- a/quantenna/host/umsdl/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# (C) Copyright 2007 Quantenna Communications Inc.
-#
-
-umsdlsrcfiles := umsdl.c libumsdl.c
-umsfiles := $(umsdlsrcfiles) umsdl.h ums_platform.h Makefile bin2ums.c
-
-.PHONY: umsdl bin2ums
-
-alltargets = bin2ums umsdl
-
-ifeq ($(BUILD_TARBALL),y)
-alltargets += umsdl-tarball
-endif
-
-all: $(alltargets)
-
-umsdl: ums_platform.h
- gcc $(umsdlsrcfiles) -Wall -o umsdl
-
-ums_platform.h:
- cp ../../common/ums_platform.h .
-
-umsdl-tarball: ums_platform.h
- tar czf umsdl.tar.gz $(umsfiles)
-
-bin2ums:
- gcc bin2ums.c libumsdl.c -Wall -o bin2ums
-
-clean:
- rm -f *.o umsdl bin2ums umsdl.tar.gz ums_platform.h
-
-distclean: clean
diff --git a/quantenna/host/umsdl/bin2ums.c b/quantenna/host/umsdl/bin2ums.c
deleted file mode 100644
index f26b803..0000000
--- a/quantenna/host/umsdl/bin2ums.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * host/bin2ums.c
- *
- * Copyright (c) Quantenna Communications Incorporated 2007.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * An application for converting binary data into the UMS serial download
- * format with an appropriate load address.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "umsdl.h"
-
-static void usage(void)
-{
- fprintf(stderr,
- "Usage1: cat <file> | bin2ums <address> > <outfile>\n"
- " to encode a data file for download\n"
- "Usage2: bin2ums -r <address> > <outfile>\n"
- " to generate frame to jump to an execution address\n"
- "Usage3: bin2ums -r <address> [bwl] <data> > <outfile>\n"
- " generates a byte/word/long write of data to address.\n"
- " Words are written as two byte writes, longs are\n"
- " written with a single write on the target.\n");
-}
-
-int main(int argc, char *argv[])
-{
- unsigned long addr, val;
- int rc, len;
-
- if (argc < 2) {
- usage();
- return -1;
- } else if (argc == 2) {
- addr = strtoul(argv[1], NULL, 0);
- } else if (((argc == 3) || (argc == 5)) && !strcmp(argv[1], "-r")) {
- addr = strtoul(argv[2], NULL, 0);
- if (argc == 3) {
- rc = ums_exec(stdout, addr);
- } else {
- val = strtoul(argv[4], NULL, 0);
- if (*argv[3] == 'b') {
- len = 1;
- } else if (*argv[3] == 'w') {
- len = 2;
- } else if (*argv[3] == 'l') {
- len = 4;
- if (addr & 3) {
- fprintf(stderr, "Bad address alignment\n");
- return -1;
- }
- } else {
- usage();
- return -1;
- }
- rc = ums_single_write(stdout, addr, len, val);
- }
- return !rc;
- } else {
- usage();
- return -1;
- }
-
- return !bin2ums(stdin, stdout, addr);
-}
diff --git a/quantenna/host/umsdl/libumsdl.c b/quantenna/host/umsdl/libumsdl.c
deleted file mode 100644
index e8184c0..0000000
--- a/quantenna/host/umsdl/libumsdl.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * host/libumsdl.c
- *
- * Copyright (c) Quantenna Communications Incorporated 2007.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * This library contains the core functions for converting binary data
- * into UMS serial download data packets. It is used by the umsdl and
- * bin2ums programs.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "umsdl.h"
-
-static u8 crc_table[] = {
- 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15,
- 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D,
- 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65,
- 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D,
- 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5,
- 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD,
- 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85,
- 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD,
- 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2,
- 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA,
- 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2,
- 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,
- 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32,
- 0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A,
- 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,
- 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A,
- 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C,
- 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,
- 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC,
- 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4,
- 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C,
- 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44,
- 0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C,
- 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,
- 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B,
- 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63,
- 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B,
- 0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13,
- 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB,
- 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,
- 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB,
- 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3,
-};
-
-static u8 crc8(u8 ch)
-{
- return crc_table[ch];
-}
-
-static int outchar(FILE *out, u8 ch)
-{
- int rc;
-
- rc = fputc(ch, out);
- if (rc == EOF) {
- return 0;
- }
- return 1;
-}
-
-static int esc_outchar(FILE *out, u8 ch, u8 *pcrc)
-{
- /* The FLAG character delimits frames and should not appear
- * in the general data. FLAG characters in the data are
- * sent as <ESC><~FLAG> and ESC characters are sent as <ESC><~ESC>.
- */
- int rc = 0;
-
- if ((ch == FLAG_CHAR) || (ch == ESC_CHAR)) {
- rc = outchar(out, ESC_CHAR) && outchar(out, ch ^ 0xff);
- } else {
- rc = outchar(out, ch);
- }
- if (pcrc) {
- *pcrc = crc8(*pcrc ^ ch);
- }
- return rc;
-}
-
-static int write_header(FILE *out, u32 addr, int len, u8 *pdata)
-{
- u8 crc;
- int i, rc;
-
- if (len > 0 && !pdata) {
- return 0;
- }
-
- crc = 0;
- rc = outchar(out, FLAG_CHAR) &&
- esc_outchar(out, (u8)addr, &crc) &&
- esc_outchar(out, (u8)(addr >> 8), &crc) &&
- esc_outchar(out, (u8)(addr >> 16), &crc) &&
- esc_outchar(out, (u8)(addr >> 24), &crc) &&
- esc_outchar(out, (u8)len, &crc);
-
- if (!rc) {
- return rc;
- }
-
- for (i = 0; i < len && i < 4; i++) {
- if (!(rc = esc_outchar(out, *pdata++, &crc))) {
- return rc;
- }
- }
- for (; i < 4; i++) {
- if (!(rc = esc_outchar(out, 0, &crc))) {
- return rc;
- }
- }
- return esc_outchar(out, crc, NULL);
-}
-
-static int write_data(FILE *out, u8 *pc, int len)
-{
- int i, rc;
- u8 dcrc;
-
- dcrc = 0;
- rc = 1;
-
- for (i = 0; (i < len) && rc; i++) {
- rc = esc_outchar(out, *pc++, &dcrc);
- }
- if (len > 0 && rc) {
- rc = esc_outchar(out, dcrc, NULL);
- }
- return rc;
-}
-
-int ums_exec(FILE *out, u32 address)
-{
- /* Create a "jump to address" command frame */
- return write_header(out, address, 0, NULL);
-}
-
-int ums_single_write(FILE *out, u32 addr, int len, u32 data)
-{
- /* Create a "write 8/16/32 bits" command frame */
- u8 data1[4];
-
- if (len < 1 || len > 4 || len == 3) {
- return 0;
- }
-
- data1[0] = (unsigned char)data;
- data1[1] = (unsigned char)(data >> 8);
- data1[2] = (unsigned char)(data >> 16);
- data1[3] = (unsigned char)(data >> 24);
- return write_header(out, addr, len, &data1[0]);
-}
-
-int bin2ums(FILE *in, FILE *out, u32 addr)
-{
- u8 data1[4];
- u8 data2[UMS_MAX_DATA];
- int ch, rc;
- int pos, trailing;
-
- rc = 1;
- pos = 0;
-
- do {
- ch = fgetc(in);
- if (ch != EOF) {
- if (pos < 4) {
- data1[pos] = (u8)ch;
- } else {
- data2[pos - 4] = (u8)ch;
- }
- pos++;
- if (pos == UMS_MAX_DATA + 4) {
- /* A full buffer to go */
- rc = write_header(out, addr, pos, &data1[0]) &&
- write_data(out, &data2[0], pos - 4);
- addr += pos;
- pos = 0;
- }
- } else {
- /* Run out of data - write what's left */
- if (pos > 4) {
- trailing = pos & 3;
- pos = pos & ~3;
- rc = write_header(out, addr, pos, &data1[0]) &&
- write_data(out, &data2[0], pos - 4);
- addr += pos;
- if (trailing > 0 && rc) {
- rc = write_header(out, addr, trailing,
- &data2[pos - 4]);
- }
- } else if (pos > 0) {
- rc = write_header(out, addr, pos, &data1[0]);
- }
- }
- } while (ch != EOF && rc);
- return rc;
-}
diff --git a/quantenna/host/umsdl/umsdl.c b/quantenna/host/umsdl/umsdl.c
deleted file mode 100644
index 2e9f50f..0000000
--- a/quantenna/host/umsdl/umsdl.c
+++ /dev/null
@@ -1,791 +0,0 @@
-/*
- * host/umsdl.c
- *
- * Copyright (c) Quantenna Communications Incorporated 2007.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * An application for downloading images to Quantenna UMS devices via the
- * serial port. Frames that are not downloaded correctly are retried until
- * they are accepted.
- *
- */
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <time.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <signal.h>
-
-#include "umsdl.h"
-#include "ums_platform.h"
-
-/* Offset into the u-boot binary where the offset of the table holding
- * the load, execute & DRAM initialisation information is.
- */
-#define UBOOT_TABLE_PTR 0x14
-
-/* If no -c option is specified for u-boot image downloads, then the copy
- * of the image for FLASH programming purposes is made at the load address
- * minus COPY_OFFSET.
- */
-#define COPY_OFFSET (0x100000)
-
-struct uboot_info {
- u8 magic[4]; /* "UBIS" */
- u32 load; /* Image load address */
- u32 exec; /* Image entry point */
- u32 copy_addr; /* Copy of u-boot image used for programming FLASH */
- u32 ddr_start; /* DDR controller values table start */
- u32 ddr_end; /* DDR controller values table end */
- u32 name_len; /* Size of DDR name field immediately following this */
-};
-
-static void register_handlers(int register_handlers);
-int verbose;
-int send_ctrlc = 0;
-
-static unsigned char init_frame[] =
- { 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x39 };
-
-static void usage(void)
-{
- fprintf(stderr,
- "Usage1: cat <file> | umsdl [options] <serial port device>\n"
- " <file> should be generated by bin2ums.\n"
- " -v print details of download (verbose mode).\n"
- " -b <value> specifies the baud rate to use.\n"
- " -t <value in ms> specifies the frame acknowledgement\n"
- " timeout before retrying a frame (default is 500ms).\n"
- " -p <value in ms> specifies the rebaud timeout. If two\n"
- " consecutive frames fail, then umsdl waits for this\n"
- " period before resending. This tells the receiver\n"
- " to redetect the sending baud rate (default is 2sec).\n"
- "Usage2: umsdl [options] -f <binary file> -a <address> [-x <exec_addr>] <serial port device>\n"
- " <binary file> is a raw binary file to convert and send\n"
- " and <address> is the address to download it to.\n"
- " If the -x option is specified then umsdl will tell the target to execute\n"
- " the downloaded image at the address given.\n"
- "Usage3: umsdl [options] [-c addr] -u <bootloader> <serial port device>\n"
- " <bootloader> is a raw binary bootloader file (u-boot.bin).\n"
- " This option automatically sets-up the target DRAM before\n"
- " downloading the bootloader into its normal location and\n"
- " running it. The user can then program the bootloader into\n"
- " the target FLASH using the image copy made to the address\n"
- " specified by the -c option. If no -c option is given, then\n"
- " the copy is made at the image load address minus 1MB.\n\n"
- " To send ctrl-c to a downloaded application, use ctrl-\\.\n"
- );
-}
-
-static int poll_char(int serial_fd, unsigned long ms_timeout)
-{
- struct timeval time;
- unsigned char ch;
- time_t seconds;
- suseconds_t usec;
-
- seconds = ms_timeout / 1000;
- usec = (ms_timeout - seconds * 1000) * 1000;
-
- gettimeofday(&time, NULL);
- usec += time.tv_usec;
- seconds += time.tv_sec + (usec / 1000000);
- usec %= 1000000;
-
- while (read(serial_fd, &ch, 1) == 0) {
- gettimeofday(&time, NULL);
- if ((time.tv_sec > seconds) ||
- ((time.tv_sec == seconds) && (time.tv_usec >= usec))) {
- return EOF;
- }
- }
- return (unsigned int)ch;
-}
-
-static int baudrate_constant(int baud_rate)
-{
- static struct { int baud; int speed; } bauds[] = {
- { 1200, B1200 },
- { 2400, B2400 },
- { 4800, B4800 },
- { 9600, B9600 },
- { 19200, B19200 },
- { 38400, B38400 },
- { 57600, B57600 },
- { 115200, B115200 },
- };
- int i;
-
- for (i = 0; i < sizeof(bauds) / sizeof(bauds[0]); i++) {
- if (bauds[i].baud == baud_rate) {
- return bauds[i].speed;
- }
- }
- return -1;
-}
-
-static unsigned char get_escaped_char(unsigned char **ppc)
-{
- unsigned char ch;
-
- ch = **ppc;
- (*ppc)++;
- if (ch == ESC_CHAR) {
- ch = ~**ppc;
- (*ppc)++;
- }
- return ch;
-}
-
-static void parse_frame_hdr(unsigned char *buf, u32 *paddr, u8 *plen)
-{
- u8 len;
- u32 addr;
- unsigned char *p;
-
- p = buf;
- addr = get_escaped_char(&p);
- addr += (u32)get_escaped_char(&p) << 8;
- addr += (u32)get_escaped_char(&p) << 16;
- addr += (u32)get_escaped_char(&p) << 24;
-
- if (paddr) {
- *paddr = addr;
- }
-
- len = get_escaped_char(&p);
- if (plen) {
- *plen = len;
- }
-}
-
-static int nonblock(int state, int flag)
-{
- struct termios ttystate;
- int lflag;
-
- tcgetattr(STDIN_FILENO, &ttystate);
- if (state)
- {
- //turn off canonical mode
- lflag = ttystate.c_lflag;
- ttystate.c_lflag = lflag & ~ICANON & ~ECHO;
- ttystate.c_cc[VMIN] = 1;
- }
- else
- {
- ttystate.c_lflag = flag;
- }
- tcsetattr(STDIN_FILENO, TCSANOW, &ttystate);
- return (state) ? lflag : flag;
-}
-
-static int kbhit()
-{
- struct timeval tv;
- fd_set fds;
- tv.tv_sec = 0;
- tv.tv_usec = 0;
- FD_ZERO(&fds);
- FD_SET(STDIN_FILENO, &fds);
- select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
- return FD_ISSET(STDIN_FILENO, &fds);
-}
-
-static void poll_input_chars(int serial_fd)
-{
- int ch;
-
- if (send_ctrlc) {
- send_ctrlc = 0;
- ch = 3; /* echo Ctrl-C to program */
- write(serial_fd, &ch, 1);
- }
- if (kbhit()) {
- if (read(STDIN_FILENO, &ch, 1) == 1) {
- write(serial_fd, &ch, 1);
- }
- }
-}
-
-void signal_handler(int signum)
-{
- send_ctrlc = 1;
-}
-
-static void register_handlers(int register_handlers)
-{
- static void (*old_sigquit_handler)(int) = SIG_ERR;
-
- if (register_handlers) {
- old_sigquit_handler = signal(SIGQUIT, &signal_handler);
- } else {
- if (old_sigquit_handler != SIG_ERR) {
- signal(SIGQUIT, old_sigquit_handler);
- }
- }
-}
-
-static int wait_until_exec_complete(int serial_fd, FILE *data)
-{
- /* Print output from program running on the target until
- * it signals that it has finished by sending an unescaped
- * END_OF_PROGRAM character.
- * Accept input from stdin and pass it to the program, but
- * only if we are reading data from a file and not stdin.
- */
- unsigned char ch;
- int lflag;
-
- send_ctrlc = 0;
- register_handlers(1);
-
- if (data != stdin) {
- lflag = nonblock(1, 0);
- }
- do {
- while (read(serial_fd, &ch, 1) != 1) {
- if (data != stdin) {
- poll_input_chars(serial_fd);
- }
- }
- if (ch == ESC_CHAR) {
- while (read(serial_fd, &ch, 1) != 1) {
- if (data != stdin) {
- poll_input_chars(serial_fd);
- }
- }
- ch = ~ch;
- }
- if (ch != END_OF_PROGRAM_OK && ch != END_OF_PROGRAM_FAIL) {
- putchar(ch);
- } else if (verbose) {
- puts("<Program completed>");
- }
- } while (ch != END_OF_PROGRAM_OK && ch != END_OF_PROGRAM_FAIL);
-
- if (data != stdin) {
- nonblock(0, lflag);
- }
-
- register_handlers(0);
- return ch == END_OF_PROGRAM_OK;
-}
-
-static int get_uboot_info(FILE *in, struct uboot_info *info, char *name, int len, int *table_offset)
-{
- u32 offset;
- int ch;
-
- if (!in || !info) {
- return -1;
- }
- if (fseek(in, UBOOT_TABLE_PTR, SEEK_SET) != 0) {
- return -1;
- }
- offset = fgetc(in) + (fgetc(in) << 8) + (fgetc(in) << 16)
- + (fgetc(in) << 24);
- if (feof(in) || (fseek(in, offset, SEEK_SET) != 0) ||
- (fread(info, sizeof(struct uboot_info), 1, in) != 1)) {
- return -1;
- }
- if (info->magic[0] != 'U' || info->magic[1] != 'B' ||
- info->magic[2] != 'I' || info->magic[3] != 'S') {
- return -2; /* No U-Boot table */
- }
- if (name) {
- while (--len && (ch = fgetc(in)) != EOF && ch != '\0') {
- *name++ = ch;
- }
- *name = '\0';
- if (ch == EOF) {
- return -3; /* Unexpected end of name string */
- }
- }
- rewind(in);
- info->ddr_start -= info->load;
- info->ddr_end -= info->load;
- if (table_offset) {
- *table_offset = offset;
- }
- return 0;
-}
-
-static int add_init_ddr_cmds(FILE *in, struct uboot_info *info, FILE *out)
-{
- /* Initialise target DDR based on */
- u32 val, addr;
- int rc, i;
-
- if (!in || !out || !info) {
- return 0;
- }
-
- /* Release DRAM block controller from reset */
- rc =
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_RESET_MASK,
- 4, SYSCTRL_DDR_RUN) &&
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_RESET, 4,
- SYSCTRL_DDR_RUN) &&
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_RESET_MASK,
- 4, 0);
-
- if (!rc) {
- return 0;
- }
-
- addr = UMS_REGS_DDR;
- if (fseek(in, info->ddr_start, SEEK_SET)) {
- return 0;
- }
- for (i = 0; i < (info->ddr_end - info->ddr_start) / sizeof(val); i++) {
- if (fread(&val, sizeof(val), 1, in) != 1) {
- return 0;
- }
- if (!ums_single_write(out, addr, 4, val)) {
- return 0;
- }
- addr += 4;
- }
- /* Enable the controller & Map DDR at address 0 */
- rc =
- ums_single_write(out, UMS_REGS_DDR + 0x14, 4, 0x110) &&
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_CTRL_MASK, 4,
- SYSCTRL_REMAP(3) | SYSCTRL_REMAP_SRAM) &&
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_CTRL, 4, 0) &&
- ums_single_write(out, UMS_REGS_SYSCTRL + SYSCTRL_CTRL_MASK, 4, 0);
-
- rewind(in);
- return (rc) ? 1 : 0;
-}
-
-int main(int argc, char *argv[])
-{
- /* Big enough to hold a frame allowing for worst case escaping
- * of the characters.
- */
- unsigned char frame[1 + 2 * sizeof(struct umsdl_hdr) +
- 2 * (UMS_MAX_DATA + 1) + 2];
- struct timespec long_pause;
- struct timeval timeout;
- struct termios serial_ios;
- int c, i, j, failures, done, resp;
- int addr_specified, copy_addr_specified, table_offset;
- int exec_addr_specified;
- long resp_timeout = 500;
- long rebaud_pause = 2000;
- unsigned char flag_chr = FLAG_CHAR;
- const int max_consec_failures = 5;
- int serial_fd, baud_rate, speed;
- char *uboot_file, *bin_file, *infile, *pserial_port, ch;
- u32 addr, copy_addr, exec_addr, ulen;
- FILE *in, *out, *data;
- struct uboot_info info;
- char name[32];
- u8 len;
-
- if (argc < 2) {
- usage();
- return -1;
- }
-
- baud_rate = 115200;
- verbose = 0;
- uboot_file = NULL;
- bin_file = NULL;
- infile = NULL;
- pserial_port = NULL;
- in = NULL;
- out = NULL;
- copy_addr_specified = 0;
-
- addr_specified = 1;
- exec_addr_specified = 1;
- addr = 0x80000000;
- exec_addr = 0x80000000;
-
- pserial_port = argv[argc - 1];
- i = 1;
- /* Parse all options */
- while (i < argc - 1) {
- if (argv[i][0] != '-') {
- usage();
- return -1;
- }
-
- ch = argv[i++][1];
-
- /* Options needing no further arguments */
- if (ch == 'v') {
- verbose++;
- continue;
- }
-
- /* Options needing 1 further argument */
- if (i + 1 >= argc) {
- usage();
- return -1;
- }
-
- switch(ch) {
- case 't':
- resp_timeout = strtoul(argv[i], NULL, 0);
- break;
- case 'p':
- rebaud_pause = strtoul(argv[i], NULL, 0);
- break;
- case 'b':
- baud_rate = strtoul(argv[i], NULL, 0);
- break;
- case 'a':
- addr = strtoul(argv[i], NULL, 0);
- addr_specified = 1;
- break;
- case 'c':
- copy_addr = strtoul(argv[i], NULL, 0);
- copy_addr_specified = 1;
- break;
- case 'x':
- exec_addr = strtoul(argv[i], NULL, 0);
- exec_addr_specified = 1;
- break;
- case 'f':
- bin_file = argv[i];
- break;
- case 'u':
- uboot_file = argv[i];
- break;
- case '\0':
- fprintf(stderr, "No option letter after -\n");
- usage();
- return -1;
- default:
- fprintf(stderr, "Unknown option %c\n", ch);
- usage();
- return -1;
- }
- i++;
- }
-
- if ((uboot_file && bin_file) || (bin_file && !addr_specified) ||
- (!bin_file && addr_specified)) {
- usage();
- return -1;
- }
- if (uboot_file) {
- infile = uboot_file;
- }
- if (bin_file) {
- infile = bin_file;
- }
-
- if (infile) {
- if ((in = fopen(infile, "rb")) == NULL) {
- fprintf(stderr, "Cannot open %s\n", infile);
- return -1;
- } else if ((out = tmpfile()) == NULL) {
- fprintf(stderr, "Failed to open temporary file\n");
- return -1;
- } else {
- if (uboot_file) {
- /* For a bootloader (U-Boot) file we extract
- * the load/execution and DRAM setup info
- * directly from the image. This allows us
- * to setup the DRAM, download the image and
- * run it.
- */
- if (get_uboot_info(in, &info, name,
- sizeof(name), &table_offset)) {
- fprintf(stderr,
- "Cannot read U-Boot information"
- " table (not a U-Boot binary?)\n");
- return -1;
- }
-
- fseek(in, 0L, SEEK_END);
- ulen = ftell(in);
- rewind(in);
- if (copy_addr_specified) {
- info.copy_addr = copy_addr & ~3;
- } else {
- info.copy_addr = (info.load & ~3) - COPY_OFFSET;
- }
-
- printf( "DDR type : %s\n"
- "Byte length : 0x%08lx\n"
- "Load addr : 0x%08lx\n"
- "Exec addr : 0x%08lx\n"
- "Copy addr : 0x%08lx\n"
- "Table offset: 0x%08lx\n"
- "Table length: 0x%08lx\n",
- name, ulen,
- info.load, info.exec, info.copy_addr,
- info.ddr_start,
- info.ddr_end - info.ddr_start);
-
- if (!add_init_ddr_cmds(in, &info, out)) {
- fprintf(stderr,
- "Failed to prepend DDR commands\n");
- return -1;
- }
-
- addr = info.load;
- }
-
- if (!bin2ums(in, out, addr)) {
- fprintf(stderr, "Failed to convert file\n");
- return -1;
- }
-
- /* Patch the U-Boot info structure in the downloaded image
- * with the user specified address of where to make a
- * copy of the image when u-boot runs.
- */
- if (uboot_file &&
- !ums_single_write(out, info.load +
- table_offset +
- offsetof(struct uboot_info, copy_addr),
- sizeof(info.copy_addr),
- info.copy_addr)) {
- fprintf(stderr, "Failed to set copy address\n");
- return -1;
- }
-
- if (uboot_file && !ums_exec(out, info.exec)) {
- fprintf(stderr, "Failed to add exec command\n");
- return -1;
- }
-
- if (bin_file && exec_addr_specified && !ums_exec(out, exec_addr)) {
- fprintf(stderr, "Failed to add exec command\n");
- return -1;
- }
- }
- }
-
- if (pserial_port) {
- /* Connect to the specified serial port */
- serial_fd = open(pserial_port, O_RDWR | O_NOCTTY | O_NONBLOCK);
- if (serial_fd < 0) {
- fprintf(stderr, "Failed to open %s\n", pserial_port);
- return -1;
- }
- if (tcgetattr(serial_fd, &serial_ios) < 0) {
- fprintf(stderr, "Failed to get serial port "
- "attributes for %s\n", pserial_port);
- close(serial_fd);
- return -1;
- }
- serial_ios.c_iflag = 0;
- serial_ios.c_oflag = 0;
- serial_ios.c_cflag = CS8 | CREAD | CLOCAL;
- serial_ios.c_lflag = 0;
- serial_ios.c_cc[VMIN] = 0;
- serial_ios.c_cc[VTIME] = 0;
-
- /* Set the serial port speed */
- speed = baudrate_constant(baud_rate);
-
- if (speed < 0) {
- fprintf(stderr, "Unsupported baud rate %d\n", baud_rate);
- close(serial_fd);
- return -1;
- }
- if (cfsetispeed(&serial_ios, speed)) {
- fprintf(stderr, "Failed to set input baud rate\n");
- close(serial_fd);
- return -1;
- }
- if (cfsetospeed(&serial_ios, speed)) {
- fprintf(stderr, "Failed to set output baud rate\n");
- close(serial_fd);
- return -1;
- }
-
- if (tcsetattr(serial_fd, TCSANOW, &serial_ios)) {
- fprintf(stderr, "Cannot update serial port settings\n");
- close(serial_fd);
- return -1;
- }
- } else {
- fprintf(stderr, "No serial port specified\n");
- usage();
- return -1;
- }
-
-
- /* This pause needs to be long enough so that the receiver
- * sees the serial line is idle for > 128e6 AHB bus clock ticks
- * (about 1s to 1.6s depending on the chip clock selection).
- * The receiver will then re-enter the autobaud detection mode.
- * We do need to take account of any outgoing buffering that is
- * going on, so we push the delay up to 2s by default.
- */
- long_pause.tv_sec = rebaud_pause / 1000;
- long_pause.tv_nsec = (rebaud_pause - long_pause.tv_sec * 1000) * 1000000;
-
- /* How long to wait for a response from the receiver */
- timeout.tv_sec = resp_timeout / 1000;
- timeout.tv_usec = (resp_timeout - timeout.tv_sec * 1000) * 1000;
-
- /* Make stdout non-buffered so we see the serial download progress */
- setvbuf(stdout, (char *) NULL, _IONBF, 0);
-
- /* Tell chip to turn on its serial output. The response is expected
- * to be 0xFF, PACKET_ACK with the possibility that the 0xFF gets
- * corrupted by the UART turn on.
- */
- i = 3;
- if (verbose) {
- printf("Wait for initial response from target\n");
- }
-
- do {
- write(serial_fd, &flag_chr, 1);
- write(serial_fd, &init_frame[0], sizeof(init_frame));
- c = poll_char(serial_fd, rebaud_pause);
- if (c == 0xff) {
- c = poll_char(serial_fd, rebaud_pause);
- }
- } while ((c != PACKET_ACK) && --i);
-
- if (i == 0) {
- fprintf(stderr, "Failed to sync with receiver\n");
- return -1;
- }
-
- if (verbose) {
- printf("Response received\n");
- }
-
- if (infile) {
- data = out;
- rewind(data);
- } else {
- data = stdin;
- }
-
- c = fgetc(data);
- do {
- /* Read and send one frame at a time until done */
- if (verbose) {
- putchar('F');
- }
- if (c != FLAG_CHAR) {
- fprintf(stderr,
- "Bad file format (Expected %04x, got %04x)\n",
- FLAG_CHAR, c);
- return -1;
- }
- frame[0] = c;
- i = 1;
- do {
- c = fgetc(data);
- done = (c == EOF) || (c == FLAG_CHAR);
- if (!done) {
- if (i >= sizeof(frame)) {
- fprintf(stderr,
- "Overlength frame error\n");
- return -1;
- }
- frame[i++] = (unsigned char)c;
- }
- } while (!done);
-
- if (verbose) {
- putchar('f');
- }
- failures = 0;
-
- do {
- if (verbose) {
- putchar('S');
- }
-
- /* Send whole frame */
- if (verbose > 1) {
- printf("\n");
- for (j = 0; j < i; j++) {
- printf("%02x ", frame[j]);
- }
- printf("\n");
- }
- write(serial_fd, &frame[0], i);
- if (verbose) {
- putchar('s');
- }
-
- /* Wait for receiver response */
- resp = poll_char(serial_fd, resp_timeout);
- if (resp != PACKET_ACK) {
- if (resp == PACKET_NAK)
- {
- putchar('N');
- } else if (resp == EOF) {
- putchar('-');
- } else {
- if (verbose) {
- printf("(%02x?)", resp);
- } else {
- putchar('_');
- }
- }
- if (failures++ & 1) {
- /* Try renegotiation of baud rate */
- nanosleep(&long_pause, NULL);
- }
- } else {
- putchar('.');
- failures = 0;
- }
-
- /* If we have just run a program on the target
- * we suspend the download and just report characters
- * sent back to us until the "program-finished"
- * character is received.
- */
- parse_frame_hdr(&frame[1], &addr, &len);
- if (verbose) {
- printf("[Addr %08lx, Len %02x]\n", addr, len);
- }
- if (len == 0) {
- if (!wait_until_exec_complete(serial_fd, data)) {
- fprintf(stderr, "\nDownloaded program returned error. Exiting\n");
- return -1;
- }
- }
-
- } while (resp != PACKET_ACK && failures < max_consec_failures);
-
- if (failures >= max_consec_failures) {
- /* Abort download: excessive consecutive failures */
- fprintf(stderr, "\nToo many consecutive errors.\n");
- return -1;
- }
- } while (c != EOF);
- printf("\n");
- return 0;
-}
-
diff --git a/quantenna/host/umsdl/umsdl.h b/quantenna/host/umsdl/umsdl.h
deleted file mode 100644
index 83bc1a4..0000000
--- a/quantenna/host/umsdl/umsdl.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * host/umsdl.c
- *
- * Copyright (c) Quantenna Communications Incorporated 2007.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * Common definitions for the umsdl and bin2ums applications.
- */
-
-#ifndef _HOST_UMSDL_H
-#define _HOST_UMSDL_H
-
-/* Special marker and escape characters in the serial download stream */
-#define FLAG_CHAR (0x80)
-#define ESC_CHAR (0x10)
-#define PACKET_ACK (0x2e)
-#define PACKET_NAK (0x78)
-
-/* Programs downloaded serially and run can signal to the download
- * program that they have finished by sending an un-escaped Ctrl-Z
- * back on the serial line. The download program will then continue
- * with other downloads it may have.
- * If the program fails, then it returns NAK (ASCII 21) and the download
- * will terminate.
- */
-#define END_OF_PROGRAM_OK (26)
-#define END_OF_PROGRAM_FAIL (21)
-
-/* Frame specific definitions. The frame format is
- *
- * [FLAG_CHAR][header][data]
- *
- * The flag character acts as a frame delimiter. If it appears in the
- * header or data then it is escaped to a two byte sequence using ESC_CHAR
- * followed by ~FLAG_CHAR. Escape characters are sent as <ESC_CHAR><~ESC_CHAR>.
- *
- * The header structure is defined by umsdl_hdr and contains the first four
- * bytes of any data. If the frame contains more than four bytes then an
- * optional [data] section is added which contains 4 to UMS_MAX_DATA bytes,
- * is a multiple of 4 bytes in size and is followed by a CRC-8 byte checksum
- * (of the bytes in the data section only). Any trailing bytes are handled by
- * generating an additional frame.
- * If a frame contains 4 or more bytes then these are written as words on
- * the target system. If the frame contains fewer than 4 bytes then they
- * are written as bytes.
- * The target responds with one of three characters. PACKET_ACK is sent when
- * a frame (header & optional data) has been received correctly. PACKET_NAK
- * is sent if the header or data fails the CRC check, or if the header length
- * field is > 4 but not a multiple of 4 bytes. FLAG_NAK is sent if the target
- * is expecting the start of a frame FLAG, but got some other character.
- * All responses are sent immediately the error is detected, so the timeout
- * on the sender for lost responses can be very short (i.e. ~ 2 characters).
- *
- */
-
-typedef unsigned char u8;
-typedef unsigned long u32;
-
-/* Header format of each frame, preceeded by a FLAG_CHAR */
-struct umsdl_hdr {
- u8 addr[4]; /* Target physical address, addr[0]=lsb */
- u8 length; /* Total bytes in header and any data section */
- u8 data[4]; /* First 4 bytes of data, data[0] = first byte */
- u8 crc; /* CRC-8 checksum of preceeding header bytes */
-};
-
-/* The maximum number of bytes in the data section of the frame */
-#define UMS_MAX_DATA (248)
-
-int ums_exec(FILE *out, u32 address);
-int ums_single_write(FILE *out, u32 address, int len, u32 data);
-int bin2ums(FILE *in, FILE *out, u32 addr);
-
-#endif
diff --git a/quantenna/host/utilities/Makefile b/quantenna/host/utilities/Makefile
deleted file mode 100644
index a10e8ea..0000000
--- a/quantenna/host/utilities/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# (C) Copyright 2007 Quantenna Communications Inc.
-#
-
-CFLAGS += -Wall -Werror
-
-.PHONY: bin2bin bin2hex ruby_mem_helper
-
-all: bin2bin bin2hex ruby_mem_helper
-
-bin2bin:
- gcc $(CFLAGS) bin2bin.c -Wall -o bin2bin
-
-bin2hex:
- gcc $(CFLAGS) bin2hex.c -Wall -o bin2hex
-
-ruby_mem_helper: ruby_mem_helper.c
- gcc $(CFLAGS) -I../../common $< -o $@
-
-clean:
- rm -f *.o bin2bin bin2hex ruby_mem_helper
-
-distclean: clean
diff --git a/quantenna/host/utilities/arcsymbols.pm b/quantenna/host/utilities/arcsymbols.pm
deleted file mode 100755
index e762bda..0000000
--- a/quantenna/host/utilities/arcsymbols.pm
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/usr/bin/perl -w
-package arcsymbols;
-use strict;
-use warnings;
-use List::Util qw[min max];
-
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-
-require Exporter;
-
-@ISA = qw(Exporter);
-@EXPORT = qw();
-@EXPORT_OK = qw();
-$VERSION = '0.01';
-
-my $objdump = "/usr/local/ARC/gcc/bin/arc-linux-uclibc-objdump";
-
-sub new {
- my $package = shift;
- my $bin_path = shift;
- my $section_addrs_ref = shift;
- my $self = {};
- &load_symbols($self, $bin_path, $section_addrs_ref);
- return bless($self, $package);
-}
-
-sub find_symbol {
- my $self = shift;
- my $addr = shift;
- my $sym = $self->find_symbol_address_dumb($addr);
- if ($sym) {
- return $self->{symbols_ref}->{$sym};
- } else {
- return undef;
- }
-}
-
-sub get_sorted_addrs_ref {
- my $self = shift;
- return $self->{sorted_symbol_keys_ref};
-}
-
-sub get_symbol_by_key {
- my $self = shift;
- my $addr = shift;
- return $self->{symbols_ref}->{$addr};
-}
-
-sub find_section {
- my $self = shift;
- my $addr = shift;
-
- foreach my $section_addr (@{$self->{sorted_section_keys_ref}}) {
- my $offset = $addr - $section_addr;
- my $section_size = $self->{sections_ref}->{$section_addr}->{size};
- if ($offset >= 0 && $offset < $section_size) {
- return $self->{sections_ref}->{$section_addr};
- }
- }
- return undef;
-}
-
-sub fixfunc {
- my ($self, $name, $offset, $size) = @_;
- # find symbol, compare sizes; some functions are omitted in kallsyms
- my $changed = 0;
- my $sym = undef;
- #warn sprintf "\t\t%s+%x/%x %s\n", $name, $offset, $size, $self->{bin_path};
- if ($self->{symbol_names_ref}->{$name}) {
- #warn sprintf "$name in $self->{bin_path}\n";
- $sym = $self->{symbol_names_ref}->{$name};
- my $objdsize = $sym->{size};
- my $origsize = $size;
- $size = $objdsize; # fix size regardless of oversize
- my $reladdr = $sym->{addr};
- if ($offset >= $size && $objdsize < $origsize) {
- #warn sprintf "function: %s oversize (%x > %x) and nonzero offset (%x), addr %x+%x/%x (%x), rs %x\n", $name, $origsize, $objdsize, $offset, $reladdr, $offset, $size, $reladdr + $offset, $objdsize;
- if ($self->{symbols_ref}->{$reladdr + $offset}) {
- my $newname = $self->{symbols_ref}->{$reladdr + $offset}->{name};
- my $newsize = $self->{symbols_ref}->{$reladdr + $offset}->{size};
- warn sprintf "%s+0x%x/0x%x (realsize 0x%x) changed for %s+0x%x/0x%x, binary %s\n", $name, $offset, $size, $objdsize, $newname, 0, $newsize, $self->{bin_path};
- #warn sprintf "found match: $name at %x\n", $reladdr + $offset;
- $name = $newname;
- $size = $newsize;
- $offset = 0;
- } else {
- # create a new name to distinguish this, even though
- # we don't know exactly what it is
- $name = sprintf("%s+0x%x", $name, $objdsize);
- }
- }
- $changed = 1;
- }
- $size = 1 if ($size == 0);
- return ($name, $offset, $size, $changed == 1, $sym);
-}
-
-sub find_symbol_address_tree {
- my ($self, $addr) = @_;
- my $symbol_addr;
- my @symbol_addrs = @{$self->{sorted_symbol_keys_ref}};
- # binary search to find symbol
- my $min = 0;
- my $max = $#symbol_addrs;
- while ($max >= $min) {
- my $this = int(($max + $min) / 2);
- my $sym = $symbol_addrs[$this];
- #warn sprintf("\n%d %d %d %x %x", $min, $this, $max, $sym, $addr);
- if ($sym == $addr) {
- $symbol_addr = $sym;
- #warn "$sym == $addr";
- last;
- } elsif ($sym > $addr) {
- if ($max == $this) {
- $max--;
- } else {
- $max = $this;
- }
- #warn sprintf("%x > %x", $sym, $addr);
- } else {
- my $symbol_size = $self->{symbols_ref}->{$sym}->{size};
- my $offset = $addr - $sym;
- if ($offset < $symbol_size) {
- #warn "found, offset $offset < $symbol_size";
- $symbol_addr = $sym;
- last;
- } else {
- #warn sprintf("%x + %x < %x", $sym, $symbol_size, $addr);
- if ($min == $this) {
- $min++;
- } else {
- $min = $this;
- }
- }
- }
- }
-
- return $symbol_addr;
-}
-
-sub find_symbol_address_dumb {
- my ($self, $addr) = @_;
-
- foreach my $sym (@{$self->{sorted_symbol_keys_ref}}) {
- my $offset = $addr - $sym;
-
- my $symbol_size = $self->{symbols_ref}->{$sym}->{size};
-
- if ($offset >= 0 && $offset < $symbol_size) {
- return $sym;
- }
- }
-}
-
-sub load_symbols {
- my $self = shift;
- my $bin_path = shift;
- my $section_addrs_ref = shift;
-
- my $is_module = defined($section_addrs_ref);
-
- my %names;
- my %data;
- my %sections;
- my %section_start_offsets;
-
- die "Could not find binary: $bin_path\n" unless ( -e $bin_path );
-
- foreach (`$objdump -ht $bin_path`) {
- if (/^([\w\d]+)\s+\w?\s+\w?\s+([\.\w]+)\s+([\w\d]+)\s+([\.\w]+)\s*$/) {
- my $addr = hex($1);
- my $section = $2;
- my $size = hex($3);
- my $name = $4;
- my $origaddr = $addr;
- my $found = 1;
- if ($is_module) {
- if ($section eq $name) {
- $section_start_offsets{$section} = $addr;
- }
- if ($section_addrs_ref->{$section}) {
- $addr = $addr - $section_start_offsets{$section} + $section_addrs_ref->{$section};
- } else {
- $found = 0;
- }
- }
- if ($found) {
- if ($size > 0) {
- $data{$addr}->{addr} = $addr;
- $data{$addr}->{size} = $size;
- $data{$addr}->{name} = $name;
- $data{$addr}->{section} = $section;
- #warn sprintf("parsed %x: $name $section $size\n", $addr);
- }
- $names{$name}->{addr} = $addr;
- $names{$name}->{size} = $size;
- $names{$name}->{section} = $section;
- #warn sprintf ("Sym: 0x%x (orig 0x%x, section $section) $name\n", $addr, $origaddr);
- }
- }
- elsif (/^\s*\d+\s+([\.\w]+)\s+([\d\w]+)\s+([\d\w]+)\s+([\d\w]+)\s+([\d\w]+)\s+\d*\**\d*\s*$/) {
- my $addr = hex($3);
- my $size = hex($2);
- my $section = $1;
- $sections{$addr}->{addr} = $addr;
- $sections{$addr}->{size} = $size;
- $sections{$addr}->{section} = $section;
- }
- }
-
- my @sorted_symbol_keys = sort keys %data;
- $self->{sorted_symbol_keys_ref} = \@sorted_symbol_keys;
- $self->{symbols_ref} = \%data;
-
- my @sorted_section_keys = sort keys %sections;
- $self->{sorted_section_keys_ref} = \@sorted_section_keys;
- $self->{sections_ref} = \%sections;
-
- my @sorted_names = sort keys %names;
- $self->{sorted_symbol_names_ref} = \@sorted_names;
- $self->{symbol_names_ref} = \%names;
-
- $self->{bin_path} = $bin_path;
-}
-
-1;
diff --git a/quantenna/host/utilities/bin2bin.c b/quantenna/host/utilities/bin2bin.c
deleted file mode 100644
index 583a978..0000000
--- a/quantenna/host/utilities/bin2bin.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <stdio.h>
-
-void printbin(unsigned long val);
-
-int main(int argc, char *argv[])
-{
- FILE *handle;
- unsigned int c;
- unsigned long val;
- int i;
-
- handle = fopen(argv[1], "rb");
- if (handle == NULL) {
- fprintf(stderr, "Cannot open %s\n", argv[1]);
- return -1;
- }
-
- i = 0;
- while ((c = fgetc(handle)) != EOF) {
- if (i == 0) {
- val = 0;
- }
- val += ((c & 0xff) << (i << 3));
- if (i == 3) {
- printbin(val);
- }
- if (++i == 4) {
- i = 0;
- }
- }
-
- if (i != 0) {
- fprintf(stderr, "File not an integral number of 32 bit words\n");
- printbin(val);
- return -2;
- }
- return 0;
-}
-
-void printbin(unsigned long val)
-{
- int i;
-
- for (i = 31; i >= 0; i--) {
- putchar('0' + ((val >> i) & 1));
- }
- printf("\n");
-}
-
diff --git a/quantenna/host/utilities/bin2hex.c b/quantenna/host/utilities/bin2hex.c
deleted file mode 100644
index cc641b1..0000000
--- a/quantenna/host/utilities/bin2hex.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- FILE *handle;
- unsigned int c;
- unsigned long val;
- int i;
-
- handle = fopen(argv[1], "rb");
- if (handle == NULL) {
- fprintf(stderr, "Cannot open %s\n", argv[1]);
- return -1;
- }
-
- i = 0;
- while ((c = fgetc(handle)) != EOF) {
- if (i == 0) {
- val = 0;
- }
- val += ((c & 0xff) << (i << 3));
- if (i == 3) {
- printf("%08lx\n", val);
- }
- if (++i == 4) {
- i = 0;
- }
- }
-
- if (i != 0) {
- fprintf(stderr, "File not an integral number of 32 bit words\n");
- printf("%08lx\n", val);
- return -2;
- }
- return 0;
-}
-
diff --git a/quantenna/host/utilities/check_lzma_image_size b/quantenna/host/utilities/check_lzma_image_size
deleted file mode 100755
index 2ce1a0f..0000000
--- a/quantenna/host/utilities/check_lzma_image_size
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use File::Temp qw/tempfile/;
-
-# check the lzma image size against the limit specified in common/ruby_partitions.h,
-# and complain loudly if it is too big
-
-my $header_file = "common/ruby_partitions.h";
-my $sizedef = "IMG_SIZE_LIMIT_PLATFORM";
-my $tmppath;
-my $csrc = "
-#include <stdio.h>
-#include <common/ruby_config.h>
-#include <$header_file>
-int main(int argc, char **argv)
-{
- printf(\"0x%lx\\n\", (unsigned long)($sizedef));
- return 0;
-}
-";
-
-END {
- if ($tmppath) {
- unlink ($tmppath);
- unlink ($tmppath.".out");
- }
-}
-
-my $image_file = `ls -1tr tftp/*-linux*lzma* | tail -n 1`;
-my $maxsize = 0;
-
-if ($#ARGV >= 0) {
- $image_file = $ARGV[0];
-}
-$image_file =~ s/^\s*(.*?)\s*$/$1/g;
-
-if ($#ARGV >= 1) {
- $maxsize = $ARGV[1];
-}
-
-unless (-e $image_file) {
- die "Cannot find appropriate image file! $image_file\n";
-}
-unless (-e $header_file) {
- die "Cannot find header file: $header_file\n";
-}
-my $imagesize = -s $image_file;
-if ($maxsize == 0) {
- # create C file to get the preprocessor value
- my ($fh, $tmppath) = tempfile();
- print $fh $csrc or die "$0: could not write to $tmppath: $!\n";
- close $fh;
-
- my $val = `cat $tmppath | gcc -I. -xc - -o $tmppath.out && $tmppath.out`;
- $val =~ s/^\s*(.*?)\s*$/$1/g;
- $maxsize = hex($val);
- unlink ($tmppath);
- unlink ($tmppath.".out");
-
-}
-
-if (!($maxsize > 1)) {
- die "Invalid max_size or could not find '$sizedef' in file '$header_file'\n";
-}
-
-my $diff = $maxsize - $imagesize;
-if ($diff < 0) {
- warn "#############################################################################\n";
- warn "#############################################################################\n";
- warn "####\n";
- warn "#### WARNING!!!! $image_file is oversize!\n";
- warn "####\n";
- warn "#### limit: $maxsize\n";
- warn "#### size: $imagesize\n";
- warn "#### difference: $diff\n";
- warn "####\n";
- warn "#############################################################################\n";
- warn "#############################################################################\n";
- die "\n";
-}
-else {
- print "$0: $image_file fits, size: $imagesize < maxsize: $maxsize, spare: $diff\n";
-}
-
diff --git a/quantenna/host/utilities/create_fwupdate_sh.mk b/quantenna/host/utilities/create_fwupdate_sh.mk
deleted file mode 100644
index df67054..0000000
--- a/quantenna/host/utilities/create_fwupdate_sh.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-FLASHPART = /dev/mtd0
-
-%.update.sh: %
- rm -f $@
- echo '#!/bin/sh' >>$@
- echo '' >>$@
- echo 'flashpart=$(FLASHPART)' >>$@
- echo 'newfw=${<F}' >>$@
- echo 'flashtmp=/tmp/flash.tmp' >>$@
- echo 'realsize='`cat $< | wc -c | awk '{print $$1}'` >>$@
- echo 'realmd5='`cat $< | md5sum | awk '{print $$1}'` >>$@
- echo '' >>$@
- echo 'getsize()' >>$@
- echo '{' >>$@
- echo " cat \$$1 | wc -c | awk '{print \$$1}'" >>$@
- echo '}' >>$@
- echo '' >>$@
- echo 'getmd5()' >>$@
- echo '{' >>$@
- echo " cat \$$1 | md5sum | awk '{print \$$1}'" >>$@
- echo '}' >>$@
- echo '' >>$@
- echo 'echo "$$0: Extracting $$newfw..."' >>$@
- echo 'uudecode > $$newfw <<EOF' >>$@
- cat $< | uuencode -m ${<F} >>$@
- echo 'EOF' >>$@
- echo '' >>$@
- echo 'if [ ! -e $$flashpart -o ! -e $$newfw ] ; then' >>$@
- echo ' echo Upgrade FAILED: files do not exist' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'echo "$$0: Checking $$newfw..."' >>$@
- echo 'filesize=$$(getsize $$newfw)' >>$@
- echo 'if [ $$filesize -ne $$realsize ] ; then' >>$@
- echo ' echo Upgrade FAILED: $$newfw should be size $$realsize' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'echo "$$0: Checking $$flashpart..."' >>$@
- echo 'flashsize=$$(getsize $$flashpart)' >>$@
- echo 'if [ $$filesize -gt $$flashsize ] ; then' >>$@
- echo ' echo Upgrade FAILED: $$flashpart too small for $$newfw' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'if [ $$(($$filesize * 2)) -lt $$flashsize ] ; then' >>$@
- echo ' echo Upgrade FAILED: $$newfw seems too small for $$flashpart... aborting' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'filemd5=$$(getmd5 $$newfw)' >>$@
- echo 'if [ "$$filemd5" != "$$realmd5" ] ; then' >>$@
- echo ' echo Upgrade FAILED: md5sum incorrect' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'dd if=$$flashpart bs=1 count=$$filesize of=$$flashtmp' >>$@
- echo 'if [ $$? -ne 0 ] ; then' >>$@
- echo ' echo Upgrade FAILED: could not read $$flashpart' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'flashmd5=$$(getmd5 $$flashtmp)' >>$@
- echo 'if [ "$$filemd5" == "$$flashmd5" ] ; then' >>$@
- echo ' echo $$flashpart already matches $$newfw, no upgrade necessary' >>$@
- echo ' exit 0' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'echo "$$0: Writing $$newfw to $$flashpart..."' >>$@
- echo '(sync && \' >>$@
- echo ' flash_eraseall $$flashpart && \' >>$@
- echo ' sleep 1 && \' >>$@
- echo ' cat $$newfw > $$flashpart && \' >>$@
- echo ' sleep 1) || \' >>$@
- echo ' (echo Upgrade FAILED, flash likely corrupt && exit 1)' >>$@
- echo '' >>$@
- echo 'echo "$$0: Verifying $$flashpart..."' >>$@
- echo 'dd if=$$flashpart bs=1 count=$$filesize of=$$flashtmp' >>$@
- echo 'if [ $$? -ne 0 ] ; then' >>$@
- echo ' echo Verify FAILED: could not read $$flashpart' >>$@
- echo ' exit 2' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'flashmd5=$$(getmd5 $$flashtmp)' >>$@
- echo 'if [ "$$filemd5" != "$$flashmd5" ] ; then' >>$@
- echo ' echo Verify FAILED: $$flashpart does not match $$newfw after write' >>$@
- echo ' exit 1' >>$@
- echo 'fi' >>$@
- echo '' >>$@
- echo 'echo Upgrade and verify successful' >>$@
- chmod a+rx $@
-
diff --git a/quantenna/host/utilities/depmod b/quantenna/host/utilities/depmod
deleted file mode 100755
index 6ed6f70..0000000
--- a/quantenna/host/utilities/depmod
+++ /dev/null
Binary files differ
diff --git a/quantenna/host/utilities/eth_macaddr_gen.php b/quantenna/host/utilities/eth_macaddr_gen.php
deleted file mode 100644
index c0d7d95..0000000
--- a/quantenna/host/utilities/eth_macaddr_gen.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<?php
- if(file_exists("eth_macaddrs.txt"))
- {
- $curr_wmacaddr = file_get_contents("eth_macaddrs.txt");
-
- list($new_wifi[0], $new_wifi[1], $new_wifi[2], $new_wifi[3], $new_wifi[4], $new_wifi[5]) = explode(":", $curr_wmacaddr);
-
- $new_wifi[5] = hexdec($new_wifi[5]);
-
- if($new_wifi[5] >= 255 )
- {
- $new_wifi[5] = 0;
- $new_wifi[5] = sprintf("%02X", $new_wifi[5]);
- $new_wifi[4] = hexdec($new_wifi[4]);
-
- if($new_wifi[4] >= 255 )
- {
- $new_wifi[4] = 0;
- $new_wifi[4] = sprintf("%02X", $new_wifi[4]);
- $new_wifi[3] = hexdec($new_wifi[3]);
-
- if($new_wifi[3] >= 255 )
- {
- $new_wifi[3] = 0;
- $new_wifi[3] = sprintf("%02X", $new_wifi[3]);
- $new_wifi[2] = hexdec($new_wifi[2]);
-
- if($new_wifi[2] >= 255 )
- {
- $new_wifi[2] = 0;
- $new_wifi[2] = sprintf("%02X", $new_wifi[2]);
- $new_wifi[1] = hexdec($new_wifi[1]);
-
- if($new_wifi[1] >= 255 )
- {
- $new_wifi[1] = 0;
- $new_wifi[1] = sprintf("%02X", $new_wifi[1]);
- $new_wifi[0] = hexdec($new_wifi[0]);
- $new_wifi[0] = $new_wifi[0] + 1;
- $new_wifi[0] = sprintf("%02X", $new_wifi[0]);
- }
- else
- {
- $new_wifi[1] = $new_wifi[1] + 1;
- $new_wifi[1] = sprintf("%02X", $new_wifi[1]);
- }
- }
- else
- {
- $new_wifi[2] = $new_wifi[2] + 1;
- $new_wifi[2] = sprintf("%02X", $new_wifi[2]);
- }
- }
- else
- {
- $new_wifi[3] = $new_wifi[3] + 1;
- $new_wifi[3] = sprintf("%02X", $new_wifi[3]);
- }
- }
- else
- {
- $new_wifi[4] = $new_wifi[4] + 1;
- $new_wifi[4] = sprintf("%02X", $new_wifi[4]);
- }
- }
- else
- {
- $new_wifi[5] = $new_wifi[5] + 1;
- $new_wifi[5] = sprintf("%02X", $new_wifi[5]);
- }
-
- $arr = array($new_wifi[0], $new_wifi[1], $new_wifi[2], $new_wifi[3], $new_wifi[4], $new_wifi[5]);
- $new_wmacaddr1 = implode(":", $arr);
- file_put_contents("eth_macaddrs.txt", $new_wmacaddr1);
- }
- else
- {
- //This is first time file is created
- $first_wmacaddr = "00:26:86:00:00:00";
- file_put_contents("eth_macaddrs.txt", $first_wmacaddr);
- }
-?>
-</HTML>
diff --git a/quantenna/host/utilities/gwcomm b/quantenna/host/utilities/gwcomm
deleted file mode 100755
index 753a74f..0000000
--- a/quantenna/host/utilities/gwcomm
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/python
-
-#
-# Talk to a GwInstek GPD-4303s benchtop power supply
-#
-
-import time
-import serial
-import getopt
-import sys
-import subprocess
-import re
-import curses
-
-def findDevice():
- p = subprocess.Popen("dmesg", stdout = subprocess.PIPE, stderr = subprocess.PIPE)
- pout, perr = p.communicate()
- device = None
- for line in pout.split("\n"):
- if 'FTDI USB Serial Device converter now attached' in line:
- device = '/dev/' + line.split()[-1]
- return device
-
-def parseArgs(cfg):
- try:
- opts, args = getopt.getopt(sys.argv[1:], "hD:v", ["help", "device=", "port1=", "port2=", "port3=", "port4="])
- except getopt.GetoptError, err:
- print str(err)
- print usage()
- sys.exit(2)
-
- device = None
- for o, a in opts:
- if o in ("-h", "--help"):
- print usage()
- sys.exit(0)
- elif o in ("-D", "--device"):
- device = a
- elif o in ("--port1", "--port2", "--port3", "--port4"):
- port = int(o[6:])
- cfg['port'][port]['name'] = a
- else:
- assert False, "unhandled option"
-
- if device == None:
- device = findDevice()
- if device == None:
- print "Could not find serial device. Try -D argument"
- sys.exit(2)
-
- return device
-
-def numQuery(ser, string):
- ser.write(string + "\n")
- l = ser.readline()
- # return only the number
- return float(re.compile('[^\\d\\.]').sub('', l))
-
-def getCurrent(ser, port):
- return numQuery(ser, "IOUT" + str(port) + "?")
-
-def getVoltage(ser, port):
- return numQuery(ser, "VOUT" + str(port) + "?")
-
-def setup(ser, port, voltage):
- ser.write("VSET" + str(port) + ":" + str(voltage) + "\n")
-
-def enableOutput(ser):
- ser.write("OUT1\n")
-
-def getavg(samples, now, seconds):
- r = [w for (t, w) in samples if t + seconds >= now]
- return (seconds, sum(r), len(r))
-
-def getPort(cfg, ser, port):
- voltage = cfg['port'][port]['voltage']
- samples = cfg['port'][port]['samples']
- history = cfg['history']
- try:
- current = getCurrent(ser, port)
- watts = voltage * current
- now = time.time()
- samples.append((now, watts))
- samples = [(t, w) for (t, w) in samples if t + max(history) >= now]
- timeaverages = [(0, watts, 1)] + [getavg(samples, now, s) for s in history]
- cfg['port'][port]['samples'] = samples
- return ', '.join(["%ds: %1.4fW (%d)" % (s, w / l, l) for (s, w, l) in timeaverages])
- except:
- return ''
-
-
-def runLoop(cfg, ser, stdscr):
- for port in cfg['ports']:
- cfg['port'][port]['samples'] = []
- running = True
- while running:
- stdscr.addstr(0, 0, cfg['id'] + ' (press \'q\' to quit)')
- for port in cfg['ports']:
- portname = cfg['port'][port]['name']
- s = getPort(cfg, ser, port)
- stdscr.addstr(port, 0, portname + ": " + s)
- c = stdscr.getch()
- if c in [27, ord('q')]:
- running = False
- stdscr.refresh()
-
-def initCurses():
- stdscr = curses.initscr()
- curses.noecho()
- curses.cbreak()
- curses.noqiflush()
- stdscr.nodelay(True)
- return stdscr
-
-def exitCurses():
- curses.endwin()
-
-def run(cfg, ser):
- stdscr = initCurses()
- for port in cfg['ports']:
- setup(ser, port, cfg['port'][port]['voltage'])
- enableOutput(ser)
- runLoop(cfg, ser, stdscr)
- exitCurses()
-
-def runSerial(cfg, device):
- ser = serial.Serial(
- port = device,
- baudrate = 9600,
- parity = serial.PARITY_NONE,
- stopbits = serial.STOPBITS_ONE,
- bytesize = serial.EIGHTBITS,
- timeout = 2)
- ser.open()
- if ser.isOpen():
- ser.write("*IDN?\n")
- id = ser.readline()
- if "GW INSTEK" in id:
- print "Connected to: " + id,
- cfg['id'] = id.strip()
- run(cfg, ser)
- else:
- print "Power supply not found on " + device
- ser.close()
-
-if __name__ == '__main__':
- cfg = {}
- cfg['port'] = {}
- cfg['ports'] = [1, 2]
- cfg['history'] = [1, 10, 60] #seconds
- for port in cfg['ports']:
- cfg['port'][port] = {}
- cfg['port'][port]['voltage'] = 5.000
- cfg['port'][port]['name'] = 'port' + str(port)
- device = parseArgs(cfg)
- runSerial(cfg, device)
-
diff --git a/quantenna/host/utilities/kernel_base_util.c b/quantenna/host/utilities/kernel_base_util.c
deleted file mode 100644
index 63ceda8..0000000
--- a/quantenna/host/utilities/kernel_base_util.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * (C) Copyright 2013 Quantenna Communications, Inc.
- *
- * Script to print the kernel base address.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "ruby_mem.h"
-
-int main(int argc, char **argv)
-{
- const char *prog = argv[0];
-
- if (argc == 2 && strcmp(argv[1], "-e") == 0) {
- fprintf(stdout, "0x%08x", RUBY_DRAM_BEGIN + CONFIG_ARC_KERNEL_BASE);
- } else if (argc == 2 && strcmp(argv[1], "-a") == 0) {
- fprintf(stdout, "0x%08x", RUBY_DRAM_BEGIN + CONFIG_ARC_KERNEL_BOOT_BASE);
- } else {
- fprintf(stderr, "Usage, %s {-a | -e}\n", prog);
- return 1;
- }
-
- return 0;
-}
-
diff --git a/quantenna/host/utilities/mac_addr.h b/quantenna/host/utilities/mac_addr.h
deleted file mode 100644
index 6071341..0000000
--- a/quantenna/host/utilities/mac_addr.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _MAC_ADDR_TARGET_H_
-#define _MAC_ADDR_TARGET_H_
-
-/* error return codes */
-#define EQDRV_NOT_LOADED -2
-#define ENO_MAC_ADDR_FILE -3
-#define ENO_DEFAULT_MAC_ADDR_FILE -4
-
-/* Data Structures */
-struct mac_addr_block {
- unsigned char mac0_addr[6];
- unsigned char mac1_addr[6];
- unsigned char mac2_addr[6];
- unsigned char mac3_addr[6];
-};
-
-/* prototypes */
-
-static int init();
-static int clean_up(void);
-static int read_mac_addr_file(void);
-static int read_mac_addr(void);
-static int set_mac_address(void);
-
-#endif /* _MAC_ADDR_TARGET_H_ */
diff --git a/quantenna/host/utilities/mac_inventory.bin b/quantenna/host/utilities/mac_inventory.bin
deleted file mode 100644
index 8b32737..0000000
--- a/quantenna/host/utilities/mac_inventory.bin
+++ /dev/null
Binary files differ
diff --git a/quantenna/host/utilities/macaddr.c b/quantenna/host/utilities/macaddr.c
deleted file mode 100644
index c6a6951..0000000
--- a/quantenna/host/utilities/macaddr.c
+++ /dev/null
@@ -1,131 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "mac_addr.h"
-
-static const char* mac_addr_file_loc = "wifi_mac_addrs";
-static const char* inventory_mac_addr_file_loc = "mac_inventory.bin";
-
-static void build_mac_database(void);
-
-struct mac_addr_block default_blk;
-
-int main()
-{
- FILE *mac_inv;
- FILE *mac_addrs;
- struct mac_addr_block blk;
-
- mac_inv = fopen(inventory_mac_addr_file_loc, "r");
- if(mac_inv == NULL)
- {
- build_mac_database();
- mac_inv = fopen(inventory_mac_addr_file_loc, "w+");
- if(mac_inv)
- {
- fwrite(&default_blk, sizeof(struct mac_addr_block), 1, mac_inv);
- fclose(mac_inv);
- }
- else
- return; //File opening error
- }
-
- mac_addrs = fopen(mac_addr_file_loc, "r");
- if(mac_addrs == NULL)
- {
- mac_inv = fopen(inventory_mac_addr_file_loc, "r+");
- if(mac_inv == NULL)
- return; //File opening error
- mac_addrs = fopen(mac_addr_file_loc, "w+");
- if(mac_addrs)
- {
- rewind(mac_inv);
- fread(&blk, sizeof(struct mac_addr_block), 1, mac_inv);
-
- if((blk.mac0_addr[0]+4) > 126)
- {
- blk.mac0_addr[0] = 2;
- blk.mac0_addr[1]++;
-
- blk.mac1_addr[0] = blk.mac0_addr[0] + 1;
- blk.mac2_addr[0] = blk.mac0_addr[0] + 2;
- blk.mac3_addr[0] = blk.mac0_addr[0] + 3;
-
- blk.mac1_addr[1] = blk.mac0_addr[1];
- blk.mac2_addr[1] = blk.mac0_addr[1];
- blk.mac3_addr[1] = blk.mac0_addr[1];
- }
- else
- {
- blk.mac0_addr[0] +=4;
- blk.mac1_addr[0] = blk.mac0_addr[0] + 1;
- blk.mac2_addr[0] = blk.mac0_addr[0] + 2;
- blk.mac3_addr[0] = blk.mac0_addr[0] + 3;
- }
-
- fprintf(mac_addrs, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
- blk.mac0_addr[5],blk.mac0_addr[4],
- blk.mac0_addr[3],blk.mac0_addr[2],
- blk.mac0_addr[1],blk.mac0_addr[0]);
- fflush(mac_addrs);
-
- fprintf(mac_addrs, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
- blk.mac1_addr[5],blk.mac1_addr[4],
- blk.mac1_addr[3],blk.mac1_addr[2],
- blk.mac1_addr[1],blk.mac1_addr[0]);
- fflush(mac_addrs);
-
- fprintf(mac_addrs, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
- blk.mac2_addr[5],blk.mac2_addr[4],
- blk.mac2_addr[3],blk.mac2_addr[2],
- blk.mac2_addr[1],blk.mac2_addr[0]);
- fflush(mac_addrs);
-
- fprintf(mac_addrs, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
- blk.mac3_addr[5],blk.mac3_addr[4],
- blk.mac3_addr[3],blk.mac3_addr[2],
- blk.mac3_addr[1],blk.mac3_addr[0]);
- fflush(mac_addrs);
-
- fclose(mac_addrs);
-
- /* Update the database as well */
- rewind(mac_inv);
- fwrite(&blk, sizeof(struct mac_addr_block), 1, mac_inv);
- }
- else
- printf("Couldn't open mac_addr file\n");
-
- fclose(mac_inv);
- }
-
-}
-
-static void build_mac_database(void)
-{
- unsigned int low_addr;
- unsigned int high_addr;
-
- low_addr = 0x16171902;
- high_addr = 0x1415;
-
- memcpy(default_blk.mac0_addr, &low_addr, 4);
- memcpy((default_blk.mac0_addr+4), &high_addr, 2);
-
- low_addr = 0x16171903;
- high_addr = 0x1415;
-
- memcpy(default_blk.mac1_addr, &low_addr, 4);
- memcpy(default_blk.mac1_addr+4, &high_addr, 2);
-
- low_addr = 0x16171904;
- high_addr = 0x1415;
-
- memcpy(default_blk.mac2_addr, &low_addr, 4);
- memcpy(default_blk.mac2_addr+4, &high_addr, 2);
-
- low_addr = 0x16171905;
- high_addr = 0x1415;
-
- memcpy(default_blk.mac3_addr, &low_addr, 4);
- memcpy(default_blk.mac3_addr+4, &high_addr, 2);
-}
diff --git a/quantenna/host/utilities/md_random_read.pl b/quantenna/host/utilities/md_random_read.pl
deleted file mode 100755
index d00a3d5..0000000
--- a/quantenna/host/utilities/md_random_read.pl
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/perl -w
-# Script for testing mem_dbg.ko
-
-$| = 1;
-use strict;
-use Net::Telnet;
-
-my $target_addr = "192.168.1.200";
-my $clycles = 0; # 0 = infinite number of cycles
-my $param;
-
-my $max_block_count = 0xFF; # Maximun number of 4 byte blocks to read
-my @safe_regions = ([0x70000000,0x90000000 - $max_block_count]);
- # [0xE0000000,0xFA000000]); # The end of the last region might be exceeded
-my $safe_regions_count = @safe_regions;
-my $current_region = 0;
-
-sub generate_read_address {
- my $addr = int(rand($safe_regions[$current_region][1] - $safe_regions[$current_region][0])) + $safe_regions[$current_region][0];
- if(++ $current_region == $safe_regions_count) {
- $current_region = 0;
- }
- return $addr;
-}
-
-while($param = shift) {
- if($param eq "-a" ) {
- if(!($target_addr = shift)) {
- print "Target address of target board should be specified after -a switch\n";
- exit 1;
- }
- }
- if($param eq "-c" ) {
- if(!($clycles = shift)) {
- print "Cycles count must be specified after -c switch\n";
- exit 1;
- }
- }
-}
-
-my $telnet_session = new Net::Telnet (Timeout => 25,errmode => "return");
-
-while(1)
-{
- my $read_addr = generate_read_address();
- print "Connecting to the target... ";
- if($telnet_session->open($target_addr)) {
- print "ok\n";
-
- $telnet_session->buffer_empty();
- $telnet_session->waitfor("/login/i");
- $telnet_session->print("root");
- $telnet_session->waitfor("/quantenna/i");
-
- my $read_addr = generate_read_address();
-
- my $cmd = sprintf("md 0x%08X 0x%08X",$read_addr,int(rand($max_block_count)));
- print "Executing cmd \"$cmd\"... ";
- $telnet_session->print($cmd);
- if($telnet_session->waitfor(String => "quantenna #", Timeout => 10)) {
- printf "success\n";
- } else {
- printf "timeout\n";
- }
-
- $telnet_session->close();
-
- if($clycles > 0 && --$clycles == 0) {
- exit 0;
- }
- } else {
- print "timeout\n";
- }
-}
diff --git a/quantenna/host/utilities/most_recent_version.pl b/quantenna/host/utilities/most_recent_version.pl
deleted file mode 100755
index fa35236..0000000
--- a/quantenna/host/utilities/most_recent_version.pl
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use warnings;
-use List::Util qw(max);
-use Cwd qw(abs_path getcwd);
-use File::Spec;
-
-my $cwd = getcwd();
-
-my @allfiles;
-my @allversions;
-
-if ($#ARGV < 0) {
- warn "$0, finds the most recent perforce version from files provided as arguments\n";
- warn "Usage: $0 <files>\n";
- die "\n";
-}
-
-# get all filenames, converting them to real path; allows use of symlinks which p4 doesn't allow
-for (my $i = 0; $i <= $#ARGV; $i++) {
- my $filename = $ARGV[$i];
- unless (-e $filename) {
- die "File: $filename doesnt exist\n";
- }
- my $relfile = File::Spec->abs2rel(abs_path($filename), $cwd);
- push (@allfiles, $relfile);
-}
-
-# extract versions from 'p4 files'
-my @p4output = `p4 files @allfiles`;
-foreach my $p4line (@p4output) {
- my $version = $p4line;
- $version =~ s/^.*\s+\b(\d+)\b\s+.*?\s*$/$1/g;
- #print "$p4line has version $version\n";
- push(@allversions, $version);
-}
-
-my $max = max(@allversions);
-print "$max\n";
-
-
diff --git a/quantenna/host/utilities/parsedump b/quantenna/host/utilities/parsedump
deleted file mode 100755
index afa9a1a..0000000
--- a/quantenna/host/utilities/parsedump
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use warnings;
-
-my $instructions = "
-$0
-Usage:
- cat dump | $0 --bin u-boot/u-boot # read from stdin, using u-boot for symbols
- $0 --bin linux/vmlinux dump # read from file 'dump' using linux for symbols
-
-take any fragment of text that has pointers in it from a file or stdin;
-load symbol table of desired file through objdump, then convert hex pointers to symbols.
-
-Arguments: --bin <file> executable to read symbol table from.
-";
-
-use File::Basename;
-use File::Spec;
-use Getopt::Long;
-use Cwd 'abs_path';
-BEGIN { push(@INC, abs_path(dirname(__FILE__))); }
-use arcsymbols;
-my $script_path = dirname(__FILE__);
-
-if (!caller) {
- &main;
-}
-
-sub main {
- my $help = undef;
- my $bin_path = "$script_path/../../macfw/qtn_ruby";
- my $result = GetOptions(
- "help" => \$help,
- "bin=s" => \$bin_path,
- );
-
- if ($help) {
- die "$instructions\n";
- }
-
- &convert_lines($bin_path);
-}
-
-sub convert_lines {
- my $bin_path = shift;
-
- my @symbol_stores;
-
- push @symbol_stores, new arcsymbols($bin_path);
-
- if ($#ARGV >= 0) {
- foreach my $dump_file (@ARGV) {
- open(F, $dump_file) or die "Could not load dump file: $dump_file: $!\n";
- read_file_convert(*F, \@symbol_stores);
- close(F);
- }
- } else {
- read_file_convert(*STDIN, \@symbol_stores);
- }
-}
-
-sub read_file_convert {
- my ($fh, $symbols_ref) = @_;
-
- my @symbol_stores = @{$symbols_ref};
-
- my $last_saw_parsedump_helper = 0;
- my $parsedump_helper_sections = {};
-
- while(<$fh>) {
- if ( /^parsedump\s+([\w_]+)\s+([\.\w_]+)\s+(0x[a-fA-F0-9]+)\s*$/ ) {
- my $module_name = $1;
- my $section_name = $2;
- my $section_addr = hex($3);
- $parsedump_helper_sections->{$module_name}->{$section_name} = $section_addr;
- $last_saw_parsedump_helper = 1;
- } else {
- if ($last_saw_parsedump_helper) {
- foreach my $module_name (sort keys %{$parsedump_helper_sections}) {
- foreach my $mod_path (<$script_path/../../drivers/*/$module_name.ko>) {
- my $mod_rel = File::Spec->abs2rel(abs_path($mod_path));
- warn "$0: Loading symbols from '$mod_rel'\n";
- push @symbol_stores, new arcsymbols($mod_rel, $parsedump_helper_sections->{$module_name});
- }
- }
- $last_saw_parsedump_helper = 0;
- $parsedump_helper_sections = {};
- }
- s/\b(0x[\d\w]+)\b/fix_hex($1, \@symbol_stores)/eg;
- print;
- }
- }
-}
-
-sub fix_hex {
- my ($addr_str, $symbol_stores_ref) = @_;
-
- my $addr = hex($addr_str);
- foreach my $store (@{$symbol_stores_ref}) {
- my $symbol = $store->find_symbol($addr);
-
- if ($symbol) {
- my $symbol_name = $symbol->{name};
- my $offset = $addr - $symbol->{addr};
- return sprintf("%s (%s+0x%x)", $addr_str, $symbol_name, $offset);
- }
- }
-
- return $addr_str;
-}
-
diff --git a/quantenna/host/utilities/prof.pl b/quantenna/host/utilities/prof.pl
deleted file mode 100755
index 31f2af4..0000000
--- a/quantenna/host/utilities/prof.pl
+++ /dev/null
@@ -1,297 +0,0 @@
-#!/usr/bin/perl -w
-my $instructions = "
-Usage: $0 <file> to read statistics from a file. Use '-' to read from stdin.
-
-Options:
- --depth <n> Show n levels of call graph edges, default = 1
-
- --calledby Show the callers for each entry
-";
-
-use strict;
-use warnings;
-use Math::BigInt;
-use Math::BigFloat;
-use Getopt::Long;
-use File::Basename;
-use List::Util qw[min max];
-BEGIN {
- push @INC, dirname(__FILE__);
-}
-use arcsymbols;
-
-my $swdepot = dirname(__FILE__)."/../..";
-
-my $muc = undef;
-my $csv = undef;
-my $help = undef;
-my $clockrate = 400000000;
-my $objdump = "/usr/local/ARC/gcc/bin/arc-linux-uclibc-objdump";
-my $muc_path = "$swdepot/macfw/qtn_ruby";
-my $sort_field = "cycles_exc_callees";
-my $maxdepth = 1;
-my $calledby = undef;
-my @all_objs = `echo $swdepot/linux/vmlinux ; find $swdepot/drivers -name \*.ko`;
-
-my %allsyms;
-foreach (@all_objs) {
- chomp;chomp;
- $allsyms{$_} = new arcsymbols($_);
-}
-
-sub fixfunc {
- my ($name, $offset, $size) = @_;
- if ($offset > 0) {
- # find symbol, compare sizes; some functions are omitted in kallsyms
- foreach my $bin (reverse sort keys %allsyms) {
- my $changed = undef;
- ($name, $offset, $size, $changed) = $allsyms{$bin}->fixfunc($name, $offset, $size);
- if ($changed == 1) {
- last;
- }
- }
- }
- return ($name, $offset, $size);
-}
-
-
-my $result = GetOptions(
- "csv" => \$csv,
- "help" => \$help,
- "clockrate=s" => \$clockrate,
- "muc_bin" => \$muc_path,
- "sort=s" => \$sort_field,
- "depth=s" => \$maxdepth,
- "calledby" => \$calledby,
-);
-
-$clockrate = int($clockrate);
-if ($help || $#ARGV < 0) {
- die $instructions;
-}
-
-my %funcs = parsedata(readfile($ARGV[0]));
-
-if ($csv) {
- $" = ", ";
- my @fields = (
- "Function",
- "Module",
- "Cycles w/o subs",
- "Cycles w/ subs",
- "Call count",
- "Cycles w/o subs per iter",
- "Offsets",
- "Pct% time w/o subs",
- "Function size",
- "Blockiness (cyc/iter/size)",
- "Time w/o subs (".($clockrate / 1000000)." MHz)",
- );
-
- print "@fields\n";
-
- foreach my $func (sort { $funcs{$b}->{$sort_field} <=> $funcs{$a}->{$sort_field} } keys %funcs) {
- my $f = $funcs{$func};
- my @data = (
- $func,
- $f->{module},
- $f->{cycles_exc_callees},
- $f->{cycles_inc_callees},
- $f->{calls},
- $f->{cycles_per_iter_exc_callees},
- $f->{offsets},
- $f->{percent},
- $f->{size},
- $f->{blockiness},
- $f->{time_exc_callees});
- print "@data\n";
- }
-} else {
- my $pattern = "%-9s %14s %16s %8s %7s %4s %10s %8s %8s %s %s\n";
- printf($pattern, "Dpth", "Cycles w/o subs", "Cycles w/ subs", "Calls", "cwospi", "Ofs", "Pct%", "FuncSize", "blocky", "Func", "", "");
- my @sorted_funcs = sort { $funcs{$b}->{$sort_field} <=> $funcs{$a}->{$sort_field} } keys %funcs;
- foreach my $func (@sorted_funcs) {
- recursive_print_func($pattern, $func, 0, $maxdepth, \@sorted_funcs);
- }
-}
-
-sub recursive_print_func {
- my ($pattern, $func, $depth, $max_depth, $sorted_funcs_ref) = @_;
- return if ($depth >= $max_depth);
- print_func_line($pattern, $func, $funcs{$func}, $depth);
- foreach my $nextfunc (@{$sorted_funcs_ref}) {
- if ($funcs{$nextfunc}->{parents}->{$func}) {
- recursive_print_func($pattern, $nextfunc, $depth+1, $max_depth, $sorted_funcs_ref);
- }
- }
-
- if ($depth == 0 && $calledby) {
- # add called by lines...
- my @parents_sorted = sort {
- $funcs{$func}->{parents}->{$b}->{$sort_field} <=> $funcs{$func}->{parents}->{$a}->{$sort_field}
- } keys %{$funcs{$func}->{parents}};
- foreach my $parent_name (@parents_sorted) {
- print_func_line($pattern, " << $parent_name", $funcs{$func}->{parents}->{$parent_name}, -1);
- }
- }
-}
-
-sub print_func_line {
- my ($pattern, $func, $f, $depth) = @_;
- my $func_str = "";
- my $indent = "";
- if ($depth > 0) {
- for (my $i = 0; $i < $depth; $i++) {
- $func_str .= " ";
- $indent .= " ";
- }
- $func_str .= " |__ ";
- $indent .= "|__";
- } elsif ($depth == 0) {
- $indent = "#_";
- } else {
- $func_str = " < ";
- $indent .= " < ";
- }
-
- $func_str .= $f->{name};
-
- my $cwospi = $f->{cycles_per_iter_exc_callees} || 0;
- my $percent = $f->{percent} || 0;
- my $blockiness = $f->{blockiness} || 0;
- my $offsets = $f->{offsets} || 0;
- printf $pattern,
- $indent,
- #sprintf($depth),
- sprintf($f->{cycles_exc_callees}),
- sprintf($f->{cycles_inc_callees}),
- sprintf($f->{calls}),
- sprintf($cwospi),
- sprintf($offsets),
- sprintf("%2.4g", $percent),
- sprintf($f->{size}),
- sprintf("%2.4g", $blockiness),
- $func_str,
- $f->{module};
-}
-
-
-
-sub readfile {
- my $file = shift;
- my @data;
- if ($file eq "-") {
- while(<STDIN>) {
- push(@data, $_);
- }
- } else {
- open(F, $file) or die "Could not open file '$file': $!\n";
- while(<F>) {
- push(@data, $_);
- }
- close(F);
- }
- return @data;
-}
-
-sub load_syms {
- my $path = shift;
- my %data;
- unless ( -e $path ) {
- warn "Could not find binary: $path, no function size data available\n";
- return %data;
- }
-
- foreach (`$objdump -t $path`) {
- if (/^([\w\d]+)\s+.*?\bF\b\s+\.\w+\s+([\w\d]+)\s+(\w+)\s*$/) {
- my $addr = hex($1);
- my $size = hex($2);
- my $name = $3;
- $data{$name}->{addr} = $addr;
- $data{$name}->{size} = $size;
- $data{$addr}->{name} = $name;
- $data{$addr}->{size} = $size;
- }
- }
-
- return %data;
-}
-
-sub parsedata {
- my @data = @_;
- my %mucdata;
- my %funcs;
- my $total_cycles = 0;
- foreach my $line (@data) {
- $line =~ /^\s*([\w\d_]+)\+?(0x[\w\d]+|)\/?(0x[\w\d]+|)\s+(\[\w+\]\s+|)([\w\d_]+)\+?(0x[\w\d]+|)\/?(0x[\w\d]+|)\s+(\[\w+\]\s+|)(\d+)\s+(0x[\w\d]+)\s+(0x[\w\d]+)\s+(0x[\w\d]+)\s+(0x[\w\d]+)\s*.*?\s*$/;
- my $funcname = $1;
- my $offset = $2 ? hex($2) : 0;
- my $funcsize = $3 ? hex($3) : 0;
- my $module = $4 ? $4 : "";
- my $calling_funcname = $5;
- my $calling_offset = $6 ? hex($6) : 0;
- my $calling_funcsize = $7 ? hex($7) : 0;
- my $calling_module = $8 ? $8 : "";
- my $calls = $9 ? int($9) : 0;
- my $time_inc_callees = Math::BigInt->from_hex($10);
- $time_inc_callees->blsft(32);
- $time_inc_callees->bior(Math::BigInt->from_hex($11));
- my $time_exc_callees = Math::BigInt->from_hex($12);
- $time_exc_callees->blsft(32);
- $time_exc_callees->bior(Math::BigInt->from_hex($13));
-
- ($funcname, $offset, $funcsize) = fixfunc($funcname, $offset, $funcsize);
- ($calling_funcname, $calling_offset, $calling_funcsize) = fixfunc($calling_funcname, $calling_offset, $calling_funcsize);
- #print "FFFF $line\nAAAA $funcname $offset $funcsize $module $calls $time_inc_callees $time_exc_callees\n";
- if ($funcsize == 0) {
- $muc = 1;
- %mucdata = &load_syms($muc_path) unless %mucdata;
- }
-
- if ($funcname && defined($time_inc_callees)) {
- if ($muc && $mucdata{$funcname}->{size}) {
- $funcsize = $mucdata{$funcname}->{size};
- }
- $funcs{$funcname}->{name} = $funcname;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{name} = $calling_funcname;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{calls} = $calls;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{cycles_inc_callees} = $time_inc_callees;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{cycles_exc_callees} = $time_exc_callees;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{offset} = $calling_offset;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{size} = $calling_funcsize;
- $funcs{$funcname}->{parents}->{$calling_funcname}->{module} = $calling_module;
- $funcs{$funcname}->{offset} = $offset;
- $funcs{$funcname}->{size} = $funcsize;
- $funcs{$funcname}->{module} = $module;
- $funcs{$funcname}->{calls} += $calls;
- $funcs{$funcname}->{offsets} += 1;
- $funcs{$funcname}->{cycles_inc_callees} += $time_inc_callees;
- $funcs{$funcname}->{cycles_exc_callees} += $time_exc_callees;
- $total_cycles += $time_exc_callees;
- } else {
- warn "Error parsing line: $line";
- }
- }
- foreach my $func (keys %funcs) {
- my $f = Math::BigFloat->new(sprintf($funcs{$func}->{cycles_exc_callees}));
- $f->bdiv(Math::BigFloat->new(sprintf($total_cycles)));
- $f->bmul(100);
- $funcs{$func}->{percent} = $f;
-
- $f = Math::BigInt->new(sprintf($funcs{$func}->{cycles_exc_callees}));
- $f->bdiv($funcs{$func}->{calls});
- $funcs{$func}->{cycles_per_iter_exc_callees} = sprintf($f);
-
- if ($funcs{$func}->{size} == 0) {
- $funcs{$func}->{blockiness} = 0;
- } else {
- $funcs{$func}->{blockiness} = $funcs{$func}->{cycles_per_iter_exc_callees} / $funcs{$func}->{size};
- }
-
- $f = Math::BigFloat->new(sprintf($funcs{$func}->{cycles_exc_callees}));
- $f->bdiv($clockrate);
- $funcs{$func}->{time_exc_callees} = sprintf($f);
- }
- return %funcs;
-}
-
diff --git a/quantenna/host/utilities/prof_dcache.pl b/quantenna/host/utilities/prof_dcache.pl
deleted file mode 100755
index a517339..0000000
--- a/quantenna/host/utilities/prof_dcache.pl
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/perl -w
-my $instructions = "
-$0
-Usage:
- cat dump | $0 --bin u-boot/u-boot # read from stdin, using u-boot for symbols
- $0 --bin linux/vmlinux dump # read from file 'dump' using linux for symbols
-
-Takes output from dcache sampling code, sort by use and display with symbol data information.
-
-Arguments: --bin <file> executable to read symbol table from.
-";
-
-use strict;
-use warnings;
-use Getopt::Long;
-use File::Basename;
-BEGIN {
- push @INC, dirname(__FILE__);
-}
-use arcsymbols;
-
-my $swdepot = dirname(__FILE__)."/../..";
-
-my $CACHE_LINE_BYTES = 32;
-
-if (!caller) {
- &main;
-}
-
-sub main {
- my $help = undef;
- my $bin_path = "$swdepot/macfw/qtn_ruby";
- my $result = GetOptions(
- "help" => \$help,
- "bin=s" => \$bin_path,
- );
-
- if ($help) {
- die "$instructions\n";
- }
-
- my $symbols = new arcsymbols($bin_path);
-
- my ($cache_samples, $cache_syms);
-
- if ($#ARGV > 0) {
- die "$instructions\n";
- } elsif ($#ARGV == 0) {
- foreach my $dump_file (@ARGV) {
- open(F, $dump_file) or die "Could not load dump file: $dump_file: $!\n";
- ($cache_samples, $cache_syms) = &read_file_convert(*F, $symbols);
- close(F);
- }
- } else {
- ($cache_samples, $cache_syms) = &read_file_convert(*STDIN, $symbols);
- }
-
- &display_cache_residency($cache_samples, $cache_syms);
-}
-
-sub cache_align {
- my $addr = shift;
- return ($addr & (0xffffffff & ~($CACHE_LINE_BYTES-1)));
-}
-
-sub read_file_convert {
- my ($fh, $symbols) = @_;
-
- my %samples;
- my %usedsyms;
- while(<$fh>) {
- /^(0x[\w\d]+)\s+(0x[\w\d]+)/g;
- my $addr = hex($1);
- my $uses = hex($2);
- $samples{$addr}->{uses} = $uses;
- $samples{$addr}->{syms} = {};
- }
-
- # now match sorted samples with symbol table
- my @active_symbol_addrs;
- my @sorted_sample_addrs = sort keys %samples;
- my @sorted_symbol_addrs = @{$symbols->get_sorted_addrs_ref()};
-
- my $done = 0;
- my $sym_index = 0;
- my $sample_index = 0;
- foreach my $addr (@sorted_symbol_addrs) {
- my $sym = $symbols->get_symbol_by_key($addr);
- my $size = $sym->{size};
- for ($a = cache_align($addr); $a < $addr + $size; $a += $CACHE_LINE_BYTES) {
- if ($samples{$a}) {
- $samples{$a}->{syms}->{$addr} = $sym;
- $samples{$a}->{used} = 1;
- $usedsyms{$sym}->{samples}->{$a} = $samples{$a};
- $usedsyms{$sym}->{pts} += 1;
- $usedsyms{$sym}->{uses} += $samples{$a}->{uses};
- $usedsyms{$sym}->{usedp} = $usedsyms{$sym}->{uses} / $usedsyms{$sym}->{pts};
- $usedsyms{$sym}->{addr} = $addr;
- $usedsyms{$sym}->{size} = $size;
- $usedsyms{$sym}->{section} = $sym->{section};
- $usedsyms{$sym}->{name} = $sym->{name};
- #my @k = keys %{$samples{$a}->{syms}};
- #printf "sample at addr: %x fits sym: %s %x %x, matches %d\n", $a, $sym->{name}, $sym->{addr}, $sym->{size}, $#k+1;
- }
- }
- }
-
- return (\%samples, \%usedsyms);
-}
-
-sub display_cache_residency {
- my ($samples, $syms) = @_;
-
- # add unknown samples into other data, based on usedp sort
- my %all_addrs;
- foreach my $addr (keys %$samples) {
- unless ($samples->{$addr}->{used}) {
- $syms->{$addr}->{uses} = $samples->{$addr}->{uses};
- $syms->{$addr}->{pts} = 1;
- $syms->{$addr}->{usedp} = $samples->{$addr}->{uses};
- $syms->{$addr}->{addr} = $addr;
- $syms->{$addr}->{size} = $CACHE_LINE_BYTES;
- $syms->{$addr}->{section} = "";
- $syms->{$addr}->{name} = "";
- }
- }
- my $pattern = "%10s %10s %10s %5s %9s %10s %8s %-12s %s";
- printf "$pattern\n", "CAddrMin", "CAddrMax", "Uses", "Lines", "Used/L", "Sym Addr", "Sym Size", "Section", "Name";
- foreach my $s (sort { $syms->{$b}->{usedp} <=> $syms->{$a}->{usedp} } keys %$syms) {
- my $saddr = cache_align($syms->{$s}->{addr});
- my $eaddr = cache_align($syms->{$s}->{addr} + $syms->{$s}->{size});
- my $lines = ($eaddr - $saddr) / $CACHE_LINE_BYTES;
- printf "$pattern\n", (
- sprintf("%x", $saddr),
- sprintf("%x", $eaddr),
- sprintf("%d", $syms->{$s}->{uses}),
- sprintf("%d", $lines),
- sprintf("%d", $syms->{$s}->{usedp}),
- sprintf("%x", $syms->{$s}->{addr}),
- sprintf("0x%x", $syms->{$s}->{size}),
- sprintf("%s", $syms->{$s}->{section}),
- sprintf("%s", $syms->{$s}->{name}));
- }
-}
diff --git a/quantenna/host/utilities/prof_iptr.pl b/quantenna/host/utilities/prof_iptr.pl
deleted file mode 100755
index e4ee3b5..0000000
--- a/quantenna/host/utilities/prof_iptr.pl
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/usr/bin/perl -w
-my $instructions = "
-$0
-Usage:
- cat dump | $0 --bin u-boot/u-boot # read from stdin, using u-boot for symbols
- $0 --bin linux/vmlinux dump # read from file 'dump' using linux for symbols
-
-Takes output from iptr sampling code, aggregate functions, sort by use and display with symbol data information.
-
-Arguments: --bin <file> executable to read symbol table from.
-
- --subsamples show distribution of subsample counters for each function
-";
-
-use strict;
-use warnings;
-use Getopt::Long;
-use File::Basename;
-use File::Spec;
-use Cwd 'abs_path';
-BEGIN {
- push @INC, dirname(__FILE__);
-}
-use arcsymbols;
-my $script_path = dirname(__FILE__);
-my $swdepot = dirname(__FILE__)."/../..";
-
-if (!caller) {
- &main;
-}
-
-sub fixfunc {
- my ($syms, $name, $offset, $size) = @_;
- my $sym = undef;
- if ($offset > 0) {
- # find symbol, compare sizes; some functions are omitted in kallsyms
- foreach my $bin (reverse sort keys %$syms) {
- my $changed = undef;
- ($name, $offset, $size, $changed, $sym) = $syms->{$bin}->fixfunc($name, $offset, $size);
- if ($changed == 1) {
- last;
- }
- }
- }
- return ($name, $offset, $size, $sym);
-}
-
-sub main {
- my $help = undef;
- my @bin_path;
- my @def_bin_path = `find $swdepot/drivers/ -name \*.ko`;
- push(@def_bin_path, "$swdepot/linux/vmlinux");
- my $subsamples = undef;
- my $sort = "szweight";
- my $result = GetOptions(
- "help" => \$help,
- "bin=s" => \@bin_path,
- "subsamples" => \$subsamples,
- "sort=s" => \$sort,
- );
-
- if ($help) {
- die "$instructions\n";
- }
-
- my @allsyms;
- if ($#bin_path < 0) {
- @bin_path = @def_bin_path;
- }
- foreach (@bin_path) {
- chomp;chomp;
- push @allsyms, new arcsymbols($_);
- }
-
- my $iptr_data;
-
- if ($#ARGV > 0) {
- die "$instructions\n";
- } elsif ($#ARGV == 0) {
- foreach my $dump_file (@ARGV) {
- open(F, $dump_file) or die "Could not load dump file: $dump_file: $!\n";
- $iptr_data = &read_file_convert(*F, \@allsyms);
- close(F);
- }
- } else {
- $iptr_data = &read_file_convert(*STDIN, \@allsyms);
- }
-
- &display_iptr_samples($iptr_data, $subsamples, $sort);
-}
-
-sub getfunc {
- my ($syms, $addr) = @_;
- foreach my $bin (reverse sort keys %$syms) {
- my $sym = $syms->{$bin}->find_symbol($addr);
- if ($sym) {
- return ($sym->{name}, $addr - $sym->{addr}, $sym->{size});
- }
- }
- warn sprintf "could not find sym for addr: %x\n", $addr;
- return (sprintf(" -unknown_0x%x", $addr), 0, 1);
-}
-
-sub read_file_convert {
- my ($fh, $syms) = @_;
-
- my $last_saw_parsedump_helper = 0;
- my $parsedump_helper_sections = {};
-
- my %samples;
- my $total_uses = 0;
- while(<$fh>) {
- if ( /^parsedump\s+([\w_]+)\s+([\.\w_]+)\s+(0x[a-fA-F0-9]+)\s*$/ ) {
- my $module_name = $1;
- my $section_name = $2;
- my $section_addr = hex($3);
- $parsedump_helper_sections->{$module_name}->{$section_name} = $section_addr;
- $last_saw_parsedump_helper = 1;
- } else {
- if ($last_saw_parsedump_helper) {
- foreach my $module_name (sort keys %{$parsedump_helper_sections}) {
- foreach my $mod_path (<$script_path/../../drivers/*/$module_name.ko>) {
- my $mod_rel = File::Spec->abs2rel(abs_path($mod_path));
- warn "$0: Loading symbols from '$mod_rel'\n";
- push @{$syms}, new arcsymbols($mod_rel, $parsedump_helper_sections->{$module_name});
- }
- }
- $last_saw_parsedump_helper = 0;
- $parsedump_helper_sections = {};
- }
-
- if (/^(0x[\w\d]+)\s+(0x[\w\d]+)\s+([\w_][_\w\d]+|)\+?(0x[\w\d]+|)\/?(0x[\w\d]+|)/) {
- my $addr = hex($1);
- my $uses = hex($2);
-
- foreach my $store (@{$syms}) {
- my $symbol = $store->find_symbol($addr);
-
- if ($symbol) {
- my $func = $symbol->{name};
- my $offset = $addr - $symbol->{addr};
- my $size = $symbol->{size};
-
- $samples{$func}->{addr} = $addr - $offset;
- $samples{$func}->{size} = $size;
- $samples{$func}->{samples}->{$addr}->{offset} = $offset;
- $samples{$func}->{samples}->{$addr}->{uses} = $uses;
- $samples{$func}->{uses} += $uses;
- $samples{$func}->{pts} += 1;
- $samples{$func}->{ptweight} = $samples{$func}->{uses} / $samples{$func}->{pts};
- $samples{$func}->{szweight} = $samples{$func}->{uses} / $samples{$func}->{size};
- $total_uses += $uses;
- }
- }
- }
- }
- }
-
- foreach my $func (keys %samples) {
- $samples{$func}->{percentage} = $samples{$func}->{uses} * 100.0 / $total_uses;
- }
-
- return \%samples;
-}
-
-sub display_iptr_samples {
- my ($data_ref, $subsamples, $sort) = @_;
- my %data = %{$data_ref};
-
- my $pattern = "%10s %10s %10s %10s %10s %10s %6s %s";
- printf "$pattern\n", "Total Uses", "Addr", "Pts", "ptweight", "szweight", "%Pct", "Size", "Name";
- foreach my $func (sort { $data{$b}->{$sort} <=> $data{$a}->{$sort} } keys %data) {
- printf "$pattern\n", (
- sprintf("%d", $data{$func}->{uses}),
- sprintf("%x", $data{$func}->{addr}),
- sprintf("%d", $data{$func}->{pts}),
- sprintf("%-2.4g", $data{$func}->{ptweight}),
- sprintf("%-2.4g", $data{$func}->{szweight}),
- sprintf("%-2.4g", $data{$func}->{percentage}),
- sprintf("%x", $data{$func}->{size}),
- $func);
- if ($subsamples) {
- foreach my $addr (sort keys %{$data{$func}->{samples}}) {
- my $uses = $data{$func}->{samples}->{$addr}->{uses};
- my $objaddr;
- my $offset = $addr - $data{$func}->{addr};
- if ($data{$func}->{sym}) {
- $objaddr = $addr - $data{$func}->{addr} + $data{$func}->{sym}->{addr};
- $offset = $objaddr - $data{$func}->{sym}->{addr};
- }
- printf "$pattern\n", (
- sprintf("%d", $uses),
- sprintf("%x", $objaddr ? $objaddr : $addr),
- sprintf("%x", $offset),
- "",
- "",
- "",
- "",
- "");
- }
- }
- }
-}
diff --git a/quantenna/host/utilities/ruby_mem_helper.c b/quantenna/host/utilities/ruby_mem_helper.c
deleted file mode 100644
index 881bef9..0000000
--- a/quantenna/host/utilities/ruby_mem_helper.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * (C) Copyright 2014 Quantenna Communications, Inc.
- *
- * Program to print memory map defines.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include "ruby_mem.h"
-
-struct ruby_mem_symbol {
- char *name;
- uint32_t addr;
-};
-
-struct ruby_mem_symbol ruby_mem_symbols[] = {
- { "RUBY_SRAM_UNIFIED_BEGIN", RUBY_SRAM_UNIFIED_BEGIN },
- { "RUBY_SRAM_UNIFIED_NOCACHE_BEGIN", RUBY_SRAM_UNIFIED_NOCACHE_BEGIN },
- { "RUBY_SRAM_FLIP_BEGIN", RUBY_SRAM_FLIP_BEGIN },
- { "RUBY_SRAM_FLIP_NOCACHE_BEGIN", RUBY_SRAM_FLIP_NOCACHE_BEGIN },
- { "RUBY_SRAM_NOFLIP_BEGIN", RUBY_SRAM_NOFLIP_BEGIN },
- { "RUBY_SRAM_NOFLIP_NOCACHE_BEGIN", RUBY_SRAM_NOFLIP_NOCACHE_BEGIN },
- { "RUBY_SRAM_BANK_SIZE", RUBY_SRAM_BANK_SIZE },
- { "RUBY_SRAM_SIZE", RUBY_SRAM_SIZE },
- { "RUBY_SRAM_BANK_SAFE_SIZE", RUBY_SRAM_BANK_SAFE_SIZE },
- { "RUBY_DRAM_UNIFIED_BEGIN", RUBY_DRAM_UNIFIED_BEGIN },
- { "RUBY_DRAM_UNIFIED_NOCACHE_BEGIN", RUBY_DRAM_UNIFIED_NOCACHE_BEGIN },
- { "RUBY_DRAM_FLIP_BEGIN", RUBY_DRAM_FLIP_BEGIN },
- { "RUBY_DRAM_FLIP_NOCACHE_BEGIN", RUBY_DRAM_FLIP_NOCACHE_BEGIN },
- { "RUBY_DRAM_NOFLIP_BEGIN", RUBY_DRAM_NOFLIP_BEGIN },
- { "RUBY_DRAM_NOFLIP_NOCACHE_BEGIN", RUBY_DRAM_NOFLIP_NOCACHE_BEGIN },
- { "RUBY_MAX_DRAM_SIZE", RUBY_MAX_DRAM_SIZE },
- { "RUBY_MIN_DRAM_SIZE", RUBY_MIN_DRAM_SIZE },
- { "RUBY_SRAM_BEGIN", RUBY_SRAM_BEGIN },
- { "RUBY_SRAM_BUS_BEGIN", RUBY_SRAM_BUS_BEGIN },
- { "RUBY_SRAM_NOCACHE_BEGIN", RUBY_SRAM_NOCACHE_BEGIN },
- { "RUBY_DRAM_BEGIN", RUBY_DRAM_BEGIN },
- { "RUBY_DRAM_BUS_BEGIN", RUBY_DRAM_BUS_BEGIN },
- { "RUBY_DRAM_NOCACHE_BEGIN", RUBY_DRAM_NOCACHE_BEGIN },
- { "RUBY_SPI_FLASH_ADDR", RUBY_SPI_FLASH_ADDR },
- { "RUBY_HARDWARE_BEGIN", RUBY_HARDWARE_BEGIN },
- { "CONFIG_ARC_CONF_SIZE", CONFIG_ARC_CONF_SIZE },
- { "CONFIG_ARC_CONF_BASE", CONFIG_ARC_CONF_BASE },
- { "CONFIG_ARC_KERNEL_PAGE_SIZE", CONFIG_ARC_KERNEL_PAGE_SIZE },
- { "RUBY_KERNEL_LOAD_DRAM_BEGIN", RUBY_KERNEL_LOAD_DRAM_BEGIN },
- { "CONFIG_ARC_NULL_BASE", CONFIG_ARC_NULL_BASE },
- { "CONFIG_ARC_NULL_SIZE", CONFIG_ARC_NULL_SIZE },
- { "CONFIG_ARC_NULL_END", CONFIG_ARC_NULL_END },
- { "CONFIG_ARC_PCIE_BASE", CONFIG_ARC_PCIE_BASE },
- { "CONFIG_ARC_PCIE_SIZE", CONFIG_ARC_PCIE_SIZE },
- { "CONFIG_ARC_MUC_STACK_SIZE", CONFIG_ARC_MUC_STACK_SIZE },
- { "RUBY_CRUMBS_MAGIC", RUBY_CRUMBS_MAGIC },
- { "NO_RUBY_WEAK", NO_RUBY_WEAK },
- { "RUBY_BAD_BUS_ADDR", RUBY_BAD_BUS_ADDR },
- { "RUBY_ERROR_ADDR", RUBY_ERROR_ADDR },
- { "RUBY_DSP_XYMEM_BEGIN", RUBY_DSP_XYMEM_BEGIN },
- { "RUBY_DSP_XYMEM_END", RUBY_DSP_XYMEM_END },
- { "RUBY_CRUMBS_SIZE", RUBY_CRUMBS_SIZE },
- { "CONFIG_ARC_KERNEL_SRAM_B1_BASE", CONFIG_ARC_KERNEL_SRAM_B1_BASE },
- { "CONFIG_ARC_KERNEL_SRAM_B1_SIZE", CONFIG_ARC_KERNEL_SRAM_B1_SIZE },
- { "CONFIG_ARC_KERNEL_SRAM_B1_END", CONFIG_ARC_KERNEL_SRAM_B1_END },
- { "CONFIG_ARC_KERNEL_SRAM_B2_BASE", CONFIG_ARC_KERNEL_SRAM_B2_BASE },
- { "CONFIG_ARC_KERNEL_SRAM_B2_END", CONFIG_ARC_KERNEL_SRAM_B2_END },
- { "CONFIG_ARC_KERNEL_SRAM_B2_SIZE", CONFIG_ARC_KERNEL_SRAM_B2_SIZE },
- { "CONFIG_ARC_MUC_SRAM_B1_BASE", CONFIG_ARC_MUC_SRAM_B1_BASE },
- { "CONFIG_ARC_MUC_SRAM_B1_END", CONFIG_ARC_MUC_SRAM_B1_END },
- { "CONFIG_ARC_MUC_SRAM_B1_SIZE", CONFIG_ARC_MUC_SRAM_B1_SIZE },
- { "CONFIG_ARC_MUC_SRAM_B2_BASE", CONFIG_ARC_MUC_SRAM_B2_BASE },
- { "CONFIG_ARC_MUC_SRAM_B2_SIZE", CONFIG_ARC_MUC_SRAM_B2_SIZE },
- { "CONFIG_ARC_MUC_SRAM_B2_END", CONFIG_ARC_MUC_SRAM_B2_END },
- { "CONFIG_ARC_MUC_STACK_OFFSET", CONFIG_ARC_MUC_STACK_OFFSET },
- { "CONFIG_ARC_MUC_STACK_INIT", CONFIG_ARC_MUC_STACK_INIT },
- { "RUBY_CRUMBS_OFFSET", RUBY_CRUMBS_OFFSET },
- { "RUBY_CRUMBS_ADDR", RUBY_CRUMBS_ADDR },
- { "CONFIG_ARC_PCIE_RSVD_SIZE", CONFIG_ARC_PCIE_RSVD_SIZE },
- { "CONFIG_ARC_DSP_BASE", CONFIG_ARC_DSP_BASE },
- { "CONFIG_ARC_DSP_SIZE", CONFIG_ARC_DSP_SIZE },
- { "CONFIG_ARC_DSP_END", CONFIG_ARC_DSP_END },
- { "CONFIG_ARC_MUC_BASE", CONFIG_ARC_MUC_BASE },
- { "CONFIG_ARC_MUC_SIZE", CONFIG_ARC_MUC_SIZE },
- { "CONFIG_ARC_MUC_END", CONFIG_ARC_MUC_END },
- { "CONFIG_ARC_MUC_MAPPED_BASE", CONFIG_ARC_MUC_MAPPED_BASE },
- { "CONFIG_ARC_MUC_MAPPED_SIZE", CONFIG_ARC_MUC_MAPPED_SIZE },
- { "CONFIG_ARC_KERNEL_MEM_BASE", CONFIG_ARC_KERNEL_MEM_BASE },
- { "CONFIG_ARC_UBOOT_RESERVED_SPACE", CONFIG_ARC_UBOOT_RESERVED_SPACE },
- { "CONFIG_ARC_KERNEL_BOOT_BASE", CONFIG_ARC_KERNEL_BOOT_BASE },
- { "CONFIG_ARC_KERNEL_BASE", CONFIG_ARC_KERNEL_BASE },
- { "CONFIG_ARC_KERNEL_MAX_SIZE", CONFIG_ARC_KERNEL_MAX_SIZE },
- { "CONFIG_ARC_KERNEL_MIN_SIZE", CONFIG_ARC_KERNEL_MIN_SIZE },
- { "TOPAZ_AUC_IMEM_ADDR", TOPAZ_AUC_IMEM_ADDR },
- { "TOPAZ_AUC_IMEM_SIZE", TOPAZ_AUC_IMEM_SIZE },
- { "TOPAZ_AUC_DMEM_ADDR", TOPAZ_AUC_DMEM_ADDR },
- { "TOPAZ_AUC_DMEM_SIZE", TOPAZ_AUC_DMEM_SIZE },
- { "RUBY_SYS_CTL_SAFE_READ_REGISTER", RUBY_SYS_CTL_SAFE_READ_REGISTER },
- { "TOPAZ_CACHE_WAR_OFFSET", TOPAZ_CACHE_WAR_OFFSET },
- { "TOPAZ_HBM_BUF_EMAC_RX_COUNT", TOPAZ_HBM_BUF_EMAC_RX_COUNT },
- { "TOPAZ_HBM_BUF_WMAC_RX_COUNT", TOPAZ_HBM_BUF_WMAC_RX_COUNT },
- { "TOPAZ_HBM_EMAC_TX_DONE_COUNT", TOPAZ_HBM_EMAC_TX_DONE_COUNT },
- { "TOPAZ_HBM_POOL_PTR_SIZE", TOPAZ_HBM_POOL_PTR_SIZE },
- { "TOPAZ_HBM_POOL_EMAC_RX_START", TOPAZ_HBM_POOL_EMAC_RX_START },
- { "TOPAZ_HBM_POOL_EMAC_RX_SIZE", TOPAZ_HBM_POOL_EMAC_RX_SIZE },
- { "TOPAZ_HBM_POOL_EMAC_RX_END", TOPAZ_HBM_POOL_EMAC_RX_END },
- { "TOPAZ_HBM_POOL_WMAC_RX_START", TOPAZ_HBM_POOL_WMAC_RX_START },
- { "TOPAZ_HBM_POOL_WMAC_RX_SIZE", TOPAZ_HBM_POOL_WMAC_RX_SIZE },
- { "TOPAZ_HBM_POOL_WMAC_RX_END", TOPAZ_HBM_POOL_WMAC_RX_END },
- { "TOPAZ_HBM_POOL_EMAC_TX_DONE_START", TOPAZ_HBM_POOL_EMAC_TX_DONE_START },
- { "TOPAZ_HBM_POOL_EMAC_TX_DONE_SIZE", TOPAZ_HBM_POOL_EMAC_TX_DONE_SIZE },
- { "TOPAZ_HBM_POOL_EMAC_TX_DONE_END", TOPAZ_HBM_POOL_EMAC_TX_DONE_END },
- { "TOPAZ_HBM_BUF_ALIGN", TOPAZ_HBM_BUF_ALIGN },
- { "TOPAZ_HBM_BUF_EMAC_RX_POOL", TOPAZ_HBM_BUF_EMAC_RX_POOL },
- { "TOPAZ_HBM_BUF_WMAC_RX_POOL", TOPAZ_HBM_BUF_WMAC_RX_POOL },
- { "TOPAZ_HBM_AUC_FEEDBACK_POOL", TOPAZ_HBM_AUC_FEEDBACK_POOL },
- { "TOPAZ_HBM_EMAC_TX_DONE_POOL", TOPAZ_HBM_EMAC_TX_DONE_POOL },
- { "TOPAZ_HBM_BUF_EMAC_RX_SIZE", TOPAZ_HBM_BUF_EMAC_RX_SIZE },
- { "TOPAZ_HBM_BUF_WMAC_RX_SIZE", TOPAZ_HBM_BUF_WMAC_RX_SIZE },
- { "TOPAZ_HBM_BUF_EMAC_RX_TOTAL", TOPAZ_HBM_BUF_EMAC_RX_TOTAL },
- { "TOPAZ_HBM_BUF_WMAC_RX_TOTAL", TOPAZ_HBM_BUF_WMAC_RX_TOTAL },
- { "TOPAZ_HBM_BUF_EMAC_RX_BASE", TOPAZ_HBM_BUF_EMAC_RX_BASE },
- { "TOPAZ_HBM_BUF_EMAC_RX_END", TOPAZ_HBM_BUF_EMAC_RX_END },
- { "TOPAZ_HBM_BUF_WMAC_RX_BASE", TOPAZ_HBM_BUF_WMAC_RX_BASE },
- { "TOPAZ_HBM_BUF_WMAC_RX_END", TOPAZ_HBM_BUF_WMAC_RX_END },
- { "TOPAZ_FWT_SW_START", TOPAZ_FWT_SW_START },
- { "TOPAZ_FWT_SW_SIZE", TOPAZ_FWT_SW_SIZE },
- { "TOPAZ_FWT_SW_END", TOPAZ_FWT_SW_END },
- { "TOPAZ_FWT_MCAST_ENTRIES", TOPAZ_FWT_MCAST_ENTRIES },
- { "TOPAZ_FWT_MCAST_FF_ENTRIES", TOPAZ_FWT_MCAST_FF_ENTRIES },
- { "TOPAZ_FWT_MCAST_IPMAP_ENT_SIZE", TOPAZ_FWT_MCAST_IPMAP_ENT_SIZE },
- { "TOPAZ_FWT_MCAST_TQE_ENT_SIZE", TOPAZ_FWT_MCAST_TQE_ENT_SIZE },
- { "TOPAZ_FWT_MCAST_IPMAP_SIZE", TOPAZ_FWT_MCAST_IPMAP_SIZE },
- { "TOPAZ_FWT_MCAST_TQE_SIZE", TOPAZ_FWT_MCAST_TQE_SIZE },
- { "TOPAZ_FWT_MCAST_TQE_FF_SIZE", TOPAZ_FWT_MCAST_TQE_FF_SIZE },
- { "TOPAZ_FWT_MCAST_IPMAP_BASE", TOPAZ_FWT_MCAST_IPMAP_BASE },
- { "TOPAZ_FWT_MCAST_IPMAP_END", TOPAZ_FWT_MCAST_IPMAP_END },
- { "TOPAZ_FWT_MCAST_TQE_BASE", TOPAZ_FWT_MCAST_TQE_BASE },
- { "TOPAZ_FWT_MCAST_TQE_END", TOPAZ_FWT_MCAST_TQE_END },
- { "TOPAZ_FWT_MCAST_TQE_FF_BASE", TOPAZ_FWT_MCAST_TQE_FF_BASE },
- { "TOPAZ_FWT_MCAST_TQE_FF_END", TOPAZ_FWT_MCAST_TQE_FF_END },
- { "TOPAZ_FWT_MCAST_END", TOPAZ_FWT_MCAST_END },
- { "CONFIG_ARC_KERNEL_SRAM_B1_BASE", CONFIG_ARC_KERNEL_SRAM_B1_BASE },
- { "CONFIG_ARC_KERNEL_SRAM_B1_END", CONFIG_ARC_KERNEL_SRAM_B1_END },
- { "CONFIG_ARC_KERNEL_SRAM_B2_BASE", CONFIG_ARC_KERNEL_SRAM_B2_BASE },
- { "CONFIG_ARC_KERNEL_SRAM_B2_END", CONFIG_ARC_KERNEL_SRAM_B2_END },
- { "CONFIG_ARC_MUC_SRAM_B1_BASE", CONFIG_ARC_MUC_SRAM_B1_BASE },
- { "CONFIG_ARC_MUC_SRAM_B1_END", CONFIG_ARC_MUC_SRAM_B1_END },
- { "CONFIG_ARC_AUC_SRAM_BASE", CONFIG_ARC_AUC_SRAM_BASE },
- { "CONFIG_ARC_AUC_SRAM_SIZE", CONFIG_ARC_AUC_SRAM_SIZE },
- { "CONFIG_ARC_AUC_SRAM_END", CONFIG_ARC_AUC_SRAM_END },
- { "CONFIG_ARC_AUC_BASE", CONFIG_ARC_AUC_BASE },
- { "CONFIG_ARC_AUC_SIZE", CONFIG_ARC_AUC_SIZE },
- { "CONFIG_ARC_AUC_END", CONFIG_ARC_AUC_END },
- { "CONFIG_ARC_SRAM_END", CONFIG_ARC_SRAM_END },
-};
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-
-int main(int argc, char const *argv[])
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(ruby_mem_symbols); ++i)
- printf("%-40s 0x%08X\n", ruby_mem_symbols[i].name, ruby_mem_symbols[i].addr);
-
- return 0;
-}
diff --git a/quantenna/host/utilities/sparse/Makefile b/quantenna/host/utilities/sparse/Makefile
deleted file mode 100644
index 7298fe5..0000000
--- a/quantenna/host/utilities/sparse/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-
-all: install
-
-install: src
- (cd src && make && make install PREFIX=../install)
-
-src:
- mkdir src
- (cd src && git clone git://git.kernel.org/pub/scm/devel/sparse/sparse.git .)
-
diff --git a/quantenna/host/utilities/struct_check.pl b/quantenna/host/utilities/struct_check.pl
deleted file mode 100755
index 22c2868..0000000
--- a/quantenna/host/utilities/struct_check.pl
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-use warnings;
-use Getopt::Long;
-
-my $instructions = "
-$0
-
-Automatically generate some C code which runs various checks on a structure.
-This fragment can then be placed on MuC, LHost, or target userspace programs
-compiled with both gcc and mcc.
-
-ALWAYS MANUALLY INSPECT THE OUTPUT. This tool just helps to avoid repetetive
-grunt work when creating these test files, it will has bugs and corner cases.
-
-Usage: $0 [--main] [--copts=\"-Iinclude/\"] header1 [header2...]
- --main Generate a main function and includes so this
- can be used as a standalone program.
-
- --copts C options to be passed to the C preprocessor
- whan parsing the headers
-
-";
-
-my $copts = "";
-my $main = undef;
-
-GetOptions(
- "main" => \$main,
- "copts=s" => \$copts,
-);
-
-my @headers = @ARGV;
-if ($#headers < 0) {
- die $instructions;
-}
-
-print make_main_header(\@headers) if $main;
-print make_test_file(parse_headers());
-print make_main_footer(\@headers) if $main;
-
-sub parse_headers {
- my %structure_fields;
- my @structure_names;
-
- foreach my $header (@headers) {
- my $current_struct = undef;
- foreach (`gcc -E -dD $header`) {
- chomp;chomp;
- if ((!defined($current_struct)) && /^struct\s+\b(\w+)\b\s*/ ) {
- $current_struct = $1;
- push(@structure_names, $current_struct);
- #warn "Structure '$current_struct' from line $_\n";
- }
- elsif (defined($current_struct) && /\b(\w+)\b\s*(\[.*\]|)\s*\;/ && !(/\:/) ) {
- push(@{$structure_fields{$current_struct}}, $1);
- #warn "Field '$current_struct.$1' from line $_\n";
- }
- elsif ( /\}/ ) {
- $current_struct = undef;
- }
- }
- }
- return (\%structure_fields, \@structure_names);
-}
-
-sub make_test_file {
- my ($structure_fields, $structure_names) = @_;
- my $output = "\n\n";
- $output .= "/********************************************************************/\n";
- $output .= "/********************************************************************/\n";
- $output .= "/********************************************************************/\n";
- $output .= "/********************************************************************/\n";
- $output .= "/** Generated by $0 **/\n";
- $output .= "
-#if defined(MUC_BUILD)
-# define printf PRINTF
-# define sprintf uc_sprintf
-#endif
-";
- $output .= c_utilities();
- $output .= struct_check_func_header();
- foreach my $structure_name (@$structure_names) {
- $output .= struct_test($structure_name, $structure_fields->{$structure_name});
- }
- $output .= struct_check_func_footer();
- $output .= "/** End generated by $0 **/\n";
- $output .= "/********************************************************************/\n";
- $output .= "/********************************************************************/\n";
- $output .= "/********************************************************************/\n\n";
- return $output;
-}
-
-sub check_line {
- my $a = shift;
- return "\thash = struct_check_func(hash, \"$a\", $a);\n";
-}
-
-sub struct_test {
- my ($name, $fields_ref) = @_;
- my $output = "";
- $output .= check_line("sizeof(struct $name)");
- foreach my $field (@$fields_ref) {
- $output .= check_line("offsetof(struct $name, $field)");
- }
- $output .= "\n";
- return $output;
-}
-
-sub c_utilities {
- return "
-
-static __inline__ unsigned long struct_check_hash(const unsigned long hash, const char* str)
-{
- unsigned long h = hash;
- const char* p;
- for (p = str; p && *p; p++)
- h = ((h * 3571) + *p) * 1531;
- return h;
-}
-
-static __inline__ unsigned long struct_check_func(const unsigned long hash, const char* check_str, unsigned long value)
-{
- char buf[128];
- sprintf(buf, \"%s == %d\\n\", check_str, (int)value);
- printf(\"%s\", buf);
- return struct_check_hash(hash, buf);
-}
-
-";
-}
-sub struct_check_func_header {
- return "
-static __inline__ void struct_check_all(void)
-{
- unsigned long hash = 1;
-";
-}
-sub struct_check_func_footer {
- return "
- printf(\"Final hash: %d\\n\", (int)hash);
-}
-";
-}
-
-sub make_main_header {
- my $headers_ref = shift;
- my $output = "
-#include <stdio.h>
-#include <stddef.h>
-typedef unsigned int u32;
-typedef signed int s32;
-typedef unsigned short u16;
-typedef signed short s16;
-typedef unsigned char u8;
-typedef signed char s8;
-";
- for my $header (@$headers_ref) {
- $output .= "#include \"$header\"\n";
- }
- return $output;
-}
-
-sub make_main_footer {
- return "
-int main(int argc, char **argv)
-{
- (void)argc;
- (void)argv;
- struct_check_all();
- return 0;
-}
-";
-}
diff --git a/quantenna/host/utilities/tar_mac_gen b/quantenna/host/utilities/tar_mac_gen
deleted file mode 100755
index 774e789..0000000
--- a/quantenna/host/utilities/tar_mac_gen
+++ /dev/null
@@ -1,2 +0,0 @@
-./mac_gen
-mv wifi_mac_addrs ../../buildroot/target/device/Quantenna/UMS88K/scripts
diff --git a/quantenna/host/utilities/wifi_macaddr_gen.php b/quantenna/host/utilities/wifi_macaddr_gen.php
deleted file mode 100644
index 4231cc5..0000000
--- a/quantenna/host/utilities/wifi_macaddr_gen.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<?php
- if(file_exists("wifi_mac_addrs.txt"))
- {
- $curr_wmacaddr = file_get_contents("wifi_mac_addrs.txt");
- //exec("echo $new_wmacaddr > /mnt/jffs2/wifi_mac_addrs");
-
- list($new_wifi[0], $new_wifi[1], $new_wifi[2], $new_wifi[3], $new_wifi[4], $new_wifi[5]) = explode(":", $curr_wmacaddr);
-
- $new_wifi[5] = hexdec($new_wifi[5]);
-
- if($new_wifi[5] >= 255 )
- {
- $new_wifi[5] = 0;
- $new_wifi[5] = sprintf("%02X", $new_wifi[5]);
- $new_wifi[4] = hexdec($new_wifi[4]);
-
- if($new_wifi[4] >= 255 )
- {
- $new_wifi[4] = 0;
- $new_wifi[4] = sprintf("%02X", $new_wifi[4]);
- $new_wifi[3] = hexdec($new_wifi[3]);
-
- if($new_wifi[3] >= 255 )
- {
- $new_wifi[3] = 0;
- $new_wifi[3] = sprintf("%02X", $new_wifi[3]);
- $new_wifi[2] = hexdec($new_wifi[2]);
-
- if($new_wifi[2] >= 255 )
- {
- $new_wifi[2] = 0;
- $new_wifi[2] = sprintf("%02X", $new_wifi[2]);
- $new_wifi[1] = hexdec($new_wifi[1]);
-
- if($new_wifi[1] >= 255 )
- {
- $new_wifi[1] = 0;
- $new_wifi[1] = sprintf("%02X", $new_wifi[1]);
- $new_wifi[0] = hexdec($new_wifi[0]);
- $new_wifi[0] = $new_wifi[0] + 1;
- $new_wifi[0] = sprintf("%02X", $new_wifi[0]);
- }
- else
- {
- $new_wifi[1] = $new_wifi[1] + 1;
- $new_wifi[1] = sprintf("%02X", $new_wifi[1]);
- }
- }
- else
- {
- $new_wifi[2] = $new_wifi[2] + 1;
- $new_wifi[2] = sprintf("%02X", $new_wifi[2]);
- }
- }
- else
- {
- $new_wifi[3] = $new_wifi[3] + 1;
- $new_wifi[3] = sprintf("%02X", $new_wifi[3]);
- }
- }
- else
- {
- $new_wifi[4] = $new_wifi[4] + 1;
- $new_wifi[4] = sprintf("%02X", $new_wifi[4]);
- }
- }
- else
- {
- $new_wifi[5] = $new_wifi[5] + 1;
- $new_wifi[5] = sprintf("%02X", $new_wifi[5]);
- }
-
- $arr = array($new_wifi[0], $new_wifi[1], $new_wifi[2], $new_wifi[3], $new_wifi[4], $new_wifi[5]);
- $new_wmacaddr1 = implode(":", $arr);
- file_put_contents("wifi_mac_addrs.txt", $new_wmacaddr1);
- }
- else
- {
- //This is first time file is created
- $first_wmacaddr = "00:26:86:00:10:00";
- file_put_contents("wifi_mac_addrs.txt", $first_wmacaddr);
- }
-?>
-</HTML>
diff --git a/quantenna/include/qtn/Makefile b/quantenna/include/qtn/Makefile
deleted file mode 100644
index 97415c3..0000000
--- a/quantenna/include/qtn/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Copyright (C)2014 Quantenna Communications
-#
-
-TOPDIR=../..
-
-MUC_STATS_HEADER=./muc_txrx_stats.h
-MUC_COMMON_STAT_HEADER=./qtn_muc_stats_print.h
-
-.PHONY: FORCE
-
-all: ${MUC_COMMON_STAT_HEADER}
-
-${MUC_COMMON_STAT_HEADER}: ${MUC_STATS_HEADER} ${MUC_STATS_HEADER}.raw
-
-${MUC_STATS_HEADER}: ${MUC_STATS_HEADER}.raw
-
-${MUC_STATS_HEADER}.raw: FORCE
- @cat ${MUC_STATS_HEADER} | \
- ${TOPDIR}/host/scripts/struct_get.sh | \
- grep -v "^[[:blank:]]*$$" > $@
- ./muc_dbg_parse
-
diff --git a/quantenna/include/qtn/auc_debug_stats.h b/quantenna/include/qtn/auc_debug_stats.h
deleted file mode 100755
index fd26ce5..0000000
--- a/quantenna/include/qtn/auc_debug_stats.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2013 Quantenna Communications, Inc.
- */
-
-#ifndef _AUC_DEBUG_STATS_H_
-#define _AUC_DEBUG_STATS_H_
-
-#include <qtn/auc_share_def.h>
-
-/*
- * Firmware updates counters through such macros as AUC_DBG_INC(), AUC_DBG_INC_OFFSET(), AUC_DBG_INC_COND(), etc.
- * Other CPU (e.g. Lhost) can read structure and dump counters.
- * Feel free to add more counters here.
- * Good to have counters organized and grouped using name prefix.
- */
-struct auc_dbg_counters
-{
- /* pktlogger expects task_alive_counters to be the first member of this struct */
- uint32_t task_alive_counters[AUC_TID_NUM];
- uint32_t task_false_trigger[AUC_TID_NUM];
- uint32_t tqew_ac[4];
- uint32_t tqew_ac_avail[4];
- uint32_t tqew_air_humble;
- uint32_t tqew_air_suppress;
- uint32_t tqew_air_use_idletime;
- uint32_t tqew_air_dequeue_only;
- uint32_t tqew_pkt_pending_for_txdone;
- uint32_t tqew_descr_alloc_fail;
- uint32_t tqew_ring_alloc_fail;
- uint32_t tqew_pop_alloc_fail;
- uint32_t tqew_pop_sw_limit;
- uint32_t tqew_pop_empty;
- uint32_t tqew_available_set;
- uint32_t tqew_available_reset;
- uint32_t tqew_rx;
- uint32_t tqew_drop;
- uint32_t tqew_free;
- uint32_t tqew_buf_invalid;
- uint32_t wmac_tx_done[4];
- uint32_t agg_aggregate_flag;
- uint32_t agg_aggressive_agg;
- uint32_t hdrs_available_recent_min;
- uint32_t agg_states[QTN_AUC_TID_TX_STATE_MAX + 1];
- uint32_t ethq_push;
- uint32_t ethq_pop;
- uint32_t agg_aggregate_mpdu;
- uint32_t agg_aggregate_msdu;
- uint32_t agg_singleton_mpdu;
- uint32_t agg_singleton_mgmt;
- uint32_t agg_singleton_ctl;
- uint32_t agg_singleton_probe;
- uint32_t agg_4K_amsdu;
- uint32_t agg_8K_amsdu;
- uint32_t agg_11K_amsdu;
- uint32_t tx_feedback_success;
- uint32_t tx_feedback_fail;
- uint32_t tx_done_status_success;
- uint32_t tx_done_status_timeout;
- uint32_t tx_done_status_xretry;
- uint32_t tx_done_status_timeout_xretry;
- uint32_t tx_done_pkt_chain_reset;
- uint32_t tx_done_pkt_chain_success;
- uint32_t tx_done_pkt_chain_drop_tid_down;
- uint32_t tx_done_pkt_chain_drop_xattempts;
- uint32_t tx_done_singleton_finish;
- uint32_t tx_done_singleton_swretry;
- uint32_t tx_done_aggregate_finish;
- uint32_t tx_done_aggregate_hwretry;
- uint32_t tx_done_aggregate_swretry;
- uint32_t tx_done_mpdu_swretry;
- uint32_t tx_sample;
- uint32_t tx_bw_sample;
- uint32_t tx_swretry_lower_bw;
- uint32_t tx_swretry_agg_exceed;
- uint32_t tx_scale_base_20m;
- uint32_t tx_scale_base_40m;
- uint32_t tx_scale_base_80m;
- uint32_t tx_scale_max;
- uint32_t tx_scale_overstep;
- uint32_t alloc_tqew_fast;
- uint32_t free_tqew_fast;
- uint32_t alloc_tqew_slow;
- uint32_t free_tqew_slow;
- uint32_t alloc_tqew_local;
- uint32_t free_tqew_local;
- uint32_t alloc_hdr_fast;
- uint32_t free_hdr_fast;
- uint32_t alloc_hdr_slow;
- uint32_t free_hdr_slow;
- uint32_t alloc_msdu_hdr_failed;
- uint32_t alloc_mpdu_hdr_failed;
- uint32_t alloc_tid_superfast;
- uint32_t free_tid_superfast;
- uint32_t alloc_tid_fast;
- uint32_t free_tid_fast;
- uint32_t alloc_tid_slow;
- uint32_t free_tid_slow;
- uint32_t alloc_node_rate_fast;
- uint32_t free_node_rate_fast;
- uint32_t alloc_node_rate_slow;
- uint32_t free_node_rate_slow;
- uint32_t alloc_node_superfast;
- uint32_t free_node_superfast;
- uint32_t alloc_node_fast;
- uint32_t free_node_fast;
- uint32_t alloc_fcs;
- uint32_t free_fcs;
- uint32_t alloc_mac_descr;
- uint32_t free_mac_descr;
- uint32_t tx_mac_push;
- uint32_t tx_mac_idle;
- uint32_t tx_mac_rts;
- uint32_t tx_mac_cts2self;
- uint32_t tx_vlan_drop;
- uint32_t tx_acm_drop;
- uint32_t tx_ps_drop;
- uint32_t ocs_tx_suspend;
- uint32_t ocs_tx_resume;
- uint32_t ocs_singleton_suspend;
- uint32_t ocs_ampdu_suspend;
- uint32_t ocs_frame_created;
- uint32_t pwr_mgmt_awake;
- uint32_t pwr_mgmt_sleep;
- uint32_t pwr_mgmt_tx;
- uint32_t pspoll_rx;
- uint32_t dtim_q_push;
- uint32_t dtim_q_pop;
- uint32_t dtim_trigger;
- uint32_t dtim_q_overflow;
- uint32_t tx_restrict_dropped;
- uint32_t tx_throt_dropped;
- uint32_t tx_block_singleton;
- uint32_t tx_force_unblock_tid;
- uint32_t tx_ctl_pkt_hbm_alloc_fails;
- uint32_t tx_ctl_pkt_alloc_descr_fails;
- uint32_t tx_bar_alloc_ctl_pkt_fails;
- uint32_t tx_valid_bit_not_set;
-
- uint32_t wmm_ps_tx;
- uint32_t wmm_ps_tx_null_frames;
- uint32_t wmm_ps_tx_more_data_frames;
- uint32_t wmm_ps_tx_eosp_frames;
-
- /*
- * Mu Tx & Done & Retry
- */
- uint32_t mu_tx_su_count; /* Can't find buddy, and this AMPDU be sent as SU */
-
- uint32_t mu_tx_send_mu_fail; /* Can't be sent as MU, send them as SU */
-
- uint32_t mu_tx_push_count;
- uint32_t mu_tx_done_count;
-
- uint32_t mu_tx_done_succ; /* The succ/fail counter of AMPDU which be sent via WMAC1 */
- uint32_t mu_tx_done_fail;
- uint32_t mu_tx_sample; /* mu sampling phy rate count */
- uint32_t mu_bar_bitmap_non_zero;
- uint32_t mu_bar_bitmap_zero;
- uint32_t mu_mac_wmac1_ipc_push;
- uint32_t mu_mac_wmac1_auc_push;
- uint32_t mu_wmac1_resets;
-
- uint32_t mu_tx_swretry_agg_exceed;
-
- uint32_t mu_tx_buddy_try;
- uint32_t mu_tx_buddy_fail_wmac;
- uint32_t mu_tx_buddy_fail_ptid;
- uint32_t mu_tx_buddy_fail_rate;
- uint32_t mu_tx_buddy_fail_create_agg;
-
- uint32_t mu_tx_buddy_mu_only_timeout;
-
- uint32_t mu_tx_another_q_push_succ;
- uint32_t mu_tx_another_q_push_fail; /* If current cont_q is not ready, try another cont_q */
- uint32_t mu_tx_buddy_multi_tid;
-
- /* For debug, remove it before submitting */
- uint32_t mu_tx_wmac_0_done_count;
- uint32_t mu_tx_wmac_0_bitmap_non_zero;
- uint32_t mu_tx_wmac_0_bitmap_zero;
- uint32_t mu_tx_wmac_0_done_timeout;
- uint32_t mu_tx_wmac_0_done_succ;
- uint32_t mu_tx_wmac_0_done_fail;
-
- uint32_t mu_tx_wmac_1_done_succ;
- uint32_t mu_tx_wmac_1_done_fail;
-
- uint32_t mu_tx_wmac_0_mpdu_total;
- uint32_t mu_tx_wmac_0_mpdu_succ;
-
- uint32_t mu_tx_wmac_1_mpdu_total;
- uint32_t mu_tx_wmac_1_mpdu_succ;
-
- uint32_t mu_tx_qnum[AUC_FW_WMAC_TX_QNUM];
- uint32_t tqe_sema_fails;
-};
-#endif // #ifndef _AUC_DEBUG_STATS_H_
-
diff --git a/quantenna/include/qtn/auc_share_def.h b/quantenna/include/qtn/auc_share_def.h
deleted file mode 100755
index 3fc17e3..0000000
--- a/quantenna/include/qtn/auc_share_def.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2013 Quantenna Communications, Inc.
- */
-
-#ifndef _AUC_SHARE_DEF_H_
-#define _AUC_SHARE_DEF_H_
-
-/* Define how many TIDs have and which is timer TID */
-#define AUC_TID_FIRST 0
-#define AUC_TID_NUM 20
-#define AUC_TID_TIMER 19
-
-#ifndef __ASSEMBLY__
-/* WMAC parameters */
-#define AUC_FW_WMAC_TX_QNUM 4
-#define AUC_FW_WMAC_TX_QDEEP 4
-
-#define AUC_FW_WMAC_RX_Q_MGMT 0
-#define AUC_FW_WMAC_RX_Q_CTRL 1
-#define AUC_FW_WMAC_RX_Q_DATA 2
-#define AUC_FW_WMAC_RX_QNUM 3
-#define AUC_FW_WMAC_RX_QDEEP_MGMT 8
-#define AUC_FW_WMAC_RX_QDEEP_CTRL 8
-#define AUC_FW_WMAC_RX_QDEEP_DATA 64
-#define AUC_FW_WMAC_RX_DESC_NUM (AUC_FW_WMAC_RX_QDEEP_MGMT + \
- AUC_FW_WMAC_RX_QDEEP_CTRL + AUC_FW_WMAC_RX_QDEEP_DATA)
-#endif
-
-/* Used to define 'state' field of qtn_auc_per_tid_data */
-#define QTN_AUC_TID_TX_STATE_IDLE 0 /* idle state, this is init state, please keep zero value */
-#define QTN_AUC_TID_TX_STATE_RUN 1 /* sending state */
-#define QTN_AUC_TID_TX_STATE_WAIT_TIMER_AGG 2 /* waiting on agg timer firing */
-#define QTN_AUC_TID_TX_STATE_WAIT_TX_DONE 3 /* waiting on tx done firing */
-#define QTN_AUC_TID_TX_STATE_WAIT_TX_RESUME 4 /* waiting on ocs tx resume */
-#define QTN_AUC_TID_TX_STATE_MAX 4 /* maximum value of tx states */
-
-/* Used to define 'tqew_state' field of qtn_auc_per_tid_data */
-#define QTN_AUC_TID_TQEW_STATE_RUN 0
-#define QTN_AUC_TID_TQEW_STATE_WAIT_TX_DONE 1
-#define QTN_AUC_TID_TQEW_STATE_MAX 1
-
-#endif // #ifndef _AUC_SHARE_DEF_H_
-
diff --git a/quantenna/include/qtn/bootcfg.h b/quantenna/include/qtn/bootcfg.h
deleted file mode 100644
index 966720a..0000000
--- a/quantenna/include/qtn/bootcfg.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2009 Quantenna Communications, Inc.
- * All rights reserved.
- *
- * Syscfg module - uses config sector for common filesytem between linux and
- * uboot.
- */
-
-
-typedef u32 bootcfg_t;
-
-/******************************************************************************
- Function: bootcfg_create
- Purpose: create file
- Returns: 0 if successful
- Note: if size is zero, the proc entry is created but
- no data is allocated until the first write
- *****************************************************************************/
-int bootcfg_create(const char *filename,u32 size);
-
-/******************************************************************************
- Function: bootcfg_delete
- Purpose: delete file
- Returns: 0 if successful
- Note:
- *****************************************************************************/
-int bootcfg_delete(const char *token);
-
-/******************************************************************************
- Function: bootcfg_get_var
- Purpose: Get variable from environment
- Returns: NULL if variable not found, pointer to storage otherwise
- Note: variable value copied to storage
- *****************************************************************************/
-char* bootcfg_get_var(const char *variable, char *storage);
-
-/******************************************************************************
- Function: bootcfg_set_var
- Purpose: Set variable to environment
- Returns: NULL if variable not found, pointer to storage otherwise
- Note: variable value copied to storage
- *****************************************************************************/
-int bootcfg_set_var(const char *var, const char *value);
-
diff --git a/quantenna/include/qtn/dmautil.h b/quantenna/include/qtn/dmautil.h
deleted file mode 100644
index 26cceba..0000000
--- a/quantenna/include/qtn/dmautil.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (c) Quantenna Communications, Inc. 2012
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef __QTN_DMA_UTIL_H
-#define __QTN_DMA_UTIL_H
-
-#ifndef __ASSEMBLY__
-
-#include <linux/types.h>
-#include <linux/dma-mapping.h>
-#include <asm/dma-mapping.h>
-#include <asm/cacheflush.h>
-
-#define ALIGNED_DMA_DESC(typeq, type) \
- struct aligned_dma_##type { \
- uint32_t desc_count; \
- typeq type *descs; \
- unsigned long aligned_vdescs; \
- unsigned long unaligned_vdescs; \
- unsigned long descs_dma_addr; \
- }
-
-typedef ALIGNED_DMA_DESC(, void) aligned_dma_descs;
-
-#define ALIGNED_DMA_DESC_ALLOC(_ptr, _count, _align, _is_sram) \
- dmautil_aligned_dma_desc_alloc((aligned_dma_descs *)(_ptr), \
- sizeof((_ptr)->descs[0]), (_count), (_align), (_is_sram))
-int dmautil_aligned_dma_desc_alloc(aligned_dma_descs *d,
- unsigned int desc_size, unsigned int desc_count,
- unsigned int align, bool is_sram);
-
-#define ALIGNED_DMA_DESC_FREE(_ptr) dmautil_aligned_dma_desc_free((aligned_dma_descs *)(_ptr))
-void dmautil_aligned_dma_desc_free(aligned_dma_descs *d);
-
-/*
- * Alignment helpers
- */
-__always_inline static unsigned long align_val_up(unsigned long val, unsigned long step)
-{
- return ((val + step - 1) & (~(step - 1)));
-}
-__always_inline static unsigned long align_val_down(unsigned long val, unsigned long step)
-{
- return (val & (~(step - 1)));
-}
-__always_inline static void* align_buf_dma(void *addr)
-{
- return (void*)align_val_up((unsigned long)addr, dma_get_cache_alignment());
-}
-__always_inline static unsigned long align_buf_dma_offset(void *addr)
-{
- return ((char *)align_buf_dma(addr) - (char *)addr);
-}
-__always_inline static void* align_buf_cache(void *addr)
-{
- return (void*)align_val_down((unsigned long)addr, dma_get_cache_alignment());
-}
-__always_inline static unsigned long align_buf_cache_offset(void *addr)
-{
- return ((char *)addr - (char *)align_buf_cache(addr));
-}
-__always_inline static unsigned long align_buf_cache_size(void *addr, unsigned long size)
-{
- return align_val_up(size + align_buf_cache_offset(addr), dma_get_cache_alignment());
-}
-
-__always_inline static void flush_dcache_sizerange_safe(void *p, size_t size)
-{
- uintptr_t op_start = (uintptr_t) align_buf_cache(p);
- size_t op_size = align_buf_cache_size(p, size);
- flush_dcache_range(op_start, op_start + op_size);
-}
-
-__always_inline static void flush_and_inv_dcache_sizerange_safe(void *p, size_t size)
-{
- uintptr_t op_start = (uintptr_t) align_buf_cache(p);
- size_t op_size = align_buf_cache_size(p, size);
- flush_and_inv_dcache_range(op_start, op_start + op_size);
-}
-
-__always_inline static void inv_dcache_sizerange_safe(void *p, size_t size)
-{
- uintptr_t op_start = (uintptr_t) align_buf_cache(p);
- size_t op_size = align_buf_cache_size(p, size);
- inv_dcache_range(op_start, op_start + op_size);
-}
-
-#endif // __ASSEMBLY__
-#endif // __QTN_DMA_UTIL_H
-
diff --git a/quantenna/include/qtn/emac_debug.h b/quantenna/include/qtn/emac_debug.h
deleted file mode 100644
index 6de7aee..0000000
--- a/quantenna/include/qtn/emac_debug.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef _QTN_EMAC_DEBUG_H
-#define _QTN_EMAC_DEBUG_H
-
-#include <qtn/skb_recycle.h>
-
-uint32_t qtn_eth_rx_lost_get(struct net_device *dev);
-
-#endif // _QTN_EMAC_DEBUG_H
-
diff --git a/quantenna/include/qtn/hardware_revision.h b/quantenna/include/qtn/hardware_revision.h
deleted file mode 100644
index d754fbd..0000000
--- a/quantenna/include/qtn/hardware_revision.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __RUBY_VERSION_H
-#define __RUBY_VERSION_H
-
-#ifndef __ASSEMBLY__
-
-#include "mproc_sync_base.h"
-
-RUBY_INLINE int get_hardware_revision(void)
-{
- volatile struct shared_params* sp = qtn_mproc_sync_shared_params_get();
- if (sp) {
- return sp->hardware_revision;
- } else {
- return HARDWARE_REVISION_UNKNOWN;
- }
-}
-
-#ifdef __KERNEL__
-RUBY_INLINE int _read_hardware_revision(void)
-{
- int ret = HARDWARE_REVISION_UNKNOWN;
- uint32_t board_rev = readl(RUBY_SYS_CTL_CSR);
-
- if ((board_rev & CHIP_ID_MASK) == CHIP_ID_RUBY) {
- uint32_t spare1 = readl(RUBY_QT3_BB_TD_SPARE_1);
- if ((spare1 & CHIP_REV_ID_MASK) == REV_ID_RUBY_A) {
- ret = HARDWARE_REVISION_RUBY_A;
- } else if ((spare1 & CHIP_REV_ID_MASK) == REV_ID_RUBY_B) {
- ret = HARDWARE_REVISION_RUBY_B;
- } else if ((spare1 & CHIP_REV_ID_MASK) == REV_ID_RUBY_D){
- ret = HARDWARE_REVISION_RUBY_D;
- }
- } else if ((board_rev & CHIP_ID_MASK) == CHIP_ID_TOPAZ) {
- switch (board_rev & CHIP_REV_ID_MASK) {
- case REV_ID_TOPAZ_A:
- ret = HARDWARE_REVISION_TOPAZ_A;
- break;
- case REV_ID_TOPAZ_B:
- ret = HARDWARE_REVISION_TOPAZ_B;
- break;
- case REV_ID_TOPAZ_A2:
- ret = HARDWARE_REVISION_TOPAZ_A2;
- break;
- }
- }
- return ret;
-}
-#endif //__KERNEL__
-
-#endif // __ASSEMBLY__
-#endif // __RUBY_VERSION_H
-
diff --git a/quantenna/include/qtn/iputil.h b/quantenna/include/qtn/iputil.h
deleted file mode 100644
index 39ff354..0000000
--- a/quantenna/include/qtn/iputil.h
+++ /dev/null
@@ -1,359 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2012 Quantenna Communications. Inc. **
-** All Rights Reserved **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _IPUTIL_H_
-#define _IPUTIL_H_
-
-#include <linux/inetdevice.h>
-#include <linux/if_arp.h>
-#include <linux/ip.h>
-#include <net/ip.h>
-#include <net80211/if_ethersubr.h>
-#if defined(CONFIG_IPV6)
-#include <net/ipv6.h>
-#include <linux/in6.h>
-#include <linux/inet.h>
-#include <net/addrconf.h>
-#endif
-
-#define IPUTIL_HDR_VER_4 4
-#define IPUTIL_HDR_VER_6 6
-
-#define IPUTIL_V4_ADDR_SSDP htonl(0xEFFFFFFA) /* 239.255.255.250 */
-#define IPUTIL_V4_ADDR_MULTICAST(_addr) \
- ((_addr & htonl(0xF0000000)) == htonl(0xE0000000)) /* 224.0.0.0/4 */
-#define IPUTIL_V6_ADDR_MULTICAST(_addr) \
- ((_addr & htonl(0xFF000000)) == htonl(0xFF000000)) /* ff00::/8 - see __ipv6_addr_type() */
-#define IPUTIL_V4_ADDR_LNCB(_addr) \
- ((_addr & htonl(0xFFFFFF00)) == htonl(0xE0000000)) /* 224.0.0.0/24 */
-
-#define IPUTIL_V4_FRAG_OFFSET(_fh) (ntohs(_fh->frag_off) & ~0x7)
-#define IPUTIL_V4_FRAG_MF(_fh) (ntohs(_fh->frag_off) & IP6_MF)
-
-#define IPUTIL_V6_FRAG_OFFSET(_fh) (ntohs(_fh->frag_off) & ~0x7)
-#define IPUTIL_V6_FRAG_MF(_fh) (ntohs(_fh->frag_off) & IP6_MF)
-
-#define NIPV6OCTA_FMT "%pI6"
-#define NIPV6OCTA(_ipv6_addr_) _ipv6_addr_
-
-#define IPUTIL_V4_ADDR_LEN 4
-
-#ifdef CONFIG_IPV6
-int iputil_v6_skip_exthdr(const struct ipv6hdr *ipv6h, int start, uint8_t *nexthdrp,
- int total_len, __be32 *ip_id, uint8_t *more_frags);
-int iputil_v6_ntop(char *buf, const struct in6_addr *addr);
-int iputil_v6_ntop_port(char *buf, const struct in6_addr *addr, __be16 port);
-int iputil_eth_is_v6_mld(void *iphdr, uint32_t data_len);
-
-int iputil_ipv6_is_neigh_msg(struct ipv6hdr *ipv6, struct icmp6hdr *icmpv6);
-int iputil_ipv6_is_neigh_sol_msg(uint8_t dad, struct nd_msg *msg, struct ipv6hdr *ipv6);
-#endif
-
-int iputil_v4_pton(const char *ip_str, __be32 *ipaddr);
-int iputil_v4_ntop_port(char *buf, __be32 addr, __be16 port);
-
-/*
- * IPv6 broadcasts are scoped multicast.
- * +--------+----+----+---------------------------------------------+
- * | 8 | 4 | 4 | 112 bits |
- * +------ -+----+----+---------------------------------------------+
- * |11111111|flgs|scop| group ID |
- * +--------+----+----+---------------------------------------------+
- *
- * Scope:
- * 1: Interface-Local (loopback)
- * 2: Link-Local
- * 4: Admin-Local
- * 5: Site-Local
- * 8: Organization-Local
- * E: Global
- * 0,3,F: reserved
- * others: unassigned, are available for administrators to define additional multicast regions.
- *
- * RFC4291 http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xml
- */
-#ifdef CONFIG_IPV6
-static inline int iputil_mac_is_v6_local(struct ipv6hdr *ipv6h)
-{
- struct in6_addr *ipaddr = &ipv6h->daddr;
-
- return ((ipaddr->in6_u.u6_addr8[0] == 0xff) &&
- (ipaddr->in6_u.u6_addr8[1] > 0x01) &&
- (ipaddr->in6_u.u6_addr8[1] < 0x0E));
-}
-#endif
-
-static inline int iputil_is_v4_ssdp(const void *addr, void *iph)
-{
- static const char ssdp_addr[] = {0x01, 0x00, 0x5E, 0x7F, 0xFF, 0xFA};
-
- if (unlikely(!memcmp(addr, ssdp_addr, sizeof(ssdp_addr)))) {
- struct iphdr *ipv4h = iph;
- uint32_t daddr = get_unaligned((uint32_t *)&ipv4h->daddr);
-
- if (daddr == IPUTIL_V4_ADDR_SSDP) {
- return 1;
- }
- }
-
- return 0;
-}
-
-#ifdef CONFIG_IPV6
-/*
- * IPv6 SSDP is 0xff0?::c
- */
-static inline int iputil_is_v6_ssdp(const unsigned char *dest, struct ipv6hdr *ipv6h)
-{
- static const uint8_t ssdp6_addr[ETH_ALEN] = {0x33, 0x33, 0x00, 0x00, 0x00, 0x0c};
- struct in6_addr *ipaddr = &ipv6h->daddr;
-
- return ((memcmp(dest, &ssdp6_addr, sizeof(ssdp6_addr)) == 0) &&
- ((__constant_ntohl(ipaddr->in6_u.u6_addr32[0]) & 0xfff0ffff) == 0xff000000) &&
- (ipaddr->in6_u.u6_addr32[1] == 0) && (ipaddr->in6_u.u6_addr32[2] == 0) &&
- (ipaddr->in6_u.u6_addr32[3] == __constant_htonl(0xc)));
-}
-#endif
-
-static inline int iputil_is_ssdp(const void *addr, void *iph)
-{
- if (iputil_is_v4_ssdp(addr, iph)) {
- return 1;
- }
-
-#ifdef CONFIG_IPV6
- if (unlikely(iputil_is_v6_ssdp(addr, iph))) {
- return 1;
- }
-#endif
- return 0;
-}
-
-#ifdef CONFIG_IPV6
-/*
- * IPv6 all-nodes multicast address
- * the link-local scope address to reach all nodes is 0xff02::1
- */
-static inline int iputil_ipv6_is_ll_all_nodes_mc(const unsigned char *dest, void *iph)
-{
- struct ipv6hdr *ipv6h = (struct ipv6hdr *)iph;
- static const uint8_t ll_all_nodes_mac_addr[ETH_ALEN] = {0x33, 0x33, 0x00, 0x00, 0x00, 0x01};
- struct in6_addr *ipaddr = &ipv6h->daddr;
-
- return ((memcmp(dest, ll_all_nodes_mac_addr, sizeof(ll_all_nodes_mac_addr)) == 0) &&
- (__constant_ntohl(ipaddr->in6_u.u6_addr32[0]) == 0xff020000) &&
- (ipaddr->in6_u.u6_addr32[1] == 0) && (ipaddr->in6_u.u6_addr32[2] == 0) &&
- (ipaddr->in6_u.u6_addr32[3] == __constant_htonl(0x1)));
-}
-#endif
-
-/* Check for a local network control block MAC address */
-static inline int iputil_is_lncb(const uint8_t *addr, const void *iph)
-{
- static const char lncb_addr[] = {0x01, 0x00, 0x5E, 0x00, 0x00};
-
- if (unlikely(!memcmp(addr, lncb_addr, sizeof(lncb_addr)))) {
- const struct iphdr *ipv4h = iph;
- uint32_t daddr = get_unaligned((uint32_t *)&ipv4h->daddr);
-
- if (IPUTIL_V4_ADDR_LNCB(daddr)) {
- return 1;
- }
- }
- return 0;
-}
-
-static inline int iputil_is_multicast(void *iph)
-{
- const struct iphdr *ipv4h = iph;
-
- if (ipv4h->version == 4) {
- uint32_t daddr = get_unaligned((uint32_t *)&ipv4h->daddr);
-
- return IPUTIL_V4_ADDR_MULTICAST(daddr);
- }
-
-#ifdef CONFIG_IPV6
- if (ipv4h->version == 6) {
- struct ipv6hdr *ipv6h = iph;
- __be32 daddr = get_unaligned(ipv6h->daddr.s6_addr32);
-
- return IPUTIL_V6_ADDR_MULTICAST(daddr);
- }
-#endif
- return 0;
-}
-
-static inline size_t iputil_hdrlen(void *iph, uint32_t data_len)
-{
- const struct iphdr *ipv4h = iph;
-#ifdef CONFIG_IPV6
- const struct ipv6hdr *ip6hdr_p = iph;
- uint8_t nexthdr;
- int nhdr_off;
-#endif
-
- if (likely(ipv4h->version == 4)) {
- return (ipv4h->ihl << 2);
- }
-
-#ifdef CONFIG_IPV6
- /*
- * This is the base IPv6 header. If the next header is an option header, its length must be
- * accounted for explicitly elsewhere.
- */
- if (ipv4h->version == 6) {
- nhdr_off = iputil_v6_skip_exthdr(ip6hdr_p,
- sizeof(struct ipv6hdr),
- &nexthdr, data_len, NULL, NULL);
- return nhdr_off;
- }
-#endif
- return 0;
-}
-
-static inline int iputil_mac_is_v6_multicast(const uint8_t *mac)
-{
- const char ipmc6_addr[] = {0x33, 0x33};
-
- return mac[0] == ipmc6_addr[0] &&
- mac[1] == ipmc6_addr[1];
-}
-
-static inline int iputil_mac_is_v4_multicast(const uint8_t *mac)
-{
- const char ipmc4_addr[] = {0x01, 0x00, 0x5E};
-
- return mac[0] == ipmc4_addr[0] &&
- mac[1] == ipmc4_addr[1] &&
- mac[2] == ipmc4_addr[2];
-}
-
-static inline int iputil_eth_is_type(const struct ether_header *eh, const uint16_t ether_type)
-{
- if (eh->ether_type == __constant_htons(ETH_P_8021Q)) {
- return (*(&eh->ether_type + 2) == ether_type);
- }
-
- return (eh->ether_type == ether_type);
-}
-
-static inline int iputil_eth_is_v6_multicast(const struct ether_header *eh)
-{
-
- return iputil_eth_is_type(eh, __constant_htons(ETH_P_IPV6)) &&
- iputil_mac_is_v6_multicast(eh->ether_dhost);
-}
-
-static inline int iputil_eth_is_v4_multicast(const struct ether_header *eh)
-{
- return iputil_eth_is_type(eh, __constant_htons(ETH_P_IP)) &&
- iputil_mac_is_v4_multicast(eh->ether_dhost);
-}
-
-static inline int iputil_eth_is_multicast(const struct ether_header *eh)
-{
- if (iputil_eth_is_v4_multicast(eh)) {
- return 1;
- }
-
-#ifdef CONFIG_IPV6
- if (iputil_eth_is_v6_multicast(eh)) {
- return 1;
- }
-#endif
- return 0;
-}
-
-static inline int iputil_eth_is_ipv4or6(uint16_t ether_type)
-{
- return ether_type == __constant_htons(ETH_P_IP) ||
- ether_type == __constant_htons(ETH_P_IPV6);
-}
-
-/* Multicast data traffic, with the most common types of non-streaming mc filtered out */
-static inline int iputil_is_mc_data(const struct ether_header *eh, void *iph)
-{
- return iputil_eth_is_multicast(eh) &&
- !iputil_is_lncb(eh->ether_dhost, iph) &&
- !iputil_is_ssdp(eh->ether_dhost, iph);
-}
-
-uint8_t iputil_proto_info(void *iph, void *data,
- void **proto_data, uint32_t *ip_id, uint8_t *more_frags);
-
-static inline struct igmphdr *iputil_igmp_hdr(struct iphdr *p_iphdr)
-{
- return (struct igmphdr *)((unsigned int*)p_iphdr + p_iphdr->ihl);
-}
-
-struct dhcp_message {
- uint8_t op;
- uint8_t htype;
- uint8_t hlen;
- uint8_t hops;
- uint32_t xid;
- uint16_t secs;
- uint16_t flags;
- uint32_t ciaddr;
- uint32_t yiaddr;
- uint32_t siaddr;
- uint32_t giaddr;
- uint8_t chaddr[16];
- uint8_t sname[64];
- uint8_t file[128];
- uint32_t cookie;
- uint8_t options[0];
-}__attribute__ ((packed));
-
-#define DHCPSERVER_PORT 67
-#define DHCPCLIENT_PORT 68
-
-#define DHCPV6SERVER_PORT 547
-#define DHCPV6CLIENT_PORT 546
-
-#define BOOTREQUEST 1
-#define DHCPREQUEST 3
-#define ARPHRD_ETHER 1
-#define DHCP_BROADCAST_FLAG 0x8000
-
-#endif
diff --git a/quantenna/include/qtn/lhost_muc_comm.h b/quantenna/include/qtn/lhost_muc_comm.h
deleted file mode 100644
index 160b054..0000000
--- a/quantenna/include/qtn/lhost_muc_comm.h
+++ /dev/null
@@ -1,1057 +0,0 @@
-/*
- * Copyright (c) 2011 Quantenna Communications, Inc.
- */
-
-/*
- * This file contains host definitions which are common between the
- * host driver and the microcontroller/MAC code.
- */
-#ifndef _LHOST_MUC_COMM_H
-#define _LHOST_MUC_COMM_H
-
-#include "qtn_uc_comm.h"
-#include "qtn_cca.h"
-#include "qtn_wmm_ac.h"
-#include "net80211/ieee80211.h"
-#include "net80211/ieee80211_crypto.h"
-#include "muc_txrx_stats.h"
-#include "qtn/qvsp_common.h"
-#include "qtn/shared_defs.h"
-#include "qtn/txbf_common.h"
-
-/* packed definitions for each compiler */
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
-# define PACKED __packed
-# define LM(a,b) (b)
-# define lhost_volatile
-# define muc_volatile volatile
-#else
-# define PACKED __attribute__ ((packed))
-# define LM(a,b) (a)
-# define lhost_volatile volatile
-# define muc_volatile
-#endif // #if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
-
-#define HOST_TXD_NUMSEG 2
-
-#define QTN_BBIC_11N 0x30
-#define QTN_BBIC_11AC 0x40
-
-#define QTN_VSP_STATS_TID_NUM 4
-
-#define QTN_VSP_TIDS { 6, 5, 0, 1 }
-#define QTN_VSP_STATS_TID2IDX {0, 1, -1, -1, -1, 2, 3, -1} /* make sure no tids using same index */
-
-struct qtn_vsp_per_node_stats {
- struct qtn_per_tid_stats per_tid_stats[QTN_VSP_STATS_TID_NUM];
-};
-
-struct qtn_vsp_stats {
-#define QVSP_FAT_MAX 1000
-#define QVSP_FAT_NONE ((uint32_t)(-1))
- uint32_t fat; /* free airtime */
- uint32_t intf_ms; /* interference */
-#if TOPAZ_QTM
- struct qtn_vsp_per_node_stats per_node_stats[QTN_NCIDX_MAX];
-#endif
-};
-
-/**
- * \brief This enumeration represents the mode in use on the device.
- *
- * This enumeration is used to set the correct bandwidth.
- */
-
-enum {
- QTN_11NAC_DISABLE = 0,
- QTN_11NAC_ENABLE = 1,
-};
-
-/* Host tx descriptor */
-struct host_txdesc {
- uint32_t hd_version:8; /* Descriptor version */
- uint32_t hd_tid:4; /* packet tid */
- uint32_t hd_txstatus:2; /* Transmit status: 1 sent to MuC, 2 tx success */
-#define QTN_TXSTATUS_TX_ON_MUC 1
-#define QTN_TXSTATUS_TX_SUCCESS 2
- uint32_t hd_wmmac:2; /* Reserved for WMM AC*/
- uint32_t hd_pktlen:16; /* Pkt len (incl. all headers) */
- uint32_t hd_node_idx; /* local node index */
- uint16_t hd_seglen[HOST_TXD_NUMSEG]; /* Segment lenghts */
- uint32_t hd_segaddr[HOST_TXD_NUMSEG]; /* Phys addr of each seg */
- uint32_t hd_ts; /* Timestamp of the pkt */
- uint32_t hd_nextpa; /* Phys addr of next host tx descr in fwd dir */
- uint32_t hd_nextpa_rev; /* Phys addr of next host tx descr in rev dir */
- void *hd_nextva_rev; /* Virtual addr (LHOST view) of next host tx descr in rev dir */
- uint32_t hd_pa; /* Physical addr of this host tx descr */
- void *hd_va; /* Virtual addr (LHOST view) of this host tx descr */
- uint32_t hd_status; /* Status of HTxD */
- void (*hd_muc_txdone_cb)(void *, uint32_t, uint32_t); /* MuC callback after txdone */
- uint32_t hd_muc_cb_arg1; /* parameter for hd_muc_txdone_cb */
- uint32_t hd_muc_cb_arg2; /* parameter for hd_muc_txdone_cb */
- uint32_t hd_txtsf; /* record the tsf_lo on that frame was sent successfully */
- uint8_t hd_mpdu[128];
- uint8_t hd_msdu[128];
- uint8_t hd_dma[128];
-#define HTXD_FLAG_AMSDU_DEST_CAPABLE 0x00000002 /* Can be used for AMSDU destination (append to) */
-#define HTXD_FLAG_AMSDU_SRC_CAPABLE 0x00000004 /* Can be used for AMSDU (copy from) */
-#define HTXD_FLAG_NO_UPDATE_NAV 0x00000008 /* Don't update NAV for this frame */
-#define HTXD_FLAG_NO_RETRY 0x00000010 /* Don't retry this frame if tx failed */
-#define HTXD_FLAG_NO_RETURN 0x00000020 /* Don't return txdesc from MuC to lhost */
-#define HTXD_FLAG_IMM_RETURN 0x00000040 /* Immediately return txdesc from Muc to lhost */
- uint32_t hd_flags;
-};
-
-#define QTN_AMSDU_DEST_CAPABLE_SIZE ETHER_MAX_LEN
-#define QTN_AMSDU_DEST_CAPABLE_GUARD_SIZE 64
-#define QTN_AMSDU_SRC_FRAME_SIZE (QTN_AMSDU_DEST_CAPABLE_SIZE / 10)
-#define QTN_AMSDU_DEST_CAPABLE_OCCUPY_SIZE (QTN_AMSDU_DEST_CAPABLE_SIZE / 3 * 2)
-
-#define HTXD_FLAG_SET(_htxd, _flag) \
- (((struct host_txdesc *)(_htxd))->hd_flags |= (_flag))
-#define HTXD_FLAG_CLR(_htxd, _flag) \
- (((struct host_txdesc *)(_htxd))->hd_flags &= ~(_flag))
-#define HTXD_FLAG_GET(_htxd, _flag) \
- (((struct host_txdesc *)(_htxd))->hd_flags & (_flag))
-#define HTXD_FLAG_ISSET(_htxd, _flag) \
- (!!(((struct host_txdesc *)(_htxd))->hd_flags & (_flag)))
-#define HTXD_FLAG_KEEP_ONLY(_htxd, _flag) \
- (((struct host_txdesc *)(_htxd))->hd_flags &= (_flag))
-
-
-/* host_ioctl_hifinfo */
-
-#define NAMESIZE 16
-#define VERSION_SIZE 16
-#define MAC_ADDR_LEN 6
-#define MAC_STR_BUF_SIZE 18
-
-#define HOST_NUM_IOCTLQ 1 /* Number of ioctl q's */
-/*
- * LHost -> MuC TX queues are per node to allow variable backpressure per node.
- * One universal management data frame tx mailbox, and one ioctl mailbox
- */
-#define HOST_NUM_MGMTQ 1
-#define HOST_NUM_DATAQ (QTN_NCIDX_MAX)
-#define HOST_NUM_DATASEM 1
-
-#define HOST_IOCTL_INDEX_BASE 0
-#define HOST_MGMT_INDEX_BASE (HOST_IOCTL_INDEX_BASE + HOST_NUM_IOCTLQ)
-#define HOST_DATA_INDEX_BASE (HOST_MGMT_INDEX_BASE + HOST_NUM_MGMTQ)
-#define HOST_NUM_HOSTIFQ (HOST_NUM_DATAQ + HOST_NUM_IOCTLQ + HOST_NUM_MGMTQ)
-#define HOST_MBOX_SIZE (sizeof(uint32_t) * HOST_NUM_HOSTIFQ)
-
-#define QTN_PHY_RATE_PROP_SCALE 1024
-#define QTN_MUC_NODE_PKT_LIMIT_MIN 16
-#define QTN_MUC_NODE_PKT_LIMIT_DEFAULT 64
-#define QTN_MUC_NODE_PKT_LIMIT_MAX 128
-
-#define IEEE80211_TXPOW_ENCODE(x) ((255 * 65536) + (x * 256) + 1)
-#define IEEE80211_TXPOW_DECODE(x) (((x) - (255 * 65536) - 1) / 256)
-#define RF_MIXER_VAL_HI 0x1
-#define RF_MIXER_VAL_LO 0x7
-#define RF_PGA_VAL_HI 0x3
-#define RF_PGA_VAL_LO 0x0
-#define IEEE80211_LOWGAIN_TXPOW_MAX 10
-#define IEEE80211_LOWGAIN_TXPOW_MIN 9
-
-#define IEEE80211_CHAN_SEC_SHIFT 4
-#define IEEE80211_24G_CHAN_SEC_SHIFT 1
-
-struct host_ioctl_hifinfo {
- uint32_t hi_mboxstart; /* Start address for mbox */
- uint32_t hi_rxdoneirq; /* IRQ map for rx done */
- uint32_t hi_txdoneirq; /* IRQ map for tx done */
- uint32_t hi_rxfifo; /* Rx FIFO location */
- uint32_t hi_scanirq; /* IRQ map for Scan */
- uint32_t hi_scanfifo; /* Scan FIFO location */
- uint32_t hi_dspgpios;
- uint32_t hi_vsp_stats_phys;
- uint32_t hi_vapnode_idx; /* node_idx of the vap node for tx */
- uint8_t hi_vapid;
- char hi_name[NAMESIZE]; /* Device name */
- char hi_version[VERSION_SIZE]; /* basic firmware version */
- char hi_algover[VERSION_SIZE]; /* calibration algorithm version */
- uint8_t hi_macaddr[MAC_ADDR_LEN];
- uint8_t hi_semmap[HOST_NUM_HOSTIFQ]; /* Mapping of semaphores */
-};
-
-typedef int (*scan_done_fn)(int sc_devid, void *chan, int type, int status);
-
-struct host_scandesc {
- uint8_t sd_type;
- uint8_t sd_devid;
- uint8_t status;
- uint8_t ____pad;
- uint8_t* sd_data;
- scan_done_fn *sd_ppfn;
- struct host_scandesc *sd_next;
-};
-
-struct host_rxdesc {
- uint8_t hw_desc[128]; /* need to be aligned on 8 bytes */
- uint8_t *skbuff;
- uint8_t *rd_buffer;
- uint32_t rs_statword;
- struct host_rxdesc *rd_next;
- struct host_rxdesc *rd_pa;
- struct host_rxdesc *rd_va;
- void *node; /* Where the frame was from */
- uint8_t gain_db;
-};
-
-struct host_descfifo {
- struct host_rxdesc *df_fifo; /* Pointer to first descriptor in linked list */
- volatile uint32_t df_numelems; /* Num elems on fifo */
- volatile uint32_t df_size; /* Size of fifo */
- struct host_rxdesc * volatile hrdstart; /* the ptr to the host_rxdesc linked list ready for indication */
-};
-
-struct host_scanfifo {
- uint32_t sf_req; /* Pointer to request mailbox */
- uint32_t sf_res; /* Pointer to result mailbox */
- uint8_t sf_sem; /* Semaphore for Scan fifo */
- uint8_t tx_sem; /* Semaphore for Scan fifo */
- uint8_t ____pad[2];
-};
-
-struct host_rxfifo {
- struct host_descfifo *rf_fifo; /* Data Descriptor fifo */
- uint8_t rf_sem; /* Semaphore for rx fifo */
- uint8_t ____pad[3];
-};
-
-struct host_ndp_mesg {
- uint8_t macaddr_ta[6];
- uint8_t bw;
- uint8_t rxgain;
- uint8_t mcs;
- uint8_t ____pad[3];
-};
-
-
-struct host_ioctl {
- lhost_volatile uint32_t ioctl_dev; /* Device to run IOCTL on */
- lhost_volatile uint32_t ioctl_command; /* Command type */
- lhost_volatile uint32_t ioctl_arg1; /* Single valued arg 1 */
- lhost_volatile uint32_t ioctl_arg2; /* Single valued arg 2 */
- volatile uint32_t ioctl_argp; /* Argument payload pointer */
- volatile uint32_t ioctl_status; /* Status from other side */
- volatile uint32_t ioctl_rc; /* Command return code */
- lhost_volatile struct host_ioctl *ioctl_next; /* link to next msg in chain */
-};
-
-struct qtn_vap_args {
- char vap_name[17];
- uint8_t vap_id;
- uint8_t vap_macaddr[IEEE80211_ADDR_LEN];
-};
-
-struct qtn_setparams_args
-{
- int ni_param;
- int ni_value;
- int ni_len;
- unsigned char ni_data[64];
-};
-
-struct qtn_baparams_args {
- unsigned char ni_addr[8];
- enum ieee80211_ba_state state;
- int tid;
- int type;
- int start_seq_num;
- int window_size;
- int lifetime;
- uint16_t flags;
-};
-
-#define QTN_HLINK_RC_DONE 0x00000001
-#define QTN_HLINK_RC_ERR 0x00000002
-#define QTN_HLINK_STATUS_AVAIL 1
-
-#define IOCTL_DEV_VAPCREATE 4 /* Create a vap */
-#define IOCTL_DEV_DEVOPEN 5 /* Bring the device up */
-#define IOCTL_DEV_BEACON_START 6 /* Start Beacon */
-#define IOCTL_DEV_NEWASSOC 7 /* New associated node */
-#define IOCTL_DEV_NEWBSSID 8 /* New associated node */
-#define IOCTL_DEV_SEND_NDP_ANNOUNCEMENT 10 /* Send NDP announcement */
-#define IOCTL_DEV_SETPARAMS 11 /* Configure Parameters */
-#define IOCTL_DEV_GETPARAMS 12 /* Configure Parameters */
-#define IOCTL_DEV_BA_ADDED_TX 13
-#define IOCTL_DEV_BA_ADDED_RX 14
-#define IOCTL_DEV_BA_REMOVED_TX 15
-#define IOCTL_DEV_BA_REMOVED_RX 16
-#define IOCTL_DEV_CHANGE_CHANNEL 17
-#define IOCTL_DEV_SETKEY 18
-#define IOCTL_DEV_CALCMD 19 /* Send the cal cmd */
-#define IOCTL_DEV_DELKEY 20
-#define IOCTL_DEV_CMD 21 /* General commands */
-#define IOCTL_DEV_DISASSOC 22 /* Configure node */
-#define IOCTL_DEV_SMPS 23 /* MIMO power save mode change */
-#define IOCTL_DEV_FORCEMICERROR 24
-#define IOCTL_DEV_SET_SCANMODE 25
-#define IOCTL_DEV_XMITCTL 26 /* transmission control (turning on or off) */
-#define IOCTL_DEV_BEACON_STOP 27 /* Stop transmitting beacons */
-#define IOCTL_DEV_SET_MACADDR 30
-#define IOCTL_DEV_KILL_MUC 31
-#define IOCTL_DEV_DUMP_LOG 32
-#define IOCTL_DEV_SET_HRFLAGS 33
-#define IOCTL_DEV_SAMPLE_CHANNEL 34
-#define IOCTL_DEV_CHANGE_CHAN_DEFERRED 35
-#define IOCTL_DEV_WMM_PARAMS 36
-#define IOCTL_DEV_VAPDELETE 37 /* Delete a vap */
-#define IOCTL_DEV_STORE_TXPOW 38 /* Store the Tx power, short-range workaround*/
-#define IOCTL_DEV_USE_RTS_CTS 39 /* Enable-disable RTS-CTS */
-#define IOCTL_DEV_RST_QUEUE_DEPTH 40
-#define IOCTL_DEV_SET_POWER_SAVE 41 /* send request to MuC to change power save level */
-#define IOCTL_DEV_VSP 42 /* Configure QVSP */
-#define IOCTL_DEV_SET_11G_ERP 43 /* set 11bg ERP on/off */
-#define IOCTL_DEV_BGSCAN_CHANNEL 44
-#define IOCTL_DEV_SET_OCAC 46
-#define IOCTL_DEV_MEAS_CHANNEL 47 /* notify MUC to execute measurement */
-#define IOCTL_DEV_GET_LINK_MARGIN_INFO 48 /* get rssi info */
-#define IOCTL_DEV_SET_TDLS_PARAM 49 /* set tdls related paramters */
-#define IOCTL_DEV_GET_TDLS_PARAM 50 /* set tdls related paramters */
-#define IOCTL_DEV_POWER_SAVE 51 /* enter/leave power save state */
-#define IOCTL_DEV_REMAIN_CHANNEL 52 /* Remain on target channel */
-#define IOCTL_DEV_SCS_UPDATE_SCAN_STATS 53
-#define IOCTL_DEV_SET_SCANMODE_STA 54
-#define IOCTL_DEV_GET_MU_GRP 55 /* get MU groups other releated data */
-#define IOCTL_DEV_SET_RX_GAIN_PARAMS 56 /* Set RX gain params */
-#define IOCTL_DEV_GET_MU_ENABLE 57 /* get MU enable flag */
-#define IOCTL_DEV_GET_PRECODE_ENABLE 58 /* get MU precode enable flag */
-#define IOCTL_DEV_GET_MU_USE_EQ 59 /* get EQ enable flag */
-#define IOCTL_DEV_SET_CHAN_POWER_TABLE 60 /* Set MuC power table */
-#define IOCTL_DEV_ENABLE_VLAN 61 /* Set Global Vlan mode */
-#define IOCTL_DEV_NODE_UPDATE 62 /* Update node information again after association */
-#define IOCTL_DEV_AIRTIME_CONTROL 63 /* control node tx airtime accumulation start|stop */
-#define IOCTL_DEV_SUSPEND_OFF_CHANNEL 64 /* suspend/resume all off-channel mechanisms globally */
-#define IOCTL_DEV_MU_GROUP_UPDATE 65 /* Update MU groups: nodes and qmats */
-#define IOCTL_DEV_FLUSH_DATA 66 /* periodically flush data */
-#define IOCTL_DEV_GET_TX_MAXAMSDU 67 /* get the TX max msdu size */
-
-#define IOCTL_DEV_CMD_MEMDBG_DUMP 1 /* Dump MuC memory */
-#define IOCTL_DEV_CMD_MEMDBG_DUMPCFG 2 /* Configuration for dumping MuC memory */
-#define IOCTL_DEV_CMD_MEMDBG_DUMPNODES 3 /* Configuration for dumping MuC nodes */
-#define IOCTL_DEV_CMD_SET_DRV_DBG 4 /* Set MUC debug message level*/
-#define IOCTL_DEV_CMD_GET_DRV_DBG 5 /* Get MUC debug message level*/
-#define IOCTL_DEV_CMD_RF_REG_DUMP 6 /* Dump Rfic6 write fegister */
-
-#define IOCTL_DEVATTACH_DEVFLAG_MASK 0xFFFF0000
-#define IOCTL_DEVATTACH_DEVFLAG_MASK_S 16
-#define IOCTL_DEVATTACH_DEVID_MASK 0x000000FF
-#define IOCTL_DEVATTACH_DEV_RFCHIP_FREQID_MASK 0x00000F00
-#define IOCTL_DEVATTACH_DEV_RFCHIP_FREQID_MASK_S 8
-#define IOCTL_DEVATTACH_DEV_RFCHIP_VERID_MASK 0x0000F000
-#define IOCTL_DEVATTACH_DEV_RFCHIP_VERID_MASK_S 12
-#define IOCTL_DEVATTACH_IRQNUM 0x000000FF
-#define IOCTL_DEVATTACH_IRQREG 0x00000F00
-#define IOCTL_DEVATTACH_IRQREG_S 8
-#define IOCTL_DEVATTACH_NMBOX_MASK 0x000000FF
-
-#define QTN_CHAN_IEEE (0xFF << 0)
-#define QTN_CHAN_IEEE_S (0)
-#define QTN_CHAN_PWR (0xFF << 8)
-#define QTN_CHAN_PWR_S (8)
-
-#define QTNCHAN_TO_IEEENUM(chan) (MS(chan, QTN_CHAN_IEEE))
-
-#define QTN_CHAN_FLG_DFS 0x20000000
-#define QTN_CHAN_FLG_HT40 0x40000000
-#define QTN_CHAN_FLG_PRI_HI 0x80000000
-#define QTN_CHAN_FLG_RSV01 0x01000000
-#define QTN_CHAN_FLG_RSV02 0x02000000
-#define QTN_CHAN_FLG_RSV04 0x04000000
-#define QTN_CHAN_FLG_RSV08 0x08000000
-#define QTN_CHAN_FLG_RSV10 0x10000000
-
-#define QTN_CHAN_FLG_VHT80 0x00800000
-
-#define QTN_BAND_FREQ (0xFF << 0)
-#define QTN_BAND_FREQ_S (0)
-
-#define IOCTL_HLINK_DEVATTACH 1 /* Attach device */
-#define IOCTL_HLINK_DEVDETACH 2 /* Detach device */
-#define IOCTL_HLINK_DEVCHANGE 3 /* Change device state/flags */
-#define IOCTL_HLINK_LOGATTACH 4 /* Attach Log */
-#define IOCTL_HLINK_TEMP_ATTACH 5 /* Share temperature struct */
-#define IOCTL_HLINK_SVCERRATTACH 6 /* Attach svcerr */
-#define IOCTL_HLINK_RTNLEVENT 7 /* RTNL event */
-#define IOCTL_HLINK_NDP_FRAME 8 /* NDP frame */
-#define IOCTL_HLINK_FOPS_REQ 9 /* Recv File I/O req */
-#define IOCTL_HLINK_MIC_ERR 10 /* TKIP MIC failure detected */
-#define IOCTL_HLINK_BOOTED 11 /* MuC boot complete */
-#define IOCTL_HLINK_DROP_BA 12 /* drop BA */
-#define IOCTL_HLINK_DISASSOC_STA 13 /* disassociate station with a given aid */
-#define IOCTL_HLINK_RFIC_CAUSED_REBOOT 14 /* detected RFIC abnormal reset, reboot the system */
-#define IOCTL_HLINK_BA_ADD_START 15 /* start Tx ADDBA REQ sequence */
-#define IOCTL_HLINK_PEER_RTS 16 /* Peer RTS enable or disable */
-#define IOCTL_HLINK_DYN_WMM 17 /* Dynamic WMM enable or disable */
-#define IOCTL_HLINK_TDLS_EVENTS 18 /* TDLS Events from MuCfw */
-#define IOCTL_HLINK_RATE_TRAIN 19 /* Per-node rate training hash */
-
-enum {
- BW_INVALID = 0,
- BW_HT20 = 20,
- BW_HT40 = 40,
- BW_HT80 = 80,
- BW_HT160 = 160
-};
-
-/* Fixed bw command offset */
-#define QTN_BW_FIXED_BW 0x3
-#define QTN_BW_FIXED_BW_S 0
-#define QTN_BW_FIXED_EN 0x10
-#define QTN_BW_FIXED_EN_S 4
-
-struct qtn_csa_info {
- uint64_t req_tsf; /* aim to change channels at this tsf */
- uint64_t switch_tsf; /* tsf just after channel change completed */
- uint32_t pre_notification_tu; /* pre-switch notification to lhost in TU */
- uint32_t post_notification_tu; /* post channel change notification */
- uint32_t freq_band; /* freqency band info */
- uint32_t channel; /* channel to switch to */
- uint8_t sta_dfs_strict_mode;
-#define QTN_CSA_STATUS_MUC_SCHEDULED 0x00000001
-#define QTN_CSA_STATUS_MUC_ERROR_SCHED 0x00000010
-#define QTN_CSA_STATUS_MUC_PRE 0x00000002
-#define QTN_CSA_STATUS_MUC_SWITCHED 0x00000004
-#define QTN_CSA_STATUS_MUC_POST 0x00000008
-#define QTN_CSA_STATUS_MUC_ERROR_SW 0x00000010
-#define QTN_CSA_STATUS_MUC_CANCELLED 0x00000020
-#define QTN_CSA_STATUS_MUC_COMPLETE 0x00000040
- uint32_t muc_status; /* status written by MuC */
-
-#define QTN_CSA_RESTART_QUEUE 0x00000001
-#define QTN_CSA_STATUS_LHOST_PRE_DONE 0x00000002
-#define QTN_CSA_STATUS_LHOST_SWITCH_DONE 0x00000004
-#define QTN_CSA_STATUS_LHOST_POST_DONE 0x00000008
-#define QTN_CSA_CANCEL 0x00000010
-#define QTN_CSA_STATUS_LHOST_ACTIVE 0x00000020
-#define QTN_CSA_STATUS_LHOST_UNITS_OFFSET 0x00000040
- uint32_t lhost_status; /* flags written by lhost */
-};
-
-#define MEAS_RPI_HISTOGRAM_SIZE 8
-
-enum meas_reason {
- QTN_MEAS_REASON_SUCC = 0,
- QTN_MEAS_REASON_OFF_CHANNEL_UNSUPPORT,
- QTN_MEAS_REASON_DURATION_TOO_SHORT,
- QTN_MEAS_REASON_TIMER_SCHED_FAIL,
- QTN_MEAS_REASON_TYPE_UNSUPPORT,
- QTN_MEAS_REASON_MAX,
-};
-
-enum meas_type {
- QTN_MEAS_TYPE_BASIC = 0,
- QTN_MEAS_TYPE_CCA,
- QTN_MEAS_TYPE_RPI,
- QTN_MEAS_TYPE_CHAN_LOAD,
- QTN_MEAS_TYPE_NOISE_HIS,
- QTN_MEAS_TYPE_MAX,
-};
-
-struct meas_time_slice {
- uint32_t meas_slice; /* time slice */
- uint32_t meas_time_pri; /* prime time count based on meas_slice */
- uint32_t meas_time_sec; /* secondary time count based on meas_slice */
-};
-
-struct qtn_meas_chan_info {
- uint32_t work_channel; /* working channel to return to */
- int32_t meas_type; /* measurement type */
- int32_t meas_reason; /* measurement reason */
- struct meas_time_slice time_slice; /* time slice for measurement long duration */
- uint32_t meas_channel;
- uint64_t meas_start_tsf;
- uint32_t meas_dur_ms;
- union {
- struct {
- uint32_t cca_busy_cnt;
- uint32_t cca_try_cnt;
- uint32_t cca_try_ms;
- uint32_t cca_busy_ms;
- } cca_and_chanload;
- uint8_t rpi_counts[MEAS_RPI_HISTOGRAM_SIZE];
- int32_t basic_radar_num;
- uint8_t basic;
- } inter_data;
-};
-
-enum scs_lot_tsf_pos {
- SCS_LOG_TSF_POS_LHOST_TASK_KICKOFF,
- SCS_LOG_TSF_POS_LHOST_IOCTL2MUC,
- SCS_LOG_TSF_POS_MUC_POLL_IOCTL_FROM_LHOST,
- SCS_LOG_TSF_POS_MUC_QOSNULL_SENT,
- SCS_LOG_TSF_POS_MUC_SMPL_START_BEFORE_CHAN_CHG,
- SCS_LOG_TSF_POS_MUC_SMPL_START_AFTER_CHAN_CHG,
- SCS_LOG_TSF_POS_MUC_SMPL_FINISH_BEFORE_CHAN_CHG,
- SCS_LOG_TSF_POS_MUC_SMPL_FINISH_AFTER_CHAN_CHG,
- SCS_LOG_TSF_POS_LHOST_CCA_INTR,
- SCS_LOG_TSF_POS_LHOST_CCA_WORK,
- SCS_LOG_TSF_POS_NUM
-};
-
-#define IEEE80211_SCS_LOG_TSF(_ic, _sample, _pos) ((_ic)->ic_get_tsf(&((_sample)->tsf[(_pos)])))
-#define QDRV_SCS_LOG_TSF(_sample, _pos) (hal_get_tsf(&((_sample)->tsf[(_pos)])))
-#define MUC_SCS_LOG_TSF(_qh, _sample, _pos) (hal_get_tsf((_qh), &((_sample)->tsf[(_pos)])))
-
-struct qtn_samp_chan_info {
- struct out_cca_info result; /* results structure for CCA measurement */
- uint32_t freq_band;
- uint32_t samp_channel; /* The channel on which sample will be taken */
- uint32_t duration_msecs; /* Duration in milliseconds to stay on off channel */
- uint64_t start_tsf; /* tsf at which to start sampling */
-
-#define QTN_CCA_STATUS_IDLE 0x0
-#define QTN_CCA_STATUS_HOST_IOCTL_SENT 0x1
-#define QTN_CCA_STATUS_MUC_SCHEDULED 0x2
-#define QTN_CCA_STATUS_MUC_STARTED 0x3
-#define QTN_CCA_STATUS_MUC_COMPLETE 0x4
-#define QTN_CCA_STATUS_MUC_CANCELLED 0x5
- uint32_t status;
-
-#define QTN_CCA_TYPE_BACKGROUND 0x1
-#define QTN_CCA_TYPE_DIRECTLY 0x2
- uint32_t type;
-
- uint32_t qosnull_txdesc_host; /* qosnull frame for channel sampling */
- uint32_t qosnull_txdesc_bus; /* qosnull frame in phyaddr */
- uint16_t qosnull_frame_len; /* the frame length of qosnull */
- uint16_t tx_node_idx; /* the node index that qosnull frame to */
- uint32_t qosnull_txtsf; /* the tsf_lo read from MAC on that qosnull frame was sent successfully */
- uint32_t qosnull_nav; /* the large NAV in qosnull frame */
- uint64_t tsf[SCS_LOG_TSF_POS_NUM]; /* timestamps used for precise time control and profiling */
-};
-
-#define QTN_SCS_ASSOC_STA_MAX 12
-
-struct qtn_scs_vsp_node_stats {
- uint32_t ni_associd;
- uint32_t tx_usecs;
- uint32_t rx_usecs;
-};
-
-struct qtn_scs_vsp_info {
- uint32_t num_of_assoc;
- struct qtn_scs_vsp_node_stats scs_vsp_node_stats[QTN_SCS_ASSOC_STA_MAX];
-};
-
-struct qtn_scs_scan_info {
- uint32_t bw_sel;
- uint32_t cca_idle;
- uint32_t cca_busy;
- uint32_t cca_tx;
- uint32_t cca_intf;
- uint32_t cca_try;
- uint32_t bcn_rcvd;
- uint32_t crc_err;
- uint32_t lpre_err;
- uint32_t spre_err;
-};
-
-#define QTN_SCS_MAX_OC_INFO 32
-struct qtn_scs_data_history {
-#define QTN_SCS_FILTER_WINDOW_SZ 5
-#define QTN_SCS_FILTER_MEDIAN_IDX (QTN_SCS_FILTER_WINDOW_SZ / 2)
- uint32_t idx;
- uint32_t buffer[QTN_SCS_FILTER_WINDOW_SZ];
-};
-
-struct qtn_scs_stats_history {
- struct qtn_scs_data_history lp_errs[QTN_SCS_MAX_OC_INFO];
- struct qtn_scs_data_history sp_errs[QTN_SCS_MAX_OC_INFO];
-};
-
-struct qtn_scs_oc_info {
- uint32_t off_channel;
- uint32_t off_chan_bw_sel;
- uint32_t off_chan_cca_busy;
- uint32_t off_chan_cca_sample_cnt;
- uint32_t off_chan_cca_try_cnt;
- uint32_t off_chan_beacon_recvd;
- uint32_t off_chan_crc_errs;
- uint32_t off_chan_sp_errs;
- uint32_t off_chan_lp_errs;
-};
-/* Smart channel selection data shared between Lhost and MuC */
-struct qtn_scs_info {
- uint32_t oc_info_count;
- struct qtn_scs_oc_info oc_info[QTN_SCS_MAX_OC_INFO];
- uint32_t bw_sel;
- uint32_t cca_try;
- uint32_t cca_busy;
- uint32_t cca_idle;
- uint32_t cca_tx;
- uint32_t cca_interference;
- uint32_t beacon_recvd;
- uint32_t tx_usecs;
- uint32_t rx_usecs;
- struct qtn_scs_vsp_info scs_vsp_info;
-};
-
-struct qtn_scs_info_set {
- uint32_t valid_index; /* 0 or 1 */
- struct qtn_scs_info scs_info[2];
- struct qtn_scs_scan_info scan_info[IEEE80211_CHAN_MAX];
- struct qtn_scs_stats_history stats_history;
-};
-
-struct qtn_remain_chan_info {
- uint32_t chipid;
- uint32_t data_channel; /* Data channel to return to */
- uint32_t off_channel; /* The required remain channel */
- uint32_t duration_usecs; /* Duration in microseconds to stay on remain channel */
- uint64_t start_tsf; /* tsf at which to switch to remain channel */
-
-#define QTN_REM_CHAN_STATUS_IDLE 0x0
-#define QTN_REM_CHAN_STATUS_HOST_IOCTL_SENT 0x1
-#define QTN_REM_CHAN_STATUS_MUC_SCHEDULED 0x2
-#define QTN_REM_CHAN_STATUS_MUC_STARTED 0x3
-#define QTN_REM_CHAN_STATUS_MUC_COMPLETE 0x4
-#define QTN_REM_CHAN_STATUS_MUC_CANCELLED 0x5
- uint32_t status; /* channel switch status */
-
- uint8_t peer_mac[IEEE80211_ADDR_LEN]; /* peer node mac address */
-};
-
-
-#define QTN_CCA_CNT2MS(_cnt) RUBY_TIMER_MUC_CCA_CNT2MS(_cnt)
-#define QTN_CCA_INTV RUBY_TIMER_MUC_CCA_INTV
-
-enum scan_chan_tsf_pos {
- SCAN_CHAN_TSF_LHOST_HOSTLINK_IOCTL = 0,
- SCAN_CHAN_TSF_MUC_IOCTL_PROCESS,
- SCAN_CHAN_TSF_MUC_SEND_START_FRM,
- SCAN_CHAN_TSF_MUC_SEND_START_FRM_DONE,
- SCAN_CHAN_TSF_MUC_GOTO_OFF_CHAN,
- SCAN_CHAN_TSF_MUC_GOTO_OFF_CHAN_DONE,
- SCAN_CHAN_TSF_MUC_SEND_PRBREQ_FRM,
- SCAN_CHAN_TSF_MUC_SEND_PRBREQ_FRM_DONE,
- SCAN_CHAN_TSF_MUC_GOTO_DATA_CHAN,
- SCAN_CHAN_TSF_MUC_GOTO_DATA_CHAN_DONE,
- SCAN_CHAN_TSF_MUC_SEND_FINISH_FRM,
- SCAN_CHAN_TSF_MUC_SEND_FINISH_FRM_DONE,
- SCAN_CHAN_TSF_LHOST_INTERRUPT,
- SCAN_CHAN_TSF_LHOST_SCANWORK,
- SCAN_CHAN_TSF_LOG_NUM
-};
-
-struct scan_chan_tsf_dbg {
- int pos_index;
- char *log_name;
-};
-
-#define QDRV_SCAN_LOG_TSF(_scan, _pos) (hal_get_tsf(&((_scan)->tsf[(_pos)])))
-#define MUC_SCAN_LOG_TSF(_qh, _scan, _pos) (hal_get_tsf((_qh), &((_scan)->tsf[(_pos)])))
-
-struct qtn_scan_chan_info {
- uint32_t freq_band;
- uint32_t scan_channel; /* The channel on which sample will be taken */
-#define TIME_MARGIN_BEFORE_STARTFRM 3000 /* microseconds, time overhead for others before start frame is sent*/
-#define TIME_MARGIN_AFTER_STARTFRM 1000 /* microseconds, time overhead for others after start frame is sent*/
-#define TIME_OFFSET_SEND_PROBE_REQ 3000 /* microseconds, the time offset for sending probe_req frame
- * after switching to off channel*/
-#define TIME_OFFSET_SEND_START_FRM 5000 /* microseconds, the time offset for sending start frame
- * after set NETDEV_F_PAUSE_TX flag */
-#define TIME_DUR_FOR_ALL_BEACONS 25000 /* microseconds, the time duration for transmitting all beacons */
-#define TIME_MIN_WAIT_PROBE_REP 5000 /* microseconds, the minimal time for waiting for the probe
- * response frame on scanning channel */
- uint32_t dwell_msecs; /* Duration in milliseconds to stay on scanning channel */
-#define QTN_SCAN_CHAN_MUC_IDLE 0x0
-#define QTN_SCAN_CHAN_MUC_STARTED 0x1
-#define QTN_SCAN_CHAN_MUC_PROBING 0x2
-#define QTN_SCAN_CHAN_MUC_COMPLETED 0x3
-#define QTN_SCAN_CHAN_MUC_FAILED 0x4
-#define QTN_SCAN_CHAN_MUC_SCHEDULED 0x5
- uint32_t muc_status; /* written only by MuC */
-#define QTN_SCAN_CHAN_FLAG_ACTIVE 0x00000001
-#define QTN_SCNA_CHAN_FLAG_PASSIVE_FAST 0x00000002
-#define QTN_SCNA_CHAN_FLAG_PASSIVE_NORMAL 0x00000004
-#define QTN_SCNA_CHAN_FLAG_PASSIVE_SLOW 0x00000008
-#define QTN_SCAN_CHAN_TURNOFF_RF 0x00000010
- uint32_t scan_flags;
- uint32_t start_txdesc_host; /* The frame sent before go scan channel,
- * e.g. pwrsav frame in STA mode */
- uint32_t start_txdesc_bus; /* Start frame in phyaddr */
- uint16_t start_node_idx; /* the node index that frame to */
- uint16_t start_frame_len; /* frame length */
- uint32_t prbreq_txdesc_host; /* probe request frame for active scanning */
- uint32_t prbreq_txdesc_bus; /* probe request frame in phyaddr */
- uint16_t prbreq_node_idx; /* the node index that frame to */
- uint16_t prbreq_frame_len; /* frame length */
- uint32_t finish_txdesc_host; /* The frame sent after back data channel,
- * e.g. the frame to announce waking up in STA mode */
- uint32_t finish_txdesc_bus; /* Complete frame in phyaddr */
- uint16_t finish_node_idx; /* the node index that frame to */
- uint16_t finish_frame_len; /* frame length */
- uint64_t tsf[SCAN_CHAN_TSF_LOG_NUM];
-};
-
-enum qtn_ocac_tsf_log {
- OCAC_TSF_LOG_GOTO_OFF_CHAN = 0,
- OCAC_TSF_LOG_GOTO_OFF_CHAN_DONE,
- OCAC_TSF_LOG_GOTO_DATA_CHAN,
- OCAC_TSF_LOG_GOTO_DATA_CHAN_DONE,
- OCAC_TSF_LOG_NUM
-};
-
-struct qtn_ocac_info {
- uint32_t freq_band; /* frequency band, written by lhost */
- uint32_t off_channel; /* The off channel, "0" means to stop ocac in MuC, written by lhost*/
- uint32_t qosnull_txdesc_host; /* qosnull frame in virtual address, written by lhost */
- uint32_t qosnull_txdesc_bus; /* qosnull frame in physical address, written by lhost */
- uint16_t qosnull_frame_len; /* the frame length of qosnull */
- uint16_t tx_node_idx; /* the node index that qosnull frame to */
- uint16_t dwell_time; /* the required time on off channel in one beacon interval, written by lhost */
- uint16_t secure_dwell; /* milliseconds, the time on off channel within on off-channel action, using
- qosnull frame with large NAV to protect the traffic */
- uint16_t threshold_fat; /* the fat threshold to run off-channel CAC, written by lhost */
- uint16_t threshold_traffic; /* the traffic threshold to run off-channel CAC, written by lhost */
- uint16_t threshold_fat_dec; /* the threshold for consecutive fat decrease, written by lhost */
- uint16_t traffic_ctrl; /* whether to send qosnull or not, written by lhost */
- uint16_t offset_txhalt; /* milliseconds, the offset after beacon to halt tx, written by lhost */
- uint16_t offset_offchan; /* milliseconds, the offset after halt tx to switch off channel, written by lhost */
-
-#define QTN_OCAC_ON_DATA_CHAN 0x1
-#define QTN_OCAC_ON_OFF_CHAN 0x2
- uint16_t chan_status; /* current on which channel, written by MuC */
- uint16_t actual_dwell_time; /* the actual time on off channel, written by MuC */
- uint64_t tsf_log[OCAC_TSF_LOG_NUM]; /* event tsf log, written by MuC */
-};
-
-enum bmps_state_e {
- BMPS_STATE_OFF = 0, /* STA exits BMPS mode */
- BMPS_STATE_WAKE = 1, /* in BMPS mode, and is fully powered on */
- /* with PM set to 0 */
- BMPS_STATE_SLEEP = 2, /* in BMPS mode, and is fully powered off */
- /* with PM set to 1 */
- BMPS_STATE_WAKE_TO_SLEEP = 3, /* in BMPS mode, and is transitting from */
- /* power-on to power-off by sending Null frame */
- /* with PM=1 to AP */
- BMPS_STATE_LEAK_WINDOW = 4, /* in BMPS mode, and Null frame with PM=1 */
- /* has been sent, TX path is paused, */
- /* but RX patgh is still running to */
- /* receive packets from leaky AP */
- BMPS_STATE_SLEEP_TO_WAKE = 5, /* in BMPS mode, and is transitting from */
- /* power-off to power-on by sending */
- /* Null frame with PM=0 to AP */
- BMPS_STATE_BEACON_SNOOP = 6, /* in BMPS mode, and RX chain is powered up */
- /* to receive beacon */
- BMPS_STATE_MAX = BMPS_STATE_BEACON_SNOOP,
-};
-
-struct qtn_bmps_info {
- uint32_t null_txdesc_host; /* null frame in virtual address */
- uint32_t null_txdesc_bus; /* null frame in physical address */
- uint16_t null_frame_len; /* the frame length of null */
- uint16_t tx_node_idx; /* the node index that null frame to */
- enum bmps_state_e state; /* shared BMPS status */
-};
-
-struct qtn_rf_rxgain_params
-{
- uint8_t lna_on_indx;
- uint8_t max_gain_idx;
- int16_t cs_thresh_dbm;
- int16_t cca_prim_dbm;
- int16_t cca_sec_scs_off_dbm;
- int16_t cca_sec_scs_on_dbm;
-};
-
-/* MuC fops requst */
-#define MUC_FOPS_MAX_FNAME_SIZE (50)
-enum {
- MUC_FOPS_OPEN = 0,
- MUC_FOPS_READ,
- MUC_FOPS_WRITE,
- MUC_FOPS_LSEEK,
- MUC_FOPS_CLOSE,
-};
-
-enum {
- MUC_FOPS_PENDING = 0x011ADDED,
- MUC_FOPS_DONE = 0xF035D0DE,
-};
-
-enum {
- MUC_FOPS_RDONLY = 0x0,
- MUC_FOPS_WRONLY = 0x1,
- MUC_FOPS_RDWR = 0x2,
- MUC_FOPS_APPEND = 0x4,
-};
-
-struct muc_fops_req {
- volatile int32_t ret_val;
- volatile int32_t fd;
- volatile uint32_t req_state;
- volatile char *data_buff;
-};
-
-enum qdrv_cmd_muc_memdbgcnf_s {
- QDRV_CMD_MUC_MEMDBG_STATUS,
- QDRV_CMD_MUC_MEMDBG_FD_MAX,
- QDRV_CMD_MUC_MEMDBG_NODE_MAX,
- QDRV_CMD_MUC_MEMDBG_DUMP_MAX,
- QDRV_CMD_MUC_MEMDBG_RATETBL,
- QDRV_CMD_MUC_MEMDBG_MSG_SEND,
- QDRV_CMD_MUC_MEMDBG_TRACE,
- QDRV_CMD_MUC_MEMDBG_LAST
-};
-
-/* The following file indexes and file lists must all be kept in sync */
-#define FOPS_FD_EP_SAMPLES 9
-#define FOPS_FD_DCACHE_SAMPLES 10
-#ifdef PROFILE_MUC_SAMPLE_IPTR_AUC
-#define FOPS_FD_IPTR_SAMPLES 15
-#else
-#define FOPS_FD_IPTR_SAMPLES 11
-#endif
-#define FOPS_FD_UBOOT_ENV 12
-
-#ifdef TOPAZ_RFIC6_PLATFORM
-#define LHOST_CAL_FILES { \
- NULL, \
- "/proc/bootcfg/bf_factor", \
- "/tmp/txpower.txt", \
- "/proc/bootcfg/txpower.cal", \
- "/proc/bootcfg/dc_iq.cal", \
- "/mnt/jffs2/mon.out", \
- "/mnt/jffs2/gmon.out", \
- "/mnt/jffs2/pecount.out", \
- "/proc/bootcfg/pdetector.cal", \
- "/mnt/jffs2/profile_ep_muc", \
- "/mnt/jffs2/profile_dcache_muc",\
- "/mnt/jffs2/profile_iptr_muc", \
- "/proc/bootcfg/env", \
- "/etc/mtest", \
- "/proc/bootcfg/rx_iq.cal", \
- "/mnt/jffs2/profile_iptr_auc", \
- "/proc/bootcfg/bf_factor_2g", \
- "/tmp/txpower_2g.txt", \
- "/proc/bootcfg/dc_iq_2g.cal", \
- "/proc/bootcfg/pdetector_2g.cal",\
- "/tmp/bond_opt.txt", \
-}
-#else
-#define LHOST_CAL_FILES { \
- NULL, \
- "/proc/bootcfg/bf_factor", \
- "/tmp/txpower.txt", \
- "/proc/bootcfg/txpower.cal", \
- "/proc/bootcfg/dc_iq.cal", \
- "/mnt/jffs2/mon.out", \
- "/mnt/jffs2/gmon.out", \
- "/mnt/jffs2/pecount.out", \
- "/proc/bootcfg/pdetector.cal", \
- "/mnt/jffs2/profile_ep_muc", \
- "/mnt/jffs2/profile_dcache_muc",\
- "/mnt/jffs2/profile_iptr_muc", \
- "/proc/bootcfg/env", \
- "/etc/mtest", \
- "/proc/bootcfg/rx_iq.cal", \
- "/mnt/jffs2/profile_iptr_auc", \
-}
-#endif
-
-#define MUC_CAL_FILES { \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- "mon.out", \
- "gmon.out", \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
- NULL, \
-}
-
-enum tdls_ioctl_params {
- IOCTL_TDLS_STATUS = 1,
- IOCTL_TDLS_UAPSD_IND_WND,
- IOCTL_TDLS_PTI_CTRL,
- IOCTL_TDLS_PTI,
- IOCTL_TDLS_PTI_PENDING,
- IOCTL_TDLS_DBG_LEVEL,
- IOCTL_TDLS_PTI_DELAY,
- IOCTL_TDLS_PTI_EVENT = 100
-};
-
-struct qtn_tdls_args {
- uint8_t ni_macaddr[IEEE80211_ADDR_LEN];
- uint16_t ni_ncidx;
- uint32_t tdls_cmd;
- uint32_t tdls_params;
-};
-
-struct qtn_node_args
-{
- /* header */
- uint8_t ni_macaddr[IEEE80211_ADDR_LEN];
- uint8_t ni_bssid[IEEE80211_ADDR_LEN];
- uint8_t ni_nrates;
- uint8_t ni_rates[IEEE80211_RATE_MAXSIZE];
- uint8_t ni_htnrates;
- uint8_t ni_htrates[IEEE80211_HT_RATE_MAXSIZE];
- uint16_t ni_associd; /* assoc response */
- uint16_t ni_node_idx;
- uint16_t ni_flags; /* special-purpose state */
- struct wmm_params wmm_params[WME_NUM_AC];
- uint8_t ni_implicit_ba_rx; /* The RX side of the implicit BA. Zero for no implicit RX BA */
- uint8_t ni_implicit_ba_tx; /* The TX side of the implicit BA. Zero for no implicit TX BA */
- uint16_t ni_raw_bintval; /* raw beacon interval */
- uint16_t ni_implicit_ba_size; /* Size of the implicit BAs */
- uint8_t ni_qtn_ie_flags;
- uint8_t ni_vendor;
- uint8_t ni_bbf_disallowed; /* flag to disallow BBF */
- uint8_t ni_std_bf_disallowed; /* flag to disallow standard BF */
- uint8_t ni_uapsd; /* U-APSD per-node flags matching WMM STA Qos Info field */
- uint8_t ni_htcap[sizeof(struct ieee80211_htcap)]; /* Processed HT capabilities */
- uint8_t ni_htinfo[sizeof(struct ieee80211_htinfo)]; /* Processed HT info */
- uint8_t ni_vhtcap[sizeof(struct ieee80211_vhtcap)]; /* Processed VHT capabilities */
- uint8_t ni_vhtop[sizeof(struct ieee80211_vhtop)]; /* Processed VHT operational info */
- struct qtn_node_shared_stats *ni_shared_stats;
- uint32_t ni_ver_sw;
- uint32_t ni_qtn_flags;
- uint32_t ni_tdls_status;
- uint8_t ni_mu_grp[sizeof(struct ieee80211_vht_mu_grp)];
- uint16_t ni_rsn_caps; /* optional rsn capabilities */
- uint8_t rsn_ucastcipher; /* selected unicast cipher */
- uint16_t tdls_peer_associd; /* tdls peer AID allocated by AP, unique in BSS */
- uint32_t ni_rate_train;
- uint32_t ni_rate_train_peer;
-};
-
-struct qtn_beacon_args
-{
- struct wmm_params wmm_params[WME_NUM_AC];
- uint32_t bintval;
- uint32_t bo_tim_len;
- uint32_t bo_htcap;
- uint32_t bo_htinfo;
- uint32_t bo_vhtcap;
- uint32_t bo_vhtop;
- uint32_t bc_ie_head;
-};
-
-struct qtn_key {
- u_int8_t wk_keylen; /* key length in bytes */
- u_int8_t wk_flags;
-#define IEEE80211_KEY_XMIT 0x01 /* key used for xmit */
-#define IEEE80211_KEY_RECV 0x02 /* key used for recv */
-#define IEEE80211_KEY_GROUP 0x04 /* key used for WPA group operation */
-#define IEEE80211_KEY_SWCRYPT 0x10 /* host-based encrypt/decrypt */
-#define IEEE80211_KEY_SWMIC 0x20 /* host-based enmic/demic */
- u_int16_t wk_keyix; /* key index */
- u_int8_t wk_key[IEEE80211_KEYBUF_SIZE + IEEE80211_MICBUF_SIZE];
-#define wk_txmic wk_key + IEEE80211_KEYBUF_SIZE + 0 /* XXX can't () right */
-#define wk_rxmic wk_key + IEEE80211_KEYBUF_SIZE + 8 /* XXX can't () right */
- u_int64_t wk_keyrsc[IEEE80211_TID_SIZE]; /* key receive sequence counter */
- u_int64_t wk_keytsc; /* key transmit sequence counter */
- u_int32_t wk_cipher; /* cipher */
- u_int32_t wk_ncidx; /* node cache index */
-};
-#define IEEE80211_KEY_COMMON /* common flags passed in by apps */\
- (IEEE80211_KEY_XMIT | IEEE80211_KEY_RECV | IEEE80211_KEY_GROUP)
-
-struct qtn_key_args
-{
- struct qtn_key key;
- uint8_t wk_addr[IEEE80211_ADDR_LEN];
-};
-
-struct qtn_power_save_args
-{
- uint32_t enable;
- uint8_t ni_addr[IEEE80211_ADDR_LEN];
-};
-
-struct lhost_txdesc
-{
- struct host_txdesc hw_desc; /* shared between muc and lhost */
- struct sk_buff *skb;
- struct lhost_txdesc *next;
-};
-
-#define MUC_TXSTATUS_READY 0x0
-#define MUC_TXSTATUS_DONE 0x1
-
-#define MUC_RXSTATUS_DONE 0x1
-
-#define MUC_RXSTATUS_MIC_ERR 0x00000002
-#define MUC_RXSTATUS_MIC_ERR_S 1
-#define MUC_RXSTATUS_NCIDX 0x00000FFC
-#define MUC_RXSTATUS_NCIDX_S 2
-#define MUC_RXSTATUS_RXLEN 0xFFFF0000
-#define MUC_RXSTATUS_RXLEN_S 16
-
-struct qtn_link_margin_info {
- uint32_t mcs;
- uint32_t bw;
- int rssi_avg;
- int reason;
-#define QTN_LINK_MARGIN_REASON_SUCC 0
-#define QTN_LINK_MARGIN_REASON_NOSUCHNODE 1
- uint8_t mac_addr[IEEE80211_ADDR_LEN];
-};
-
-#define QTN_RESERVED_DEVIDS 2
-#define QTN_WLANID_FROM_DEVID(devid) \
- ((devid < QTN_RESERVED_DEVIDS)? 0 : (devid - QTN_RESERVED_DEVIDS))
-
-struct qtn_mu_grp_args {
- /* MU group ID. 0 means the group is not used and grp_ni is empty*/
- uint8_t grp_id;
- /* mu QMat installation status */
- /* QMat is not installed and not used */
-#define MU_QMAT_DISABLED 0
- /* QMat is installed and used */
-#define MU_QMAT_ENABLED 1
- /* QMat is installed, used but not updated */
-#define MU_QMAT_FREEZED 2
- /* QMat is installed, not used and not updated */
-#define MU_QMAT_NOT_USED 3
- uint8_t qmat_installed;
- /* the index of the grp_ni[], is also the user position */
- uint16_t aid[IEEE80211_MU_GRP_NODES_MAX];
- uint8_t ncidx[IEEE80211_MU_GRP_NODES_MAX];
- /* matrix addr offsets in sram */
- unsigned int u0_1ss_u1_1ss;
- unsigned int u0_2ss_u1_1ss;
- unsigned int u0_3ss_u1_1ss;
- unsigned int u0_1ss_u1_2ss;
- unsigned int u0_1ss_u1_3ss;
- unsigned int u0_2ss_u1_2ss;
- /* stats */
- uint32_t upd_cnt;
- int32_t rank;
-};
-
-enum grp_op {
- MU_GRP_NONE = 0,
- MU_GRP_INST,
- MU_GRP_DELE,
-};
-
-struct qtn_mu_group_update_args {
- enum grp_op op;
- struct upd_grp {
- int grp_id;
- unsigned int ap_devid;
- uint8_t ap_macaddr[IEEE80211_ADDR_LEN];
- struct upd_nodes {
- int as_sta;
- struct ieee80211_vht_mu_grp grp;
- uint8_t macaddr[IEEE80211_ADDR_LEN];
- } nodes[QTN_MU_NODES_PER_GROUP];
- } groups[QTN_MU_QMAT_MAX_SLOTS];
-};
-
-#endif // _LHOST_MUC_COMM_H
-
diff --git a/quantenna/include/qtn/log_table/1024_10log10_table.txt b/quantenna/include/qtn/log_table/1024_10log10_table.txt
deleted file mode 100644
index e95c1b3..0000000
--- a/quantenna/include/qtn/log_table/1024_10log10_table.txt
+++ /dev/null
@@ -1,4096 +0,0 @@
-0,
-3083,
-4886,
-6166,
-7158,
-7969,
-8654,
-9248,
-9772,
-10240,
-10664,
-11051,
-11407,
-11737,
-12044,
-12331,
-12600,
-12854,
-13095,
-13323,
-13540,
-13747,
-13945,
-14134,
-14315,
-14490,
-14658,
-14819,
-14975,
-15126,
-15272,
-15413,
-15550,
-15683,
-15812,
-15937,
-16059,
-16177,
-16293,
-16406,
-16515,
-16623,
-16727,
-16829,
-16929,
-17027,
-17123,
-17216,
-17308,
-17398,
-17486,
-17572,
-17657,
-17740,
-17822,
-17902,
-17981,
-18058,
-18134,
-18209,
-18282,
-18355,
-18426,
-18496,
-18565,
-18633,
-18700,
-18765,
-18830,
-18894,
-18957,
-19020,
-19081,
-19141,
-19201,
-19260,
-19318,
-19376,
-19432,
-19488,
-19543,
-19598,
-19652,
-19705,
-19758,
-19810,
-19861,
-19912,
-19962,
-20012,
-20061,
-20110,
-20158,
-20205,
-20252,
-20299,
-20345,
-20391,
-20436,
-20480,
-20525,
-20569,
-20612,
-20655,
-20697,
-20740,
-20781,
-20823,
-20864,
-20904,
-20945,
-20984,
-21024,
-21063,
-21102,
-21141,
-21179,
-21217,
-21254,
-21291,
-21328,
-21365,
-21401,
-21437,
-21473,
-21508,
-21543,
-21578,
-21613,
-21647,
-21681,
-21715,
-21749,
-21782,
-21815,
-21848,
-21881,
-21913,
-21945,
-21977,
-22009,
-22040,
-22071,
-22102,
-22133,
-22163,
-22194,
-22224,
-22254,
-22284,
-22313,
-22343,
-22372,
-22401,
-22429,
-22458,
-22487,
-22515,
-22543,
-22571,
-22598,
-22626,
-22653,
-22681,
-22708,
-22734,
-22761,
-22788,
-22814,
-22840,
-22866,
-22892,
-22918,
-22944,
-22969,
-22995,
-23020,
-23045,
-23070,
-23094,
-23119,
-23144,
-23168,
-23192,
-23216,
-23240,
-23264,
-23288,
-23311,
-23335,
-23358,
-23382,
-23405,
-23428,
-23450,
-23473,
-23496,
-23518,
-23541,
-23563,
-23585,
-23607,
-23629,
-23651,
-23673,
-23695,
-23716,
-23737,
-23759,
-23780,
-23801,
-23822,
-23843,
-23864,
-23885,
-23905,
-23926,
-23946,
-23967,
-23987,
-24007,
-24027,
-24047,
-24067,
-24087,
-24107,
-24126,
-24146,
-24165,
-24185,
-24204,
-24223,
-24242,
-24261,
-24280,
-24299,
-24318,
-24337,
-24355,
-24374,
-24392,
-24411,
-24429,
-24447,
-24466,
-24484,
-24502,
-24520,
-24538,
-24555,
-24573,
-24591,
-24608,
-24626,
-24643,
-24661,
-24678,
-24695,
-24713,
-24730,
-24747,
-24764,
-24781,
-24798,
-24815,
-24831,
-24848,
-24865,
-24881,
-24898,
-24914,
-24930,
-24947,
-24963,
-24979,
-24995,
-25011,
-25028,
-25043,
-25059,
-25075,
-25091,
-25107,
-25122,
-25138,
-25154,
-25169,
-25185,
-25200,
-25215,
-25231,
-25246,
-25261,
-25276,
-25291,
-25307,
-25322,
-25336,
-25351,
-25366,
-25381,
-25396,
-25410,
-25425,
-25440,
-25454,
-25469,
-25483,
-25498,
-25512,
-25526,
-25541,
-25555,
-25569,
-25583,
-25597,
-25611,
-25625,
-25639,
-25653,
-25667,
-25681,
-25695,
-25708,
-25722,
-25736,
-25749,
-25763,
-25777,
-25790,
-25804,
-25817,
-25830,
-25844,
-25857,
-25870,
-25883,
-25897,
-25910,
-25923,
-25936,
-25949,
-25962,
-25975,
-25988,
-26001,
-26013,
-26026,
-26039,
-26052,
-26064,
-26077,
-26090,
-26102,
-26115,
-26127,
-26140,
-26152,
-26165,
-26177,
-26189,
-26202,
-26214,
-26226,
-26238,
-26251,
-26263,
-26275,
-26287,
-26299,
-26311,
-26323,
-26335,
-26347,
-26359,
-26370,
-26382,
-26394,
-26406,
-26417,
-26429,
-26441,
-26452,
-26464,
-26476,
-26487,
-26499,
-26510,
-26522,
-26533,
-26544,
-26556,
-26567,
-26578,
-26590,
-26601,
-26612,
-26623,
-26634,
-26646,
-26657,
-26668,
-26679,
-26690,
-26701,
-26712,
-26723,
-26734,
-26745,
-26755,
-26766,
-26777,
-26788,
-26799,
-26809,
-26820,
-26831,
-26841,
-26852,
-26863,
-26873,
-26884,
-26894,
-26905,
-26915,
-26926,
-26936,
-26946,
-26957,
-26967,
-26978,
-26988,
-26998,
-27008,
-27019,
-27029,
-27039,
-27049,
-27059,
-27069,
-27080,
-27090,
-27100,
-27110,
-27120,
-27130,
-27140,
-27150,
-27160,
-27169,
-27179,
-27189,
-27199,
-27209,
-27219,
-27228,
-27238,
-27248,
-27257,
-27267,
-27277,
-27286,
-27296,
-27306,
-27315,
-27325,
-27334,
-27344,
-27353,
-27363,
-27372,
-27382,
-27391,
-27400,
-27410,
-27419,
-27429,
-27438,
-27447,
-27456,
-27466,
-27475,
-27484,
-27493,
-27502,
-27512,
-27521,
-27530,
-27539,
-27548,
-27557,
-27566,
-27575,
-27584,
-27593,
-27602,
-27611,
-27620,
-27629,
-27638,
-27647,
-27656,
-27665,
-27673,
-27682,
-27691,
-27700,
-27709,
-27717,
-27726,
-27735,
-27743,
-27752,
-27761,
-27769,
-27778,
-27787,
-27795,
-27804,
-27812,
-27821,
-27829,
-27838,
-27846,
-27855,
-27863,
-27872,
-27880,
-27889,
-27897,
-27905,
-27914,
-27922,
-27931,
-27939,
-27947,
-27955,
-27964,
-27972,
-27980,
-27988,
-27997,
-28005,
-28013,
-28021,
-28029,
-28037,
-28046,
-28054,
-28062,
-28070,
-28078,
-28086,
-28094,
-28102,
-28110,
-28118,
-28126,
-28134,
-28142,
-28150,
-28158,
-28166,
-28174,
-28181,
-28189,
-28197,
-28205,
-28213,
-28221,
-28228,
-28236,
-28244,
-28252,
-28259,
-28267,
-28275,
-28283,
-28290,
-28298,
-28306,
-28313,
-28321,
-28329,
-28336,
-28344,
-28351,
-28359,
-28366,
-28374,
-28382,
-28389,
-28397,
-28404,
-28412,
-28419,
-28426,
-28434,
-28441,
-28449,
-28456,
-28464,
-28471,
-28478,
-28486,
-28493,
-28500,
-28508,
-28515,
-28522,
-28530,
-28537,
-28544,
-28551,
-28559,
-28566,
-28573,
-28580,
-28587,
-28595,
-28602,
-28609,
-28616,
-28623,
-28630,
-28637,
-28645,
-28652,
-28659,
-28666,
-28673,
-28680,
-28687,
-28694,
-28701,
-28708,
-28715,
-28722,
-28729,
-28736,
-28743,
-28750,
-28757,
-28763,
-28770,
-28777,
-28784,
-28791,
-28798,
-28805,
-28812,
-28818,
-28825,
-28832,
-28839,
-28846,
-28852,
-28859,
-28866,
-28873,
-28879,
-28886,
-28893,
-28900,
-28906,
-28913,
-28920,
-28926,
-28933,
-28940,
-28946,
-28953,
-28959,
-28966,
-28973,
-28979,
-28986,
-28992,
-28999,
-29005,
-29012,
-29018,
-29025,
-29031,
-29038,
-29044,
-29051,
-29057,
-29064,
-29070,
-29077,
-29083,
-29090,
-29096,
-29102,
-29109,
-29115,
-29122,
-29128,
-29134,
-29141,
-29147,
-29153,
-29160,
-29166,
-29172,
-29179,
-29185,
-29191,
-29197,
-29204,
-29210,
-29216,
-29222,
-29229,
-29235,
-29241,
-29247,
-29253,
-29260,
-29266,
-29272,
-29278,
-29284,
-29290,
-29296,
-29303,
-29309,
-29315,
-29321,
-29327,
-29333,
-29339,
-29345,
-29351,
-29357,
-29363,
-29369,
-29375,
-29381,
-29387,
-29393,
-29399,
-29405,
-29411,
-29417,
-29423,
-29429,
-29435,
-29441,
-29447,
-29453,
-29459,
-29465,
-29471,
-29477,
-29482,
-29488,
-29494,
-29500,
-29506,
-29512,
-29518,
-29523,
-29529,
-29535,
-29541,
-29547,
-29552,
-29558,
-29564,
-29570,
-29575,
-29581,
-29587,
-29593,
-29598,
-29604,
-29610,
-29616,
-29621,
-29627,
-29633,
-29638,
-29644,
-29650,
-29655,
-29661,
-29667,
-29672,
-29678,
-29683,
-29689,
-29695,
-29700,
-29706,
-29711,
-29717,
-29723,
-29728,
-29734,
-29739,
-29745,
-29750,
-29756,
-29761,
-29767,
-29772,
-29778,
-29783,
-29789,
-29794,
-29800,
-29805,
-29811,
-29816,
-29822,
-29827,
-29833,
-29838,
-29843,
-29849,
-29854,
-29860,
-29865,
-29870,
-29876,
-29881,
-29886,
-29892,
-29897,
-29903,
-29908,
-29913,
-29919,
-29924,
-29929,
-29935,
-29940,
-29945,
-29950,
-29956,
-29961,
-29966,
-29972,
-29977,
-29982,
-29987,
-29993,
-29998,
-30003,
-30008,
-30013,
-30019,
-30024,
-30029,
-30034,
-30039,
-30045,
-30050,
-30055,
-30060,
-30065,
-30070,
-30076,
-30081,
-30086,
-30091,
-30096,
-30101,
-30106,
-30111,
-30116,
-30122,
-30127,
-30132,
-30137,
-30142,
-30147,
-30152,
-30157,
-30162,
-30167,
-30172,
-30177,
-30182,
-30187,
-30192,
-30197,
-30202,
-30207,
-30212,
-30217,
-30222,
-30227,
-30232,
-30237,
-30242,
-30247,
-30252,
-30257,
-30262,
-30267,
-30272,
-30277,
-30281,
-30286,
-30291,
-30296,
-30301,
-30306,
-30311,
-30316,
-30321,
-30325,
-30330,
-30335,
-30340,
-30345,
-30350,
-30355,
-30359,
-30364,
-30369,
-30374,
-30379,
-30383,
-30388,
-30393,
-30398,
-30403,
-30407,
-30412,
-30417,
-30422,
-30426,
-30431,
-30436,
-30441,
-30445,
-30450,
-30455,
-30459,
-30464,
-30469,
-30474,
-30478,
-30483,
-30488,
-30492,
-30497,
-30502,
-30506,
-30511,
-30516,
-30520,
-30525,
-30530,
-30534,
-30539,
-30544,
-30548,
-30553,
-30557,
-30562,
-30567,
-30571,
-30576,
-30580,
-30585,
-30590,
-30594,
-30599,
-30603,
-30608,
-30612,
-30617,
-30622,
-30626,
-30631,
-30635,
-30640,
-30644,
-30649,
-30653,
-30658,
-30662,
-30667,
-30671,
-30676,
-30680,
-30685,
-30689,
-30694,
-30698,
-30703,
-30707,
-30712,
-30716,
-30720,
-30725,
-30729,
-30734,
-30738,
-30743,
-30747,
-30752,
-30756,
-30760,
-30765,
-30769,
-30774,
-30778,
-30782,
-30787,
-30791,
-30795,
-30800,
-30804,
-30809,
-30813,
-30817,
-30822,
-30826,
-30830,
-30835,
-30839,
-30843,
-30848,
-30852,
-30856,
-30861,
-30865,
-30869,
-30873,
-30878,
-30882,
-30886,
-30891,
-30895,
-30899,
-30903,
-30908,
-30912,
-30916,
-30921,
-30925,
-30929,
-30933,
-30937,
-30942,
-30946,
-30950,
-30954,
-30959,
-30963,
-30967,
-30971,
-30975,
-30980,
-30984,
-30988,
-30992,
-30996,
-31001,
-31005,
-31009,
-31013,
-31017,
-31021,
-31026,
-31030,
-31034,
-31038,
-31042,
-31046,
-31050,
-31055,
-31059,
-31063,
-31067,
-31071,
-31075,
-31079,
-31083,
-31087,
-31091,
-31096,
-31100,
-31104,
-31108,
-31112,
-31116,
-31120,
-31124,
-31128,
-31132,
-31136,
-31140,
-31144,
-31148,
-31152,
-31156,
-31161,
-31165,
-31169,
-31173,
-31177,
-31181,
-31185,
-31189,
-31193,
-31197,
-31201,
-31205,
-31209,
-31213,
-31217,
-31221,
-31224,
-31228,
-31232,
-31236,
-31240,
-31244,
-31248,
-31252,
-31256,
-31260,
-31264,
-31268,
-31272,
-31276,
-31280,
-31284,
-31288,
-31291,
-31295,
-31299,
-31303,
-31307,
-31311,
-31315,
-31319,
-31323,
-31327,
-31330,
-31334,
-31338,
-31342,
-31346,
-31350,
-31354,
-31357,
-31361,
-31365,
-31369,
-31373,
-31377,
-31381,
-31384,
-31388,
-31392,
-31396,
-31400,
-31403,
-31407,
-31411,
-31415,
-31419,
-31423,
-31426,
-31430,
-31434,
-31438,
-31441,
-31445,
-31449,
-31453,
-31457,
-31460,
-31464,
-31468,
-31472,
-31475,
-31479,
-31483,
-31487,
-31490,
-31494,
-31498,
-31502,
-31505,
-31509,
-31513,
-31516,
-31520,
-31524,
-31528,
-31531,
-31535,
-31539,
-31542,
-31546,
-31550,
-31553,
-31557,
-31561,
-31565,
-31568,
-31572,
-31576,
-31579,
-31583,
-31587,
-31590,
-31594,
-31598,
-31601,
-31605,
-31608,
-31612,
-31616,
-31619,
-31623,
-31627,
-31630,
-31634,
-31638,
-31641,
-31645,
-31648,
-31652,
-31656,
-31659,
-31663,
-31666,
-31670,
-31674,
-31677,
-31681,
-31684,
-31688,
-31691,
-31695,
-31699,
-31702,
-31706,
-31709,
-31713,
-31716,
-31720,
-31724,
-31727,
-31731,
-31734,
-31738,
-31741,
-31745,
-31748,
-31752,
-31755,
-31759,
-31762,
-31766,
-31769,
-31773,
-31776,
-31780,
-31783,
-31787,
-31790,
-31794,
-31797,
-31801,
-31804,
-31808,
-31811,
-31815,
-31818,
-31822,
-31825,
-31829,
-31832,
-31836,
-31839,
-31843,
-31846,
-31849,
-31853,
-31856,
-31860,
-31863,
-31867,
-31870,
-31874,
-31877,
-31880,
-31884,
-31887,
-31891,
-31894,
-31898,
-31901,
-31904,
-31908,
-31911,
-31915,
-31918,
-31921,
-31925,
-31928,
-31932,
-31935,
-31938,
-31942,
-31945,
-31948,
-31952,
-31955,
-31959,
-31962,
-31965,
-31969,
-31972,
-31975,
-31979,
-31982,
-31985,
-31989,
-31992,
-31995,
-31999,
-32002,
-32005,
-32009,
-32012,
-32015,
-32019,
-32022,
-32025,
-32029,
-32032,
-32035,
-32039,
-32042,
-32045,
-32049,
-32052,
-32055,
-32058,
-32062,
-32065,
-32068,
-32072,
-32075,
-32078,
-32081,
-32085,
-32088,
-32091,
-32094,
-32098,
-32101,
-32104,
-32108,
-32111,
-32114,
-32117,
-32121,
-32124,
-32127,
-32130,
-32133,
-32137,
-32140,
-32143,
-32146,
-32150,
-32153,
-32156,
-32159,
-32163,
-32166,
-32169,
-32172,
-32175,
-32179,
-32182,
-32185,
-32188,
-32191,
-32195,
-32198,
-32201,
-32204,
-32207,
-32210,
-32214,
-32217,
-32220,
-32223,
-32226,
-32230,
-32233,
-32236,
-32239,
-32242,
-32245,
-32249,
-32252,
-32255,
-32258,
-32261,
-32264,
-32267,
-32271,
-32274,
-32277,
-32280,
-32283,
-32286,
-32289,
-32292,
-32296,
-32299,
-32302,
-32305,
-32308,
-32311,
-32314,
-32317,
-32320,
-32324,
-32327,
-32330,
-32333,
-32336,
-32339,
-32342,
-32345,
-32348,
-32351,
-32354,
-32358,
-32361,
-32364,
-32367,
-32370,
-32373,
-32376,
-32379,
-32382,
-32385,
-32388,
-32391,
-32394,
-32397,
-32400,
-32403,
-32407,
-32410,
-32413,
-32416,
-32419,
-32422,
-32425,
-32428,
-32431,
-32434,
-32437,
-32440,
-32443,
-32446,
-32449,
-32452,
-32455,
-32458,
-32461,
-32464,
-32467,
-32470,
-32473,
-32476,
-32479,
-32482,
-32485,
-32488,
-32491,
-32494,
-32497,
-32500,
-32503,
-32506,
-32509,
-32512,
-32515,
-32518,
-32521,
-32524,
-32527,
-32530,
-32533,
-32536,
-32538,
-32541,
-32544,
-32547,
-32550,
-32553,
-32556,
-32559,
-32562,
-32565,
-32568,
-32571,
-32574,
-32577,
-32580,
-32583,
-32586,
-32588,
-32591,
-32594,
-32597,
-32600,
-32603,
-32606,
-32609,
-32612,
-32615,
-32618,
-32620,
-32623,
-32626,
-32629,
-32632,
-32635,
-32638,
-32641,
-32644,
-32646,
-32649,
-32652,
-32655,
-32658,
-32661,
-32664,
-32667,
-32669,
-32672,
-32675,
-32678,
-32681,
-32684,
-32687,
-32690,
-32692,
-32695,
-32698,
-32701,
-32704,
-32707,
-32709,
-32712,
-32715,
-32718,
-32721,
-32724,
-32727,
-32729,
-32732,
-32735,
-32738,
-32741,
-32743,
-32746,
-32749,
-32752,
-32755,
-32758,
-32760,
-32763,
-32766,
-32769,
-32772,
-32774,
-32777,
-32780,
-32783,
-32786,
-32788,
-32791,
-32794,
-32797,
-32800,
-32802,
-32805,
-32808,
-32811,
-32813,
-32816,
-32819,
-32822,
-32825,
-32827,
-32830,
-32833,
-32836,
-32838,
-32841,
-32844,
-32847,
-32849,
-32852,
-32855,
-32858,
-32860,
-32863,
-32866,
-32869,
-32871,
-32874,
-32877,
-32880,
-32882,
-32885,
-32888,
-32891,
-32893,
-32896,
-32899,
-32901,
-32904,
-32907,
-32910,
-32912,
-32915,
-32918,
-32921,
-32923,
-32926,
-32929,
-32931,
-32934,
-32937,
-32939,
-32942,
-32945,
-32948,
-32950,
-32953,
-32956,
-32958,
-32961,
-32964,
-32966,
-32969,
-32972,
-32974,
-32977,
-32980,
-32982,
-32985,
-32988,
-32990,
-32993,
-32996,
-32998,
-33001,
-33004,
-33006,
-33009,
-33012,
-33014,
-33017,
-33020,
-33022,
-33025,
-33028,
-33030,
-33033,
-33036,
-33038,
-33041,
-33044,
-33046,
-33049,
-33051,
-33054,
-33057,
-33059,
-33062,
-33065,
-33067,
-33070,
-33072,
-33075,
-33078,
-33080,
-33083,
-33086,
-33088,
-33091,
-33093,
-33096,
-33099,
-33101,
-33104,
-33106,
-33109,
-33112,
-33114,
-33117,
-33119,
-33122,
-33125,
-33127,
-33130,
-33132,
-33135,
-33137,
-33140,
-33143,
-33145,
-33148,
-33150,
-33153,
-33156,
-33158,
-33161,
-33163,
-33166,
-33168,
-33171,
-33173,
-33176,
-33179,
-33181,
-33184,
-33186,
-33189,
-33191,
-33194,
-33196,
-33199,
-33202,
-33204,
-33207,
-33209,
-33212,
-33214,
-33217,
-33219,
-33222,
-33224,
-33227,
-33229,
-33232,
-33235,
-33237,
-33240,
-33242,
-33245,
-33247,
-33250,
-33252,
-33255,
-33257,
-33260,
-33262,
-33265,
-33267,
-33270,
-33272,
-33275,
-33277,
-33280,
-33282,
-33285,
-33287,
-33290,
-33292,
-33295,
-33297,
-33300,
-33302,
-33305,
-33307,
-33310,
-33312,
-33315,
-33317,
-33320,
-33322,
-33325,
-33327,
-33330,
-33332,
-33334,
-33337,
-33339,
-33342,
-33344,
-33347,
-33349,
-33352,
-33354,
-33357,
-33359,
-33362,
-33364,
-33366,
-33369,
-33371,
-33374,
-33376,
-33379,
-33381,
-33384,
-33386,
-33389,
-33391,
-33393,
-33396,
-33398,
-33401,
-33403,
-33406,
-33408,
-33410,
-33413,
-33415,
-33418,
-33420,
-33423,
-33425,
-33427,
-33430,
-33432,
-33435,
-33437,
-33439,
-33442,
-33444,
-33447,
-33449,
-33452,
-33454,
-33456,
-33459,
-33461,
-33464,
-33466,
-33468,
-33471,
-33473,
-33476,
-33478,
-33480,
-33483,
-33485,
-33487,
-33490,
-33492,
-33495,
-33497,
-33499,
-33502,
-33504,
-33507,
-33509,
-33511,
-33514,
-33516,
-33518,
-33521,
-33523,
-33526,
-33528,
-33530,
-33533,
-33535,
-33537,
-33540,
-33542,
-33544,
-33547,
-33549,
-33551,
-33554,
-33556,
-33559,
-33561,
-33563,
-33566,
-33568,
-33570,
-33573,
-33575,
-33577,
-33580,
-33582,
-33584,
-33587,
-33589,
-33591,
-33594,
-33596,
-33598,
-33601,
-33603,
-33605,
-33608,
-33610,
-33612,
-33615,
-33617,
-33619,
-33622,
-33624,
-33626,
-33628,
-33631,
-33633,
-33635,
-33638,
-33640,
-33642,
-33645,
-33647,
-33649,
-33652,
-33654,
-33656,
-33658,
-33661,
-33663,
-33665,
-33668,
-33670,
-33672,
-33674,
-33677,
-33679,
-33681,
-33684,
-33686,
-33688,
-33690,
-33693,
-33695,
-33697,
-33700,
-33702,
-33704,
-33706,
-33709,
-33711,
-33713,
-33715,
-33718,
-33720,
-33722,
-33725,
-33727,
-33729,
-33731,
-33734,
-33736,
-33738,
-33740,
-33743,
-33745,
-33747,
-33749,
-33752,
-33754,
-33756,
-33758,
-33761,
-33763,
-33765,
-33767,
-33770,
-33772,
-33774,
-33776,
-33779,
-33781,
-33783,
-33785,
-33787,
-33790,
-33792,
-33794,
-33796,
-33799,
-33801,
-33803,
-33805,
-33807,
-33810,
-33812,
-33814,
-33816,
-33819,
-33821,
-33823,
-33825,
-33827,
-33830,
-33832,
-33834,
-33836,
-33838,
-33841,
-33843,
-33845,
-33847,
-33849,
-33852,
-33854,
-33856,
-33858,
-33860,
-33863,
-33865,
-33867,
-33869,
-33871,
-33874,
-33876,
-33878,
-33880,
-33882,
-33885,
-33887,
-33889,
-33891,
-33893,
-33895,
-33898,
-33900,
-33902,
-33904,
-33906,
-33909,
-33911,
-33913,
-33915,
-33917,
-33919,
-33922,
-33924,
-33926,
-33928,
-33930,
-33932,
-33935,
-33937,
-33939,
-33941,
-33943,
-33945,
-33947,
-33950,
-33952,
-33954,
-33956,
-33958,
-33960,
-33962,
-33965,
-33967,
-33969,
-33971,
-33973,
-33975,
-33977,
-33980,
-33982,
-33984,
-33986,
-33988,
-33990,
-33992,
-33995,
-33997,
-33999,
-34001,
-34003,
-34005,
-34007,
-34009,
-34012,
-34014,
-34016,
-34018,
-34020,
-34022,
-34024,
-34026,
-34028,
-34031,
-34033,
-34035,
-34037,
-34039,
-34041,
-34043,
-34045,
-34047,
-34050,
-34052,
-34054,
-34056,
-34058,
-34060,
-34062,
-34064,
-34066,
-34068,
-34071,
-34073,
-34075,
-34077,
-34079,
-34081,
-34083,
-34085,
-34087,
-34089,
-34091,
-34094,
-34096,
-34098,
-34100,
-34102,
-34104,
-34106,
-34108,
-34110,
-34112,
-34114,
-34116,
-34118,
-34121,
-34123,
-34125,
-34127,
-34129,
-34131,
-34133,
-34135,
-34137,
-34139,
-34141,
-34143,
-34145,
-34147,
-34149,
-34151,
-34154,
-34156,
-34158,
-34160,
-34162,
-34164,
-34166,
-34168,
-34170,
-34172,
-34174,
-34176,
-34178,
-34180,
-34182,
-34184,
-34186,
-34188,
-34190,
-34192,
-34194,
-34196,
-34199,
-34201,
-34203,
-34205,
-34207,
-34209,
-34211,
-34213,
-34215,
-34217,
-34219,
-34221,
-34223,
-34225,
-34227,
-34229,
-34231,
-34233,
-34235,
-34237,
-34239,
-34241,
-34243,
-34245,
-34247,
-34249,
-34251,
-34253,
-34255,
-34257,
-34259,
-34261,
-34263,
-34265,
-34267,
-34269,
-34271,
-34273,
-34275,
-34277,
-34279,
-34281,
-34283,
-34285,
-34287,
-34289,
-34291,
-34293,
-34295,
-34297,
-34299,
-34301,
-34303,
-34305,
-34307,
-34309,
-34311,
-34313,
-34315,
-34317,
-34319,
-34321,
-34323,
-34325,
-34327,
-34329,
-34331,
-34333,
-34335,
-34337,
-34339,
-34341,
-34343,
-34345,
-34347,
-34349,
-34351,
-34352,
-34354,
-34356,
-34358,
-34360,
-34362,
-34364,
-34366,
-34368,
-34370,
-34372,
-34374,
-34376,
-34378,
-34380,
-34382,
-34384,
-34386,
-34388,
-34390,
-34392,
-34394,
-34395,
-34397,
-34399,
-34401,
-34403,
-34405,
-34407,
-34409,
-34411,
-34413,
-34415,
-34417,
-34419,
-34421,
-34423,
-34425,
-34427,
-34428,
-34430,
-34432,
-34434,
-34436,
-34438,
-34440,
-34442,
-34444,
-34446,
-34448,
-34450,
-34452,
-34454,
-34455,
-34457,
-34459,
-34461,
-34463,
-34465,
-34467,
-34469,
-34471,
-34473,
-34475,
-34476,
-34478,
-34480,
-34482,
-34484,
-34486,
-34488,
-34490,
-34492,
-34494,
-34496,
-34497,
-34499,
-34501,
-34503,
-34505,
-34507,
-34509,
-34511,
-34513,
-34515,
-34516,
-34518,
-34520,
-34522,
-34524,
-34526,
-34528,
-34530,
-34532,
-34533,
-34535,
-34537,
-34539,
-34541,
-34543,
-34545,
-34547,
-34549,
-34550,
-34552,
-34554,
-34556,
-34558,
-34560,
-34562,
-34564,
-34565,
-34567,
-34569,
-34571,
-34573,
-34575,
-34577,
-34579,
-34580,
-34582,
-34584,
-34586,
-34588,
-34590,
-34592,
-34593,
-34595,
-34597,
-34599,
-34601,
-34603,
-34605,
-34606,
-34608,
-34610,
-34612,
-34614,
-34616,
-34618,
-34619,
-34621,
-34623,
-34625,
-34627,
-34629,
-34631,
-34632,
-34634,
-34636,
-34638,
-34640,
-34642,
-34643,
-34645,
-34647,
-34649,
-34651,
-34653,
-34654,
-34656,
-34658,
-34660,
-34662,
-34664,
-34665,
-34667,
-34669,
-34671,
-34673,
-34675,
-34676,
-34678,
-34680,
-34682,
-34684,
-34686,
-34687,
-34689,
-34691,
-34693,
-34695,
-34696,
-34698,
-34700,
-34702,
-34704,
-34706,
-34707,
-34709,
-34711,
-34713,
-34715,
-34716,
-34718,
-34720,
-34722,
-34724,
-34725,
-34727,
-34729,
-34731,
-34733,
-34735,
-34736,
-34738,
-34740,
-34742,
-34744,
-34745,
-34747,
-34749,
-34751,
-34753,
-34754,
-34756,
-34758,
-34760,
-34761,
-34763,
-34765,
-34767,
-34769,
-34770,
-34772,
-34774,
-34776,
-34778,
-34779,
-34781,
-34783,
-34785,
-34787,
-34788,
-34790,
-34792,
-34794,
-34795,
-34797,
-34799,
-34801,
-34803,
-34804,
-34806,
-34808,
-34810,
-34811,
-34813,
-34815,
-34817,
-34818,
-34820,
-34822,
-34824,
-34826,
-34827,
-34829,
-34831,
-34833,
-34834,
-34836,
-34838,
-34840,
-34841,
-34843,
-34845,
-34847,
-34848,
-34850,
-34852,
-34854,
-34855,
-34857,
-34859,
-34861,
-34862,
-34864,
-34866,
-34868,
-34869,
-34871,
-34873,
-34875,
-34876,
-34878,
-34880,
-34882,
-34883,
-34885,
-34887,
-34889,
-34890,
-34892,
-34894,
-34896,
-34897,
-34899,
-34901,
-34903,
-34904,
-34906,
-34908,
-34910,
-34911,
-34913,
-34915,
-34916,
-34918,
-34920,
-34922,
-34923,
-34925,
-34927,
-34929,
-34930,
-34932,
-34934,
-34935,
-34937,
-34939,
-34941,
-34942,
-34944,
-34946,
-34948,
-34949,
-34951,
-34953,
-34954,
-34956,
-34958,
-34960,
-34961,
-34963,
-34965,
-34966,
-34968,
-34970,
-34972,
-34973,
-34975,
-34977,
-34978,
-34980,
-34982,
-34983,
-34985,
-34987,
-34989,
-34990,
-34992,
-34994,
-34995,
-34997,
-34999,
-35001,
-35002,
-35004,
-35006,
-35007,
-35009,
-35011,
-35012,
-35014,
-35016,
-35017,
-35019,
-35021,
-35023,
-35024,
-35026,
-35028,
-35029,
-35031,
-35033,
-35034,
-35036,
-35038,
-35039,
-35041,
-35043,
-35044,
-35046,
-35048,
-35050,
-35051,
-35053,
-35055,
-35056,
-35058,
-35060,
-35061,
-35063,
-35065,
-35066,
-35068,
-35070,
-35071,
-35073,
-35075,
-35076,
-35078,
-35080,
-35081,
-35083,
-35085,
-35086,
-35088,
-35090,
-35091,
-35093,
-35095,
-35096,
-35098,
-35100,
-35101,
-35103,
-35105,
-35106,
-35108,
-35110,
-35111,
-35113,
-35115,
-35116,
-35118,
-35120,
-35121,
-35123,
-35124,
-35126,
-35128,
-35129,
-35131,
-35133,
-35134,
-35136,
-35138,
-35139,
-35141,
-35143,
-35144,
-35146,
-35148,
-35149,
-35151,
-35152,
-35154,
-35156,
-35157,
-35159,
-35161,
-35162,
-35164,
-35166,
-35167,
-35169,
-35170,
-35172,
-35174,
-35175,
-35177,
-35179,
-35180,
-35182,
-35184,
-35185,
-35187,
-35188,
-35190,
-35192,
-35193,
-35195,
-35197,
-35198,
-35200,
-35201,
-35203,
-35205,
-35206,
-35208,
-35210,
-35211,
-35213,
-35214,
-35216,
-35218,
-35219,
-35221,
-35222,
-35224,
-35226,
-35227,
-35229,
-35231,
-35232,
-35234,
-35235,
-35237,
-35239,
-35240,
-35242,
-35243,
-35245,
-35247,
-35248,
-35250,
-35251,
-35253,
-35255,
-35256,
-35258,
-35260,
-35261,
-35263,
-35264,
-35266,
-35268,
-35269,
-35271,
-35272,
-35274,
-35276,
-35277,
-35279,
-35280,
-35282,
-35283,
-35285,
-35287,
-35288,
-35290,
-35291,
-35293,
-35295,
-35296,
-35298,
-35299,
-35301,
-35303,
-35304,
-35306,
-35307,
-35309,
-35311,
-35312,
-35314,
-35315,
-35317,
-35318,
-35320,
-35322,
-35323,
-35325,
-35326,
-35328,
-35329,
-35331,
-35333,
-35334,
-35336,
-35337,
-35339,
-35341,
-35342,
-35344,
-35345,
-35347,
-35348,
-35350,
-35352,
-35353,
-35355,
-35356,
-35358,
-35359,
-35361,
-35362,
-35364,
-35366,
-35367,
-35369,
-35370,
-35372,
-35373,
-35375,
-35377,
-35378,
-35380,
-35381,
-35383,
-35384,
-35386,
-35387,
-35389,
-35391,
-35392,
-35394,
-35395,
-35397,
-35398,
-35400,
-35401,
-35403,
-35405,
-35406,
-35408,
-35409,
-35411,
-35412,
-35414,
-35415,
-35417,
-35418,
-35420,
-35422,
-35423,
-35425,
-35426,
-35428,
-35429,
-35431,
-35432,
-35434,
-35435,
-35437,
-35439,
-35440,
-35442,
-35443,
-35445,
-35446,
-35448,
-35449,
-35451,
-35452,
-35454,
-35455,
-35457,
-35459,
-35460,
-35462,
-35463,
-35465,
-35466,
-35468,
-35469,
-35471,
-35472,
-35474,
-35475,
-35477,
-35478,
-35480,
-35481,
-35483,
-35484,
-35486,
-35488,
-35489,
-35491,
-35492,
-35494,
-35495,
-35497,
-35498,
-35500,
-35501,
-35503,
-35504,
-35506,
-35507,
-35509,
-35510,
-35512,
-35513,
-35515,
-35516,
-35518,
-35519,
-35521,
-35522,
-35524,
-35525,
-35527,
-35528,
-35530,
-35531,
-35533,
-35534,
-35536,
-35538,
-35539,
-35541,
-35542,
-35544,
-35545,
-35547,
-35548,
-35550,
-35551,
-35553,
-35554,
-35556,
-35557,
-35559,
-35560,
-35562,
-35563,
-35565,
-35566,
-35568,
-35569,
-35571,
-35572,
-35573,
-35575,
-35576,
-35578,
-35579,
-35581,
-35582,
-35584,
-35585,
-35587,
-35588,
-35590,
-35591,
-35593,
-35594,
-35596,
-35597,
-35599,
-35600,
-35602,
-35603,
-35605,
-35606,
-35608,
-35609,
-35611,
-35612,
-35614,
-35615,
-35617,
-35618,
-35620,
-35621,
-35622,
-35624,
-35625,
-35627,
-35628,
-35630,
-35631,
-35633,
-35634,
-35636,
-35637,
-35639,
-35640,
-35642,
-35643,
-35645,
-35646,
-35648,
-35649,
-35650,
-35652,
-35653,
-35655,
-35656,
-35658,
-35659,
-35661,
-35662,
-35664,
-35665,
-35667,
-35668,
-35670,
-35671,
-35672,
-35674,
-35675,
-35677,
-35678,
-35680,
-35681,
-35683,
-35684,
-35686,
-35687,
-35688,
-35690,
-35691,
-35693,
-35694,
-35696,
-35697,
-35699,
-35700,
-35702,
-35703,
-35704,
-35706,
-35707,
-35709,
-35710,
-35712,
-35713,
-35715,
-35716,
-35717,
-35719,
-35720,
-35722,
-35723,
-35725,
-35726,
-35728,
-35729,
-35730,
-35732,
-35733,
-35735,
-35736,
-35738,
-35739,
-35741,
-35742,
-35743,
-35745,
-35746,
-35748,
-35749,
-35751,
-35752,
-35753,
-35755,
-35756,
-35758,
-35759,
-35761,
-35762,
-35764,
-35765,
-35766,
-35768,
-35769,
-35771,
-35772,
-35774,
-35775,
-35776,
-35778,
-35779,
-35781,
-35782,
-35783,
-35785,
-35786,
-35788,
-35789,
-35791,
-35792,
-35793,
-35795,
-35796,
-35798,
-35799,
-35801,
-35802,
-35803,
-35805,
-35806,
-35808,
-35809,
-35810,
-35812,
-35813,
-35815,
-35816,
-35818,
-35819,
-35820,
-35822,
-35823,
-35825,
-35826,
-35827,
-35829,
-35830,
-35832,
-35833,
-35834,
-35836,
-35837,
-35839,
-35840,
-35842,
-35843,
-35844,
-35846,
-35847,
-35849,
-35850,
-35851,
-35853,
-35854,
-35856,
-35857,
-35858,
-35860,
-35861,
-35863,
-35864,
-35865,
-35867,
-35868,
-35870,
-35871,
-35872,
-35874,
-35875,
-35877,
-35878,
-35879,
-35881,
-35882,
-35883,
-35885,
-35886,
-35888,
-35889,
-35890,
-35892,
-35893,
-35895,
-35896,
-35897,
-35899,
-35900,
-35902,
-35903,
-35904,
-35906,
-35907,
-35908,
-35910,
-35911,
-35913,
-35914,
-35915,
-35917,
-35918,
-35920,
-35921,
-35922,
-35924,
-35925,
-35926,
-35928,
-35929,
-35931,
-35932,
-35933,
-35935,
-35936,
-35937,
-35939,
-35940,
-35942,
-35943,
-35944,
-35946,
-35947,
-35948,
-35950,
-35951,
-35953,
-35954,
-35955,
-35957,
-35958,
-35959,
-35961,
-35962,
-35964,
-35965,
-35966,
-35968,
-35969,
-35970,
-35972,
-35973,
-35974,
-35976,
-35977,
-35979,
-35980,
-35981,
-35983,
-35984,
-35985,
-35987,
-35988,
-35989,
-35991,
-35992,
-35994,
-35995,
-35996,
-35998,
-35999,
-36000,
-36002,
-36003,
-36004,
-36006,
-36007,
-36008,
-36010,
-36011,
-36013,
-36014,
-36015,
-36017,
-36018,
-36019,
-36021,
-36022,
-36023,
-36025,
-36026,
-36027,
-36029,
-36030,
-36031,
-36033,
-36034,
-36035,
-36037,
-36038,
-36040,
-36041,
-36042,
-36044,
-36045,
-36046,
-36048,
-36049,
-36050,
-36052,
-36053,
-36054,
-36056,
-36057,
-36058,
-36060,
-36061,
-36062,
-36064,
-36065,
-36066,
-36068,
-36069,
-36070,
-36072,
-36073,
-36074,
-36076,
-36077,
-36078,
-36080,
-36081,
-36082,
-36084,
-36085,
-36086,
-36088,
-36089,
-36090,
-36092,
-36093,
-36094,
-36096,
-36097,
-36098,
-36100,
-36101,
-36102,
-36104,
-36105,
-36106,
-36108,
-36109,
-36110,
-36112,
-36113,
-36114,
-36116,
-36117,
-36118,
-36119,
-36121,
-36122,
-36123,
-36125,
-36126,
-36127,
-36129,
-36130,
-36131,
-36133,
-36134,
-36135,
-36137,
-36138,
-36139,
-36141,
-36142,
-36143,
-36144,
-36146,
-36147,
-36148,
-36150,
-36151,
-36152,
-36154,
-36155,
-36156,
-36158,
-36159,
-36160,
-36162,
-36163,
-36164,
-36165,
-36167,
-36168,
-36169,
-36171,
-36172,
-36173,
-36175,
-36176,
-36177,
-36179,
-36180,
-36181,
-36182,
-36184,
-36185,
-36186,
-36188,
-36189,
-36190,
-36192,
-36193,
-36194,
-36195,
-36197,
-36198,
-36199,
-36201,
-36202,
-36203,
-36205,
-36206,
-36207,
-36208,
-36210,
-36211,
-36212,
-36214,
-36215,
-36216,
-36217,
-36219,
-36220,
-36221,
-36223,
-36224,
-36225,
-36226,
-36228,
-36229,
-36230,
-36232,
-36233,
-36234,
-36235,
-36237,
-36238,
-36239,
-36241,
-36242,
-36243,
-36244,
-36246,
-36247,
-36248,
-36250,
-36251,
-36252,
-36253,
-36255,
-36256,
-36257,
-36259,
-36260,
-36261,
-36262,
-36264,
-36265,
-36266,
-36268,
-36269,
-36270,
-36271,
-36273,
-36274,
-36275,
-36276,
-36278,
-36279,
-36280,
-36282,
-36283,
-36284,
-36285,
-36287,
-36288,
-36289,
-36290,
-36292,
-36293,
-36294,
-36296,
-36297,
-36298,
-36299,
-36301,
-36302,
-36303,
-36304,
-36306,
-36307,
-36308,
-36310,
-36311,
-36312,
-36313,
-36315,
-36316,
-36317,
-36318,
-36320,
-36321,
-36322,
-36323,
-36325,
-36326,
-36327,
-36328,
-36330,
-36331,
-36332,
-36333,
-36335,
-36336,
-36337,
-36339,
-36340,
-36341,
-36342,
-36344,
-36345,
-36346,
-36347,
-36349,
-36350,
-36351,
-36352,
-36354,
-36355,
-36356,
-36357,
-36359,
-36360,
-36361,
-36362,
-36364,
-36365,
-36366,
-36367,
-36369,
-36370,
-36371,
-36372,
-36374,
-36375,
-36376,
-36377,
-36379,
-36380,
-36381,
-36382,
-36384,
-36385,
-36386,
-36387,
-36389,
-36390,
-36391,
-36392,
-36394,
-36395,
-36396,
-36397,
-36398,
-36400,
-36401,
-36402,
-36403,
-36405,
-36406,
-36407,
-36408,
-36410,
-36411,
-36412,
-36413,
-36415,
-36416,
-36417,
-36418,
-36420,
-36421,
-36422,
-36423,
-36424,
-36426,
-36427,
-36428,
-36429,
-36431,
-36432,
-36433,
-36434,
-36436,
-36437,
-36438,
-36439,
-36440,
-36442,
-36443,
-36444,
-36445,
-36447,
-36448,
-36449,
-36450,
-36451,
-36453,
-36454,
-36455,
-36456,
-36458,
-36459,
-36460,
-36461,
-36463,
-36464,
-36465,
-36466,
-36467,
-36469,
-36470,
-36471,
-36472,
-36474,
-36475,
-36476,
-36477,
-36478,
-36480,
-36481,
-36482,
-36483,
-36484,
-36486,
-36487,
-36488,
-36489,
-36491,
-36492,
-36493,
-36494,
-36495,
-36497,
-36498,
-36499,
-36500,
-36501,
-36503,
-36504,
-36505,
-36506,
-36508,
-36509,
-36510,
-36511,
-36512,
-36514,
-36515,
-36516,
-36517,
-36518,
-36520,
-36521,
-36522,
-36523,
-36524,
-36526,
-36527,
-36528,
-36529,
-36530,
-36532,
-36533,
-36534,
-36535,
-36536,
-36538,
-36539,
-36540,
-36541,
-36542,
-36544,
-36545,
-36546,
-36547,
-36548,
-36550,
-36551,
-36552,
-36553,
-36554,
-36556,
-36557,
-36558,
-36559,
-36560,
-36562,
-36563,
-36564,
-36565,
-36566,
-36568,
-36569,
-36570,
-36571,
-36572,
-36574,
-36575,
-36576,
-36577,
-36578,
-36580,
-36581,
-36582,
-36583,
-36584,
-36586,
-36587,
-36588,
-36589,
-36590,
-36591,
-36593,
-36594,
-36595,
-36596,
-36597,
-36599,
-36600,
-36601,
-36602,
-36603,
-36605,
-36606,
-36607,
-36608,
-36609,
-36610,
-36612,
-36613,
-36614,
-36615,
-36616,
-36618,
-36619,
-36620,
-36621,
-36622,
-36623,
-36625,
-36626,
-36627,
-36628,
-36629,
-36630,
-36632,
-36633,
-36634,
-36635,
-36636,
-36638,
-36639,
-36640,
-36641,
-36642,
-36643,
-36645,
-36646,
-36647,
-36648,
-36649,
-36650,
-36652,
-36653,
-36654,
-36655,
-36656,
-36657,
-36659,
-36660,
-36661,
-36662,
-36663,
-36665,
-36666,
-36667,
-36668,
-36669,
-36670,
-36672,
-36673,
-36674,
-36675,
-36676,
-36677,
-36678,
-36680,
-36681,
-36682,
-36683,
-36684,
-36685,
-36687,
-36688,
-36689,
-36690,
-36691,
-36692,
-36694,
-36695,
-36696,
-36697,
-36698,
-36699,
-36701,
-36702,
-36703,
-36704,
-36705,
-36706,
-36708,
-36709,
-36710,
-36711,
-36712,
-36713,
-36714,
-36716,
-36717,
-36718,
-36719,
-36720,
-36721,
-36723,
-36724,
-36725,
-36726,
-36727,
-36728,
-36729,
-36731,
-36732,
-36733,
-36734,
-36735,
-36736,
-36738,
-36739,
-36740,
-36741,
-36742,
-36743,
-36744,
-36746,
-36747,
-36748,
-36749,
-36750,
-36751,
-36752,
-36754,
-36755,
-36756,
-36757,
-36758,
-36759,
-36760,
-36762,
-36763,
-36764,
-36765,
-36766,
-36767,
-36768,
-36770,
-36771,
-36772,
-36773,
-36774,
-36775,
-36776,
-36778,
-36779,
-36780,
-36781,
-36782,
-36783,
-36784,
-36786,
-36787,
-36788,
-36789,
-36790,
-36791,
-36792,
-36793,
-36795,
-36796,
-36797,
-36798,
-36799,
-36800,
-36801,
-36803,
-36804,
-36805,
-36806,
-36807,
-36808,
-36809,
-36810,
-36812,
-36813,
-36814,
-36815,
-36816,
-36817,
-36818,
-36820,
-36821,
-36822,
-36823,
-36824,
-36825,
-36826,
-36827,
-36829,
-36830,
-36831,
-36832,
-36833,
-36834,
-36835,
-36836,
-36838,
-36839,
-36840,
-36841,
-36842,
-36843,
-36844,
-36845,
-36847,
-36848,
-36849,
-36850,
-36851,
-36852,
-36853,
-36854,
-36855,
-36857,
-36858,
-36859,
-36860,
-36861,
-36862,
-36863,
-36864,
-36866,
-36867,
-36868,
-36869,
-36870,
-36871,
-36872,
-36873,
-36874,
-36876,
-36877,
-36878,
-36879,
-36880,
-36881,
-36882,
-36883,
-36884,
-36886,
-36887,
-36888,
-36889,
-36890,
-36891,
-36892,
-36893,
-36894,
-36896,
-36897,
-36898,
-36899,
-36900,
-36901,
-36902,
-36903,
-36904,
-36906,
-36907,
-36908,
-36909,
-36910,
-36911,
-36912,
-36913,
-36914,
-36916,
-36917,
-36918,
-36919,
-36920,
-36921,
-36922,
-36923,
-36924,
-36925,
-36927,
-36928,
-36929,
-36930,
-36931,
-36932,
-36933,
-36934,
-36935,
-36936,
-36938,
-36939,
-36940,
-36941,
-36942,
-36943,
-36944,
-36945,
-36946,
-36947,
-36949,
-36950,
-36951,
-36952,
-36953,
-36954,
-36955,
-36956,
-36957,
-36958,
-36959,
-36961,
-36962,
-36963,
-36964,
-36965,
-36966,
-36967,
-36968,
-36969,
-36970,
-36971,
-36973,
-36974,
-36975,
-36976,
-36977,
-36978,
-36979,
-36980,
-36981,
-36982,
-36983,
-36985,
-36986,
-36987,
-36988,
-36989,
-36990,
-36991,
diff --git a/quantenna/include/qtn/mproc_sync.h b/quantenna/include/qtn/mproc_sync.h
deleted file mode 100644
index 8c5e3f5..0000000
--- a/quantenna/include/qtn/mproc_sync.h
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_MPROC_SYNC_H
-#define __QTN_MPROC_SYNC_H
-
-#ifdef __KERNEL__
-#include <linux/sched.h>
-#endif
-
-#include "mproc_sync_base.h"
-#include "semaphores.h"
-#include "shared_params.h"
-#include "topaz_tqe_cpuif.h"
-
-#ifndef __ASSEMBLY__
-
-#define QTN_MPROC_TIMEOUT (6 * HZ)
-
-/*
- * NOTE: functions started from "__" are internal, and must not be used by client code.
- */
-
-/* Enum represents each CPU in system */
-typedef enum _QTN_SOC_CPU
-{
- QTN_LHOST_SOC_CPU = (1 << 0),
- QTN_MUC_SOC_CPU = (1 << 1),
- QTN_DSP_SOC_CPU = (1 << 2)
-} QTN_SOC_CPU;
-
-#if QTN_SEM_TRACE
-#define QTN_SEM_TRACE_NUM 12
-#define QTN_SEM_TRACE_DEPTH 2
-
-#define SEM_TRACE_CPU_LHOST 0
-#define SEM_TRACE_CPU_MUC 1
-#define SEM_TRACE_CPU_DSP 2
-#define SEM_TRACE_CPU_AUC 3
-#define SEM_TRACE_CPU_NUM 4
-
-enum qtn_sem_state {
- QTN_SEM_STARTLOCK = 0,
- QTN_SEM_LOCKED = 1,
- QTN_SEM_UNLOCKED = 2,
-};
-
-struct qtn_sem_trace_entry {
- volatile uint32_t pos;
- volatile uint64_t jiffies; /* per cpu jiffies: lhost: 32b jiffies; mus: 64b jiffies; dsp: no jiffies */
- volatile uint32_t state;
- volatile uint32_t caller_file[QTN_SEM_TRACE_DEPTH];
- volatile uint32_t caller_line[QTN_SEM_TRACE_DEPTH];
-};
-struct qtn_sem_trace_log {
- volatile uint32_t trace_pos[SEM_TRACE_CPU_NUM];
- volatile uint32_t trace_idx[SEM_TRACE_CPU_NUM];
- volatile uint32_t last_dump_pos[SEM_TRACE_CPU_NUM];
- struct qtn_sem_trace_entry traces[SEM_TRACE_CPU_NUM][QTN_SEM_TRACE_NUM];
-};
-
-#if defined(DSP_BUILD)
-#define PER_CPU_CLK 0
-#else
-#define PER_CPU_CLK jiffies /* Lhost, MuC and AuC has different HZ */
-#endif
-
-#endif /* QTN_SEM_TRACE */
-
-#if defined(AUC_BUILD)
-#define PER_CPU_PRINTK auc_os_printf
-#elif defined(MUC_BUILD)
-#define PER_CPU_PRINTK uc_printk
-#elif !defined(DSP_BUILD)
-#define PER_CPU_PRINTK printk
-#endif
-
-#define HAL_REG_READ_RAW(_r) (uint32_t)(*((volatile uint32_t *)(_r)))
-
-#if defined(CONFIG_RUBY_PCIE_TARGET)
-/*
- * Trashed L2M_SEM_REG(0xE0000094) will lead to semaphore deadlock in Muc.
- * We still don't know who/where/why the register been trashed.
- * Proposal a workaround as following:
- * Record a software copy of the L2M and M2L semaphore register, and set/clear/update
- * the register(L2M and M2L) according to it's software copy.
- */
-#define CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND (1)
-#define QTN_SYNC_MAX_RW_CHECK_NUM (10000)
-#endif
-
-#define QTN_ALL_SOC_CPU (QTN_LHOST_SOC_CPU | QTN_MUC_SOC_CPU | QTN_DSP_SOC_CPU)
-#define QTN_MULTI_PROCESS_TQE_SEMA 0xf
-#define QTN_MULTI_PROCESSOR_SEMA_KEY_SHIFT 28
-
-/*
- * This multi-processor semaphore register supports up to 7 semaphores,
- * which is implemented by dedicated flops, not memory. Reading them is as slow or even slower
- * than reading SRAM.
- * Currently, the first semaphore is used for TQE and the other 6 semaphores are unused.
- * However enabling other semaphores could introduce more wait cycles to each other.
- * The semaphore lock process are:
- * 1. Try to lock with write CPUID | CPUID << 24 to semaphore register.
- * 2. Return immediately if successfully lock with passing read verify, otherwise step 3.
- * 3. Read semaphore and wait for free to lock, then step 1 or timeout with a failure.
- */
-RUBY_INLINE int
-_qtn_mproc_3way_tqe_sem_down(enum topaz_mproc_tqe_sem_id cpuid)
-{
- const uint32_t set_value = ((cpuid << QTN_MULTI_PROCESSOR_SEMA_KEY_SHIFT) | cpuid);
- uint32_t sem_set_cnt = 0;
-
- do {
- /*
- * The semaphore bits [3:0] can be set successfully only when it is unset or already
- * owned by current cpuid, otherwise the write has no effect.
- */
- qtn_mproc_sync_mem_write(TOPAZ_MPROC_SEMA, set_value);
- if ((qtn_mproc_sync_mem_read(TOPAZ_MPROC_SEMA) &
- QTN_MULTI_PROCESS_TQE_SEMA) == cpuid) {
- return 1;
- }
- } while (++sem_set_cnt < TQE_SEMA_GET_MAX);
-
- return 0;
-}
-
-/*
- * Returns 1 mean success.
- * Returns 0 if the processor did not hold the semaphore.
- */
-RUBY_INLINE int
-_qtn_mproc_3way_tqe_sem_up(enum topaz_mproc_tqe_sem_id cpuid)
-{
- uint32_t value;
-
- value = qtn_mproc_sync_mem_read(TOPAZ_MPROC_SEMA);
- value &= QTN_MULTI_PROCESS_TQE_SEMA;
- if (value != cpuid)
- return 0;
- /* Write current ID back to release HW semaphore */
- qtn_mproc_sync_mem_write(TOPAZ_MPROC_SEMA, value << QTN_MULTI_PROCESSOR_SEMA_KEY_SHIFT);
-
- return 1;
-}
-
-RUBY_INLINE void
-__qtn_mproc_refcnt_inc(volatile u_int32_t *refcnt)
-{
- *refcnt = *refcnt + 1;
- qtn_addr_wmb(qtn_mproc_sync_addr(refcnt));
-}
-
-RUBY_INLINE void
-__qtn_mproc_refcnt_dec(volatile u_int32_t *refcnt)
-{
- u_int32_t tmp = *refcnt;
- if (tmp == 0) {
- qtn_mproc_sync_log("ref counter dec broken");
- } else {
- *refcnt = tmp - 1;
- qtn_addr_wmb(qtn_mproc_sync_addr(refcnt));
- }
-}
-
-RUBY_INLINE u_int32_t
-__qtn_mproc_sync_hw_sem1_addr(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set)
-{
- switch (current_cpu)
- {
- case QTN_LHOST_SOC_CPU:
- if (QTN_DSP_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_L2D_SEM;
- }
- break;
-
- case QTN_MUC_SOC_CPU:
- if (QTN_DSP_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_M2D_SEM;
- }
- break;
-
- case QTN_DSP_SOC_CPU:
- if (QTN_MUC_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_D2M_SEM;
- }
- break;
- }
-
- return RUBY_BAD_BUS_ADDR;
-}
-
-RUBY_INLINE u_int32_t
-__qtn_mproc_sync_hw_sem2_addr(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set)
-{
- switch (current_cpu)
- {
- case QTN_LHOST_SOC_CPU:
- if (QTN_MUC_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_L2M_SEM;
- }
- break;
-
- case QTN_MUC_SOC_CPU:
- if (QTN_LHOST_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_M2L_SEM;
- }
- break;
-
- case QTN_DSP_SOC_CPU:
- if (QTN_LHOST_SOC_CPU & peer_cpu_set) {
- return RUBY_SYS_CTL_D2L_SEM;
- }
- break;
- }
-
- return RUBY_BAD_BUS_ADDR;
-}
-
-RUBY_INLINE u_int32_t
-__qtn_mproc_sync_hw_sem_bit(u_int32_t which_sem)
-{
- return (1 << which_sem);
-}
-
-RUBY_INLINE int
-__qtn_mproc_sync_set_hw_sem(u_int32_t sem_addr, u_int32_t which_sem)
-{
- int ret = 0;
-#if defined(CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND)
- /* check counter */
- int check_counter = 0;
-#endif
-
- if (sem_addr == RUBY_BAD_BUS_ADDR) {
- ret = 1;
- } else {
- u_int32_t sem_bit = __qtn_mproc_sync_hw_sem_bit(which_sem);
- u_int32_t sem_val = qtn_mproc_sync_mem_read(sem_addr);
-
-#if defined(CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND)
- while (sem_val != qtn_mproc_sync_mem_read(sem_addr)) {
- if(++check_counter > QTN_SYNC_MAX_RW_CHECK_NUM) {
- qtn_mproc_sync_log("__qtn_mproc_sync_set_hw_sem: read semaphore mismatch...");
- return ret;
- } else {
- sem_val = qtn_mproc_sync_mem_read(sem_addr);
- }
- }
-#endif /* CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND */
- sem_val |= sem_bit;
-
- if (qtn_mproc_sync_mem_write_wmb(sem_addr, sem_val) & sem_bit) {
- ret = 1;
- }
- }
- return ret;
-}
-
-RUBY_INLINE void
-__qtn_mproc_sync_clear_hw_sem(u_int32_t sem_addr, u_int32_t which_sem)
-{
-#if defined(CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND)
- /* check counter */
- int check_counter = 0;
-#endif
-
- if (sem_addr != RUBY_BAD_BUS_ADDR) {
- u_int32_t sem_bit = __qtn_mproc_sync_hw_sem_bit(which_sem);
- u_int32_t sem_val = qtn_mproc_sync_mem_read(sem_addr);
-
-#if defined(CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND)
- while (sem_val != qtn_mproc_sync_mem_read(sem_addr)) {
- if(++check_counter > QTN_SYNC_MAX_RW_CHECK_NUM) {
- check_counter = 0;
- qtn_mproc_sync_log("__qtn_mproc_sync_clear_hw_sem: read semaphore mismatch...");
- }
- sem_val = qtn_mproc_sync_mem_read(sem_addr);
- }
-#endif /* CONFIG_PCIE_TARGET_SEM_TRASHED_WORKAROUND */
- sem_val &= ~sem_bit;
-
- qtn_mproc_sync_mem_write_wmb(sem_addr, sem_val);
- }
-}
-
-RUBY_INLINE int
-__qtn_mproc_sync_spin_try_lock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set,
- u_int32_t which_sem, unsigned long *flags, uint32_t *fail_sem)
-{
- u_int32_t sem1_addr = __qtn_mproc_sync_hw_sem1_addr(current_cpu, peer_cpu_set);
- u_int32_t sem2_addr = __qtn_mproc_sync_hw_sem2_addr(current_cpu, peer_cpu_set);
-
- local_irq_save(*flags);
-
- if(!__qtn_mproc_sync_set_hw_sem(sem1_addr, which_sem)) {
- *fail_sem = sem1_addr;
- goto unlock1;
- }
-
- if(!__qtn_mproc_sync_set_hw_sem(sem2_addr, which_sem)) {
- *fail_sem = sem2_addr;
- goto unlock2;
- }
-
- return 1;
-
-unlock2:
- __qtn_mproc_sync_clear_hw_sem(sem1_addr, which_sem);
-unlock1:
- local_irq_restore(*flags);
- return 0;
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_spin_lock_reg_dump(void)
-{
-#if !defined(DSP_BUILD)
- uint32_t reg;
-
- PER_CPU_PRINTK("Dump semaphore registers:\n");
- for (reg = RUBY_SYS_CTL_L2M_SEM; reg <= RUBY_SYS_CTL_D2M_SEM; reg += 4) {
- PER_CPU_PRINTK("reg 0x%08x=0x%08x\n", reg, HAL_REG_READ_RAW(reg));
- }
-#endif
-}
-
-#if QTN_SEM_TRACE
-RUBY_INLINE struct qtn_sem_trace_log *qtn_mproc_sync_get_sem_trace_log(void)
-{
- struct shared_params *sp = qtn_mproc_sync_shared_params_get();
- struct qtn_sem_trace_log *log;
-
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
- log = sp->sem_trace_log_bus;
-#else
- log = sp->sem_trace_log_lhost;
-#endif
- return log;
-}
-
-RUBY_INLINE void qtn_sem_trace_log(int state, char *caller0_file, int caller0_line, char *caller1_file, int caller1_line)
-{
-#if !defined(DSP_BUILD) || (QTN_SEM_TRACE_DSP)
- struct qtn_sem_trace_log *log = qtn_mproc_sync_get_sem_trace_log();
-#if defined(MUC_BUILD)
- int cpu = SEM_TRACE_CPU_MUC;
-#elif defined(DSP_BUILD)
- int cpu = SEM_TRACE_CPU_DSP;
-#elif defined(AUC_BUILD)
- int cpu = SEM_TRACE_CPU_AUC;
-#else
- int cpu = SEM_TRACE_CPU_LHOST;
-#endif
- int idx;
- uint32_t flags;
-
- local_irq_save(flags);
-
- idx = log->trace_idx[cpu];
-
- log->traces[cpu][idx].pos = log->trace_pos[cpu];
- log->traces[cpu][idx].jiffies = PER_CPU_CLK;
- log->traces[cpu][idx].state = state;
- log->traces[cpu][idx].caller_file[0] = (unsigned int)caller0_file;
- log->traces[cpu][idx].caller_line[0] = caller0_line;
- log->traces[cpu][idx].caller_file[1] = (unsigned int)caller1_file;
- log->traces[cpu][idx].caller_line[1] = caller1_line;
- log->trace_pos[cpu]++;
- log->trace_idx[cpu] = (log->trace_pos[cpu]) % QTN_SEM_TRACE_NUM;
-
- local_irq_restore(flags);
-#endif
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_spin_lock_log_dump(void)
-{
-#if !defined(DSP_BUILD)
- struct qtn_sem_trace_log *log = qtn_mproc_sync_get_sem_trace_log();
- int i, j, idx;
- struct qtn_sem_trace_entry *e;
- unsigned int file[QTN_SEM_TRACE_DEPTH];
-
- PER_CPU_PRINTK("Dump semaphore trace log at jiffies=%u\n", (unsigned int)jiffies);
- for (idx = 0; idx < SEM_TRACE_CPU_NUM; idx++) {
-#if !QTN_SEM_TRACE_DSP
- if (idx == SEM_TRACE_CPU_DSP) {
- PER_CPU_PRINTK("CPU %d semaphore trace log is not available in this build\n", idx);
- continue;
- }
-#endif
- PER_CPU_PRINTK("CPU %d semaphore trace log: pos=%u, last_dump_pos=%u\n",
- idx, log->trace_pos[idx], log->last_dump_pos[idx]);
- for (i = 0; i < QTN_SEM_TRACE_NUM; i++) {
- e = &log->traces[idx][i];
- for (j = 0; j < QTN_SEM_TRACE_DEPTH; j++) {
- file[j] = 0;
- if (e->caller_file[j]) {
- file[j] = e->caller_file[j];
-#if defined(MUC_BUILD)
- if (idx != SEM_TRACE_CPU_MUC) {
- /* have no reliable way to convert lhost/dsp/auc string addr to muc */
- file[j] = 0;
- }
-#elif defined(AUC_BUILD)
- if (idx != SEM_TRACE_CPU_AUC) {
- /* have no reliable way to convert lhost/dsp/muc string addr to auc */
- file[j] = 0;
- }
-#else
- /* lhost */
- if (idx != SEM_TRACE_CPU_LHOST) {
- file[j] = (unsigned int)bus_to_virt(file[j]);
- }
-#endif
- }
- }
- PER_CPU_PRINTK("%d pos=%u, jiffies=%u_%u, state=%u, "
- "caller0=0x%x %s %d, caller1=0x%x %s %d\n",
- i, e->pos, U64_HIGH32(e->jiffies), U64_LOW32(e->jiffies),
- e->state,
- (unsigned int)e->caller_file[0],
- file[0] ? (char*)file[0] : "N/A",
- e->caller_line[0],
- (unsigned int)e->caller_file[1],
- file[1] ? (char*)file[1] : "N/A",
- e->caller_line[1]
- );
- }
- log->last_dump_pos[idx] = log->trace_pos[idx];
- }
-#endif
-}
-#endif /* QTN_SEM_TRACE */
-
-RUBY_INLINE int
-__qtn_mproc_sync_spin_lock_wait(QTN_SOC_CPU current_cpu)
-{
- int wait_shift = 0;
- u_int32_t pm_lock_addr = qtn_mproc_sync_addr(&qtn_mproc_sync_shared_params_get()->pm_duty_lock);
- int i;
-
- if (unlikely(qtn_mproc_sync_mem_read(pm_lock_addr))) {
- wait_shift = 2;
- }
-
- for (i = 0; i < (10 << (wait_shift + current_cpu)); ++i) {
- qtn_pipeline_drain();
- }
-
- return wait_shift;
-}
-
-#if QTN_SEM_TRACE
-#define __qtn_mproc_sync_spin_lock(_cpu, _peer, _sem, _flags) \
- __qtn_mproc_sync_spin_lock_dbg(_cpu, _peer, _sem, _flags, __FILE__, __LINE__, caller, caller_line)
-
-RUBY_INLINE void
-__qtn_mproc_sync_spin_lock_dbg(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set,
- u_int32_t which_sem, unsigned long *flags,
- char *caller0_file, int caller0_line,
- char *caller1_file, int caller1_line)
-#else
-RUBY_INLINE void
-__qtn_mproc_sync_spin_lock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set,
- u_int32_t which_sem, unsigned long *flags)
-#endif
-{
- /* Help to detect lockups */
- unsigned log_counter = 0;
- unsigned log_max_counter = 10000;
-#define LOG_MAX_COUNTER_PANIC 320000
- int log_success = 0;
- uint32_t fail_sem = 0;
- int dumped =0;
-#ifdef __KERNEL__
- unsigned long timeout_jiff;
-#endif
-
-#if QTN_SEM_TRACE
- qtn_sem_trace_log(QTN_SEM_STARTLOCK, caller0_file, caller0_line, caller1_file, caller1_line);
-#endif
-
- /*
- * We have 3 interlocked hw semaphores to be used for mutual exclusion in 3 CPU pairs.
- * Doesn't matter which semaphore be locked first and which second,
- * we can easily enters dead-lock state.
- * To prevent dead-locking let's rollback if locking of whole set of 3 mutexes is failed
- * at any stage.
- * Also let's add per-processor delays after failed locking, so in case of collision
- * it will be resolved faster.
- *
- * I think, that hw design of hw interlocked semaphores is not very lucky.
- * It would be much better if we have 3 registers, 1 per CPU.
- * And all 3 (not 2 as now) registers be interlocked.
- */
- while (!__qtn_mproc_sync_spin_try_lock(current_cpu, peer_cpu_set, which_sem, flags, &fail_sem)) {
- unsigned int i;
- for (i = 0; i < 10 * (current_cpu + 1); ++i) {
- qtn_pipeline_drain();
- }
- if(unlikely(!__qtn_mproc_sync_spin_lock_wait(current_cpu) &&
- (++log_counter >= log_max_counter))) {
- log_counter = 0;
- log_max_counter = (log_max_counter << 1);
- if (unlikely(!log_max_counter)) {
- log_max_counter = 1;
- }
- qtn_mproc_sync_log("qtn_mproc_sync: waiting for semaphore ...");
- if ((log_max_counter >= LOG_MAX_COUNTER_PANIC) && (!dumped)) {
- /* Don't make false alert for PM/COC feature */
-#if QTN_SEM_TRACE
- qtn_mproc_sync_spin_lock_log_dump();
-#endif
- qtn_mproc_sync_spin_lock_reg_dump();
-#ifdef __KERNEL__
- timeout_jiff = jiffies + QTN_MPROC_TIMEOUT;
- while (time_before(jiffies, timeout_jiff)) {
- schedule();
- }
-
- panic("Semaphore hang detected at clk %u: cpu=%x peer=%x sem=%x flags=%x fail_sem=%x\n",
- (unsigned int)jiffies, current_cpu, peer_cpu_set, which_sem,
- (unsigned int)*flags, fail_sem);
-#endif
- dumped = 1;
- }
- log_success = 1;
- }
- }
-#if QTN_SEM_TRACE
- qtn_sem_trace_log(QTN_SEM_LOCKED, caller0_file, caller0_line, caller1_file, caller1_line);
-#endif
- if (unlikely(log_success)) {
- qtn_mproc_sync_log("qtn_mproc_sync: wait succeeded");
- }
-}
-
-#if QTN_SEM_TRACE
-#define __qtn_mproc_sync_spin_unlock(_cpu, _peer, _sem, _flags) \
- __qtn_mproc_sync_spin_unlock_dbg(_cpu, _peer, _sem, _flags, __FILE__, __LINE__, caller, caller_line)
-
-RUBY_INLINE void
-__qtn_mproc_sync_spin_unlock_dbg(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set,
- u_int32_t which_sem, unsigned long *flags,
- char *caller0_file, int caller0_line,
- char *caller1_file, int caller1_line)
-#else
-RUBY_INLINE void
-__qtn_mproc_sync_spin_unlock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set,
- u_int32_t which_sem, unsigned long *flags)
-#endif
-{
- /* Caller must ensure that it hold spinlock. */
-
- __qtn_mproc_sync_clear_hw_sem(
- __qtn_mproc_sync_hw_sem2_addr(current_cpu, peer_cpu_set),
- which_sem);
- __qtn_mproc_sync_clear_hw_sem(
- __qtn_mproc_sync_hw_sem1_addr(current_cpu, peer_cpu_set),
- which_sem);
-
-#if QTN_SEM_TRACE
- qtn_sem_trace_log(QTN_SEM_UNLOCKED, caller0_file, caller0_line, caller1_file, caller1_line);
-#endif
-
- local_irq_restore(*flags);
-}
-
-RUBY_INLINE int
-qtn_mproc_sync_set_hw_sem(u_int32_t sem_addr, u_int32_t which_sem)
-{
- unsigned long flags;
- int ret;
-
- local_irq_save(flags);
- ret = __qtn_mproc_sync_set_hw_sem(sem_addr, which_sem);
- local_irq_restore(flags);
-
- return ret;
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_clear_hw_sem(u_int32_t sem_addr, u_int32_t which_sem)
-{
- unsigned long flags;
-
- local_irq_save(flags);
- __qtn_mproc_sync_clear_hw_sem(sem_addr, which_sem);
- local_irq_restore(flags);
-}
-
-
-/*
- * Try lock interprocessor spinlock. Spinlock is not recoursive.
- */
-RUBY_WEAK(qtn_mproc_sync_spin_try_lock) int
-qtn_mproc_sync_spin_try_lock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set, u_int32_t which_sem)
-{
- unsigned long flags;
- uint32_t fail_sem;
- if (__qtn_mproc_sync_spin_try_lock(current_cpu, peer_cpu_set, which_sem, &flags, &fail_sem)) {
- local_irq_restore(flags);
- return 1;
- }
- return 0;
-}
-
-/*
- * Lock interprocessor spinlock. Spinlock is not recoursive.
- */
-#if QTN_SEM_TRACE
-RUBY_WEAK(qtn_mproc_sync_spin_lock) void
-qtn_mproc_sync_spin_lock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set, u_int32_t which_sem, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_mproc_sync_spin_lock) void
-qtn_mproc_sync_spin_lock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set, u_int32_t which_sem)
-#endif
-{
- unsigned long flags;
- __qtn_mproc_sync_spin_lock(current_cpu, peer_cpu_set, which_sem, &flags);
- local_irq_restore(flags);
-}
-
-/*
- * Unlock interprocessor spinlock. Spinlock is not recoursive.
- */
-#if QTN_SEM_TRACE
-RUBY_WEAK(qtn_mproc_sync_spin_unlock) void
-qtn_mproc_sync_spin_unlock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set, u_int32_t which_sem, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_mproc_sync_spin_unlock) void
-qtn_mproc_sync_spin_unlock(QTN_SOC_CPU current_cpu, QTN_SOC_CPU peer_cpu_set, u_int32_t which_sem)
-#endif
-{
- unsigned long flags;
- local_irq_save(flags);
- __qtn_mproc_sync_spin_unlock(current_cpu, peer_cpu_set, which_sem, &flags);
-}
-
-RUBY_INLINE volatile u_int32_t*
-qtn_mproc_sync_irq_fixup_data(u_int32_t irq_reg)
-{
-#if CONFIG_RUBY_BROKEN_IPC_IRQS
- if (irq_reg == RUBY_SYS_CTL_M2L_INT) {
- return &qtn_mproc_sync_shared_params_get()->m2l_irq[0];
- }
-#endif
- return RUBY_BAD_VIRT_ADDR;
-}
-
-RUBY_INLINE volatile u_int32_t*
-qtn_mproc_sync_irq_fixup_data_ack(u_int32_t irq_reg)
-{
-#if !defined(MUC_BUILD) && !defined(DSP_BUILD)
- return qtn_mproc_sync_irq_fixup_data(irq_reg);
-#else
- return RUBY_BAD_VIRT_ADDR;
-#endif
-}
-
-RUBY_INLINE volatile u_int32_t*
-qtn_mproc_sync_irq_fixup_data_trigger(u_int32_t irq_reg)
-{
-#if defined(MUC_BUILD)
- return qtn_mproc_sync_irq_fixup_data(irq_reg);
-#else
- return RUBY_BAD_VIRT_ADDR;
-#endif
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_irq_trigger(u_int32_t irq_reg, u_int32_t irqno)
-{
- u_int32_t req = (1 << (irqno + 16)) | (1 << irqno);
- qtn_mproc_sync_mem_write_wmb(irq_reg, req);
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_irq_ack_nolock(u_int32_t irq_reg, u_int32_t mask)
-{
- u_int32_t status = qtn_mproc_sync_mem_read(irq_reg) & (mask << 16);
- u_int32_t ret = (status >> 16);
- if (likely(ret)) {
- qtn_mproc_sync_mem_write_wmb(irq_reg, status & 0xFFFF0000);
- }
- return ret;
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_irq_ack(u_int32_t irq_reg, u_int32_t mask)
-{
- return qtn_mproc_sync_irq_ack_nolock(irq_reg, mask);
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_irq_ack_all(u_int32_t irq_reg)
-{
- return qtn_mproc_sync_irq_ack(irq_reg, 0xFFFFFFFF);
-}
-
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __QTN_MPROC_SYNC_H
diff --git a/quantenna/include/qtn/mproc_sync_base.h b/quantenna/include/qtn/mproc_sync_base.h
deleted file mode 100644
index 3c5a5c9..0000000
--- a/quantenna/include/qtn/mproc_sync_base.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_MPROC_SYNC_BASE_H
-#define __QTN_MPROC_SYNC_BASE_H
-
-#ifndef __ASSEMBLY__
-
-#include "../common/ruby_mem.h"
-#include "../common/topaz_platform.h"
-
-/*
- * Functions from this module use local_irq_save()/local_irq_restore()
- * as synchronization primitives within CPU.
- * This works only for uniprocessor systems.
- * If we would ever use SMP inside our SoC, we must
- * switch to something like spin_lock_irqsave()/spin_lock_irqrestore().
- */
-#if defined(MUC_BUILD) || defined(DSP_BUILD)
- #include "os/os_arch_arc.h"
- #define local_irq_save(_flags) do { (_flags) = _save_disable_all(); } while(0)
- #define local_irq_restore(_flags) do { _restore_enable((_flags)); } while(0)
-#elif defined(AUC_BUILD)
- /* AuC now has no user-defined ISR. No need to synchronize. */
- #define local_irq_save(_flags) do { (void)_flags; } while(0)
- #define local_irq_restore(_flags) do { (void)_flags; } while(0)
-#else
- /* Linux target. Functions defined here already. */
-#endif // #if defined(MUC_BUILD) || defined(DSP_BUILD)
-
-
-RUBY_INLINE void
-qtn_mproc_sync_log(const char *msg)
-{
-#if defined(MUC_BUILD)
- extern int uc_printk(const char *fmt, ...);
- uc_printk("MuC: %s\n", msg);
-#elif defined(DSP_BUILD)
- #ifdef DSP_DEBUG
- extern void dsp_serial_puts(const char *str);
- dsp_serial_puts("DSP: ");
- dsp_serial_puts(msg);
- dsp_serial_puts("\n");
- #endif
-#elif defined(AUC_BUILD)
- extern int auc_os_printf(const char *fmt, ...);
- auc_os_printf("AuC: %s\n", msg);
-#elif defined(ARCSHELL)
-#elif defined(__KERNEL__) && !defined(UBOOT_BUILD)
- /* Linux target */
- printk(KERN_INFO"LHOST: %s : %s : %s\n", KBUILD_MODNAME, KBUILD_BASENAME, msg);
-#else
- printf("LHOST: %s\n", msg);
-#endif // #if defined(MUC_BUILD)
-}
-
-RUBY_INLINE void*
-qtn_mproc_sync_nocache(void *ptr)
-{
-#if defined(MUC_BUILD)
- return muc_to_nocache(ptr);
-#else
- return ptr;
-#endif
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_mem_write_16(u_int32_t addr, u_int16_t val)
-{
- /*
- * Rely on fact that this operation is atomic,
- * that single bus transaction handles write.
- */
- *((volatile u_int16_t*)addr) = val;
-}
-
-RUBY_INLINE u_int16_t
-qtn_mproc_sync_mem_read_16(u_int32_t addr)
-{
- /*
- * Rely on fact that this operation is atomic,
- * that single bus transaction handles read.
- */
- return *((volatile u_int16_t*)addr);
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_mem_write(u_int32_t addr, u_int32_t val)
-{
- /*
- * Rely on fact that this operation is atomic,
- * that single bus transaction handles write.
- */
- *((volatile u_int32_t*)addr) = val;
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_mem_read(u_int32_t addr)
-{
- /*
- * Rely on fact that this operation is atomic,
- * that single bus transaction handles read.
- */
- return *((volatile u_int32_t*)addr);
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_mem_write_wmb(u_int32_t addr, u_int32_t val)
-{
- qtn_mproc_sync_mem_write(addr, val);
- return qtn_addr_wmb(addr);
-}
-
-RUBY_INLINE u_int32_t
-qtn_mproc_sync_addr(volatile void *addr)
-{
- return (u_int32_t)addr;
-}
-
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
- RUBY_INLINE struct shared_params*
- qtn_mproc_sync_shared_params_get(void)
- {
- return (struct shared_params*)qtn_mproc_sync_nocache((void*)
- qtn_mproc_sync_mem_read(RUBY_SYS_CTL_SPARE));
- }
-#else
- extern struct shared_params *soc_shared_params;
-
- RUBY_INLINE struct shared_params*
- qtn_mproc_sync_shared_params_get(void)
- {
- return soc_shared_params;
- }
-
- /* Has to be used by Linux only */
- RUBY_INLINE void
- qtn_mproc_sync_shared_params_set(struct shared_params *params)
- {
- qtn_mproc_sync_mem_write_wmb(RUBY_SYS_CTL_SPARE, (u_int32_t)params);
- }
-#endif // #if defined(MUC_BUILD) || defined(DSP_BUILD)
-
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __QTN_MPROC_SYNC_BASE_H
-
-
diff --git a/quantenna/include/qtn/mproc_sync_mutex.h b/quantenna/include/qtn/mproc_sync_mutex.h
deleted file mode 100644
index 83c2473..0000000
--- a/quantenna/include/qtn/mproc_sync_mutex.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- * This is implementation of Peterson's algorithm for mutual exclusion for 2 processes.
- * Implemented for little endian system only now.
- *
- * //flag[] is boolean array; and turn is an integer
- * flag[0] = false;
- * flag[1] = false;
- * turn;
- *
- * P0: flag[0] = true;
- * turn = 1;
- * while (flag[1] == true && turn == 1)
- * {
- * // busy wait
- * }
- * // critical section
- * ...
- * // end of critical section
- * flag[0] = false;
- *
- * P1: flag[1] = true;
- * turn = 0;
- * while (flag[0] == true && turn == 0)
- * {
- * // busy wait
- * }
- * // critical section
- * ...
- * // end of critical section
- * flag[1] = false;
- *
- */
-
-#ifndef __QTN_MPROC_SYNC_MUTEX_H
-#define __QTN_MPROC_SYNC_MUTEX_H
-
-#include "mproc_sync_base.h"
-
-#ifndef __ASSEMBLY__
-
-/* Initial value must be zero. */
-typedef union __qtn_mproc_sync_mutex
-{
- uint32_t dword;
- struct
- {
- uint16_t raw_w0;
- uint16_t raw_w1;
- } words;
- struct
- {
- uint8_t __reserved0;
- uint8_t flag1;
- uint8_t turn;
- uint8_t flag0;
- } bytes;
-} qtn_mproc_sync_mutex;
-
-RUBY_INLINE void
-qtn_mproc_sync_mutex_init(volatile qtn_mproc_sync_mutex *mutex)
-{
- mutex->dword = 0;
-}
-
-#if !defined(__GNUC__) && defined(_ARC)
-_Inline _Asm void
-__qtn_mproc_sync_mutex_relax(int count)
-{
- % reg count;
- mov_s %r12, count;
-1:
- sub.f %r12, %r12, 1;
- bnz_s 1b;
-}
-RUBY_INLINE void
-qtn_mproc_sync_mutex_relax(int count)
-{
- if (count) {
- __qtn_mproc_sync_mutex_relax(count);
- }
-}
-#else
-RUBY_INLINE void
-qtn_mproc_sync_mutex_relax(int count)
-{
- int i;
- for (i = 0; i < count; ++i) {
- qtn_pipeline_drain();
- }
-}
-#endif // #if !defined(__GNUC__) && defined(_ARC)
-
-RUBY_INLINE void
-qtn_mproc_sync_mutex0_lock(volatile qtn_mproc_sync_mutex *mutex, int relax_count)
-{
- mutex->words.raw_w1 = 0x0101;
-
- while ((mutex->dword & 0x00FFFF00) == 0x00010100) {
- qtn_mproc_sync_mutex_relax(relax_count);
- }
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_mutex0_unlock(volatile qtn_mproc_sync_mutex *mutex)
-{
- mutex->bytes.flag0 = 0;
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_mutex1_lock(volatile qtn_mproc_sync_mutex *mutex, int relax_count)
-{
- mutex->bytes.flag1 = 1;
- mutex->bytes.turn = 0;
-
- while (mutex->words.raw_w1 == 0x0100) {
- qtn_mproc_sync_mutex_relax(relax_count);
- }
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_mutex1_unlock(volatile qtn_mproc_sync_mutex *mutex)
-{
- mutex->bytes.flag1 = 0;
-}
-
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __QTN_MPROC_SYNC_MUTEX_H
-
diff --git a/quantenna/include/qtn/muc_dbg_parse b/quantenna/include/qtn/muc_dbg_parse
deleted file mode 100755
index 98174b8..0000000
--- a/quantenna/include/qtn/muc_dbg_parse
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/perl
-
-$stats_header_file = 'qtn_muc_stats_print.h';
-$dbg_header_file = "muc_txrx_stats.h.raw";
-
-$in_tx_struct=0;
-$tx_stats_content = "";
-$in_rx_struct=0;
-$rx_stats_content = "";
-$rxq_num = 0;
-
-foreach my $line (`cat muc_share_def.h`) {
- if ($line =~ /^\#define\s+QTN_FW_WMAC_RX_QNUM\s+(\d+).*$/) {
- $rxq_num = $1;
- }
-}
-
-if ($rxq_num == 0) {
- die("muc_dbg_parse: fail to find macro QTN_FW_WMAC_RX_QNUM\n");
-}
-
-open(HDRFILE,"$dbg_header_file");
-while (<HDRFILE>) {
-
- if (/\}/) {
- if ($in_tx_struct == 1) {
- $tx_stats_content .= "}";
- $in_tx_struct=0;
- }
- if ($in_rx_struct == 1) {
- $rx_stats_content .= "}";
- $in_rx_struct=0;
- }
- }
-
- if ($in_tx_struct) {
- if(/(\w+)\;/){
- $strtmp = $1;
- $tx_stats_content .= " \"$strtmp\", \\\n";
- } else {
- die("muc_dbg_parse: fail to process tx stats item \"$_\"");
- }
- }
-
- if ($in_rx_struct) {
- if (/(\w+)\;/) {
- $strtmp = $1;
- $rx_stats_content .= " \"$strtmp\", \\\n";
- } elsif (/(rxq_\w+)\[\w+\]\;/) {
- $strtmp = $1;
- for (my $i = 0; $i < $rxq_num; $i++) {
- $rx_stats_content .= " \"$strtmp"."[$i]\", \\\n";
- }
- } else {
- die("muc_dbg_parse: fail to process rx stats item \"$_\"");
- }
- }
-
- if (/^\s*struct\s+muc_tx_stats\s*\{/) {
- $in_tx_struct=1;
- $tx_stats_content .= "#define MUC_TX_STATS_NAMES_TABLE { \\\n";
- }
-
- if (/^\s*struct\s+muc_rx_stats\s*\{/) {
- $in_rx_struct=1;
- $rx_stats_content .= "#define MUC_RX_STATS_NAMES_TABLE { \\\n";
- }
-
-}
-close(HDRFILE);
-
-unlink($stats_header_file);
-open(headfile,">>$stats_header_file");
-print headfile "/* autogenerated */\n\n";
-print headfile $tx_stats_content;
-print headfile "\n\n";
-print headfile $rx_stats_content;
-print headfile "\n";
-close(headfile);
diff --git a/quantenna/include/qtn/muc_phy_stats.h b/quantenna/include/qtn/muc_phy_stats.h
deleted file mode 100644
index c0734b6..0000000
--- a/quantenna/include/qtn/muc_phy_stats.h
+++ /dev/null
@@ -1,358 +0,0 @@
-#ifndef _MUC_PHY_STATS_H
-#define _MUC_PHY_STATS_H
-
-#include "../common/ruby_mem.h"
-#include "../common/queue.h"
-
-#define NUM_ANT 4
-#define NUM_LOG_BUFFS 0x8
-
-#define MUC_PHY_STATS_ALTERNATE 0
-#define MUC_PHY_STATS_RSSI_RCPI_ONLY 1
-#define MUC_PHY_STATS_ERROR_SUM_ONLY 2
-
-#define MUC_PHY_ERR_SUM_NOT_AVAIL 0xffffffff
-
-#define MUC_PHY_RSSI_NOT_AVAIL (-1000)
-
-#include <qtn/muc_txrx_stats.h>
-
-/**
- * \defgroup PHYSTATS PHY generated statistics
- */
-/** @{ */
-
-#define QTN_STATS_MCS_SGI 0x40000000
-#define QTN_STATS_MCS_BW40 0x80000000
-
-#define QTN_PHY_STATS_MCS_PHYRATE 0xFFFF0000
-#define QTN_PHY_STATS_MCS_PHYRATE_S 16
-#define QTN_PHY_STATS_MCS_NSS 0xf000
-#define QTN_PHY_STATS_MCS_NSS_S 12
-#define QTN_PHY_STATS_MCS_BW 0xC00
-#define QTN_PHY_STATS_MCS_BW_S 10
-#define QTN_PHY_STATS_MCS_MODE 0x380
-#define QTN_PHY_STATS_MCS_MODE_S 7
-#define QTN_STATS_MCS_RATE_MASK 0x7f
-#define QTN_STATS_MCS_RATE_MASK_S 0
-
-#define QTN_PHY_STATS_MODE_11N 1
-#define QTN_PHY_STATS_MODE_11AC 2
-
-
-#define QTN_PER_NODE_STATS_POOL_SIZE QTN_NODE_TBL_SIZE_LHOST
-
-#define EVM_TIME_MEAN_SHIFT 4
-#define EVM_TIME_MEAN_COUNT (1 << EVM_TIME_MEAN_SHIFT)
-#define RSSI_TIME_MEAN_SHIFT 4
-#define RSSI_TIME_MEAN_COUNT (1 << RSSI_TIME_MEAN_SHIFT)
-#define PHY_RATE_MEAN_SHIFT 4
-#define PHY_RATE_MEAN_COUNT (1 << PHY_RATE_MEAN_SHIFT)
-
-struct qtn_node_shared_stats_tx {
- uint32_t max_queue;
- /*
- * last_mcs are used as bitmask value
- * bit[31:16] rate (Mbps)
- * bit[15:12] nss (1~4)
- * bit[11:10] bw (0 - 20; 1-40; 2-80; 3-unknow)
- * bit[9:7] mode (1-11n, 2-11ac others-unknow)
- * bit[6:0] mcs ([0,76] for 11n, [0,9] [33,76] for 11ac)
- */
- uint32_t last_mcs;
- uint32_t last_tx_scale;
- uint32_t ralg_inv_phy_rate;
- uint32_t avg_rssi_dbm;
- uint32_t cost;
- uint32_t pkts;
- uint32_t txdone_failed_cum;
- uint32_t avg_per;
- uint32_t pkts_per_sec;
- uint32_t avg_tx_phy_rate;
- uint32_t acks;
- uint32_t tx_airtime;
- uint32_t tx_accum_airtime;
- /*
- * The number of data packets transmitted through
- * wireless media for each traffic category(TC).
- */
-#define WMM_AC_NUM 4
- uint32_t tx_sent_data_msdu[WMM_AC_NUM];
-};
-
-struct qtn_node_shared_stats_rx {
- uint32_t last_rssi_dbm[NUM_ANT + 1];
- uint32_t rssi_dbm_smoothed[NUM_ANT + 1];
- uint32_t last_rcpi_dbm[NUM_ANT + 1];
- uint32_t rcpi_dbm_smoothed[NUM_ANT + 1];
- uint32_t last_evm_dbm[NUM_ANT + 1];
- uint32_t evm_dbm_smoothed[NUM_ANT + 1];
- uint32_t last_hw_noise[NUM_ANT + 1];
- uint32_t last_rxsym;
- /*
- * last_mcs are used as bitmask value
- * bit[31:16] rate (Mbps)
- * bit[15:12] nss (1~4)
- * bit[11:10] bw (0 - 20; 1-40; 2-80; 3-unknow)
- * bit[9:7] mode (1-11n, 2-11ac others-unknow)
- * bit[6:0] mcs ([0,76] for 11n, [0,9] [33,76] for 11ac)
- */
- uint32_t last_mcs;
- uint32_t pkts;
- uint32_t pkts_cum;
- uint32_t inv_phy_rate_smoothed;
- uint32_t cost;
- uint32_t rx_airtime;
- uint32_t rx_accum_airtime;
-};
-
-/**
- * Per node values and statistics; updated periodically
- * with each invocation of qtn_stats_sample, based on
- * MuC per node stats
- */
-struct qtn_node_shared_stats {
- /* 0 for SU, 1 for MU */
-#define STATS_MIN 0
-#define STATS_SU STATS_MIN
-#define STATS_MU 1
-#define STATS_MAX 2
- struct qtn_node_shared_stats_tx tx[STATS_MAX];
- struct qtn_node_shared_stats_rx rx[STATS_MAX];
- uint64_t beacon_tbtt;
- uint64_t beacon_tbtt_jiffies;
- uint64_t last_rx_jiffies;
- uint64_t dtim_tbtt;
- uint32_t tim_set;
- uint32_t dtim_set;
- uint16_t beacon_interval;
- TAILQ_ENTRY(qtn_node_shared_stats) next;
-};
-
-/**
- * \brief PHY receive statistics
- *
- * These statistics are either read directly from the PHY or are generated
- * based on PHY inputs (eg, RX vector or other structures).
- */
-struct qtn_rx_stats {
- /**
- * The count of the number of packets the PHY has received and passed
- * up. This is the total of the number of singleton packets (MPDU, MMPDU, control frames),
- * plus the total of subframes within AMPDUs, plus the number of AMSDUs which have been
- * passed up from the PHY.
- *
- * \note On BBIC4, it just counts single AMPDU rather than the subframes in AMPDU.
- */
- u_int32_t num_pkts;
-
- /**
- * count of packets with A-MSDU flag set
- */
- u_int32_t num_amsdu;
-
- /**
- * The average RX gain used on the previously received packet
- * (MMPDU, MPDU, AMPDU or singleton AMSDU).
- */
- u_int32_t avg_rxgain;
-
- /**
- * The number of packets received by the PHY with invalid CRC.
- */
- u_int32_t cnt_mac_crc;
-
- /**
- * The number of short preamble failures reported by the PHY.
- */
- u_int32_t cnt_sp_fail;
-
- /**
- * The number of long preamble failures reported by the PHY.
- */
- u_int32_t cnt_lp_fail;
-
- u_int32_t hw_noise;
-
- u_int32_t max_init_gain;
-
- /**
- * The current temperature of the system.
- */
- u_int32_t sys_temp;
-
- /**
- * The mode of the last received packet.
- * 1 - 11n
- * 2 - 11ac
- * others - unknow
- */
- u_int32_t last_rx_mode;
-
- /**
- * The bandwidth of the last received packet.
- * 0 - 20MHZ
- * 1 - 40MHZ
- * 2 - 80MHZ
- * others - unknow
- */
- u_int32_t last_rx_bw;
-
- /**
- * The MCS index of the last received packet.
- */
- u_int32_t last_rx_mcs;
-
- /**
- * Debug information.
- */
- u_int32_t rx_gain_fields;
-
- /**
- * RSSI / RCPI / EVM for frames
- */
- u_int32_t last_rssi_evm[NUM_ANT];
-
- u_int32_t last_rssi_all;
-
- u_int32_t last_rxsym;
-};
-
-/**
- * \brief PHY transmit statistics
- *
- * These statistics are either read directly from the PHY or are generated
- * based on PHY values.
- */
-struct qtn_tx_stats {
- /**
- * The count of the number of packets (MMPDU, MPDU, AMSDU, and one for each
- * subframe in an AMPDU) sent to the PHY.
- *
- * \note On BBIC4, it just counts single AMPDU rather than the subframes in AMPDU.
- */
- u_int32_t num_pkts;
-
- /**
- * The number of times transmitted packets were deferred due to CCA.
- */
- u_int32_t num_defers;
-
- /**
- * The number of times packets were timed out - spent too long inside the MAC.
- */
- u_int32_t num_timeouts;
-
- /**
- * The number of retries - singleton retransmissions, full AMPDU retransmissions,
- * or partial AMPDU retransmissions.
- */
- u_int32_t num_retries;
-
- /**
- * The transmit power scale index used for the last packet
- *
- * \note On BBIC4, This variable is not available.
- */
- u_int32_t last_tx_scale;
-
- /**
- * The mode of the last transmit packet.
- * 1 - 11n
- * 2 - 11ac
- * others - unknow
- */
- u_int32_t last_tx_mode;
-
- /**
- * The bandwidth of the last transmit packet.
- * 0 - 20MHZ
- * 1 - 40MHZ
- * 2 - 80MHZ
- */
- u_int32_t last_tx_bw;
-
- /**
- * The MCS index of the last acknowledged transmit packet.
- */
- u_int32_t last_tx_mcs;
-
- /**
- * Rate adaptations current best throughput rate
- */
- u_int32_t rate; /* this field must be last for stat_parser.pl */
-};
-
-/** @} */
-
-struct qtn_stats {
- u_int32_t tstamp;
- struct qtn_rx_stats rx_phy_stats;
- struct qtn_rx_stats mu_rx_phy_stats;
- struct qtn_tx_stats tx_phy_stats;
- struct qtn_tx_stats mu_tx_phy_stats;
-};
-
-struct qtn_stats_log {
- int curr_buff; /* Indx of the buffer with latest data */
- struct qtn_stats stat_buffs[NUM_LOG_BUFFS];
- struct muc_rx_stats *rx_muc_stats;
- struct muc_rx_rates *rx_muc_rates;
- struct muc_rx_bf_stats *rx_muc_bf_stats;
- struct muc_tx_stats *tx_muc_stats;
- struct qtn_rate_tx_stats_per_sec *tx_muc_rates;
- uint32_t *muc_su_rate_stats_read;
- uint32_t *muc_mu_rate_stats_read;
- uint32_t *scs_cnt;
- uint32_t pad[7]; /* Ensure the pad makes this structure a multiple of ARC cache line size */
-};
-
-/*
- * Micro stats: provide stats in micro view along the time axis
- * Can be used for off-channel and other debug purpose.
- */
-#define QTN_MICRO_STATS_GRANULARITY 1 /* ms, for trace burst in traffic */
-#define QTN_MICRO_STATS_NUM 32 /* enough for max off-channel duration */
-struct qtn_micro_stats {
- /*
- * tx msdu: collected in tx done. With average 1.5ms aggregation timeout, this is accurate
- * enough for off-channel use.
- */
- uint32_t tx_msdu;
- /*
- * rx msdu: collected after rx reorder and mpdu decap, and amsdu decap if existing.
- * - Delay in rx reorder lead to different instantaneous pkt rate from what is in the
- * air in ms level granularity.
- * - If amsdu decap is done in lhost, bbic3 or bbic4 sdp, this value is not correct.
- */
- uint32_t rx_msdu;
-};
-
-struct qtn_micro_stats_log {
- struct qtn_micro_stats latest_stats;
- /* snapshot */
- uint32_t curr_idx;
- struct qtn_micro_stats micro_stats[QTN_MICRO_STATS_NUM];
-};
-
-RUBY_INLINE int qtn_select_rssi_over_error_sums(u_int32_t timestamp, int muc_phy_stats_mode)
-{
- int retval = 0;
-
- switch (muc_phy_stats_mode) {
- case MUC_PHY_STATS_RSSI_RCPI_ONLY:
- retval = 1;
- break;
- case MUC_PHY_STATS_ERROR_SUM_ONLY:
- retval = 0;
- break;
- case MUC_PHY_STATS_ALTERNATE:
- default:
- retval = (timestamp & 0x01);
- break;
- }
-
- return( retval );
-}
-
-#endif
diff --git a/quantenna/include/qtn/muc_share_def.h b/quantenna/include/qtn/muc_share_def.h
deleted file mode 100755
index 2b4c64d..0000000
--- a/quantenna/include/qtn/muc_share_def.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2014 Quantenna Communications, Inc.
- */
-
-#ifndef _MUC_SHARE_DEF_H_
-#define _MUUC_SHARE_DEF_H_
-
-#include "../common/ruby_mem.h"
-
-#define QTN_FW_WMAC_RX_Q_MGMT 0
-#define QTN_FW_WMAC_RX_Q_CTRL 1
-#define QTN_FW_WMAC_RX_Q_DATA 2
-#define QTN_FW_WMAC_RX_QNUM 3
-#define QTN_FW_WMAC_RX_QDEEP_MGMT 9
-#define QTN_FW_WMAC_RX_QDEEP_CTRL 9
-#define QTN_FW_WMAC_RX_QDEEP_DATA 394
-#define QTN_FW_WMAC_RX_DESC_NUM (QTN_FW_WMAC_RX_QDEEP_MGMT + \
- QTN_FW_WMAC_RX_QDEEP_CTRL + QTN_FW_WMAC_RX_QDEEP_DATA)
-
-#endif // #ifndef _MUC_SHARE_DEF_H_
-
diff --git a/quantenna/include/qtn/muc_txrx_stats.h b/quantenna/include/qtn/muc_txrx_stats.h
deleted file mode 100644
index 2445a86..0000000
--- a/quantenna/include/qtn/muc_txrx_stats.h
+++ /dev/null
@@ -1,886 +0,0 @@
-/*
- * Copyright (c) 2008-2012 Quantenna Communications, Inc.
- */
-
-/*
- * This file contains host definitions which are common between the
- * host driver and the microcontroller/MAC code.
- */
-
-/**
- * The host tx descriptor for an ethernet packet
- */
-
-#ifndef _MUC_TXRX_STATS_H_
-#define _MUC_TXRX_STATS_H_
-
-#include <qtn/muc_share_def.h>
-
-#ifdef ENABLE_STATS
-#define MUC_UPDATE_STATS(_a, _b) (_a += _b)
-#define MUC_SETSTAT(_a, _b) (_a = _b)
-#else
-#define MUC_UPDATE_STATS(_a, _b)
-#define MUC_SETSTAT(_a, _b)
-#endif
-
-/**
- * \defgroup MUCSTATS MuC generated statistics
- */
-/** @{ */
-
-/**
- * \brief MuC transmit statistics
- *
- * These statistics are generated on the MuC, mainly on the transmit datapath.
- */
-struct muc_tx_stats {
- /**
- * The number of times the software failed to enqueue a beacon to the
- * hardware.
- *
- * \note If this value is non-zero it could indicate a very congested
- * medium.
- */
- u_int32_t bcn_enq_failed;
-
- /**
- * The number of times the TX status bit is set.
- */
- u_int32_t tx_status_set;
-
- /**
- * The number of packets received from the LHost.
- */
- u_int32_t pkt_from_host;
-
- /**
- * The number of interrupts from the host to indicate data is ready for
- * transmit.
- *
- * \note This number will generally be quite low, as the LHost->MuC
- * data path is poll driven rather than interrupt driven.
- */
- u_int32_t host_intr;
- u_int32_t netbuf_alloc_failed;
-
- /**
- * The number of management packets prior to encapsulation.
- *
- * \note This number should be the same as mgm_after_encap when the system
- * is idle.
- */
- u_int32_t mgm_before_encap;
-
- /**
- * The number of management packets after encapsulation.
- *
- * \note This number should be the same as mgm_before_encap when the system
- * is idle.
- */
- u_int32_t mgm_after_encap;
- u_int32_t pkt_before_encap;
- u_int32_t pkt_after_encap;
-
- /**
- * The number of packets held, waiting for BA to complete.
- */
- u_int32_t pkt_push_back;
-
- u_int32_t pkt_to_hw;
- u_int32_t pkt_to_hw_deferred;
- u_int32_t fd_absent;
- u_int32_t fd_not_ready;
- u_int32_t pkt_fd_available;
- u_int32_t pkt_add_node;
- u_int32_t pkt_add_q;
- u_int32_t pkt_qtn_hardstart;
- u_int32_t tx_reserved;
- u_int32_t tx_reserve_fail;
- u_int32_t txalert_mu_ndp_update;
- u_int32_t txalert_mu_rpt_poll;
- u_int32_t txalert_mu_queue_full;
- u_int32_t txalert_mu_queue_fail;
- u_int32_t sample_rate_mu;
- u_int32_t sample_bw_mu;
- u_int32_t txdone_intr;
- u_int32_t txalert_intr;
- u_int32_t txalert_tasklet;
- u_int32_t txalert_bcn_update;
- u_int32_t txalert_ndp_update;
- u_int32_t tx_ndp_q_occupied;
- u_int32_t tx_ndp_start;
- u_int32_t tx_pwr;
- u_int32_t bcn_scheme_power_save;
- u_int32_t bcn_scheme;
-
- /**
- * This counter shows the number of multicast frames sent while a
- * client is in powersave. Multicast frames with powersave are sent
- * after the DTIM beacon.
- */
- u_int32_t tx_mcast_pwr;
-
- /**
- * This counter shows the number of multicast frames queued for
- * deferred (DTIM beacon) transmission.
- *
- * Multicast packets are deferred until the DTIM beacon when we have
- * at least one power save client associated.
- */
- u_int32_t tx_mcast_defer;
- u_int32_t tx_mcast_defer_hwq;
- u_int32_t tx_limit_drop;
- u_int32_t fd_acquire;
- u_int32_t fd_release;
- u_int32_t fd_acq_fail;
- u_int32_t fd_acq_fail_frms;
- u_int32_t fd_acq_hal_fail;
- u_int32_t fd_acq_hal_fail_frms;
- u_int32_t ba_send;
- u_int32_t ba_del;
- u_int32_t fd_free_nodeclean;
- u_int32_t msdu_expired;
- u_int32_t tx_window_locked;
- u_int32_t tx_window_failed;
- u_int32_t tx_restrict_probe;
- u_int32_t tx_restrict_mode;
- u_int32_t tx_restrict_drop;
- u_int32_t tx_restrict_delay;
- u_int32_t tx_restrict_send;
- u_int32_t tx_sample_pkts;
- u_int32_t tx_sample_bytes;
- u_int32_t tx_underflow;
- u_int32_t tx_hal_enqueued;
- u_int32_t txbf_mode;
- u_int32_t psel_matrix;
- u_int32_t sample_rate;
- u_int32_t sample_bw;
- uint32_t ra_flags;
- u_int32_t fd_balance;
- uint32_t invalid_delay;
- uint32_t halt_tx;
- uint32_t resume_tx;
- uint32_t rfctrl_on;
- uint32_t rfctrl_off;
- uint32_t go_offchan;
- uint32_t go_datachan;
- uint32_t defer_cc;
- uint32_t deferred_cc_done;
- uint32_t off_chan_sample;
- uint32_t off_chan_scan;
- uint32_t off_chan_cac;
- uint32_t cca_pri;
- uint32_t cca_sec;
- uint32_t cca_sec40;
- uint32_t cca_busy;
- uint32_t cca_fat;
- uint32_t cca_intf;
- uint32_t cca_trfc;
- /**
- * These counter show the information of MU frames.
- */
- uint32_t mu_prec_snd_tx;
- uint32_t mu_prec_snd_wait_done;
- uint32_t mu_grp_sel_snd_tx;
- uint32_t mu_grp_sel_snd_wait_done;
-
- uint32_t oc_auctx_timeout;
- uint32_t oc_auctx_overwrite;
- uint32_t oc_auctx_fail;
- uint32_t gi_cnt; /* times GI has been set for any node */
- uint32_t gi_ncidx; /* last node to have GI set */
- uint32_t gi_val; /* SGI enabled state for this node */
- uint32_t select_state_ncidx; /* last node to have qn_select state set */
- uint32_t select_state_val; /* PPPC state for this node */
- uint32_t pppc_scale_cnt; /* times Tx gain scaling has been set for any node */
- uint32_t pppc_scale_ncidx; /* last node to have Tx gain scaling set */
- uint32_t pppc_scale_val; /* Tx gain scaling for this node (0 is max) */
- uint32_t pppc_scale_last_gput; /* The last goodput used by PPPC */
- uint32_t pppc_scale_last_gput_idx; /* The PPPC index of the last goodput value */
- uint32_t pppc_scale_base_cnt; /* times Tx gain scaling base has been set for any node */
- uint32_t pppc_scale_base_20m; /* Combined tx scale bases for different bf/nss cases in 20MHz */
- uint32_t pppc_scale_base_40m; /* Combined tx scale bases for different bf/nss cases in 40MHz */
- uint32_t pppc_scale_base_80m; /* Combined tx scale bases for different bf/nss cases in 80MHz */
- uint32_t pppc_scale_base_copy; /* combined the flags indicating the tx scale bases are copied bfoff 1ss cases */
- uint32_t pppc_scale_overstep; /* tx scale exceed the maximum scale indices */
- uint32_t pppc_scale_rollback; /* tx scale roll back because scale index over step */
- uint32_t pppc_0_gput; /* times pppc comparing goodput and both are zero */
- uint32_t tx_max_power;
- uint32_t nc_csr_read_count; /* number of times Node Cache was read */
- uint32_t nc_csr_write_count; /* number of times Node Cache was written to */
- uint32_t nc_csr_done_watermark; /* Node cache done retries high watermark */
- uint32_t nc_csr_watermark_count; /* Number of times read retries reached max */
- uint32_t auc_dtim_notify;
- uint32_t auc_ps_notify;
- uint32_t tx_beacon_done;
- uint32_t sfs_peer_rts;
- uint32_t sfs_peer_rts_flags;
- uint32_t sfs_local_rts;
- uint32_t sfs_local_rts_flags;
- uint32_t sfs_dyn_wmm;
- uint32_t sfs_dyn_wmm_flags;
- uint32_t auc_wmm_ps_notify;
- uint32_t tx_wmm_ps_null_frames;
- uint32_t qtn_bcn_stop;
- uint32_t mu_grp_snd_queue_is_not_empty;
- uint32_t mu_prec_snd_queue_is_not_empty;
- uint32_t mu_group_delete;
- uint32_t mu_group_install;
- uint32_t mu_group_rate_node_updates;
- uint32_t mu_update_rates_mu;
- uint32_t mu_update_rates_su;
- uint32_t autocs_sample_bits;
- uint32_t autocs_adjust_bits;
- uint32_t autocs_step_size;
- uint32_t autocs_cs_thresh;
- uint32_t autocs_min_rssi;
- uint32_t bmps_null_tx_success;
- uint32_t bmps_null_tx_fail;
- uint32_t bmps_null_tx_timeout;
- uint32_t txqueue_g1q0_deadline_frozen; /* beacon deadline register frozen counter */
- uint32_t auc_ipc_retry;
- uint32_t auc_ipc_hwm;
- uint32_t auc_ipc_send_delay;
- uint32_t auc_ipc_send_delay_hwm;
-};
-
-/**
- * \brief MuC receive statistics
- *
- * These statistics are generated on the MuC, mainly on the receive datapath. This set of statistics
- * also include low-level debugging facilities used internally.
- */
-struct muc_rx_stats {
- /**
- * This counter shows the number of descriptors taken from the host,
- * 'popped' from the top of the list.
- */
- u_int32_t rxdesc_pop_from_host;
-
- /**
- * This counter shows the number of descriptors pushed to the hardware
- * for receive buffers.
- */
- u_int32_t rxdesc_get_from_queue;
- u_int32_t rxdesc_push_to_host;
- u_int32_t rxdesc_non_aggr_push_to_host;
- u_int32_t rxdesc_flush_to_host;
- u_int32_t rxdesc_reuse_push;
- u_int32_t rxdesc_reuse_pop;
-
- /**
- * This counter shows the number of packets received with a bad duration.
- * A bad duration is where the duration field is all 1's - that is,
- * a packet which violates the 802.11 standard.
- */
- u_int32_t rxdesc_status_bad_dur;
- u_int32_t rxdesc_status_bad_len;
- u_int32_t rxdesc_slow_status;
- u_int32_t rxdesc_fast_status;
- u_int32_t rxdesc_status_crc_err;
- u_int32_t rxdesc_status_cmic_err;
- u_int32_t rxdesc_status_cmic_no_crc_err;
- u_int32_t rxdesc_status_retry;
- u_int32_t agg_stored;
- u_int32_t agg_duplicate;
-
- u_int32_t accel_mpdu;
- u_int32_t accel_msdu;
- u_int32_t accel_no_buffer;
- u_int32_t accel_fwt_lu_timeout;
- u_int32_t accel_mcast_send;
- u_int32_t accel_mcast_drop;
- u_int32_t accel_no_match;
- u_int32_t accel_drop;
- u_int32_t accel_err;
-
- u_int32_t rate_train_chk;
- u_int32_t rate_train_err;
- u_int32_t rate_train_delay;
- u_int32_t rate_train_none;
- u_int32_t rate_train_hash_bad;
- u_int32_t rate_train_hash_good;
-
- /**
- * This counter shows the number of MPDUs within an AMPDU that have been
- * discarded due to the sequence number being outside ('below') the current
- * receive sequence window.
- */
- u_int32_t agg_oldpkts;
-
- /**
- * This counter shows the number of MPDUs within an AMPDU that have been
- * discarded due to the sequence number being off by > 2047 (half the sequence
- * space).
- */
- u_int32_t agg_very_oldpkts;
- u_int32_t agg_evict_in_order;
- u_int32_t agg_evict_in_move;
-
- /**
- * This counter shows the number of received subframes within the
- * receive window that are missing when the window is moved.
- *
- * This counter represents one source receive packet loss.
- */
- u_int32_t agg_evict_empty;
-
- /**
- * This counter shows the number of received subframes within the
- * receive window that are evicted due to timeout. Timeout is used
- * to ensure we don't sit with a stuck receive aggregate window when
- * the transmitter has stopped re-transmitting a given subframe.
- */
- u_int32_t agg_timeout;
- u_int32_t agg_rxwin_reset;
- u_int32_t rx_qnum_err;
- u_int32_t rx_mgmt;
- u_int32_t rx_ctrl;
- u_int32_t rx_pspoll;
- u_int32_t rx_pwr_mgmt;
- u_int32_t rx_delba;
- /**
- * This counter shows the number of times the powersave bit is set
- * in the frame control field of packets received.
- *
- * \note This counter will generally be one greater than rx_pwr_mgmt_reset
- * when we have a single PS client associated and in power save.
- *
- * \sa rx_pwr_mgmt_reset
- */
- u_int32_t rx_pwr_mgmt_set;
-
- /**
- * This counter shows the number of times the powersave bit of a
- * currently power save client is reset.
- *
- * \note This counter will generally be one less than rx_pwr_mgmt_set
- * when we have a single PS client associated and in power save mode.
- *
- * \sa rx_pwr_mgmt_set
- */
- u_int32_t rx_pwr_mgmt_reset;
-
- /**
- * \internal
- *
- * We have 2-stage process of pushing rx descriptors to the MAC:
- *
- * 1) On tasklet level we prepare descriptors and save these prepared
- * descriptors into intermediate buffer "rxdesc_cache"
- *
- * 2) In RX ISR context we get buffer from "rxdesc_cache" and push it
- * to hardware. Same procedure can be sometimes called within tasklet
- * level too. It is because if we failed (e.g. no free descriptors) to
- * push descriptor to hw in ISR context, likely we would not receive any
- * RX interrupts anymore, so tasklet scheduled which would reschedule
- * itself until succeed.
- *
- * rx_emergency counter incremented if (2) replenishing procedure found
- * that hw rx queue have slot for descriptors and fail to retrieve
- * descriptor from "rxdesc_cache" to replenish hw queue.
- *
- * Spike of rx_emergency does not look good.
- *
- * It's like tasklet was scheduled to replenish hw queue and fail it,
- * reschedule itself and fail again and again.
- *
- * Generally, rx_emergency increasing is legitimate case, for example
- * if the system is overloaded by incoming traffic. However, it also can
- * be a sign of something bad, like processing of rx frames is stuck somewhere.
- */
- u_int32_t rx_emergency;
- u_int32_t rx_underflow;
- u_int32_t rx_desc_underflow;
- u_int32_t rx_desc_linkerr;
- u_int32_t rx_notify;
- u_int32_t rx_df_numelems;
- u_int32_t last_recv_seq;
-
- /**
- * This counter shows the number of packets received for an unknown
- * node - that is - one which we do not have an association with.
- */
- u_int32_t rx_node_not_found;
-
- /**
- * This counter shows the number of duplicates of non-QoS packets we
- * received and discarded.
- */
- u_int32_t rx_non_qos_duplicate;
-
- /**
- * This counter shows the number of received NDPs.
- */
- u_int32_t rx_11n_ndp;
- u_int32_t rx_11ac_ndp;
- u_int32_t rx_ndp_inv_slot;
- u_int32_t rx_11n_ndp_no_capt;
- u_int32_t rx_ndp_sw_processed;
- u_int32_t rx_ndp_lockup;
- u_int32_t rx_11n_bf_act;
- u_int32_t rx_11ac_bf_act;
- u_int32_t rx_bf_act_inv_slot;
-
- /**
- * This counter shows the number of received AMSDUs. This counter does
- * not count the number of subframes within the AMSDU.
- */
- u_int32_t rx_amsdu;
- u_int32_t rx_data;
- u_int32_t prev_rx_data;
- u_int32_t rx_recv_qnull;
- u_int32_t rx_recv_act;
- u_int32_t rx_recv_bcn;
- u_int32_t rx_recv_auth;
- u_int32_t rx_recv_assoc_req;
- u_int32_t rx_recv_assoc_res;
- u_int32_t rx_recv_deauth;
- u_int32_t rx_recv_disassoc;
-
- /**
- * This counter shows the number of packets received where the MCS as
- * indicated in the PLCP is invalid (> 76).
- */
- u_int32_t rx_mcs_gt_76;
- u_int32_t tkip_keys; /* Keep count of TKIP keys installed - for debug */
- u_int32_t rx_tkip_mic_err; /* Number of TKIP packets RX with MIC error - the number reported to the higher layers */
- u_int32_t icv_errs; /* The number of raw ICV errors reported by the hardware */
- u_int32_t tmic_errs; /* The number of raw TMIC errors reported by the hardware */
- u_int32_t cmic_errs;
- u_int32_t crc_errs;
-
- /**
- * This counter shows the number of transmit block ACK agreements
- * installed.
- *
- * If the upper bit is set, at least one implicit block ACK has been
- * established with a Quantenna peer.
- *
- * \note This number only increments - when block ACK agreements are
- * removed, this counter does not decrement.
- */
- u_int32_t ba_tx;
-
- /**
- * This counter shows the number of receive block ACK agreements
- * installed.
- *
- * If the upper bit is set, at least one implicit block ACK has been
- * established with a Quantenna peer.
- *
- * \note This number only increments - when block ACK agreements are
- * removed, this counter does not decrement.
- */
- u_int32_t ba_rx;
-
- /**
- * The number of times a block ACK has been rejected due to an out of
- * resource situation.
- */
- u_int32_t ba_rx_fail;
- u_int32_t sec_oflow;
- u_int32_t str_oflow;
- u_int32_t oflow_fixup_timeout;
- u_int32_t rxdone_intr;
- u_int32_t rxtypedone_intr;
- u_int32_t ipc_a2m_intr;
- u_int32_t tqe_intr;
- u_int32_t tqe_in_port_lhost;
- u_int32_t tqe_in_port_bad;
- u_int32_t tqe_a2m_type_txfb;
- u_int32_t tqe_a2m_type_rxpkt;
- u_int32_t tqe_a2m_type_unknown;
- u_int32_t tqe_reschedule_task;
- u_int32_t tqe_desc_unowned;
-
- /**
- * \internal
- *
- * The number of interrupts from the baseband to the MuC.
- *
- * \note This should not be distributed externally - the following
- * fields are for internal debugging ONLY.
- */
- u_int32_t bb_intr;
-
- /**
- * \internal
- *
- * The number of DLEAF overflow interrupts from the baseband.
- */
- u_int32_t bb_irq_dleaf_oflow;
- u_int32_t bb_irq_leaf_uflow;
- u_int32_t bb_irq_leaf_ldpc_uflow;
- u_int32_t bb_irq_tx_td_oflow_intr;
- u_int32_t bb_irq_tx_td_uflow_intr;
- u_int32_t bb_irq_rx_sm_wdg_intr;
- /* BB spends more than 6.8ms (short GI)/7.55ms (long GI) to receive one packet */
- u_int32_t bb_irq_rx_long_dur;
- /* BB spends more than 5.4ms (standard defined limit) to receive one 11ac packet. */
- u_int32_t bb_irq_rx_11ac_timeout;
- u_int32_t bb_irq_tx_sm_wdg_intr;
-
- /**
- * \internal
- *
- * The number of BB state machine watchdogs that have kicked in.
- */
- u_int32_t bb_irq_main_sm_wdg_intr;
- u_int32_t bb_irq_hready_wdg_intr;
- u_int32_t mac_irq_rx_sec_buff_oflow;
- u_int32_t mac_irq_rx_strq_oflow;
- u_int32_t mac_irq_rx_bb_uflow_intr;
- u_int32_t mac_irq_rx_bb_oflow_intr;
- u_int32_t bb_irq_hready_wdg_reset;
-
- /**
- * \internal
- *
- * This counter is incremented once at the start of the main watchdog state machine.
- *
- * \sa sreset_wdg_end
- */
- u_int32_t sreset_wdg_begin;
-
- /**
- * \internal
- *
- * This counter is incremented once at the end of the main watchdog state machine.
- *
- * \sa sreset_wdg_begin
- */
- u_int32_t sreset_wdg_end;
- u_int32_t sreset_wdg_in_place;
- u_int32_t sreset_wdg_tx_beacon_hang;
-
- /**
- * \internal
- *
- * The number of transmit hangs causing soft reset.
- *
- * Transmit hang is between 400 to 900ms from the time of sending a packet to the hardware
- * without receiving a tx done interrupt.
- */
- u_int32_t sreset_wdg_tx_hang;
-
- /**
- * \internal
- *
- * The number of packet memory corruption causing soft reset.
- *
- * For unknown reason, packet memory may be corrupted. When packet memory corruption is detected,
- * soft reset is triggered, and this counter incremented once.
- */
- u_int32_t sreset_wdg_pm_corrupt;
-
- /**
- * \internal
- *
- * The number of packet transmit control memory corruption causing soft reset.
- *
- * For unknown reason, transmit control memory may be corrupted. When transmit control memory corruption is detected,
- * soft reset is triggered, and this counter incremented once.
- */
- u_int32_t sreset_wdg_tcm_corrupt;
-
- /**
- * \internal
- *
- * The number of receive hangs causing a soft reset.
- *
- * Receive hang is > 70s without receiving a single packet.
- *
- * Note that this can trigger in idle situations, but should not affect anything because
- * the link is idle.
- */
- u_int32_t sreset_wdg_rx_done;
- u_int32_t sreset_wdg_in_place_try;
- u_int32_t sreset_wdg_tasklet_sched_1;
- u_int32_t sreset_wdg_tasklet_sched_2;
- u_int32_t sreset_tasklet_sched;
- u_int32_t sreset_tasklet_begin;
- u_int32_t sreset_tasklet_end;
-
- /**
- * \internal
- *
- * This counter is incremented when a BB hard reset is requested
- * to occur in the middle of a soft reset sequence
- */
- u_int32_t hreset_req;
-
- /**
- * \internal
- *
- * This counter is incremented at the start of a soft reset.
- *
- * There should always be a corresponding increment in the sreset_end
- * counter, or there is a problem.
- *
- * \sa sreset_end
- */
- u_int32_t sreset_begin;
-
- /**
- * \internal
- *
- * This counter is incremented at the end of a soft reset.
- *
- * The should always being a corresponding increment in the sreset_begin
- * counter, or there is a problem.
- *
- * \sa sreset_begin
- */
- u_int32_t sreset_end;
-
- /**
- * \internal
- *
- * This counter is incremented each time DMA RX is in progress when a
- * soft reset is triggered.
- */
- u_int32_t sreset_dma_rx_inprog;
-
- /**
- * \internal
- *
- * This counter is incremented each time DMA TX is in progress when a
- * soft reset is triggered.
- */
- u_int32_t sreset_dma_tx_inprog;
- u_int32_t sreset_dma_rx_max_wait;
- u_int32_t sreset_dma_tx_max_wait;
- u_int32_t sreset_dma_tx_hang;
- u_int32_t sreset_dma_rx_hang;
- u_int32_t sreset_dma_rx_wait_timeout;
- u_int32_t sreset_dma_tx_wait_timeout;
- u_int32_t sreset_drop_not_valid;
- u_int32_t sreset_drop_bad_addr;
- u_int32_t rf_cmpvtune_out;
- u_int32_t rf_cal_freq;
- u_int32_t ac_max;
- u_int32_t ac_min;
- u_int32_t ac_cur;
- u_int32_t ac_adj;
- u_int32_t rx_gain;
- u_int32_t rd_cache_indx;
- u_int32_t logger_sreset_wmac1_dma_rx_inprog;
- u_int32_t logger_sreset_wmac1_dma_tx_inprog;
- u_int32_t logger_sreset_wmac1_dma_rx_max_wait;
- u_int32_t logger_sreset_wmac1_dma_tx_max_wait;
- u_int32_t logger_sreset_wmac1_dma_tx_hang;
- u_int32_t logger_sreset_wmac1_dma_rx_hang;
- u_int32_t logger_sreset_wmac1_dma_rx_wait_timeout;
- u_int32_t logger_sreset_wmac1_dma_tx_wait_timeout;
- /**
- * These counter show the information of MU frames.
- */
- u_int32_t mu_rx_pkt;
-
- /**
- * \internal
- *
- * These counters monitor power duty cycling
- */
- u_int32_t pduty_sleep;
- u_int32_t pduty_rxoff;
- u_int32_t pduty_period;
- u_int32_t pduty_pct;
-
- /**
- * \internal
- *
- * These counter are incremented when a soft-ring operation is triggered
- */
- u_int32_t soft_ring_push_to_tqe;
- u_int32_t soft_ring_empty;
- u_int32_t soft_ring_not_empty;
- u_int32_t soft_ring_add_force;
- u_int32_t soft_ring_add_to_head;
- u_int32_t soft_ring_add_continue;
- u_int32_t soft_ring_free_pool_empty;
- u_int32_t mimo_ps_mode_switch; /* times STA switch MIMO power-save mode by HT action */
-
- u_int32_t rx_vlan_drop;
- u_int32_t auto_cca_state;
- u_int32_t auto_cca_th;
- u_int32_t auto_cca_spre;
- u_int32_t auto_cca_intf;
-
- /**
- * \internal
- *
- * These counters are monitor memory allocation.
- */
- u_int32_t total_dmem_alloc;
- u_int32_t total_dram_alloc;
- u_int32_t dmem_alloc_fails;
- u_int32_t dram_alloc_fails;
- u_int32_t total_dmem_free;
- u_int32_t total_dram_free;
-
- /* RX frames BW mode*/
- u_int32_t rx_bw_80;
- u_int32_t rx_bw_40;
- u_int32_t rx_bw_20;
-
- /* U-APSD rx stats */
- uint32_t rx_wmm_ps_trigger;
- uint32_t rx_wmm_ps_set;
- uint32_t rx_wmm_ps_reset;
-
- uint32_t rx_intr_next_ptr_0;
- uint32_t rx_hbm_pool_depleted;
-
- uint32_t rxq_intr[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_fill[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_nobuf[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_stop[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_pkt[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_bad_status[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_pkt_oversize[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_pkt_delivered[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_status_hole_chk_num[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_status_hole_chk_step_sum[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_status_hole_chk_step_max[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_status_hole[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_status_hole_max_size[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_process_max[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_process_sum[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_process_num[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_process_limited[QTN_FW_WMAC_RX_QNUM];
- uint32_t rxq_desc_chain_empty[QTN_FW_WMAC_RX_QNUM];
- uint32_t rx_data_last_seqfrag;
- uint32_t rx_data_last_ip_id;
- uint32_t rx_opmode_notify;
-
- /**
- * This counter is incremented once per packet which is sent via the
- * external filter (HotSpot functionality).
- */
- uint32_t accel_l2_ext_filter;
- uint32_t accel_mc_send_l2_ext_filter;
-
- /**
- * This counter is incremented once per multicast packet dropped without
- * forwording to the external filter (HotSpot functionality).
- */
- uint32_t accel_mc_drop_l2_ext_filter;
-
- uint32_t rx_frame_addressed_to_wrong_bss;
-};
-
-#define MUC_LEGACY_NUM_RATES 12
-#define MUC_HT_NUM_RATES 77
-#define MUC_VHT_NUM_RATES 40
-struct muc_rx_rates {
- u_int32_t rx_mcs[MUC_HT_NUM_RATES];
- u_int32_t rx_mcs_11ac[MUC_VHT_NUM_RATES];
-};
-
-#define QTN_STATS_NUM_BF_SLOTS 10
-struct muc_rx_bf_stats {
- u_int32_t rx_bf_valid[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t rx_bf_aid[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t rx_bf_ng[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t rx_bf_11n_ndp[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t rx_bf_11ac_ndp[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t rx_bf_11n_act[QTN_STATS_NUM_BF_SLOTS];
- /* Total number of 11ac BF feedbacks */
- u_int32_t rx_bf_11ac_act[QTN_STATS_NUM_BF_SLOTS];
- /* Number of MU group selection BF feedbacks */
- u_int32_t rx_bf_11ac_grp_sel[QTN_STATS_NUM_BF_SLOTS];
- /* Number of MU precoding BF feedbacks */
- u_int32_t rx_bf_11ac_prec[QTN_STATS_NUM_BF_SLOTS];
- /* Number of SU BF feedbacks */
- u_int32_t rx_bf_11ac_su[QTN_STATS_NUM_BF_SLOTS];
- /* Number of corrupted BF feedbacks */
- u_int32_t rx_bf_11ac_bad[QTN_STATS_NUM_BF_SLOTS];
- /* Number of MuC to DSP IPC failures while sending BF feedbacks */
- u_int32_t rx_bf_11ac_dsp_fail[QTN_STATS_NUM_BF_SLOTS];
- /* Number of times QMat for this node has been updated (the node was added to MU group) */
- u_int32_t mu_grp_add[QTN_STATS_NUM_BF_SLOTS];
- /* Number of times the node was removed from MU group */
- u_int32_t mu_grp_del[QTN_STATS_NUM_BF_SLOTS];
- u_int32_t msg_buf_alloc_fail;
-};
-
-/** @} */
-
-extern struct muc_rx_stats uc_rx_stats;
-extern struct muc_rx_rates uc_rx_rates;
-extern struct muc_rx_bf_stats uc_rx_bf_stats;
-extern struct muc_tx_stats uc_tx_stats;
-extern struct qtn_rate_tx_stats_per_sec uc_tx_rates;
-extern uint32_t uc_su_rate_stats_read;
-extern uint32_t uc_mu_rate_stats_read;
-
-/*
- * Rate adaption data collected for packet logger
- * NOTE: Any changes to these definitions will require changes to stat_parser.pl
- */
-#define RATES_STATS_NUM_ADAPTATIONS 16
-#define RATES_STATS_NUM_TX_RATES 6
-#define RATES_STATS_NUM_RX_RATES 8 /* Must be a multiple of word size */
-#define RATES_STATS_EVM_CNT 4
-
-/*
- * Currently only two user positions are supported for MU group
- * the following define should be aligned
- * with IEEE80211_MU_GRP_NODES_MAX (4) in future.
- * for now we don't want to take care about 2x extra zero-filled
- * huge arrays in rate stats
- */
-#define RATES_STATS_MAX_USER_IN_GROUP 2
-
-/**
- * \addtogroup MUCSTATS
- */
-/** @{ */
-struct qtn_rate_stats_mcs_data {
- uint16_t mcs_rate;
- uint16_t rate_index;
- uint16_t state;
- uint16_t pkt_total;
- uint16_t pkt_error;
- uint16_t pkt_hw_retry;
- uint16_t pkt_sample;
- uint16_t avg_per;
-} __attribute__((packed));
-
-struct qtn_rate_su_tx_stats {
- uint32_t seq_no;
- uint32_t timestamp;
- uint32_t flags;
- uint16_t sampling_index;
- uint16_t sampling_rate;
- struct qtn_rate_stats_mcs_data mcs_data[RATES_STATS_NUM_TX_RATES];
-} __attribute__((packed));
-
-struct qtn_rate_mu_tx_stats {
- struct qtn_rate_su_tx_stats group_stats[RATES_STATS_MAX_USER_IN_GROUP];
-} __attribute__((packed));
-
-struct qtn_rate_gen_stats {
- u_int16_t rx_mcs_rates[RATES_STATS_NUM_RX_RATES];
- u_int32_t rx_mcs[RATES_STATS_NUM_RX_RATES];
- u_int32_t rx_crc;
- u_int32_t rx_sp_errors;
- u_int32_t rx_lp_errors;
- u_int32_t rx_evm[RATES_STATS_EVM_CNT];
- u_int32_t tx_subframe_success;
- u_int32_t tx_subframe_fail;
- u_int32_t tx_mgmt_success;
- u_int32_t tx_hw_retry;
- u_int32_t tx_sw_retry;
-} __attribute__((packed));
-
-struct qtn_rate_tx_stats_per_sec {
- struct qtn_rate_su_tx_stats stats_su[RATES_STATS_NUM_ADAPTATIONS];
- struct qtn_rate_mu_tx_stats stats_mu[RATES_STATS_NUM_ADAPTATIONS];
-};
-/** @} */
-
-#endif /* _STATS_H_ */
diff --git a/quantenna/include/qtn/qdrv_sch.h b/quantenna/include/qtn/qdrv_sch.h
deleted file mode 100644
index e761234..0000000
--- a/quantenna/include/qtn/qdrv_sch.h
+++ /dev/null
@@ -1,499 +0,0 @@
-/*SH0
-*******************************************************************************
-** **
-** Copyright (c) 2011 - 2012 Quantenna Communications, Inc. **
-** All Rights Reserved **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH0*/
-
-#ifndef __QDRV_SCH_H
-#define __QDRV_SCH_H
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/types.h>
-#include <linux/skbuff.h>
-#include <linux/ip.h>
-#ifdef CONFIG_IPV6
-#include <linux/ipv6.h>
-#endif
-#include <net/pkt_sched.h>
-
-#include "net80211/if_ethersubr.h"
-#include "net80211/if_llc.h"
-
-#include <linux/if_vlan.h>
-
-#include <qtn/qtn_global.h>
-
-#include <qtn/qdrv_sch_data.h>
-#include "qdrv_sch_const.h"
-#include <qtn/iputil.h>
-#include <qtn/qtn_net_packet.h>
-#include <qtn/topaz_tqe_cpuif.h>
-#include <qtn/topaz_vlan_cpuif.h>
-#include <common/topaz_emac.h>
-#include <asm/hardware.h>
-#define ETHER_TYPE_UNKNOWN 0XFFFF
-#define IPTOS_PREC_SHIFT 5
-
-#define IP_DSCP_SHIFT 2
-#define IP_DSCP(_pri) (((_pri) & 0xFF) >> IP_DSCP_SHIFT)
-#define IP_DSCP_MAPPING_SIZE IP_DSCP_NUM >> 1
-#define VLANID_INDEX_INITVAL 4096
-/* 4-bits are used to store TID */
-#define QDRV_IP_DSCP_MAPPING_SHIFT 4
-#define QDRV_IP_DSCP_INDEX_SHIFT 3
-
-#define QDRV_SCH_RESERVED_TOKEN_PER_USER 64
-
-#define QDRV_SCH_EMAC0_IN_USE 1
-#define QDRV_SCH_EMAC1_IN_USE 2
-
-int qdrv_sch_module_init(void);
-void qdrv_sch_module_exit(void);
-
-extern __sram_data uint8_t qdrv_sch_tos2ac[];
-extern __sram_data uint8_t qdrv_sch_dscp2dot1p[];
-extern __sram_data uint8_t qdrv_vap_vlan_max;
-extern __sram_data uint8_t qdrv_sch_dscp2tid[QTN_MAX_BSS_VAPS][IP_DSCP_MAPPING_SIZE];
-extern __sram_data uint16_t qdrv_sch_vlan2index[QTN_MAX_BSS_VAPS];
-
-/*
- * Refactoring of emac_wr(struct emac_common *arapc, int reg, u32 val)
- * We can't visit the emac_common structure here.
- */
-__always_inline static void qtn_emac_wr(uint32_t vbase, int reg, u32 val)
-{
- writel(val, IO_ADDRESS(vbase + reg));
- /* HW bug workaround - dummy access breaks up bus transactions. */
- readl(RUBY_SYS_CTL_BASE_ADDR);
-}
-
-__always_inline static uint32_t qtn_emac_rd(uint32_t vbase, int reg)
-{
- /*
- *HW bug workaround , sometimes we can't get the correct register value
- * so we need to do an extra readl
- */
- readl(RUBY_SYS_CTL_BASE_ADDR);
- return readl(IO_ADDRESS(vbase + reg));
-}
-
-static inline struct Qdisc *qdrv_tx_sch_vap_get_qdisc(const struct net_device *dev)
-{
- /* This assumes 1 tx netdev queue per vap */
- return netdev_get_tx_queue(dev, 0)->qdisc;
-}
-
-static inline int qdrv_sch_tclass_to_ac(const uint8_t dscp)
-{
- int wme_ac;
- uint8_t dot1p_up;
-
- dot1p_up = qdrv_sch_dscp2dot1p[IP_DSCP(dscp)];
- if (dot1p_up < IEEE8021P_PRIORITY_NUM)
- wme_ac = qdrv_sch_tos2ac[dot1p_up];
- else
- wme_ac = qdrv_sch_tos2ac[IPTOS_PREC(dscp) >> IPTOS_PREC_SHIFT];
-
- return wme_ac;
-}
-
-static inline uint32_t qdrv_sch_classify_ipv4(struct sk_buff *skb, struct iphdr *iphdr_p)
-{
- int wme_ac;
-
- wme_ac = qdrv_sch_tclass_to_ac(iphdr_p->tos);
-
- QTN_SKB_CB_IPPROTO(skb) = iphdr_p->protocol;
-
- return wme_ac;
-}
-
-#ifdef CONFIG_IPV6
-static inline uint32_t qdrv_sch_classify_ipv6(struct sk_buff *skb, struct ipv6hdr *ipv6hdr_p)
-{
- int wme_ac;
- uint8_t t_class = 0;
- uint8_t nexthdr;
-
- t_class = (ipv6hdr_p->priority << 4) | (ipv6hdr_p->flow_lbl[0] >> 4);
- wme_ac = qdrv_sch_tclass_to_ac(t_class);
-
- iputil_v6_skip_exthdr(ipv6hdr_p, sizeof(struct ipv6hdr), &nexthdr,
- (skb->len - ((uint8_t *)ipv6hdr_p - skb->data)), NULL, NULL);
- QTN_SKB_CB_IPPROTO(skb) = nexthdr;
-
- return wme_ac;
-}
-#endif
-
-static inline uint32_t qdrv_sch_classify_vlan_tag(struct sk_buff *skb)
-{
- int wme_ac = WME_AC_BE;
- struct vlan_ethhdr *vlan_eth = (struct vlan_ethhdr *) skb->data;
- uint8_t v_pri;
-
- v_pri = (ntohs(get_unaligned(&vlan_eth->h_vlan_TCI)) >> VLAN_PRI_SHIFT) & VLAN_PRI_MASK;
- wme_ac = qdrv_sch_tos2ac[v_pri];
-
- return wme_ac;
-}
-
-/*
- * Get the max priority between vlan priority and 11p priority
- */
-static inline uint8_t
-qdrv_sch_get_max_priority(uint8_t vlan_ac, uint8_t ip_ac)
-{
- uint8_t max_ac = WME_AC_BE;
-
- if ((vlan_ac <= WME_AC_BK) && (ip_ac <= WME_AC_BK))
- max_ac = min(vlan_ac, ip_ac);
- else
- max_ac = max(vlan_ac, ip_ac);
-
- return max_ac;
-}
-
-static inline int
-qdrv_sch_classify_ctrl(struct sk_buff *skb)
-{
- uint16_t ether_type = QTN_SKB_CB_ETHERTYPE(skb);
- uint8_t ip_protocol;
-
- if (likely(iputil_eth_is_ipv4or6(ether_type))) {
- ip_protocol = QTN_SKB_CB_IPPROTO(skb);
- if (unlikely((ip_protocol == IPPROTO_ICMP) ||
- (ip_protocol == IPPROTO_ICMPV6) ||
- (ip_protocol == IPPROTO_IGMP))) {
- return 1;
- }
- } else if ((ether_type == __constant_htons(ETH_P_ARP)) ||
- (ether_type == __constant_htons(ETH_P_PAE))) {
- return 1;
- }
-
- return 0;
-}
-
-#define qdrv_vlan_tx_tag_present(__skb) ((__skb)->vlan_tci)
-
-static inline void
-qdrv_sch_classify(struct sk_buff *skb, uint16_t ether_type, uint8_t *data_start)
-{
- struct iphdr *iphdr_p = (struct iphdr *)data_start;
- uint8_t wme_ac = WME_AC_BE;
- uint8_t vlan_wme_ac = WME_AC_BE;
-
- if (M_FLAG_ISSET(skb, M_CLASSIFY)) {
- return;
- }
- M_FLAG_SET(skb, M_CLASSIFY);
-
- QTN_SKB_CB_ETHERTYPE(skb) = ether_type;
-
- if (likely(ether_type == __constant_htons(ETH_P_IP))) {
- if ((skb->len >= (data_start - skb->data) + sizeof(*iphdr_p)) &&
- (iphdr_p->version == 4)) {
- wme_ac = qdrv_sch_classify_ipv4(skb, iphdr_p);
- }
- }
-
-#ifdef CONFIG_IPV6
- if (ether_type == __constant_htons(ETH_P_IPV6)) {
- if (skb->len >= (data_start - skb->data) + sizeof(struct ipv6hdr) &&
- (iphdr_p->version == 6)) {
- wme_ac = qdrv_sch_classify_ipv6(skb, (struct ipv6hdr *)data_start);
- }
- }
-#endif
- if (qdrv_sch_classify_ctrl(skb)) {
- wme_ac = QTN_AC_MGMT;
- }
-
- if (qdrv_vlan_tx_tag_present(skb)) {
- vlan_wme_ac = qdrv_sch_classify_vlan_tag(skb);
- wme_ac = qdrv_sch_get_max_priority(vlan_wme_ac, wme_ac);
- }
-
- skb->priority = wme_ac;
-}
-
-static inline void
-qdrv_sch_classify_bk(struct sk_buff *skb)
-{
- M_FLAG_SET(skb, M_CLASSIFY);
- skb->priority = QDRV_BAND_AC_BK;
-}
-
-/*
- * Skip over L2 headers in a buffer
- * Returns Ethernet type and a pointer to the payload
- */
-static inline void *
-qdrv_sch_find_data_start(struct sk_buff *skb,
- struct ether_header *eh, u16 *ether_type)
-{
- struct llc *llc_p;
- struct vlan_ethhdr *vlan_ethhdr_p;
-
- if (ntohs(eh->ether_type) < ETHER_MAX_LEN) {
- llc_p = (struct llc *)(eh + 1);
- if ((skb->len >= LLC_SNAPFRAMELEN) &&
- (llc_p->llc_dsap == LLC_SNAP_LSAP) &&
- (llc_p->llc_ssap == LLC_SNAP_LSAP)) {
- *ether_type = llc_p->llc_un.type_snap.ether_type;
- return (void *)((char *)(eh + 1) - sizeof(ether_type) + LLC_SNAPFRAMELEN);
- } else {
- *ether_type = ETHER_TYPE_UNKNOWN;
- return (void *)(eh + 1);
- }
- } else if (ntohs(eh->ether_type) == ETH_P_8021Q) {
- vlan_ethhdr_p = (struct vlan_ethhdr *)eh;
- *ether_type = vlan_ethhdr_p->h_vlan_encapsulated_proto;
- skb->vlan_tci = ntohs(get_unaligned((__be16 *)(&vlan_ethhdr_p->h_vlan_TCI)));
- return (void *)(vlan_ethhdr_p + 1);
- } else {
- *ether_type = eh->ether_type;
- return (void *)(eh + 1);
- }
-}
-
-static inline uint8_t qdrv_dscp2tid_default(const uint8_t dscp)
-{
- const uint8_t tclass = dscp << IP_DSCP_SHIFT;
- const uint8_t ac = qdrv_sch_tclass_to_ac(tclass);
- const uint8_t tid = WME_AC_TO_TID(ac);
-
- return tid;
-}
-
-/* Each byte contains 2 4-bit DSCP mapping values */
-static inline void qdrv_dscp2tid_setvalue(uint8_t ifindex , uint8_t dscp, uint8_t tid)
-{
- uint8_t curval = 0;
- uint8_t index = 0;
-
- index = dscp >> 1;
- curval = qdrv_sch_dscp2tid[ifindex][index];
-
- if (dscp & 0x1) {
- qdrv_sch_dscp2tid[ifindex][index] = (curval & ~0xf) | tid;
- } else {
- qdrv_sch_dscp2tid[ifindex][index] = (curval & ~(0xf << QDRV_IP_DSCP_MAPPING_SHIFT)) |
- (tid << QDRV_IP_DSCP_MAPPING_SHIFT);
- }
-}
-
-static inline void qdrv_dscp2tid_map_init(void)
-{
- uint8_t ifindex;
- uint8_t dscp;
- uint8_t tid = 0;
-
- for (dscp = 0; dscp < IP_DSCP_NUM; dscp++) {
- tid = qdrv_dscp2tid_default(dscp);
- qdrv_dscp2tid_setvalue(0, dscp, tid);
- }
-
- for (ifindex = 1; ifindex < QTN_MAX_BSS_VAPS; ifindex++) {
- memcpy(&qdrv_sch_dscp2tid[ifindex][0], &qdrv_sch_dscp2tid[0][0], sizeof(qdrv_sch_dscp2tid[0]));
- }
-}
-
-#if !defined(CONFIG_TOPAZ_PCIE_HOST) && !defined(CONFIG_TOPAZ_PCIE_TARGET)
-/* conversion is only needed for tables that are different to the first table */
-static inline void qdrv_sch_set_vlanpath(void)
-{
- int i;
- union topaz_vlan_entry vlan_entry;
- uint16_t vid;
-
- /*
- * This comparison must be done again if the user changes wifi0 config to
- * be the same as some other interfaces.
- */
- for (i = 1; i < QTN_MAX_BSS_VAPS; i++) {
- vid = qdrv_sch_vlan2index[i];
- if (vid == VLANID_INDEX_INITVAL) {
- continue;
- }
-
- vlan_entry = topaz_vlan_get_entry(vid);
- if (memcmp(&qdrv_sch_dscp2tid[0][0], &qdrv_sch_dscp2tid[i][0], sizeof(qdrv_sch_dscp2tid[0]))) {
- vlan_entry.data.valid = 1;
- vlan_entry.data.out_port = TOPAZ_TQE_LHOST_PORT;
- } else {
- vlan_entry.data.valid = 0;
- }
- topaz_vlan_clear_entry(vid);
- topaz_vlan_set_entry(vid, vlan_entry);
- }
-}
-
-/*
- * Configure the HW DSCP to TID table, which is used for wifi0
- * and any other TIDs that use the same config.
- */
-static inline void qdrv_sch_set_dscp_hwtbl(uint8_t dscp, uint8_t tid, uint32_t reg_base)
-{
- uint32_t dscp_reg_val = 0;
- uint8_t dscp_reg_index = dscp >> QDRV_IP_DSCP_INDEX_SHIFT;
- uint8_t dscp_nibble_index = dscp - (dscp_reg_index << QDRV_IP_DSCP_INDEX_SHIFT);
-
- dscp_reg_val = qtn_emac_rd(reg_base, TOPAZ_EMAC_RXP_IP_DIFF_SRV_TID_REG(dscp_reg_index));
-
- dscp_reg_val &= ~(0xF <<
- (dscp_nibble_index << TOPAZ_EMAC_IPDSCP_HWT_SHIFT));
- dscp_reg_val |= (tid & 0xF) <<
- (dscp_nibble_index << TOPAZ_EMAC_IPDSCP_HWT_SHIFT);
-
- qtn_emac_wr(reg_base, TOPAZ_EMAC_RXP_IP_DIFF_SRV_TID_REG(dscp_reg_index), dscp_reg_val);
-}
-#endif
-
-static inline void qdrv_sch_mask_settid(uint8_t ifindex, uint8_t dscp, uint8_t tid,
- uint32_t emac_in_use)
-{
- qdrv_dscp2tid_setvalue(ifindex, dscp, tid);
-#if !defined(CONFIG_TOPAZ_PCIE_HOST) && !defined(CONFIG_TOPAZ_PCIE_TARGET)
- qdrv_sch_set_vlanpath();
- if (ifindex == 0) {
- if (emac_in_use & QDRV_SCH_EMAC0_IN_USE) {
- qdrv_sch_set_dscp_hwtbl(dscp, tid, RUBY_ENET0_BASE_ADDR);
- }
- if (emac_in_use & QDRV_SCH_EMAC1_IN_USE) {
- qdrv_sch_set_dscp_hwtbl(dscp, tid, RUBY_ENET1_BASE_ADDR);
- }
- }
-#endif
-}
-
-static inline uint8_t qdrv_sch_mask_gettid(uint8_t ifindex, uint8_t dscp)
-{
- uint8_t index;
- uint32_t curval;
- uint8_t tid;
-
- index = (dscp >> 1);
- curval = qdrv_sch_dscp2tid[ifindex][index];
-
- if (dscp & 0x1)
- tid = (curval & 0xf);
- else
- tid = (curval >> QDRV_IP_DSCP_MAPPING_SHIFT) & 0xf;
-
- return tid;
-}
-
-/* Multiple VLAN tags are not currently supported */
-static inline void topaz_tqe_vlan_gettid(void *data, uint8_t *tid, uint8_t *vlan_index)
-{
- struct vlan_ethhdr *vhd;
- uint16_t vid = 0;
- uint8_t ip_dscp = 0;
- int i;
- const void *iphdr = NULL;
- const struct ether_header *eh = bus_to_virt((uintptr_t) data);
- const uint16_t *ether_type = &eh->ether_type;
-
- *vlan_index = 0;
- if (*ether_type == __constant_htons(ETH_P_8021Q)) {
- ether_type += 2;
- vhd = bus_to_virt((uintptr_t) data);
- vid = __constant_htons(vhd->h_vlan_TCI) & VLAN_VID_MASK;
- for (i = 0; i < qdrv_vap_vlan_max; i++) {
- if (qdrv_sch_vlan2index[i] == vid) {
- *vlan_index = i;
- break;
- }
- }
- }
-
- iphdr = ether_type + 1;
- if (*ether_type == __constant_htons(ETH_P_IP)) {
- const struct qtn_ipv4 *ipv4 = (const struct qtn_ipv4 *) iphdr;
- ip_dscp = IP_DSCP(ipv4->dscp);
- } else if (*ether_type == __constant_htons(ETH_P_IPV6)) {
- const struct qtn_ipv6 *ipv6 = (const struct qtn_ipv6 *) iphdr;
- ip_dscp = qtn_ipv6_tclass(ipv6);
- } else if ((*ether_type == __constant_htons(ETH_P_ARP)) || (*ether_type == __constant_htons(ETH_P_PAE))) {
- *tid = WME_AC_TO_TID(WMM_AC_VO);
- return;
- } else {
- *tid = WME_AC_TO_TID(WMM_AC_BE);
- return;
- }
-
- *tid = qdrv_sch_mask_gettid(*vlan_index, ip_dscp);
-}
-int qdrv_sch_node_is_active(const struct qdrv_sch_node_band_data *nbd,
- const struct qdrv_sch_node_data *nd, uint8_t band);
-int qdrv_sch_enqueue_node(struct qdrv_sch_node_data *nd, struct sk_buff *skb,
- bool is_over_quota, bool is_low_rate);
-
-void qdrv_sch_complete(struct qdrv_sch_node_data *nd, struct sk_buff *skb,
- uint8_t under_quota);
-/*
- * If qdrv_sch_dequeue_nostat is called, accounting in the qdisc
- * is not complete until qdrv_sch_complete is called
- */
-struct sk_buff *qdrv_sch_dequeue_nostat(struct qdrv_sch_shared_data *sd, struct Qdisc* sch);
-int qdrv_sch_flush_node(struct qdrv_sch_node_data *nd);
-int qdrv_sch_requeue(struct qdrv_sch_shared_data *sd, struct sk_buff *skb, struct Qdisc *sch);
-
-const char *qdrv_sch_tos2ac_str(int tos);
-void qdrv_sch_set_ac_map(int tos, int aid);
-void qdrv_sch_set_8021p_map(uint8_t ip_dscp, uint8_t dot1p_up);
-uint8_t qdrv_sch_get_8021p_map(uint8_t ip_dscp);
-
-int qdrv_sch_set_dscp2ac_map(const uint8_t vapid, uint8_t *ip_dscp, uint8_t listlen, uint8_t ac);
-int qdrv_sch_get_dscp2ac_map(const uint8_t vapid, uint8_t *dscp2ac);
-
-void qdrv_sch_set_dscp2tid_map(const uint8_t vapid, const uint8_t *dscp2tid);
-void qdrv_sch_get_dscp2tid_map(const uint8_t vapid, uint8_t *dscp2tid);
-
-void qdrv_tx_sch_node_data_init(struct Qdisc *sch, struct qdrv_sch_shared_data *sd,
- struct qdrv_sch_node_data *nd, uint32_t users);
-void qdrv_tx_sch_node_data_exit(struct qdrv_sch_node_data *nd, uint32_t users);
-struct qdrv_sch_shared_data *qdrv_sch_shared_data_init(int16_t tokens, uint16_t rdt);
-void qdrv_sch_shared_data_exit(struct qdrv_sch_shared_data *sd);
-
-#endif
-
diff --git a/quantenna/include/qtn/qtn_arc_processor.h b/quantenna/include/qtn/qtn_arc_processor.h
deleted file mode 100644
index 8091de5..0000000
--- a/quantenna/include/qtn/qtn_arc_processor.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) 2011 Quantenna Communications, Inc.
- * All rights reserved.
- */
-
-#ifndef _QTN_ARC_PROCESSOR_H_
-#define _QTN_ARC_PROCESSOR_H_
-
-#if defined(STATIC_CHECK)
-uint32_t get_sp(void);
-uint32_t get_ilink1(void);
-uint32_t get_ilink2(void);
-uint32_t get_blink(void);
-uint32_t get_status32(void);
-uint8_t arc_read_uncached_8(const uint8_t *addr);
-void arc_write_uncached_8(uint8_t *addr, uint8_t value);
-uint16_t arc_read_uncached_16(const uint16_t *addr);
-void arc_write_uncached_16(uint16_t *addr, uint32_t value);
-uint32_t arc_read_uncached_32(const uint32_t *addr);
-void arc_write_uncached_32(uint32_t *addr, uint32_t value);
-#elif defined(_ARC)
-
-_Inline _Asm uint32_t get_sp(void)
-{
- mov %r0, %r28
-}
-
-_Inline _Asm uint32_t get_ilink1(void)
-{
- mov %r0, %r29
-}
-
-_Inline _Asm uint32_t get_ilink2(void)
-{
- mov %r0, %r30
-}
-
-_Inline _Asm uint32_t get_blink(void)
-{
- mov %r0, %r31
-}
-
-_Inline _Asm uint32_t get_status32(void)
-{
- lr %r0, [%status32]
-}
-
-_Inline _Asm uint8_t arc_read_uncached_8(const uint8_t *addr)
-{
- %reg addr
- ldb.di %r0, [addr]
-}
-
-_Inline _Asm void arc_write_uncached_8(uint8_t *addr, uint8_t value)
-{
- %reg addr, value
- stb.di value, [addr]
-}
-
-_Inline _Asm uint16_t arc_read_uncached_16(const uint16_t *addr)
-{
- %reg addr
- ldw.di %r0, [addr]
-}
-
-_Inline _Asm void arc_write_uncached_16(uint16_t *addr, uint32_t value)
-{
- %reg addr, value
- stw.di value, [addr]
-}
-
-_Inline _Asm uint32_t arc_read_uncached_32(const uint32_t *addr)
-{
- %reg addr
- ld.di %r0, [addr]
-}
-
-_Inline _Asm void arc_write_uncached_32(uint32_t *addr, uint32_t value)
-{
- %reg addr, value
- st.di value, [addr]
-}
-
-#else
-/* implementations provided elsewhere */
-#endif // STATIC_CHECK
-#endif // _QTN_ARC_PROCESSOR_H_
diff --git a/quantenna/include/qtn/qtn_auc_stats_fields.h b/quantenna/include/qtn/qtn_auc_stats_fields.h
deleted file mode 100644
index 070c7ad..0000000
--- a/quantenna/include/qtn/qtn_auc_stats_fields.h
+++ /dev/null
@@ -1,235 +0,0 @@
- { 0xe510124c, "sleep" },
- { 0xe5101284, "jiffies" },
- { 0xe51033c8, "IRQ_0" },
- { 0xe51033cc, "IRQ_1" },
- { 0xe51033d0, "IRQ_2" },
- { 0xe51033d4, "IRQ_3" },
- { 0xe51033d8, "IRQ_4" },
- { 0xe51033dc, "IRQ_5" },
- { 0xe51033e0, "IRQ_6" },
- { 0xe51033e4, "IRQ_7" },
- { 0xe51033e8, "IRQ_8" },
- { 0xe51033ec, "IRQ_9" },
- { 0xe51033f0, "IRQ_10" },
- { 0xe51033f4, "IRQ_11" },
- { 0xe51033f8, "IRQ_12" },
- { 0xe51033fc, "IRQ_13" },
- { 0xe5103400, "IRQ_14" },
- { 0xe5103404, "IRQ_15" },
- { 0xe5103408, "IRQ_16" },
- { 0xe510340c, "IRQ_17" },
- { 0xe5103410, "IRQ_18" },
- { 0xe5103414, "IRQ_19" },
- { 0xe5103424, "task_alive_counters[0]" },
- { 0xe5103428, "task_alive_counters[1]" },
- { 0xe510342c, "task_alive_counters[2]" },
- { 0xe5103430, "task_alive_counters[3]" },
- { 0xe5103434, "task_alive_counters[4]" },
- { 0xe5103438, "task_alive_counters[5]" },
- { 0xe510343c, "task_alive_counters[6]" },
- { 0xe5103440, "task_alive_counters[7]" },
- { 0xe5103444, "task_alive_counters[8]" },
- { 0xe5103448, "task_alive_counters[9]" },
- { 0xe510344c, "task_alive_counters[10]" },
- { 0xe5103450, "task_alive_counters[11]" },
- { 0xe5103454, "task_alive_counters[12]" },
- { 0xe5103458, "task_alive_counters[13]" },
- { 0xe510345c, "task_alive_counters[14]" },
- { 0xe5103460, "task_alive_counters[15]" },
- { 0xe5103464, "task_alive_counters[16]" },
- { 0xe5103468, "task_alive_counters[17]" },
- { 0xe510346c, "task_alive_counters[18]" },
- { 0xe5103470, "task_alive_counters[19]" },
- { 0xe5103474, "task_false_trigger[0]" },
- { 0xe5103478, "task_false_trigger[1]" },
- { 0xe510347c, "task_false_trigger[2]" },
- { 0xe5103480, "task_false_trigger[3]" },
- { 0xe5103484, "task_false_trigger[4]" },
- { 0xe5103488, "task_false_trigger[5]" },
- { 0xe510348c, "task_false_trigger[6]" },
- { 0xe5103490, "task_false_trigger[7]" },
- { 0xe5103494, "task_false_trigger[8]" },
- { 0xe5103498, "task_false_trigger[9]" },
- { 0xe510349c, "task_false_trigger[10]" },
- { 0xe51034a0, "task_false_trigger[11]" },
- { 0xe51034a4, "task_false_trigger[12]" },
- { 0xe51034a8, "task_false_trigger[13]" },
- { 0xe51034ac, "task_false_trigger[14]" },
- { 0xe51034b0, "task_false_trigger[15]" },
- { 0xe51034b4, "task_false_trigger[16]" },
- { 0xe51034b8, "task_false_trigger[17]" },
- { 0xe51034bc, "task_false_trigger[18]" },
- { 0xe51034c0, "task_false_trigger[19]" },
- { 0xe51034c4, "tqew_ac[0]" },
- { 0xe51034c8, "tqew_ac[1]" },
- { 0xe51034cc, "tqew_ac[2]" },
- { 0xe51034d0, "tqew_ac[3]" },
- { 0xe51034d4, "tqew_ac_avail[0]" },
- { 0xe51034d8, "tqew_ac_avail[1]" },
- { 0xe51034dc, "tqew_ac_avail[2]" },
- { 0xe51034e0, "tqew_ac_avail[3]" },
- { 0xe51034e4, "tqew_air_humble" },
- { 0xe51034e8, "tqew_air_suppress" },
- { 0xe51034ec, "tqew_air_use_idletime" },
- { 0xe51034f0, "tqew_air_dequeue_only" },
- { 0xe51034f4, "tqew_pkt_pending_for_txdone" },
- { 0xe51034f8, "tqew_descr_alloc_fail" },
- { 0xe51034fc, "tqew_ring_alloc_fail" },
- { 0xe5103500, "tqew_pop_alloc_fail" },
- { 0xe5103504, "tqew_pop_sw_limit" },
- { 0xe5103508, "tqew_pop_empty" },
- { 0xe510350c, "tqew_available_set" },
- { 0xe5103510, "tqew_available_reset" },
- { 0xe5103514, "tqew_rx" },
- { 0xe5103518, "tqew_drop" },
- { 0xe510351c, "tqew_free" },
- { 0xe5103520, "tqew_buf_invalid" },
- { 0xe5103524, "wmac_tx_done[0]" },
- { 0xe5103528, "wmac_tx_done[1]" },
- { 0xe510352c, "wmac_tx_done[2]" },
- { 0xe5103530, "wmac_tx_done[3]" },
- { 0xe5103534, "agg_aggregate_flag" },
- { 0xe5103538, "agg_aggressive_agg" },
- { 0xe510353c, "hdrs_available_recent_min" },
- { 0xe5103540, "agg_states[0]" },
- { 0xe5103544, "agg_states[1]" },
- { 0xe5103548, "agg_states[2]" },
- { 0xe510354c, "agg_states[3]" },
- { 0xe5103550, "agg_states[4]" },
- { 0xe5103554, "ethq_push" },
- { 0xe5103558, "ethq_pop" },
- { 0xe510355c, "agg_aggregate_mpdu" },
- { 0xe5103560, "agg_aggregate_msdu" },
- { 0xe5103564, "agg_singleton_mpdu" },
- { 0xe5103568, "agg_singleton_mgmt" },
- { 0xe510356c, "agg_singleton_ctl" },
- { 0xe5103570, "agg_singleton_probe" },
- { 0xe5103574, "agg_4K_amsdu" },
- { 0xe5103578, "agg_8K_amsdu" },
- { 0xe510357c, "agg_11K_amsdu" },
- { 0xe5103580, "tx_feedback_success" },
- { 0xe5103584, "tx_feedback_fail" },
- { 0xe5103588, "tx_done_status_success" },
- { 0xe510358c, "tx_done_status_timeout" },
- { 0xe5103590, "tx_done_status_xretry" },
- { 0xe5103594, "tx_done_status_timeout_xretry" },
- { 0xe5103598, "tx_done_pkt_chain_reset" },
- { 0xe510359c, "tx_done_pkt_chain_success" },
- { 0xe51035a0, "tx_done_pkt_chain_drop_tid_down" },
- { 0xe51035a4, "tx_done_pkt_chain_drop_xattempts" },
- { 0xe51035a8, "tx_done_singleton_finish" },
- { 0xe51035ac, "tx_done_singleton_swretry" },
- { 0xe51035b0, "tx_done_aggregate_finish" },
- { 0xe51035b4, "tx_done_aggregate_hwretry" },
- { 0xe51035b8, "tx_done_aggregate_swretry" },
- { 0xe51035bc, "tx_done_mpdu_swretry" },
- { 0xe51035c0, "tx_sample" },
- { 0xe51035c4, "tx_bw_sample" },
- { 0xe51035c8, "tx_swretry_lower_bw" },
- { 0xe51035cc, "tx_swretry_agg_exceed" },
- { 0xe51035d0, "tx_scale_base_20m" },
- { 0xe51035d4, "tx_scale_base_40m" },
- { 0xe51035d8, "tx_scale_base_80m" },
- { 0xe51035dc, "tx_scale_max" },
- { 0xe51035e0, "tx_scale_overstep" },
- { 0xe51035e4, "alloc_tqew_fast" },
- { 0xe51035e8, "free_tqew_fast" },
- { 0xe51035ec, "alloc_tqew_slow" },
- { 0xe51035f0, "free_tqew_slow" },
- { 0xe51035f4, "alloc_tqew_local" },
- { 0xe51035f8, "free_tqew_local" },
- { 0xe51035fc, "alloc_hdr_fast" },
- { 0xe5103600, "free_hdr_fast" },
- { 0xe5103604, "alloc_hdr_slow" },
- { 0xe5103608, "free_hdr_slow" },
- { 0xe510360c, "alloc_msdu_hdr_failed" },
- { 0xe5103610, "alloc_mpdu_hdr_failed" },
- { 0xe5103614, "alloc_tid_superfast" },
- { 0xe5103618, "free_tid_superfast" },
- { 0xe510361c, "alloc_tid_fast" },
- { 0xe5103620, "free_tid_fast" },
- { 0xe5103624, "alloc_tid_slow" },
- { 0xe5103628, "free_tid_slow" },
- { 0xe510362c, "alloc_node_rate_fast" },
- { 0xe5103630, "free_node_rate_fast" },
- { 0xe5103634, "alloc_node_rate_slow" },
- { 0xe5103638, "free_node_rate_slow" },
- { 0xe510363c, "alloc_node_superfast" },
- { 0xe5103640, "free_node_superfast" },
- { 0xe5103644, "alloc_node_fast" },
- { 0xe5103648, "free_node_fast" },
- { 0xe510364c, "alloc_fcs" },
- { 0xe5103650, "free_fcs" },
- { 0xe5103654, "alloc_mac_descr" },
- { 0xe5103658, "free_mac_descr" },
- { 0xe510365c, "tx_mac_push" },
- { 0xe5103660, "tx_mac_idle" },
- { 0xe5103664, "tx_mac_rts" },
- { 0xe5103668, "tx_mac_cts2self" },
- { 0xe510366c, "tx_vlan_drop" },
- { 0xe5103670, "tx_acm_drop" },
- { 0xe5103674, "tx_ps_drop" },
- { 0xe5103678, "ocs_tx_suspend" },
- { 0xe510367c, "ocs_tx_resume" },
- { 0xe5103680, "ocs_singleton_suspend" },
- { 0xe5103684, "ocs_ampdu_suspend" },
- { 0xe5103688, "ocs_frame_created" },
- { 0xe510368c, "pwr_mgmt_awake" },
- { 0xe5103690, "pwr_mgmt_sleep" },
- { 0xe5103694, "pwr_mgmt_tx" },
- { 0xe5103698, "pspoll_rx" },
- { 0xe510369c, "dtim_q_push" },
- { 0xe51036a0, "dtim_q_pop" },
- { 0xe51036a4, "dtim_trigger" },
- { 0xe51036a8, "dtim_q_overflow" },
- { 0xe51036ac, "tx_restrict_dropped" },
- { 0xe51036b0, "tx_throt_dropped" },
- { 0xe51036b4, "tx_block_singleton" },
- { 0xe51036b8, "tx_force_unblock_tid" },
- { 0xe51036bc, "tx_ctl_pkt_hbm_alloc_fails" },
- { 0xe51036c0, "tx_ctl_pkt_alloc_descr_fails" },
- { 0xe51036c4, "tx_bar_alloc_ctl_pkt_fails" },
- { 0xe51036c8, "tx_valid_bit_not_set" },
- { 0xe51036cc, "wmm_ps_tx" },
- { 0xe51036d0, "wmm_ps_tx_null_frames" },
- { 0xe51036d4, "wmm_ps_tx_more_data_frames" },
- { 0xe51036d8, "wmm_ps_tx_eosp_frames" },
- { 0xe51036dc, "mu_tx_su_count" },
- { 0xe51036e0, "mu_tx_send_mu_fail" },
- { 0xe51036e4, "mu_tx_push_count" },
- { 0xe51036e8, "mu_tx_done_count" },
- { 0xe51036ec, "mu_tx_done_succ" },
- { 0xe51036f0, "mu_tx_done_fail" },
- { 0xe51036f4, "mu_tx_sample" },
- { 0xe51036f8, "mu_bar_bitmap_non_zero" },
- { 0xe51036fc, "mu_bar_bitmap_zero" },
- { 0xe5103700, "mu_mac_wmac1_ipc_push" },
- { 0xe5103704, "mu_mac_wmac1_auc_push" },
- { 0xe5103708, "mu_wmac1_resets" },
- { 0xe510370c, "mu_tx_swretry_agg_exceed" },
- { 0xe5103710, "mu_tx_buddy_try" },
- { 0xe5103714, "mu_tx_buddy_fail_wmac" },
- { 0xe5103718, "mu_tx_buddy_fail_ptid" },
- { 0xe510371c, "mu_tx_buddy_fail_rate" },
- { 0xe5103720, "mu_tx_buddy_fail_create_agg" },
- { 0xe5103724, "mu_tx_buddy_mu_only_timeout" },
- { 0xe5103728, "mu_tx_another_q_push_succ" },
- { 0xe510372c, "mu_tx_another_q_push_fail" },
- { 0xe5103730, "mu_tx_buddy_multi_tid" },
- { 0xe5103734, "mu_tx_wmac_0_done_count" },
- { 0xe5103738, "mu_tx_wmac_0_bitmap_non_zero" },
- { 0xe510373c, "mu_tx_wmac_0_bitmap_zero" },
- { 0xe5103740, "mu_tx_wmac_0_done_timeout" },
- { 0xe5103744, "mu_tx_wmac_0_done_succ" },
- { 0xe5103748, "mu_tx_wmac_0_done_fail" },
- { 0xe510374c, "mu_tx_wmac_1_done_succ" },
- { 0xe5103750, "mu_tx_wmac_1_done_fail" },
- { 0xe5103754, "mu_tx_wmac_0_mpdu_total" },
- { 0xe5103758, "mu_tx_wmac_0_mpdu_succ" },
- { 0xe510375c, "mu_tx_wmac_1_mpdu_total" },
- { 0xe5103760, "mu_tx_wmac_1_mpdu_succ" },
- { 0xe5103764, "mu_tx_qnum[0]" },
- { 0xe5103768, "mu_tx_qnum[1]" },
- { 0xe510376c, "mu_tx_qnum[2]" },
- { 0xe5103770, "mu_tx_qnum[3]" },
- { 0xe5103774, "tqe_sema_fails" },
diff --git a/quantenna/include/qtn/qtn_bb_mutex.h b/quantenna/include/qtn/qtn_bb_mutex.h
deleted file mode 100644
index 6606a85..0000000
--- a/quantenna/include/qtn/qtn_bb_mutex.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_BB_MUTEX_H
-#define __QTN_BB_MUTEX_H
-
-#include "mproc_sync.h"
-
-#ifndef __ASSEMBLY__
-
-#define QTN_BB_RESET_REGISTER_VAL 0x7A200
-#define QTN_BB_HRESET_REGISTER_VAL 0x10000
-
-struct qtn_bb_mutex
-{
- volatile u_int32_t ref_counter;
- volatile u_int32_t collision_counter;
- volatile u_int32_t enter_counter;
-};
-
-RUBY_INLINE struct qtn_bb_mutex*
-qtn_bb_mutex_get(void)
-{
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
- return (struct qtn_bb_mutex*)qtn_mproc_sync_nocache
- (qtn_mproc_sync_shared_params_get()->bb_mutex_bus);
-#else
- /* Linux target */
- return qtn_mproc_sync_shared_params_get()->bb_mutex_lhost;
-#endif
-}
-
-/*
- * Atomically increase reference counter, acquiring reader mutex if not previously held
- */
-#if QTN_SEM_TRACE
-#define qtn_bb_mutex_enter(_cpu) qtn_bb_mutex_enter_dbg(_cpu, __FILE__, __LINE__)
-RUBY_WEAK(qtn_bb_mutex_enter_dbg) int
-qtn_bb_mutex_enter_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_bb_mutex_enter) int
-qtn_bb_mutex_enter(QTN_SOC_CPU current_cpu)
-#endif
-{
- struct qtn_bb_mutex *bb_mutex = qtn_bb_mutex_get();
- unsigned long flags;
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- if (bb_mutex->ref_counter == 0) {
- ++(bb_mutex->enter_counter);
- } else {
- ++(bb_mutex->collision_counter);
- }
- __qtn_mproc_refcnt_inc(&bb_mutex->ref_counter);
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
-
- return 0;
-}
-
-/*
- * Atomically decrease reference counter, releasing reader mutex if transitioning to 0
- */
-#if QTN_SEM_TRACE
-#define qtn_bb_mutex_leave(_cpu) qtn_bb_mutex_leave_dbg(_cpu, __FILE__, __LINE__)
-RUBY_WEAK(qtn_bb_mutex_leave_dbg) int
-qtn_bb_mutex_leave_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_bb_mutex_leave) int
-qtn_bb_mutex_leave(QTN_SOC_CPU current_cpu)
-#endif
-{
- struct qtn_bb_mutex *bb_mutex = qtn_bb_mutex_get();
- unsigned long flags;
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- __qtn_mproc_refcnt_dec(&bb_mutex->ref_counter);
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
-
- return 0;
-}
-
-/*
- * Enable RIFS mode. Safe to call using any processor.
- * Make sure that SoC support this mode before calling.
- */
-#if QTN_SEM_TRACE
-#define qtn_rifs_mode_enable(_cpu) qtn_rifs_mode_enable_dbg(_cpu, __FILE__, __LINE__)
-RUBY_WEAK(qtn_rifs_mode_enable_dbg) void
-qtn_rifs_mode_enable_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_rifs_mode_enable) void
-qtn_rifs_mode_enable(QTN_SOC_CPU current_cpu)
-#endif
-{
- unsigned long flags;
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- qtn_mproc_sync_mem_write(RUBY_QT3_BB_GLBL_PREG_RIF_ENABLE, RUBY_QT3_BB_GLBL_PREG_RIF_ENABLE_ON);
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
-}
-
-/*
- * Disable RIFS mode. Safe to call using any processor.
- * Make sure that SoC support this mode before calling.
- */
-#if QTN_SEM_TRACE
-#define qtn_rifs_mode_disable(_cpu) qtn_rifs_mode_disable_dbg(_cpu, __FILE__, __LINE__)
-RUBY_WEAK(qtn_rifs_mode_disable_dbg) void
-qtn_rifs_mode_disable_dbg(QTN_SOC_CPU current_cpu, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_rifs_mode_disable) void
-qtn_rifs_mode_disable(QTN_SOC_CPU current_cpu)
-#endif
-{
- unsigned long flags;
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
- qtn_mproc_sync_mem_write(RUBY_QT3_BB_GLBL_PREG_RIF_ENABLE, RUBY_QT3_BB_GLBL_PREG_RIF_ENABLE_OFF);
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, &flags);
-}
-
-/*
- * Acquiring writer mutex
- */
-#if QTN_SEM_TRACE
-#define qtn_bb_mutex_reset_enter(_cpu, _flags) qtn_bb_mutex_reset_enter_dbg(_cpu, _flags, __FILE__, __LINE__)
-RUBY_WEAK(qtn_bb_mutex_reset_enter_dbg) void
-qtn_bb_mutex_reset_enter_dbg(QTN_SOC_CPU current_cpu, unsigned long *flags, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_bb_mutex_reset_enter) void
-qtn_bb_mutex_reset_enter(QTN_SOC_CPU current_cpu, unsigned long *flags)
-#endif
-{
- struct qtn_bb_mutex *bb_mutex = qtn_bb_mutex_get();
-
- while (1) {
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, flags);
- if (bb_mutex->ref_counter == 0) {
- break;
- }
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, flags);
- }
-}
-
-/*
- * Try to acquire writer mutex (to release qtn_bb_mutex_reset_leave() must be called)
- */
-#if QTN_SEM_TRACE
-#define qtn_bb_mutex_reset_try_enter(_cpu, _flags) qtn_bb_mutex_reset_try_enter_dbg(_cpu, _flags, __FILE__, __LINE__)
-RUBY_WEAK(qtn_bb_mutex_reset_try_enter_dbg) int
-qtn_bb_mutex_reset_try_enter_dbg(QTN_SOC_CPU current_cpu, unsigned long *flags, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_bb_mutex_reset_try_enter) int
-qtn_bb_mutex_reset_try_enter(QTN_SOC_CPU current_cpu, unsigned long *flags)
-#endif
-{
- int ret = 0;
- struct qtn_bb_mutex *bb_mutex = qtn_bb_mutex_get();
-
- __qtn_mproc_sync_spin_lock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, flags);
- if (bb_mutex->ref_counter == 0) {
- ret = 1;
- } else {
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, flags);
- }
-
- return ret;
-}
-
-/*
- * Release writer mutex
- */
-#if QTN_SEM_TRACE
-#define qtn_bb_mutex_reset_leave(_cpu, _flags) qtn_bb_mutex_reset_leave_dbg(_cpu, _flags, __FILE__, __LINE__)
-RUBY_WEAK(qtn_bb_mutex_reset_leave_dbg) void
-qtn_bb_mutex_reset_leave_dbg(QTN_SOC_CPU current_cpu, unsigned long *flags, char *caller, int caller_line)
-#else
-RUBY_WEAK(qtn_bb_mutex_reset_leave) void
-qtn_bb_mutex_reset_leave(QTN_SOC_CPU current_cpu, unsigned long *flags)
-#endif
-{
- __qtn_mproc_sync_spin_unlock(current_cpu, QTN_ALL_SOC_CPU, QTN_SEM_BB_MUTEX_SEMNUM, flags);
-}
-
-/*
- * Return true if reset needed.
- */
-RUBY_INLINE int
-qtn_bb_mutex_is_reset(QTN_SOC_CPU current_cpu, u_int32_t status)
-{
- return (status & QTN_BB_RESET_REGISTER_VAL);
-}
-
-RUBY_INLINE int
-qtn_bb_mutex_is_hreset(QTN_SOC_CPU current_cpu, u_int32_t status)
-{
- return (status & QTN_BB_HRESET_REGISTER_VAL);
-}
-
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __QTN_BB_MUTEX_H
-
diff --git a/quantenna/include/qtn/qtn_buffers.h b/quantenna/include/qtn/qtn_buffers.h
deleted file mode 100644
index a037e66..0000000
--- a/quantenna/include/qtn/qtn_buffers.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_BUFFERS_H
-#define __QTN_BUFFERS_H
-
-#include <common/topaz_config.h>
-
-#define QTN_BUF_USE_11AC_SIZE 1
-#define TOPAZ_HBM_SKB_ALLOCATOR_DEFAULT 1
-
-#define TOPAZ_HBM_SKB_ALLOCATOR 2
-
-#if TOPAZ_HBM_SKB_ALLOCATOR_DEFAULT
- /*
- * Buffer allocation in Topaz when using the switch must be extremely
- * careful such that the sum of all possible buffer pileup does not
- * exceed the number of possible payloads. Otherwise the hardware will
- * start processing null pointers.
- */
- #define TOPAZ_HBM_PAYLOAD_COUNT_S TOPAZ_HBM_BUF_EMAC_RX_COUNT_S
- #define QTN_BUFS_EMAC_TX_RING_S 9
- #define QDRV_MAX_QUEUED_MGMT_FRAMES 256
- #define QTN_BUFS_WMAC_RX_RING_S 10
- #define QTN_BUFS_WMAC_TX_NON_LHOST_S 9
- #define QTN_BUFS_WMAC_TX_QDISC_S 10
- #define QDRV_TX_SCH_RED_MASK ((1 << 7) - 1)
-#elif QTN_BUF_USE_11AC_SIZE
- /* Topaz with 11ac buffers, no acceleration */
- #define TOPAZ_HBM_PAYLOAD_COUNT_S TOPAZ_HBM_BUF_EMAC_RX_COUNT_S
- #define QTN_BUFS_EMAC_TX_RING_S 9
- #define QDRV_MAX_QUEUED_MGMT_FRAMES 256
- #define QTN_BUFS_WMAC_RX_RING_S 10
- #define QTN_BUFS_WMAC_TX_NON_LHOST_S 9
- #define QTN_BUFS_WMAC_TX_QDISC_S 11
- #define QDRV_TX_SCH_RED_MASK ((1 << 7) - 1)
-#else
- /* Ruby or Topaz with 11n buffers no acceleration */
- #define TOPAZ_HBM_PAYLOAD_COUNT_S 12
- #define QTN_BUFS_EMAC_TX_RING_S 7
- #define QDRV_MAX_QUEUED_MGMT_FRAMES 512
- #define QTN_BUFS_WMAC_RX_RING_S 11
- #define QTN_BUFS_WMAC_TX_NON_LHOST_S 9
- #define QTN_BUFS_WMAC_TX_QDISC_S 11
- #define QDRV_TX_SCH_RED_MASK ((1 << 7) - 1)
-#endif
-
-#define TOPAZ_HBM_PAYLOAD_COUNT (1 << TOPAZ_HBM_PAYLOAD_COUNT_S)
-
-#ifdef QTN_RC_ENABLE_HDP
-#define QTN_BUFS_EMAC_RX_RING_S 12
-#else
-#define QTN_BUFS_EMAC_RX_RING_S 8
-#endif
-#define QTN_BUFS_EMAC_TX_QDISC_S 7
-#define QTN_BUFS_PCIE_TQE_RX_RING_S 12
-#if defined (CONFIG_TOPAZ_PCIE_TARGET)
-#define QTN_BUFS_LHOST_TQE_RX_RING_S 8
-#elif defined (CONFIG_TOPAZ_PCIE_HOST)
-#define QTN_BUFS_LHOST_TQE_RX_RING_S 10
-#elif defined(TOPAZ_VB_CONFIG) || defined(TOPAZ_RGMII_CONFIG) || defined(TOPAZ_VZN_CONFIG)
-#define QTN_BUFS_LHOST_TQE_RX_RING_S 11
-#else
-#define QTN_BUFS_LHOST_TQE_RX_RING_S 9
-#endif
-
-#define QTN_BUFS_LHOST_TQE_RX_RING (1 << QTN_BUFS_LHOST_TQE_RX_RING_S)
-#define QTN_BUFS_EMAC_RX_RING (1 << QTN_BUFS_EMAC_RX_RING_S)
-#define QTN_BUFS_EMAC_TX_RING (1 << QTN_BUFS_EMAC_TX_RING_S)
-#define QTN_BUFS_EMAC_TX_QDISC (1 << QTN_BUFS_EMAC_TX_QDISC_S)
-#define QTN_BUFS_WMAC_RX_RING (1 << QTN_BUFS_WMAC_RX_RING_S)
-#define QTN_BUFS_WMAC_TX_NON_LHOST (1 << QTN_BUFS_WMAC_TX_NON_LHOST_S)
-#define QTN_BUFS_WMAC_TX_QDISC (1 << QTN_BUFS_WMAC_TX_QDISC_S)
-#define QTN_BUFS_PCIE_TQE_RX_RING (1 << QTN_BUFS_PCIE_TQE_RX_RING_S)
-
-#define QTN_BUFS_CPUS_TOTAL (1 * (QTN_BUFS_LHOST_TQE_RX_RING))
-#define QTN_BUFS_EMAC_TOTAL (2 * (QTN_BUFS_EMAC_RX_RING + QTN_BUFS_EMAC_TX_RING + QTN_BUFS_EMAC_TX_QDISC))
-#define QTN_BUFS_WMAC_TOTAL (1 * (QTN_BUFS_WMAC_RX_RING + QTN_BUFS_WMAC_TX_NON_LHOST + QTN_BUFS_WMAC_TX_QDISC + QDRV_MAX_QUEUED_MGMT_FRAMES))
-#define QTN_BUFS_ALLOC_TOTAL (QTN_BUFS_CPUS_TOTAL /*+ QTN_BUFS_EMAC_TOTAL*/ + QTN_BUFS_WMAC_TOTAL)
-
-#if TOPAZ_HBM_SKB_ALLOCATOR_DEFAULT && (TOPAZ_HBM_PAYLOAD_COUNT <= QTN_BUFS_ALLOC_TOTAL)
- #error "Payload buffers distribution error"
-#endif
-
-#endif // __QTN_BUFFERS_H
-
diff --git a/quantenna/include/qtn/qtn_cca.h b/quantenna/include/qtn/qtn_cca.h
deleted file mode 100644
index 1520931..0000000
--- a/quantenna/include/qtn/qtn_cca.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2011 Quantenna Communications, Inc.
- *
- * Shared datastructure between lhost, MuC and ADM module for CCA measurement
- */
-
-#ifndef _QTN_CCA_H
-#define _QTN_CCA_H
-
-struct out_cca_info {
- u_int64_t start_tsf;
- u_int64_t end_tsf;
- u_int32_t cnt_pri_cca;
- u_int32_t cnt_sec_cca;
- u_int32_t cca_sample_cnt;
-};
-
-#endif // _QTN_CCA_H
-
diff --git a/quantenna/include/qtn/qtn_debug.h b/quantenna/include/qtn/qtn_debug.h
deleted file mode 100644
index 3f1b55e..0000000
--- a/quantenna/include/qtn/qtn_debug.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2008 - 2012 Quantenna Communications, Inc **
-** All Rights Reserved **
-** **
-** Date : 21/03/12 **
-** File : qtn_debug.c **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef QTN_DEBUG_H_
-#define QTN_DEBUG_H_
-
-/* When set to 1 LHOST formats AuC print output. It is not possible to use %s and %pM
-conversion specifiers. Also the number of arguments printed are limited to 8 and therefore
-stack size is limited to 32.
-When set to 0 AuC formats the output, pass the formatted line to the LHOST that
-prints it. */
-#define AUC_LHOST_PRINT_FORMAT 1
-#define PRINT_STACK_SIZE 32
-
-#if defined(MUC_BUILD)
-#define DBGFN uc_printk
-#elif defined(AUC_BUILD)
-#define DBGFN auc_os_printf
-#else
-#define DBGFN printk
-#endif
-
-#ifndef __GNUC__
-#define __FUNCTION__ ""
-#endif
-
-#define DBGFMT "%s: "
-#define DBGEFMT "%s: ERROR - "
-#define DBGWFMT "%s: WARNING - "
-#define DBGARG __func__
-#define DBGMACVAR "%02x:%02x:%02x:%02x:%02x:%02x"
-#define DBGMACFMT(a) \
- (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
-#define DBGMACFMT_LE(a) \
- (a)[5], (a)[4], (a)[3], (a)[2], (a)[1], (a)[0]
-
-#define DBGFMT_BYTEFLD3_P "%u.%u.%u"
-#define DBGFMT_BYTEFLD3_V(_v) (_v >> 16) & 0xff, (_v >> 8) & 0xff, _v & 0xff
-#define DBGFMT_BYTEFLD4_P "%u.%u.%u.%u"
-#define DBGFMT_BYTEFLD4_V(_v) (_v >> 24) & 0xff, (_v >> 16) & 0xff, (_v >> 8) & 0xff, _v & 0xff
-
-#ifndef BIT
-#define BIT(x) (1 << (x))
-#endif
-
-typedef enum {
- DBG_LM_QDRV = 1,
- DBG_LM_QPCIE,
- DBG_LM_QRADAR,
- DBG_LM_QBOOTCFG,
- DBG_LM_QADM,
- DBG_LM_QWLAN,
- DBG_LM_QMACFW,
- DBG_LM_MAX
-} dbg_log_module;
-
-typedef const struct
-{
- dbg_log_module dbg_module_id;
- const char *dbg_module_name;
-} dbg_module_table_t;
-extern unsigned int g_dbg_log_module;
-
-#if defined(MUC_BUILD)
-extern unsigned int g_dbg_log_level;
-extern unsigned int g_dbg_log_func;
-#else
-extern unsigned int g_dbg_log_level[DBG_LM_MAX];
-extern unsigned int g_dbg_log_func[DBG_LM_MAX];
-#endif
-extern dbg_module_table_t dbg_module_name_entry[];
-
-#define DBG_LL_EMERG 0
-#define DBG_LL_ALERT 1
-#define DBG_LL_ERR 2
-#define DBG_LL_WARNING 3
-#define DBG_LL_CRIT 4
-#define DBG_LL_NOTICE 5
-#define DBG_LL_INFO 6
-#define DBG_LL_HIDDEN 7
-#define DBG_LL_DEBUG 8
-#define DBG_LL_TRIAL 9
-#define DBG_LL_ALL 10
-
-#define DBG_LF_00 0x00000001
-#define DBG_LF_01 0x00000002
-#define DBG_LF_02 0x00000004
-#define DBG_LF_03 0x00000008
-#define DBG_LF_04 0x00000010
-#define DBG_LF_05 0x00000020
-#define DBG_LF_06 0x00000040
-#define DBG_LF_07 0x00000080
-#define DBG_LF_08 0x00000100
-#define DBG_LF_09 0x00000200
-#define DBG_LF_10 0x00000400
-#define DBG_LF_11 0x00000800
-#define DBG_LF_12 0x00001000
-#define DBG_LF_13 0x00002000
-#define DBG_LF_14 0x00004000
-#define DBG_LF_15 0x00008000
-#define DBG_LF_16 0x00010000
-#define DBG_LF_17 0x00020000
-#define DBG_LF_18 0x00040000
-#define DBG_LF_19 0x00080000
-#define DBG_LF_20 0x00100000
-#define DBG_LF_21 0x00200000
-#define DBG_LF_22 0x00400000
-#define DBG_LF_23 0x00800000
-#define DBG_LF_24 0x01000000
-#define DBG_LF_25 0x02000000
-#define DBG_LF_26 0x04000000
-#define DBG_LF_27 0x08000000
-#define DBG_LF_28 0x10000000
-#define DBG_LF_29 0x20000000
-#define DBG_LF_30 0x40000000
-#define DBG_LF_31 0x80000000
-#define DBG_LF_ALL 0xFFFFFFFF
-
-#define DBG_LOG_FUNC (g_dbg_log_func[DBG_LM - 1])
-#define DBG_LOG_LEVEL (g_dbg_log_level[DBG_LM - 1])
-#define DBG_LOG_FUNC_TEST(flag) (g_dbg_log_func[DBG_LM - 1] & (flag))
-
-#if defined(QTN_DEBUG)
-
-#define DBGPRINTF_RAW(ll, lf, fmt, ...) \
- do { \
- if((g_dbg_log_module & (BIT(DBG_LM - 1))) && \
- (DBG_LOG_LEVEL >= (ll)) && \
- (DBG_LOG_FUNC_TEST(lf))) { \
- DBGFN(fmt, ##__VA_ARGS__); \
- } \
- } while(0)
-
-#define DBGPRINTF(ll, lf, fmt, ...) \
- do { \
- if((g_dbg_log_module & (BIT(DBG_LM - 1))) && \
- (DBG_LOG_LEVEL >= (ll)) && \
- (DBG_LOG_FUNC_TEST(lf))) { \
- DBGFN(DBGFMT fmt, DBGARG, ##__VA_ARGS__); \
- } \
- } while(0)
-
-#define DBGPRINTF_E(fmt, ...) \
- do { \
- if (DBG_LOG_LEVEL >= DBG_LL_ERR) \
- DBGFN(DBGEFMT fmt, DBGARG, ##__VA_ARGS__); \
- } while(0)
-
-#define DBGPRINTF_W(fmt, ...) \
- do { \
- if (DBG_LOG_LEVEL >= DBG_LL_WARNING) \
- DBGFN(DBGWFMT fmt, DBGARG, ##__VA_ARGS__); \
- } while(0)
-
-#define DBGPRINTF_N(fmt, ...) \
- DBGFN(fmt, ##__VA_ARGS__);
-
-#define DBGPRINTF_LIMIT_E(fmt, ...) \
- do { \
- if ((DBG_LOG_LEVEL >= DBG_LL_ERR) && (net_ratelimit())) \
- DBGFN(DBGEFMT fmt, DBGARG, ##__VA_ARGS__); \
- } while(0)
-
-#define DBGPRINTF_LIMIT(ll, lf, fmt, ...) \
- do { \
- if ((g_dbg_log_module & BIT(DBG_LM - 1)) && \
- DBG_LOG_FUNC_TEST(lf) && \
- DBG_LOG_LEVEL >= (ll) && (net_ratelimit())) \
- DBGFN(DBGFMT fmt, DBGARG, ##__VA_ARGS__); \
- } while(0)
-#else
-#define DBGPRINTF(ll, lf, fmt, args...)
-#define DBGPRINTF_E(fmt, args...)
-#define DBGPRINTF_W(fmt, args...)
-#define DBGPRINTF_LIMIT_E(fmt, args...)
-#define DBGPRINTF_LIMIT(ll, lf, fmt, args...)
-#endif
-
-#define HERE(x) do { \
- DBGFN("%s:%d:%s %s = %d 0x%x\n", \
- __FILE__, __LINE__, __FUNCTION__, (#x), \
- (int) (x), (unsigned int) (x)); \
-} while(0)
-
-#define HERES(x) do { \
- DBGFN("%s:%d:%s %s = '%s'\n", \
- __FILE__, __LINE__, __FUNCTION__, (#x), (x)); \
-} while(0)
-
-#define HERE_REG(addr) do { \
- DBGFN("%s:%d:%s reg 0x%08lx = 0x%08lx (%s)\n", \
- __FILE__, __LINE__, __FUNCTION__, \
- (unsigned long) (addr), \
- (unsigned long) readl(addr), (#addr)); \
-} while(0)
-
-#endif /* QTN_DEBUG_H_ */
diff --git a/quantenna/include/qtn/qtn_decap.h b/quantenna/include/qtn/qtn_decap.h
deleted file mode 100644
index 90d9bc1..0000000
--- a/quantenna/include/qtn/qtn_decap.h
+++ /dev/null
@@ -1,356 +0,0 @@
-#ifndef __QTN_DECAP_H__
-#define __QTN_DECAP_H__
-
-#include <net80211/ieee80211.h>
-#include <net80211/if_ethersubr.h>
-#include <net80211/if_llc.h>
-
-#include <qtn/qtn_net_packet.h>
-#include <qtn/qtn_vlan.h>
-
-/*
- * Length of received frame that requires dcache invalidate on receive.
- * The amount that must be read is:
- * - VLAN encap case: MAX_VLANS * (LLC + 2b) + LLC
- * - 802.11 MPDU, no amsdu: LLC + max l3 depth
- * - 802.11 AMSDU: msdu header + LLC + max l3 depth
- *
- * The max of these three is the VLAN case. There is also an assumption
- * here that if VLANs are processed, there is no need to process L3 header
- */
-#define QTN_RX_LLC_DCACHE_INV_LEN (((LLC_SNAPFRAMELEN + 2) * QTN_MAX_VLANS) + LLC_SNAPFRAMELEN)
-#define QTN_RX_MPDU_DCACHE_INV_LEN (QTN_RX_LLC_DCACHE_INV_LEN + sizeof(struct ieee80211_qosframe_addr4))
-#define QTN_RX_MSDU_DCACHE_INV_LEN (QTN_RX_LLC_DCACHE_INV_LEN + sizeof(struct ether_header))
-
-struct qtn_rx_decap_info {
- void *start;
- uint16_t len;
- struct ether_header eh; /* the eth header to be written to the packet */
- uint32_t vlanh[QTN_MAX_VLANS]; /* space for vlan headers (must be after eh) */
- const void *l3hdr; /* pointer to layer 3 header in the payload */
- uint16_t l3_ether_type; /* l3 header type (may not match eh.ether_type for 802.3 */
- int8_t tid;
- int8_t nvlans;
- uint16_t vlanid; /* to which VLAN te msdu belongs */
- uint8_t first_msdu :1, /* first msdu in an amsdu */
- last_msdu :1, /* last msdu in an amsdu */
- decapped :1, /* start is decapped eh, not wireless header */
- check_3addr_br :1; /* requires 3 address bridge dest mac set */
-};
-
-static __inline__ uint16_t
-qtn_rx_decap_newhdr_size(const struct qtn_rx_decap_info *const di)
-{
- return sizeof(struct ether_header) + (sizeof(struct qtn_8021q) * di->nvlans);
-}
-
-static __inline__ const struct qtn_8021q *
-qtn_rx_decap_vlan(const struct qtn_rx_decap_info *const di, int8_t index)
-{
- const struct qtn_8021q *v = (const void *) &di->eh.ether_type;
- return &v[index];
-}
-
-static __inline__ uint16_t qtn_rx_decap_header_size(const struct ieee80211_qosframe_addr4 *const wh)
-{
- uint16_t size;
- const uint8_t dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK;
-
- size = sizeof(struct ieee80211_frame);
-
- if (dir == IEEE80211_FC1_DIR_DSTODS)
- size += IEEE80211_ADDR_LEN;
- if (IEEE80211_QOS_HAS_SEQ(wh)) {
- size += sizeof(uint16_t);
- if ((wh->i_fc[1] & IEEE80211_FC1_ORDER) == IEEE80211_FC1_ORDER)
- /* Frame has HT control field in the header */
- size += sizeof(uint32_t);
- }
-
- return size;
-}
-
-#define LLC_ENCAP_RFC1042 0x0
-#define LLC_ENCAP_BRIDGE_TUNNEL 0xF8
-
-/*
- * Remove the LLC/SNAP header (if present) and replace with an Ethernet header
- *
- * See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation.
- * Ethernet-II SNAP header (RFC1042 for most Ethertypes)
- * Bridge-Tunnel header (for Ethertypes ETH_P_AARP and ETH_P_IPX
- * No encapsulation header if Ethertype < 0x600 (=length)
- */
-static __inline__ void *
-qtn_rx_decap_set_eth_hdr(struct qtn_rx_decap_info *di, const uint8_t *llc, const uint16_t llclen,
- uint16_t pvid, struct qtn_vlan_info *vlan_info, uint8_t vlan_enabled,
- void *token, void **rate_train)
-{
- uint16_t *newhdrp = &di->eh.ether_type;
- int8_t llc_l3_gap = 0;
- uint16_t ether_type_l3;
-
- uint8_t last_byte = llc[5];
- uint16_t ether_type_eh;
- bool is_llc_snap_e;
- uint8_t vlan_hdr = 0;
- int tagrx;
-
- ether_type_l3 = (llc[6] << 0) | (llc[7] << 8);
- ether_type_eh = ether_type_l3;
-
- di->nvlans = 0;
- di->vlanid = 0;
-
- if (ether_type_l3 == htons(ETHERTYPE_8021Q)) {
- pvid = ((llc[9] << 0) | (llc[8] << 8)) & QVLAN_MASK_VID;
- }
-
- /*
- * For EAPOL and VLAN frames we do not want to add 802.1Q header.
- * Otherwise, the frame won't go through a driver.
- */
- if (vlan_enabled) {
- di->vlanid = pvid;
- tagrx = qtn_vlan_get_tagrx(vlan_info->vlan_tagrx_bitmap, pvid);
-
- if (tagrx == QVLAN_TAGRX_TAG) {
- if (ether_type_l3 != htons(ETHERTYPE_8021Q) &&
- ether_type_l3 != htons(ETHERTYPE_PAE)) {
- *newhdrp++ = htons(ETHERTYPE_8021Q);
- *newhdrp++ = htons(pvid);
- di->nvlans++;
- }
- } else if (tagrx == QVLAN_TAGRX_STRIP) {
- if (ether_type_l3 == htons(ETHERTYPE_8021Q)) {
- ether_type_l3 = ((llc[10] << 0) | (llc[11] << 8));
- ether_type_eh = ether_type_l3;
- vlan_hdr = 4;
- }
- }
- }
-
- /*
- * Common part of the header - RFC1042 (final byte is 0x0) or
- * bridge tunnel encapsulation (final byte is 0xF8)
- */
- is_llc_snap_e = llc[0] == LLC_SNAP_LSAP && llc[1] == LLC_SNAP_LSAP &&
- llc[2] == LLC_UI && llc[3] == 0x0 && llc[4] == 0x0;
-
- if (likely(is_llc_snap_e &&
- ((last_byte == LLC_ENCAP_BRIDGE_TUNNEL) ||
- (last_byte == LLC_ENCAP_RFC1042 &&
- ether_type_eh != htons(ETHERTYPE_AARP) &&
- ether_type_eh != htons(ETHERTYPE_IPX))))) {
- if (last_byte == LLC_ENCAP_RFC1042 && ether_type_eh == htons(ETHERTYPE_802A)) {
- struct oui_extended_ethertype *pe = (struct oui_extended_ethertype *)&llc[8];
- if (pe->oui[0] == (QTN_OUI & 0xff) &&
- pe->oui[1] == ((QTN_OUI >> 8) & 0xff) &&
- pe->oui[2] == ((QTN_OUI >> 16) & 0xff) &&
- pe->type == ntohs(QTN_OUIE_TYPE_TRAINING)) {
- /* Pass back pointer to start of training data */
- if (rate_train)
- *rate_train = (pe + 1);
- return NULL;
- }
- }
-
- llc += (LLC_SNAPFRAMELEN + vlan_hdr);
- *newhdrp++ = ether_type_eh;
- } else {
- ether_type_eh = htons(llclen);
- *newhdrp++ = ether_type_eh;
- llc_l3_gap = LLC_SNAPFRAMELEN;
- }
-
- di->l3hdr = llc + llc_l3_gap;
- di->l3_ether_type = ether_type_l3;
- di->start = (void *) (llc - qtn_rx_decap_newhdr_size(di));
-
- return di->start;
-}
-
-
-typedef int (*decap_handler_t)(struct qtn_rx_decap_info *, void *);
-
-#define QTN_RX_DECAP_AMSDU (0)
-#define QTN_RX_DECAP_MPDU (-1)
-#define QTN_RX_DECAP_TRAINING (-2)
-#define QTN_RX_DECAP_NOT_DATA (-3)
-#define QTN_RX_DECAP_RUNT (-4)
-#define QTN_RX_DECAP_ABORTED (-5)
-#define QTN_RX_DECAP_ERROR(x) ((x) <= QTN_RX_DECAP_NOT_DATA)
-
-#ifndef QTN_RX_DECAP_FNQUAL
-#ifdef __KERNEL__
-#define QTN_RX_DECAP_FNQUAL static __sram_text
-#define qtn_rx_decap_inv_dcache_safe(a,b)
-#else
-#define QTN_RX_DECAP_FNQUAL static __inline__
-#define qtn_rx_decap_inv_dcache_safe invalidate_dcache_range_safe
-#endif
-#endif
-
-QTN_RX_DECAP_FNQUAL int qtn_rx_decap(const struct ieee80211_qosframe_addr4 *const wh_copy,
- const void *const rxdata, const uint16_t rxlen,
- uint16_t pvid, struct qtn_vlan_info *vlan_info, uint8_t vlan_enabled,
- decap_handler_t handler, void *token, void **rate_train)
-{
- const uint8_t *llc;
- const uint8_t type = wh_copy->i_fc[0] & IEEE80211_FC0_TYPE_MASK;
- const uint8_t subtype = wh_copy->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK;
- const uint8_t dir = wh_copy->i_fc[1] & IEEE80211_FC1_DIR_MASK;
- uint8_t qosctrl0 = 0;
- int8_t tid;
- bool is_amsdu = false;
- size_t header_size;
- int msdu;
- struct qtn_rx_decap_info __di[2];
- int dii = 0;
- uint8_t *decap_start;
-
- /* only attempt to decap data frames */
- if (unlikely(type != IEEE80211_FC0_TYPE_DATA ||
- !(subtype == IEEE80211_FC0_SUBTYPE_DATA ||
- subtype == IEEE80211_FC0_SUBTYPE_QOS))) {
- return QTN_RX_DECAP_NOT_DATA;
- }
-
- /* find qos ctrl field */
- if (IEEE80211_QOS_HAS_SEQ(wh_copy)){
- if (IEEE80211_IS_4ADDRESS(wh_copy)) {
- qosctrl0 = ((struct ieee80211_qosframe_addr4 *) wh_copy)->i_qos[0];
- } else {
- qosctrl0 = ((struct ieee80211_qosframe *) wh_copy)->i_qos[0];
- }
- tid = qosctrl0 & IEEE80211_QOS_TID;
- if (qosctrl0 & IEEE80211_QOS_A_MSDU_PRESENT) {
- is_amsdu = true;
- }
- } else {
- tid = WME_TID_NONQOS;
- }
-
- header_size = qtn_rx_decap_header_size(wh_copy);
-
- if (unlikely(header_size >= rxlen)) {
- return QTN_RX_DECAP_RUNT;
- }
-
- if (!is_amsdu) {
- const uint8_t *wh_eth_src;
- const uint8_t *wh_eth_dest;
- struct qtn_rx_decap_info *di = &__di[dii];
-
- switch (dir) {
- case IEEE80211_FC1_DIR_DSTODS:
- wh_eth_dest = wh_copy->i_addr3;
- wh_eth_src = wh_copy->i_addr4;
- if (IEEE80211_ADDR_EQ(wh_copy->i_addr1, wh_copy->i_addr3))
- di->check_3addr_br = 1;
- break;
- case IEEE80211_FC1_DIR_TODS:
- wh_eth_dest = wh_copy->i_addr3;
- wh_eth_src = wh_copy->i_addr2;
- break;
- case IEEE80211_FC1_DIR_NODS:
- wh_eth_dest = wh_copy->i_addr1;
- wh_eth_src = wh_copy->i_addr2;
- break;
- case IEEE80211_FC1_DIR_FROMDS:
- wh_eth_src = wh_copy->i_addr3;
- wh_eth_dest = wh_copy->i_addr1;
- di->check_3addr_br = 1;
- break;
- default:
- return QTN_RX_DECAP_ABORTED;
- }
-
- IEEE80211_ADDR_COPY(di->eh.ether_dhost, wh_eth_dest);
- IEEE80211_ADDR_COPY(di->eh.ether_shost, wh_eth_src);
- llc = ((uint8_t *) rxdata) + header_size;
- decap_start = qtn_rx_decap_set_eth_hdr(di, llc, rxlen - header_size,
- pvid, vlan_info, vlan_enabled, token, rate_train);
- if (unlikely(!decap_start)) {
- return QTN_RX_DECAP_TRAINING;
- }
-
- di->len = (((uint8_t *) rxdata) + rxlen) - decap_start;
- di->tid = tid;
- di->first_msdu = 1;
- di->last_msdu = 1;
- di->decapped = 1;
-
- if (handler(di, token)) {
- return QTN_RX_DECAP_ABORTED;
- }
-
- return QTN_RX_DECAP_MPDU;
- } else {
- /* amsdu */
- struct ether_header *msdu_header;
- struct ether_header *next_msdu_header;
- struct qtn_rx_decap_info *prev_di = NULL;
- uint16_t msdu_len;
- uint16_t subframe_len;
- uint16_t subframe_padding;
- uint16_t total_decapped_len = header_size;
-
- MUC_UPDATE_STATS(uc_rx_stats.rx_amsdu, 1);
- next_msdu_header = (struct ether_header *)(((uint8_t *)rxdata) + header_size);
- for (msdu = 0; total_decapped_len < rxlen; msdu++) {
- struct qtn_rx_decap_info *di = &__di[dii];
-
- msdu_header = next_msdu_header;
- llc = (uint8_t *)(msdu_header + 1);
- qtn_rx_decap_inv_dcache_safe(msdu_header, QTN_RX_MSDU_DCACHE_INV_LEN);
- msdu_len = ntohs(msdu_header->ether_type);
- subframe_len = sizeof(*msdu_header) + msdu_len;
- if (subframe_len < sizeof(*msdu_header) ||
- subframe_len > (rxlen - total_decapped_len) ||
- subframe_len > (ETHER_JUMBO_MAX_LEN + LLC_SNAPFRAMELEN)) {
- break;
- }
- subframe_padding = ((subframe_len + 0x3) & ~0x3) - subframe_len;
- next_msdu_header = (struct ether_header *)(llc + msdu_len + subframe_padding);
- /* decapped length includes subframe padding */
- total_decapped_len = ((uint8_t *)next_msdu_header) - ((uint8_t *)rxdata);
-
- decap_start = qtn_rx_decap_set_eth_hdr(di, llc, msdu_len, pvid, vlan_info, vlan_enabled,
- token, rate_train);
- if (unlikely(!decap_start)) {
- return QTN_RX_DECAP_TRAINING;
- }
-
- if (prev_di) {
- if (handler(prev_di, token)) {
- return QTN_RX_DECAP_ABORTED;
- }
- }
-
- IEEE80211_ADDR_COPY(di->eh.ether_dhost, msdu_header->ether_dhost);
- IEEE80211_ADDR_COPY(di->eh.ether_shost, msdu_header->ether_shost);
- di->len = ((uint8_t *)next_msdu_header - decap_start) - subframe_padding;
- di->tid = tid;
- di->first_msdu = (prev_di == NULL);
- di->last_msdu = 0;
- di->decapped = 1;
- di->check_3addr_br = 0;
- prev_di = di;
- dii = !dii;
- }
- if (prev_di) {
- prev_di->last_msdu = 1;
- if (handler(prev_di, token)) {
- return QTN_RX_DECAP_ABORTED;
- }
- } else {
- return QTN_RX_DECAP_ABORTED;
- }
-
- return QTN_RX_DECAP_AMSDU;
- }
-}
-
-#endif // __QTN_DECAP_H__
-
diff --git a/quantenna/include/qtn/qtn_global.h b/quantenna/include/qtn/qtn_global.h
deleted file mode 100644
index 8f4852f..0000000
--- a/quantenna/include/qtn/qtn_global.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/*
- * Copyright (c) 2011-2012 Quantenna Communications, Inc.
- * All rights reserved.
- */
-
-#ifndef _QTN_GLOBAL_H
-#define _QTN_GLOBAL_H
-
-#define QTN_DEFAULT_LEGACY_RETRY_COUNT 4
-
-#define QTN_GLOBAL_INIT_SELECT_GI_ENABLE 2
-#define QTN_GLOBAL_INIT_SELECT_PPPC_ENABLE 1
-
-#define QTN_GLOBAL_PSEL_MATRIX_ENABLE 1
-#define QTN_GLOBAL_INIT_DEF_MATRIX 1
-
-#define QTN_AC_BE_INHERIT_VO_NO_STA 4
-#define QTN_AC_BE_INHERIT_VI_NO_STA 3
-#define QTN_AC_BE_INHERIT_VO 2
-#define QTN_AC_BE_INHERIT_VI 1
-#define QTN_AC_BE_INHERIT_DISABLE 0
-#define QTN_AC_BE_INHERIT_Q2Q_ENABLE 1
-#define QTN_AC_BE_INHERIT_Q2Q_DISABLE 0
-#define QTN_TXBF_IOT_DISABLE 0
-#define QTN_TXBF_IOT_ENABLE 1
-#define QTN_GLOBAL_MU_ENABLE 1
-#define QTN_GLOBAL_MU_DISABLE 0
-#define QTN_GLOBAL_MU_INITIAL_STATE QTN_GLOBAL_MU_DISABLE
-
-#define QTN_AUTO_CS_ENABLE 1
-#define QTN_AUTO_CS_DISABLE 0
-
-/*
- * The MuC TX Queuing algorithm is selected by setting
- * g_tx_queuing_alg. Values are:
- * 0 = Round robin
- * 1 = Equal airtime
- * 2 = Greedy best
- * 3 = Round robin (filling to make a power of 4)
- * x >= 4: algorithm chosen by (val % 4), with airtime
- * debugs enabled, printed every (val) seconds.
- */
-#define QTN_TX_QUEUING_ALG_ROUND_ROBIN 0
-#define QTN_TX_QUEUING_ALG_EQUAL_AIRTIME 1
-#define QTN_TX_QUEUING_ALG_GREEDY_BEST 2
-#define QTN_TX_QUEUING_ALGS 4
-#if QTN_TX_QUEUING_ALGS & (QTN_TX_QUEUING_ALGS - 1)
- #error QTN_TX_QUEUING_ALGS should be a power of 2
-#endif
-#define QTN_GLOBAL_INIT_TX_QUEUING_ALG QTN_TX_QUEUING_ALG_ROUND_ROBIN
-
-#define QTN_TX_AIRTIME_XMIT_BUMP_USECS 100
-
-#define QTN_TX_BUF_RETURN_MIN 100
-/* must be greater than the above to prevent stalling */
-#define QDRV_TX_LOW_RATE_TOKENS_MAX QTN_TX_BUF_RETURN_MIN + 28
-
-#define QTN_GLOBAL_RATE_NSS_MAX 4
-#define QTN_2X2_GLOBAL_RATE_NSS_MAX 2
-#define QTN_3X3_GLOBAL_RATE_NSS_MAX 3
-#define QTN_RX_REORDER_BUF_TIMEOUT_US 200000
-#define QTN_RX_REORDER_BUF_TIMEOUT_US_VI 800000
-#define QTN_PROBE_RES_MAX_RETRY_COUNT 4
-#define QTN_TX_SWRETRY_AGG_MAX 8 /* high value for zero PER */
-#define QTN_TX_SWRETRY_NOAGG_MAX 1 /* add tx restrict check if this is increased */
-#define QTN_TX_SWRETRY_SUSPEND_XMIT 4 /* sw retry when the sending frames are suspended */
-#define QTN_TX_MSDU_EXPIRY 0 /* allow MSDUs to time out? */
-#define QTN_TX_AGGREGATION 1 /* allow aggregation? */
-#define QTN_CALSTATE_CALIB 1
-#define QTN_CALSTATE_PROD 3
-#define QTN_CALSTATE_DEFAULT QTN_CALSTATE_PROD
-#define QTN_CALSTATE_IS_PROD() (likely(g_qtn_params.g_calstate == QTN_CALSTATE_PROD))
-#define QTN_CALSTATE_VPD_LOG 0
-#define QTN_CALSTATE_VPD_LINEAR 1
-#define QTN_CALSTATE_MIN_TX_POWER 7
-#define QTN_CALSTATE_MAX_TX_POWER 23
-#define QTN_EMI_POWER_SWITCH_ENABLE 1
-
-#define QTN_TX_AMSDU_DISABLED 0
-#define QTN_TX_AMSDU_ADAPTIVE 1
-#define QTN_TX_AMSDU_FIXED 0xff
-
-#define QTN_SEL_PPPC_STEP_DEF 1
-#define QTN_SEL_PPPC_MAX_STEPS 4
-
-#define QTN_TX_AUC_DEFAULT 1
-
-#define QTN_INST_1SS_DEF_MAT_THRESH_DEFAULT 2 /* dbm */
-
-#define QTN_FLAG_ACT_FRAME_RTS_CTS 0x00000001
-#define QTN_FLAG_ACT_FRAME_NO_LDPC 0x00000002
-#define QTN_FLAG_MCS_UEQM_DISABLE 0x00000004
-#define QTN_FLAG_AUC_TX 0x00000008
-#define QTN_FLAG_RA_BW_SWITCHING_ENABLE_11N 0x00000010
-#define QTN_FLAG_RA_BW_SWITCHING_ENABLE_11AC 0x00000020
-#define QTN_GLOBAL_MUC_FLAGS_DEFAULT QTN_FLAG_RA_BW_SWITCHING_ENABLE_11N | \
- QTN_FLAG_RA_BW_SWITCHING_ENABLE_11AC
-#define QTN_NDPA_IN_HT_VHT_FORMAT 0
-#define QTN_NDPA_IN_LEGACY_FORMAT 1
-
-#define QTN_DBG_MODE_SEND_PWR_MGT 0x00000001
-#define QTN_DBG_MODE_ACCEPT_PWR_MGT 0x00000002
-#define QTN_DBG_MODE_TX_PKT_LOSS 0x00000004
-#define QTN_DBG_MODE_DELBA_ON_TX_PKT_LOSS 0x00000008
-#define QTN_DBG_MODE_CCA_FORCE 0x00000010
-#define QTN_DBG_MODE_INJECT_INV_NDP 0x00000020
-
-#define QTN_DBG_FD_CHECK_PERIODIC 0x00000001
-#define QTN_DBG_FD_DUMP_OLD 0x00000002
-#define QTN_DBG_FD_CHECK_ONESHOT 0x00000004
-#define QTN_DBG_FD_DUMP_BCN_FAIL 0x00000008
-#define QTN_DBG_FD_DUMP_VERBOSE 0x00000010 /* + top byte is the FD to dump */
-#define QTN_DBG_DUMP_SC 0x00000020
-#define QTN_DBG_DUMP_AGEQ 0x00000040
-#define QTN_DBG_FD_FLAG_MASK 0x0000FFFF
-
-#define QTN_HW_UPDATE_NDPA_DUR 0x0
-#define QTN_SU_TXBF_TX_CNT_DEF_THRSHLD 2
-#define QTN_MU_TXBF_TX_CNT_DEF_THRSHLD 2
-
-#define QTN_RX_BAR_SYNC_DISABLE 0
-#define QTN_RX_BAR_SYNC_QTN 1
-#define QTN_RX_BAR_SYNC_ALL 2
-
-#if (defined(MUC_BUILD) || defined(SYSTEM_BUILD))
-
-#define QTN_RX_GAIN_MIN_THRESHOLD 16
-#define QTN_RX_GAIN_MAX_THRESHOLD 44
-#define QTN_RX_GAIN_TIMER_INTV 1000 /* msecs */
-/* counter for delay in RFIC6 500Mhz */
-#define QTN_RFIC6_DELAY_MICRO_S 500
-#define QTN_RFIC6_DELAY_MILI_S QTN_RFIC6_DELAY_MICRO_S * 1000
-
-#define SIZE_D1(x) (sizeof(x)/sizeof(x[0]))
-#define SIZE_D2(x) (sizeof(x[0])/sizeof(x[0][0]))
-
-struct qtn_gain_settings {
- uint8_t gain_flags;
-/* Enable SW workaround for short range association */
-#define QTN_AUTO_PWR_ADJUST_EN 0x1
-/* Hardware supports automatic RX gain */
-#define QTN_SHORTRANGE_SCANCNT_HW 0x2
- uint32_t gain_cumulative; /* Cumulative gain for all rx pkts */
- uint32_t gain_num_pkts; /* Number of pkts for which cumulative gain was considered */
- uint32_t gain_timer;
- uint32_t gain_min_thresh;
- uint32_t gain_max_thresh;
- uint32_t gain_timer_intv;
- uint32_t gain_low_txpow;
- int ext_lna_gain;
- int ext_lna_bypass_gain;
-};
-
-#define QTN_SCS_MAX_OC_STATS 32
-/* off channel params */
-struct qtn_scs_oc_stats {
- uint32_t oc_pri_chan;
- uint32_t oc_bw_sel;
- uint32_t oc_crc_cnt;
- uint32_t oc_lp_cnt;
- uint32_t oc_sp_cnt;
- uint32_t oc_cca_pri;
- uint32_t oc_cca_sec;
- uint32_t oc_cca_sec40;
- uint32_t oc_cca_busy;
- uint32_t oc_cca_smpl;
- uint32_t oc_cca_try;
- uint32_t oc_bcn_recvd;
-};
-
-struct qtn_cca_counts {
- uint32_t cca_pri_cnt;
- uint32_t cca_sec_cnt;
- uint32_t cca_sec40_cnt;
- uint32_t cca_busy_cnt;
- uint32_t cca_sample_cnt;
- uint32_t cca_try_cnt;
- uint32_t cca_csw_cnt;
- uint32_t cca_off_pri_cnt;
- uint32_t cca_off_sec_cnt;
- uint32_t cca_off_sec40_cnt;
- uint32_t cca_off_busy_cnt;
- uint32_t cca_off_sample_cnt;
- uint32_t cca_off_res_cnt;
- uint32_t cca_off_try_cnt;
- uint32_t cca_meas_cnt;
-};
-
-struct qtn_cca_stats {
- uint32_t cca_sample_period;
- uint32_t cca_pri_cnt;
- uint32_t cca_sec_cnt;
- uint32_t cca_sec40_cnt;
- uint32_t cca_sample_cnt;
- uint32_t cca_try_cnt;
- uint32_t cca_csw_cnt;
- uint32_t cca_off_try_cnt;
- uint32_t cca_meas_cnt;
- uint32_t cca_busy_cnt;
- uint32_t cca_idle_cnt;
- uint32_t cca_tx_cnt;
- uint32_t rx_time_cnt;
- uint32_t tx_time_cnt;
- uint32_t cca_pri;
- uint32_t cca_sec;
- uint32_t cca_sec40;
- uint32_t cca_busy;
- uint32_t cca_fat;
- uint32_t cca_intf;
- uint32_t cca_trfc;
-};
-
-struct qtn_scs_params {
- uint32_t cca_pri_cnt;
- uint32_t cca_sec_cnt;
- uint32_t cca_sec40_cnt;
- uint32_t cca_busy_cnt;
- uint32_t cca_sample_cnt;
- uint32_t cca_try_cnt;
- uint32_t cca_csw_cnt;
- uint32_t cca_off_res_cnt;
- uint32_t cca_off_try_cnt;
- uint32_t cca_meas_cnt;
- uint32_t tx_usecs;
- uint32_t rx_usecs;
- uint32_t bcn_recvd;
- uint32_t oc_stats_index;
- struct qtn_scs_oc_stats oc_stats[QTN_SCS_MAX_OC_STATS];
-};
-
-struct qtn_vsp_params {
- uint32_t vsp_flags;
-#define QTN_VSP_VSP_EN 0x01
-#define QTN_VSP_FAT_DEBUG 0x02
-#define QTN_VSP_NDCST_DEBUG 0x04
-#define QTN_VSP_INTF_DEBUG 0x08
-#define QTN_VSP_RTS_CTS_IN_USE 0x10
- uint32_t timer_intv;
- uint32_t check_secs;
- uint32_t check_scale;
- uint32_t fat_last;
- uint32_t intf_ms;
- uint32_t cca_pri_cnt;
- uint32_t cca_sec_cnt;
- uint32_t cca_sec40_cnt;
- uint32_t cca_busy_cnt;
- uint32_t cca_sample_cnt;
- uint32_t cca_try_cnt;
- uint32_t cca_csw_cnt;
- uint32_t cca_off_res_cnt;
- uint32_t cca_off_try_cnt;
- uint32_t cca_meas_cnt;
- uint32_t tot_tx_ms;
-};
-
-
-#define QTN_AUTO_CCA_SHORT_PREAMBLE_THRESHOLD 15000 /* If higher than this value, increase the CCA threshold */
-#define QTN_AUTO_CCA_INTF_THRESHOLD 250 /* If higher than this value, increase the CCA threshold */
-
-#define QTN_AUTO_CCA_THRESHOLD_MAX 0x10000 /* The max cca threshold we can set */
-
-
-struct qtn_auto_cca_params {
-#define QTN_AUTO_CCA_FLAGS_DISABLE 0x0
-#define QTN_AUTO_CCA_FLAGS_ENABLE 0x1
-#define QTN_AUTO_CCA_FLAGS_DEBUG 0x2
-#define QTN_AUTO_CCA_FLAGS_SAMPLE_ONLY 0x4
- uint32_t flags;
-
- uint32_t spre_threshold;
- uint32_t cca_intf_threshold;
- uint32_t cca_threshold_max;
-};
-
-struct qtn_wowlan_params {
- uint16_t host_state;
- uint16_t wowlan_match;
- uint16_t l2_ether_type;
- uint16_t l3_udp_port;
-};
-
-#define QTN_AUTO_CCA_PARARMS_DEFAULT \
- { QTN_AUTO_CCA_FLAGS_ENABLE, QTN_AUTO_CCA_SHORT_PREAMBLE_THRESHOLD, \
- QTN_AUTO_CCA_INTF_THRESHOLD, QTN_AUTO_CCA_THRESHOLD_MAX}
-
-struct qtn_global_param {
- uint32_t g_legacy_retry_count;
- uint32_t g_dbg_check_flags;
- uint32_t g_dbg_stop_flags;
- uint32_t g_dbg_mode_flags;
- uint8_t g_select_gi_enable;
- uint8_t g_select_pppc_enable;
- uint8_t g_rate_ht_nss_max;
- uint8_t g_rate_vht_nss_max;
- uint32_t g_rx_agg_timeout;
- uint32_t g_muc_flags;
- uint32_t g_probe_res_retries;
- struct qtn_scs_params scs_params;
- struct qtn_vsp_params vsp_params;
- uint8_t g_slow_eth_war;
- uint8_t g_tx_swretry_agg_max;
- uint8_t g_tx_swretry_noagg_max;
- uint8_t g_tx_swretry_suspend_xmit;
- uint8_t g_tx_msdu_expiry;
- uint8_t g_tx_aggregation;
- uint32_t g_iot_tweaks;
- uint8_t g_calstate;
- uint8_t g_psel_mat_enable;
- uint32_t g_ack_policy;
- uint32_t g_dbg_fd_flags;
- uint32_t g_qtn_disassoc_fd_threshold;
- uint32_t g_qtn_qn_fd_threshold;
- int32_t g_2_tx_chains_mimo_mode;
- uint8_t g_calstate_tx_power;
- uint8_t g_min_tx_power;
- uint8_t g_max_tx_power;
- uint8_t g_emi_power_switch_enable;
- uint8_t g_dyn_agg_timeout;
- int32_t g_sifs_mode;
- uint8_t g_tx_amsdu;
- uint32_t g_ralg_dbg_aid;
- uint8_t g_select_pppc_step_option;
- uint8_t g_11g_erp;
- uint8_t g_single_agg_queuing;
- uint8_t g_def_matrix;
- uint32_t g_tx_restrict;
- uint32_t g_tx_restrict_fd_limit;
- uint32_t g_tx_restrict_rate; /* Max packets per second in Tx restrict mode */
- uint32_t g_tx_restrict_attempts;
- uint32_t g_rts_threshold; /* RTS threshold */
- uint8_t g_tx_queuing_alg;
- uint8_t g_1bit_enable; /* enable/disable 1bit */
- uint32_t g_carrier_id; /* Get/Set carrier ID */
- uint8_t g_rx_accelerate;
- uint8_t g_rx_accel_lu_sa;
- uint8_t g_tx_auc;
- uint8_t g_tx_ac_inheritance; /* promote AC_BE traffic to vo/vi */
- uint8_t g_txbf_iot; /* turn on/off TxBF IOT with non QTN node */
- uint8_t g_tx_ac_q2q_inheritance;/* promote AC_BE traffic to vo/vi */
- uint8_t g_tx_1ss_amsdu_supp; /* enable-disable 1ss AMSDU support - Non-qtn clients */
- uint32_t g_vht_ndpa_dur; /* manual update VHT NDPA duration, if it is 0, then HW auto update */
- uint32_t g_su_txbf_pkt_cnt; /* Tx operation count threshold to a SU TxBF station */
- uint32_t g_mu_txbf_pkt_cnt; /* Tx operation count threshold to a MU TxBF station */
- struct qtn_auto_cca_params g_auto_cca_params;
- struct qtn_wowlan_params wowlan_params;
- uint8_t g_rx_optim;
- uint8_t g_airfair;
- uint8_t g_cca_fixed;
- uint8_t g_ndpa_legacy_format; /* Configure HT-VHT / Legacy frame format for NDP announcements */
- uint8_t g_inst_1ss_def_mat_en; /* enable default 1ss matrix feature */
- uint8_t g_inst_1ss_def_mat_thresh; /* the threshold to install defalut 1ss matrix */
- uint32_t g_mu_enable; /* enable/disable MU Tx */
- uint8_t g_l2_ext_filter; /* L2 external filter */
- uint8_t g_l2_ext_filter_port; /* L2 external filter port */
- uint8_t g_rate_train_dbg;
- uint8_t g_rx_optim_pkt_stats;
- uint8_t g_mrc_enable;
- uint32_t g_auto_cs_enable; /* enable/disable auto cs threshold */
- uint8_t g_beaconing_scheme;
- uint32_t g_muc_sys_dbg;
- uint32_t g_rx_bar_sync; /* sync rx reorder window on receiving BAR */
- char *g_last_field; /* Add all new fields before this one */
-};
-
-/* Please keep this structure in sync with qtn_global_param */
-#define G_PARAMS_INIT { \
- QTN_DEFAULT_LEGACY_RETRY_COUNT, \
- 0, \
- 0, \
- 0, \
- QTN_GLOBAL_INIT_SELECT_GI_ENABLE, \
- QTN_GLOBAL_INIT_SELECT_PPPC_ENABLE, \
- QTN_GLOBAL_RATE_NSS_MAX, \
- QTN_GLOBAL_RATE_NSS_MAX, \
- QTN_RX_REORDER_BUF_TIMEOUT_US, \
- QTN_GLOBAL_MUC_FLAGS_DEFAULT, \
- QTN_PROBE_RES_MAX_RETRY_COUNT, \
- {0,}, \
- {0,}, \
- 0, \
- QTN_TX_SWRETRY_AGG_MAX, \
- QTN_TX_SWRETRY_NOAGG_MAX, \
- QTN_TX_SWRETRY_SUSPEND_XMIT, \
- QTN_TX_MSDU_EXPIRY, \
- QTN_TX_AGGREGATION, \
- QTN_IOT_DEFAULT_TWEAK, \
- QTN_CALSTATE_DEFAULT, \
- QTN_GLOBAL_PSEL_MATRIX_ENABLE, \
- 1, \
- 0, \
- 50, \
- 64, \
- 1, \
- QTN_CALSTATE_VPD_LOG, \
- QTN_CALSTATE_MIN_TX_POWER, \
- QTN_CALSTATE_MAX_TX_POWER, \
- QTN_EMI_POWER_SWITCH_ENABLE, \
- 0, \
- 2, \
- QTN_TX_AMSDU_ADAPTIVE, \
- 0, \
- QTN_SEL_PPPC_STEP_DEF, \
- 0, \
- 0, \
- QTN_GLOBAL_INIT_DEF_MATRIX, \
- 1, \
- IEEE80211_NODE_TX_RESTRICT_LIMIT, \
- IEEE80211_TX_RESTRICT_RATE, \
- IEEE80211_NODE_TX_RESTRICT_RETRY, \
- IEEE80211_RTS_THRESH_OFF, \
- QTN_GLOBAL_INIT_TX_QUEUING_ALG, \
- 1, \
- 0, \
- 1, \
- 1, \
- QTN_TX_AUC_DEFAULT, \
- QTN_AC_BE_INHERIT_VO, \
- QTN_TXBF_IOT_ENABLE, \
- QTN_AC_BE_INHERIT_Q2Q_ENABLE, \
- QTN_TX_AMSDU_DISABLED, \
- QTN_HW_UPDATE_NDPA_DUR, \
- QTN_SU_TXBF_TX_CNT_DEF_THRSHLD, \
- QTN_MU_TXBF_TX_CNT_DEF_THRSHLD, \
- QTN_AUTO_CCA_PARARMS_DEFAULT, \
- {0, 0, 0x0842, 0xffff}, \
- 0, \
- QTN_AUC_AIRFAIR_DFT, \
- 0, \
- QTN_NDPA_IN_LEGACY_FORMAT, \
- 1, \
- QTN_INST_1SS_DEF_MAT_THRESH_DEFAULT, \
- QTN_GLOBAL_MU_INITIAL_STATE, \
- 0, \
- TOPAZ_TQE_EMAC_0_PORT, \
- 0, \
- 0, \
- 1, \
- QTN_AUTO_CS_ENABLE, \
- 0, \
- 0, \
- QTN_RX_BAR_SYNC_QTN, \
- "end" \
-}
-
-extern struct qtn_global_param g_qtn_params;
-extern volatile __uncached__ struct qtn_gain_settings g_gain;
-extern struct qtn_cca_counts g_cca_counts;
-extern struct qtn_cca_stats g_qtn_cca_stats;
-extern uint32_t g_qtn_rxtime_usecs;
-extern uint32_t g_qtn_txtime_usecs;
-extern uint8_t g_rf_mixer_gain;
-extern uint8_t g_afe_pga_gain;
-extern uint32_t g_rf_xmit_status;
-extern int vlan_enabled_bus;
-
-#endif /* defined(MUC_BUILD) */
-
-/*
- * SKBs on the power save queue are tagged with an age and timed out. We reuse the
- * hardware checksum field in the mbuf packet header to store this data.
- */
-#define skb_age csum_offset
-
-#define M_AGE_SET(skb,v) (skb->skb_age = v)
-#define M_AGE_GET(skb) (skb->skb_age)
-#define M_AGE_SUB(skb,adj) (skb->skb_age -= adj)
-
-#define QTN_2G_FIRST_OPERATING_CHAN 1
-#define QTN_2G_LAST_OPERATING_CHAN 14
-#define QTN_5G_FIRST_OPERATING_CHAN 36
-#define QTN_5G_LAST_UNII1_OPERATING_CHAN 48
-#define QTN_5G_LAST_UNII2_OPERATING_CHAN 140
-#define QTN_5G_LAST_OPERATING_CHAN 169
-
-/* RFIC chip ID */
-#define RFIC5_EAGLE_PROJ_ID (2)
-#define RFIC6_PROJ_ID (3)
-
-/* MU-MIMO WMAC index */
-enum {
- WMAC_ID_0 = 0,
- WMAC_ID_1 = 1,
- WMAC_ID_MAX
-};
-
-#endif /* _QTN_GLOBAL_MUC_H */
-
diff --git a/quantenna/include/qtn/qtn_math.h b/quantenna/include/qtn/qtn_math.h
deleted file mode 100644
index 14630d1..0000000
--- a/quantenna/include/qtn/qtn_math.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*SH0
-*******************************************************************************
-** **
-** Copyright (c) 2008 - 2008 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna **
-** Date : 12/04/08 **
-** File : qdrv_math.c **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH0*/
-#ifndef _QDRV_MATH_H
-#define _QDRV_MATH_H
-
-#ifndef ABS
-#define ABS(x) (((x) > 0) ? (x) : 0 -(x))
-#endif
-
-void convert_evm_db(u_int32_t evm_reg, int n_sym, int *evm_int, int *evm_frac);
-void average_evm_db(const uint32_t *evm_array, int n_sym, int *evm_int, int *evm_frac);
-
-#endif
diff --git a/quantenna/include/qtn/qtn_math.inl b/quantenna/include/qtn/qtn_math.inl
deleted file mode 100644
index 2fd8ea5..0000000
--- a/quantenna/include/qtn/qtn_math.inl
+++ /dev/null
@@ -1,455 +0,0 @@
-/*SH0
-*******************************************************************************
-** **
-** Copyright (c) 2008 - 2008 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna **
-** Date : 12/04/08 **
-** File : qdrv_math.c **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH0*/
-
-#include <qtn/qtn_math.h>
-#include <qtn/muc_phy_stats.h>
-
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-#ifndef MIN
-#define MIN(a, b) (((a) > (b)) ? (b) : (a))
-#endif
-
-#define NUM_VALID_ONE_STREAM 1
-#define NUM_VALID_TWO_STREAM 2
-#define NUM_VALID_THREE_STREAM 3
-#define NUM_VALID_FOUR_STREAM 4
-
-#define NUM_BITS_FOR_FRACTION 4
-#define NUM_BITS_EVM_MANT_ONE 2048
-#define NUM_BITS_EVM_MANT_SHIFT 12
-#define NUM_BITS_EVM_EXP_SHIFT 16
-#define NUM_BITS_GUARD_TINY_SHIFT 7
-
-static const u_int16_t lut_1024_10log10[] = {
- #include "./log_table/1024_10log10_table.txt"
-};
-
-u_int8_t highest_one_bit_pos(u_int32_t val)
-{
- u_int32_t shift;
- u_int32_t pos = 0;
-
- if (val == 0) return 0;
-
- shift = (val & 0xFFFF0000) ? 16 : 0; val >>= shift; pos |= shift;
- shift = (val & 0xFF00 ) ? 8 : 0; val >>= shift; pos |= shift;
- shift = (val & 0xF0 ) ? 4 : 0; val >>= shift; pos |= shift;
- shift = (val & 0xC ) ? 2 : 0; val >>= shift; pos |= shift;
- shift = (val & 0x2 ) ? 1 : 0; pos |= shift;
- pos++;
- return (u_int8_t) pos;
-}
-
-u_int32_t rshift_round(u_int32_t x, int shift)
-{
- u_int32_t z;
-
- if (shift == 0)
- return x;
-
- z = x >> (shift - 1);
- z += (z & 1);
- z >>= 1;
- return z;
-}
-
-int linear_to_10log10(u_int32_t x, int8_t nbit_frac_in, int8_t nbit_frac_out)
-{
- u_int8_t shift;
-
- if (x <= 0)
- return (int)0x80000001; // 10*log10(0) = -infinity
-
- shift = MAX(highest_one_bit_pos(x) - 8, 0);
-
- //printk("shift = %d , x = %d, lut_1024_10log10[(x >> shift) - 1] = %d \n\n", shift, x, lut_1024_10log10[(x >> shift) - 1]);
-
- // y = round((1024*10*log10(x/2^shift) + (shift-nbit_frac_in)*1024*10*log10(2)) / 2^(10-nbit_frac_out))
- // 49321 = round(16*1024*10*log10(2))
- return rshift_round((int)(lut_1024_10log10[(x >> shift) - 1] + (((shift - nbit_frac_in) * 49321) >> 4)), 10 - nbit_frac_out) ;
-}
-
-int divide_by_16_x_10000(int x)
-{
- return (x * 625); //10000/16
-};
-
-
-u_int16_t conv_linear_mantissa(long val, short se)
-{
- u_int16_t evm_out;
- short sht_count;
- long shift_mask;
-
- if (val == 0) return 0;
-
- if (se < 1 || se > 32)
- return 0; // se is in [1:32]
-
- shift_mask = 0x000007FF; // MSB mask for 2048
-
- if (se > NUM_BITS_EVM_MANT_SHIFT ) {
- sht_count = se - NUM_BITS_EVM_MANT_SHIFT ;
- shift_mask = shift_mask << sht_count;
- evm_out = (u_int16_t) (val & shift_mask) >> sht_count;
- } else {
- sht_count = NUM_BITS_EVM_MANT_SHIFT - se ;
- shift_mask = shift_mask >> sht_count;
- evm_out = (u_int16_t) (val & shift_mask) << sht_count;
- }
-
- return (evm_out);
-}
-
-void average_evm_db(const uint32_t *evm_array, int n_sym, int *evm_int, int *evm_frac)
-{
- int man[4], exp[4], evm_exp_val[4];
- int y, x, evm_4bit_fraction, fraction, db_sign = 0;
- int k, valid_evm_cnt = 0, min_exp_val =0, guard_bit_shift = 0;
- int evm_exp_sum=0, evm_exp_mul=0, evm_mant_sum=0, evm_mant_mul=0;
- long evm_tmp_sum=0, evm_tmp_mul=0, linear_evm_val[4] ={0,0,0,0};
-
- if (n_sym < 3)
- return;
-
- for ( k = 0; k < 4; k++) {
- if (evm_array[k] != MUC_PHY_ERR_SUM_NOT_AVAIL) {// invalid EVM values
-
- valid_evm_cnt++;
- man[k] = (u_int32_t)(evm_array[k] >> 5);
- exp[k] = (evm_array[k] - man[k] * 32);
- man[k] += NUM_BITS_EVM_MANT_ONE;
-
- if ( exp[k] > NUM_BITS_EVM_EXP_SHIFT )
- linear_evm_val[k] = (man[k]) << (exp[k] - NUM_BITS_EVM_EXP_SHIFT );
- else
- linear_evm_val[k] = (man[k]) >> (NUM_BITS_EVM_EXP_SHIFT - exp[k]);
-
- exp[k] = exp[k] - NUM_BITS_EVM_EXP_SHIFT;
-
- //printk("reg=%x, man = %d, exp = %d, n_sym=%d\n", evm_array[k], man[k], exp[k], n_sym);
- }
- }
-
- if ( valid_evm_cnt == NUM_VALID_ONE_STREAM ) { // only one stream
- y = linear_to_10log10((man[0]), 0, NUM_BITS_FOR_FRACTION) +
- ((exp[0] - 11) * linear_to_10log10(2, 0, NUM_BITS_FOR_FRACTION)) ;
- } else {
-
- switch (valid_evm_cnt) {
-
- case NUM_VALID_TWO_STREAM: //log(b+a) - log(a*b)
- // get log(a + b)
- evm_mant_sum = (long) (linear_evm_val[0]);
- evm_mant_sum += (long) (linear_evm_val[1]);
- evm_exp_sum = (int) highest_one_bit_pos(evm_mant_sum );
- evm_mant_sum = conv_linear_mantissa(evm_mant_sum, evm_exp_sum);
- evm_exp_sum -= NUM_BITS_EVM_MANT_SHIFT ;
- // get log(a*b)
- evm_tmp_mul = (long) (man[0]*man[1]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_mul = (int) highest_one_bit_pos( evm_mant_mul );
- evm_mant_mul = conv_linear_mantissa(evm_mant_mul, evm_exp_mul);
- evm_exp_mul = (1) + (evm_exp_mul - NUM_BITS_EVM_MANT_SHIFT ); // 1 time shift 12 bits
- evm_exp_mul += (exp[0]+exp[1]);
-
- break;
-
- case NUM_VALID_THREE_STREAM: // log(bc+ab+ac) -log(abc)
- // get 3 terms product: bc
- evm_tmp_mul = (long) (man[1]*man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_exp_val[0] = 1+(exp[1]+exp[2]);
-
- min_exp_val = MIN(evm_exp_val[0], min_exp_val);
- linear_evm_val[0] = (evm_mant_mul);
-
- // get 3 terms product: ac
- evm_tmp_mul = (long) (man[0]*man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_exp_val[1] = 1+(exp[0]+exp[2]);
-
- min_exp_val = MIN(evm_exp_val[1], min_exp_val);
- linear_evm_val[1] = (evm_mant_mul);
-
- // get 3 terms product: ab
- evm_tmp_mul = (long) (man[0]*man[1]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_exp_val[2] = 1+(exp[0]+exp[1]);
-
- min_exp_val = MIN(evm_exp_val[2], min_exp_val);
- linear_evm_val[2] = (evm_mant_mul);
-
- // check the tiny input cases
- guard_bit_shift = min_exp_val + NUM_BITS_EVM_MANT_SHIFT;
-
- if ( guard_bit_shift < NUM_BITS_GUARD_TINY_SHIFT )
- // min 7 bits for log table
- guard_bit_shift = (-min_exp_val - NUM_BITS_EVM_MANT_SHIFT) + NUM_BITS_GUARD_TINY_SHIFT;
- else guard_bit_shift = 0;
-
- // left-shift up to bit 30
- guard_bit_shift = MIN(guard_bit_shift, (30-NUM_BITS_EVM_MANT_SHIFT));
-
- for ( k = 0; k < valid_evm_cnt ; k++) {
- linear_evm_val[k] = (long)(linear_evm_val[k]) << guard_bit_shift;
- if ( evm_exp_val[k] >= 0 )
- linear_evm_val[k] <<= (evm_exp_val[k]);
- else
- linear_evm_val[k] >>= (-evm_exp_val[k]);
- }
-
-
- // get summatioon of t2 terms products: bc + ac +ab
- evm_tmp_sum = (long) (linear_evm_val[0]);
- evm_tmp_sum += (long) (linear_evm_val[1]);
- evm_tmp_sum += (long) (linear_evm_val[2]);
- evm_exp_sum = (int) highest_one_bit_pos( evm_tmp_sum );
- evm_mant_sum = conv_linear_mantissa(evm_tmp_sum, evm_exp_sum);
- evm_exp_sum -= (NUM_BITS_EVM_MANT_SHIFT + guard_bit_shift);
-
- // get 3 term products : a*b*c
- evm_tmp_mul = (long) (man[0]*man[1]) ;
- evm_mant_mul = (int) ( evm_tmp_mul) >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) (evm_mant_mul * man[2]);
- evm_mant_mul = (int) ( evm_tmp_mul) >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_mul = (int) highest_one_bit_pos( evm_mant_mul );
- evm_mant_mul = conv_linear_mantissa(evm_mant_mul, evm_exp_mul);
- evm_exp_mul = (2) + (evm_exp_mul - NUM_BITS_EVM_MANT_SHIFT ); // 2 times shift 12 bits
- evm_exp_mul += (exp[0]+exp[1]+exp[2]);
-
- break;
-
- case NUM_VALID_FOUR_STREAM: // log(bcd+acd+abd+abc) -log(abcd)
-
- // get 3 terms product: bcd
- evm_tmp_mul = (long) (man[1]*man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[3]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_val[0] = 2+(exp[1]+exp[2]+exp[3]);
- min_exp_val = MIN(evm_exp_val[0], min_exp_val);
- linear_evm_val[0] = (long) (evm_mant_mul);
-
-
- // get 3 terms product: acd
- evm_tmp_mul = (long) (man[0]*man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[3]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_val[1] = 2+(exp[0]+exp[2]+exp[3]);
- min_exp_val = MIN(evm_exp_val[1], min_exp_val);
- linear_evm_val[1] = (long) (evm_mant_mul);
-
- // get 3 terms product: abd
- evm_tmp_mul = (long) (man[0]*man[1]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[3]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_val[2] = 2+(exp[0]+exp[1]+exp[3]);
- min_exp_val = MIN(evm_exp_val[2], min_exp_val);
- linear_evm_val[2] = (long) (evm_mant_mul);
-
- // get 3 terms product: abc
- evm_tmp_mul = (long) (man[0]*man[1]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_val[3] = 2+(exp[0]+exp[1]+exp[2]);
- min_exp_val = MIN(evm_exp_val[3], min_exp_val);
- linear_evm_val[3] = (long) (evm_mant_mul);
-
- // check the tiny input cases
- guard_bit_shift = min_exp_val + NUM_BITS_EVM_MANT_SHIFT;
-
- if ( guard_bit_shift < NUM_BITS_GUARD_TINY_SHIFT )
- // min 7 bits for log table
- guard_bit_shift = (-min_exp_val - NUM_BITS_EVM_MANT_SHIFT) + NUM_BITS_GUARD_TINY_SHIFT;
- else guard_bit_shift = 0;
-
- // left-shift up to bit 30
- guard_bit_shift = MIN(guard_bit_shift, (30-NUM_BITS_EVM_MANT_SHIFT));
-
- for ( k = 0; k < valid_evm_cnt ; k++) {
- linear_evm_val[k] = (long)(linear_evm_val[k]) << guard_bit_shift;
- if ( evm_exp_val[k] >= 0 )
- linear_evm_val[k] <<= (evm_exp_val[k]);
- else
- linear_evm_val[k] >>= (-evm_exp_val[k]);
- }
-
-
- // summation of 3 term products : bcd+acd+abd+abc
- evm_mant_sum = (long) (linear_evm_val[0]);
- evm_mant_sum += (long) (linear_evm_val[1]);
- evm_mant_sum += (long) (linear_evm_val[2]);
- evm_mant_sum += (long) (linear_evm_val[3]);
-
- evm_exp_sum = (int) highest_one_bit_pos( evm_mant_sum );
- evm_mant_sum = conv_linear_mantissa(evm_mant_sum, evm_exp_sum);
- evm_exp_sum -= (NUM_BITS_EVM_MANT_SHIFT + guard_bit_shift);
-
- // get 4 terms products : a*b*c*d
- evm_tmp_mul = (long) (man[0]*man[1]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[2]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
- evm_tmp_mul = (long) evm_mant_mul * (man[3]);
- evm_mant_mul = (int) evm_tmp_mul >> NUM_BITS_EVM_MANT_SHIFT ;
-
- evm_exp_mul = (int) highest_one_bit_pos( evm_mant_mul );
- evm_mant_mul = conv_linear_mantissa(evm_mant_mul, evm_exp_mul);
- evm_exp_mul = (3) + (evm_exp_mul - NUM_BITS_EVM_MANT_SHIFT ); // 3 times shift 12 bits
- evm_exp_mul += (exp[0]+exp[1]+exp[2]+exp[3]);
-
- break;
- }
-
- //printk("sum = (%d, %d)\n", evm_mant_sum, evm_exp_sum);
- //printk("prod = (%d, %d)\n", (int) evm_mant_mul, evm_exp_mul);
-
- y = -linear_to_10log10((evm_mant_sum + NUM_BITS_EVM_MANT_ONE), 0, NUM_BITS_FOR_FRACTION);
- y -= (evm_exp_sum) * linear_to_10log10(2, 0, NUM_BITS_FOR_FRACTION);
-
- y += linear_to_10log10((evm_mant_mul + NUM_BITS_EVM_MANT_ONE), 0, NUM_BITS_FOR_FRACTION);
- y += (evm_exp_mul) * linear_to_10log10(2, 0, NUM_BITS_FOR_FRACTION);
- }
-
- x = linear_to_10log10(n_sym-3, 0, NUM_BITS_FOR_FRACTION);
-
- evm_4bit_fraction = y - x;
-
- // fix bug: negative dB shift error
- if ( evm_4bit_fraction < 0 ) {
- db_sign = 1;
- evm_4bit_fraction = ABS(evm_4bit_fraction);
- }
-
- y = (evm_4bit_fraction >> NUM_BITS_FOR_FRACTION);
- fraction = evm_4bit_fraction - (y << NUM_BITS_FOR_FRACTION);
-
- if ( db_sign ==1 )
- *evm_int = -y;
- else
- *evm_int = y;
-
- *evm_frac = divide_by_16_x_10000(fraction);
-
- //printk("int = %d, frac = %d\n", *evm_int, *evm_frac);
-}
-
-void convert_evm_db(u_int32_t evm_reg, int n_sym, int *evm_int, int *evm_frac)
-{
- int man, exp, log_table_index, y, x, evm_4bit_fraction, fraction,db_sign = 0;
-
- if (n_sym < 3)
- return;
-
- man = (u_int32_t)(evm_reg >> 5);
- exp = (evm_reg - man * 32);
-
- //printk("man = %d, exp = %d\n", man, exp);
-
-
- log_table_index = (2048 + man) ;
-
- y = linear_to_10log10(log_table_index, 0, NUM_BITS_FOR_FRACTION);
- y += ((exp - 16) * linear_to_10log10(2, 0, NUM_BITS_FOR_FRACTION));
- y -= (11 * linear_to_10log10(2, 0, NUM_BITS_FOR_FRACTION));
- x = linear_to_10log10(n_sym-3, 0, NUM_BITS_FOR_FRACTION);
-
- //printk("y = %d, x = %d\n", y, x);
-
- evm_4bit_fraction = y - x;
-
- // fix bug: negative dB shift error
- if ( evm_4bit_fraction < 0 ) {
- db_sign = 1;
- evm_4bit_fraction = ABS(evm_4bit_fraction);
- }
-
- y = (evm_4bit_fraction >> NUM_BITS_FOR_FRACTION);
- fraction = evm_4bit_fraction - (y << NUM_BITS_FOR_FRACTION);
-
- if ( db_sign==1 )
- *evm_int = -y;
- else
- *evm_int = y;
-
- *evm_frac = divide_by_16_x_10000(fraction);
-
- //printk("int = %d, frac = %d\n", *evm_int, *evm_frac);
-}
-
-#ifdef FLOAT_SUPPORT
-inline double pow_int(int x, int y)
-{
- unsigned int n;
- double z;
-
- if (y >= 0)
- n = (unsigned int)y;
- else
- n = (unsigned int)(-y);
-
- for (z = 1; ; x *= x) {
- if ((n & 1) != 0)
- z *= x;
- if ((n >>= 1) == 0)
- return (y < 0 ? 1 / z : z);
- }
-};
-#endif //#ifdef FLOAT_SUPPORT
-
diff --git a/quantenna/include/qtn/qtn_muc_stats_print.h b/quantenna/include/qtn/qtn_muc_stats_print.h
deleted file mode 100644
index cfbec57..0000000
--- a/quantenna/include/qtn/qtn_muc_stats_print.h
+++ /dev/null
@@ -1,408 +0,0 @@
-/* autogenerated */
-
-#define MUC_TX_STATS_NAMES_TABLE { \
- "bcn_enq_failed", \
- "tx_status_set", \
- "pkt_from_host", \
- "host_intr", \
- "netbuf_alloc_failed", \
- "mgm_before_encap", \
- "mgm_after_encap", \
- "pkt_before_encap", \
- "pkt_after_encap", \
- "pkt_push_back", \
- "pkt_to_hw", \
- "pkt_to_hw_deferred", \
- "fd_absent", \
- "fd_not_ready", \
- "pkt_fd_available", \
- "pkt_add_node", \
- "pkt_add_q", \
- "pkt_qtn_hardstart", \
- "tx_reserved", \
- "tx_reserve_fail", \
- "txalert_mu_ndp_update", \
- "txalert_mu_rpt_poll", \
- "txalert_mu_queue_full", \
- "txalert_mu_queue_fail", \
- "sample_rate_mu", \
- "sample_bw_mu", \
- "txdone_intr", \
- "txalert_intr", \
- "txalert_tasklet", \
- "txalert_bcn_update", \
- "txalert_ndp_update", \
- "tx_ndp_q_occupied", \
- "tx_ndp_start", \
- "tx_pwr", \
- "bcn_scheme_power_save", \
- "bcn_scheme", \
- "tx_mcast_pwr", \
- "tx_mcast_defer", \
- "tx_mcast_defer_hwq", \
- "tx_limit_drop", \
- "fd_acquire", \
- "fd_release", \
- "fd_acq_fail", \
- "fd_acq_fail_frms", \
- "fd_acq_hal_fail", \
- "fd_acq_hal_fail_frms", \
- "ba_send", \
- "ba_del", \
- "fd_free_nodeclean", \
- "msdu_expired", \
- "tx_window_locked", \
- "tx_window_failed", \
- "tx_restrict_probe", \
- "tx_restrict_mode", \
- "tx_restrict_drop", \
- "tx_restrict_delay", \
- "tx_restrict_send", \
- "tx_sample_pkts", \
- "tx_sample_bytes", \
- "tx_underflow", \
- "tx_hal_enqueued", \
- "txbf_mode", \
- "psel_matrix", \
- "sample_rate", \
- "sample_bw", \
- "ra_flags", \
- "fd_balance", \
- "invalid_delay", \
- "halt_tx", \
- "resume_tx", \
- "rfctrl_on", \
- "rfctrl_off", \
- "go_offchan", \
- "go_datachan", \
- "defer_cc", \
- "deferred_cc_done", \
- "off_chan_sample", \
- "off_chan_scan", \
- "off_chan_cac", \
- "cca_pri", \
- "cca_sec", \
- "cca_sec40", \
- "cca_busy", \
- "cca_fat", \
- "cca_intf", \
- "cca_trfc", \
- "mu_prec_snd_tx", \
- "mu_prec_snd_wait_done", \
- "mu_grp_sel_snd_tx", \
- "mu_grp_sel_snd_wait_done", \
- "oc_auctx_timeout", \
- "oc_auctx_overwrite", \
- "oc_auctx_fail", \
- "gi_cnt", \
- "gi_ncidx", \
- "gi_val", \
- "select_state_ncidx", \
- "select_state_val", \
- "pppc_scale_cnt", \
- "pppc_scale_ncidx", \
- "pppc_scale_val", \
- "pppc_scale_last_gput", \
- "pppc_scale_last_gput_idx", \
- "pppc_scale_base_cnt", \
- "pppc_scale_base_20m", \
- "pppc_scale_base_40m", \
- "pppc_scale_base_80m", \
- "pppc_scale_base_copy", \
- "pppc_scale_overstep", \
- "pppc_scale_rollback", \
- "pppc_0_gput", \
- "tx_max_power", \
- "nc_csr_read_count", \
- "nc_csr_write_count", \
- "nc_csr_done_watermark", \
- "nc_csr_watermark_count", \
- "auc_dtim_notify", \
- "auc_ps_notify", \
- "tx_beacon_done", \
- "sfs_peer_rts", \
- "sfs_peer_rts_flags", \
- "sfs_local_rts", \
- "sfs_local_rts_flags", \
- "sfs_dyn_wmm", \
- "sfs_dyn_wmm_flags", \
- "auc_wmm_ps_notify", \
- "tx_wmm_ps_null_frames", \
- "qtn_bcn_stop", \
- "mu_grp_snd_queue_is_not_empty", \
- "mu_prec_snd_queue_is_not_empty", \
- "mu_group_delete", \
- "mu_group_install", \
- "mu_group_rate_node_updates", \
- "mu_update_rates_mu", \
- "mu_update_rates_su", \
- "autocs_sample_bits", \
- "autocs_adjust_bits", \
- "autocs_step_size", \
- "autocs_cs_thresh", \
- "autocs_min_rssi", \
- "bmps_null_tx_success", \
- "bmps_null_tx_fail", \
- "bmps_null_tx_timeout", \
- "txqueue_g1q0_deadline_frozen", \
- "auc_ipc_retry", \
- "auc_ipc_hwm", \
- "auc_ipc_send_delay", \
- "auc_ipc_send_delay_hwm", \
-}
-
-#define MUC_RX_STATS_NAMES_TABLE { \
- "rxdesc_pop_from_host", \
- "rxdesc_get_from_queue", \
- "rxdesc_push_to_host", \
- "rxdesc_non_aggr_push_to_host", \
- "rxdesc_flush_to_host", \
- "rxdesc_reuse_push", \
- "rxdesc_reuse_pop", \
- "rxdesc_status_bad_dur", \
- "rxdesc_status_bad_len", \
- "rxdesc_slow_status", \
- "rxdesc_fast_status", \
- "rxdesc_status_crc_err", \
- "rxdesc_status_cmic_err", \
- "rxdesc_status_cmic_no_crc_err", \
- "rxdesc_status_retry", \
- "agg_stored", \
- "agg_duplicate", \
- "accel_mpdu", \
- "accel_msdu", \
- "accel_no_buffer", \
- "accel_fwt_lu_timeout", \
- "accel_mcast_send", \
- "accel_mcast_drop", \
- "accel_no_match", \
- "accel_drop", \
- "accel_err", \
- "rate_train_chk", \
- "rate_train_err", \
- "rate_train_delay", \
- "rate_train_none", \
- "rate_train_hash_bad", \
- "rate_train_hash_good", \
- "agg_oldpkts", \
- "agg_very_oldpkts", \
- "agg_evict_in_order", \
- "agg_evict_in_move", \
- "agg_evict_empty", \
- "agg_timeout", \
- "agg_rxwin_reset", \
- "rx_qnum_err", \
- "rx_mgmt", \
- "rx_ctrl", \
- "rx_pspoll", \
- "rx_pwr_mgmt", \
- "rx_delba", \
- "rx_pwr_mgmt_set", \
- "rx_pwr_mgmt_reset", \
- "rx_emergency", \
- "rx_underflow", \
- "rx_desc_underflow", \
- "rx_desc_linkerr", \
- "rx_notify", \
- "rx_df_numelems", \
- "last_recv_seq", \
- "rx_node_not_found", \
- "rx_non_qos_duplicate", \
- "rx_11n_ndp", \
- "rx_11ac_ndp", \
- "rx_ndp_inv_slot", \
- "rx_11n_ndp_no_capt", \
- "rx_ndp_sw_processed", \
- "rx_ndp_lockup", \
- "rx_11n_bf_act", \
- "rx_11ac_bf_act", \
- "rx_bf_act_inv_slot", \
- "rx_amsdu", \
- "rx_data", \
- "prev_rx_data", \
- "rx_recv_qnull", \
- "rx_recv_act", \
- "rx_recv_bcn", \
- "rx_recv_auth", \
- "rx_recv_assoc_req", \
- "rx_recv_assoc_res", \
- "rx_recv_deauth", \
- "rx_recv_disassoc", \
- "rx_mcs_gt_76", \
- "tkip_keys", \
- "rx_tkip_mic_err", \
- "icv_errs", \
- "tmic_errs", \
- "cmic_errs", \
- "crc_errs", \
- "ba_tx", \
- "ba_rx", \
- "ba_rx_fail", \
- "sec_oflow", \
- "str_oflow", \
- "oflow_fixup_timeout", \
- "rxdone_intr", \
- "rxtypedone_intr", \
- "ipc_a2m_intr", \
- "tqe_intr", \
- "tqe_in_port_lhost", \
- "tqe_in_port_bad", \
- "tqe_a2m_type_txfb", \
- "tqe_a2m_type_rxpkt", \
- "tqe_a2m_type_unknown", \
- "tqe_reschedule_task", \
- "tqe_desc_unowned", \
- "bb_intr", \
- "bb_irq_dleaf_oflow", \
- "bb_irq_leaf_uflow", \
- "bb_irq_leaf_ldpc_uflow", \
- "bb_irq_tx_td_oflow_intr", \
- "bb_irq_tx_td_uflow_intr", \
- "bb_irq_rx_sm_wdg_intr", \
- "bb_irq_rx_long_dur", \
- "bb_irq_rx_11ac_timeout", \
- "bb_irq_tx_sm_wdg_intr", \
- "bb_irq_main_sm_wdg_intr", \
- "bb_irq_hready_wdg_intr", \
- "mac_irq_rx_sec_buff_oflow", \
- "mac_irq_rx_strq_oflow", \
- "mac_irq_rx_bb_uflow_intr", \
- "mac_irq_rx_bb_oflow_intr", \
- "bb_irq_hready_wdg_reset", \
- "sreset_wdg_begin", \
- "sreset_wdg_end", \
- "sreset_wdg_in_place", \
- "sreset_wdg_tx_beacon_hang", \
- "sreset_wdg_tx_hang", \
- "sreset_wdg_pm_corrupt", \
- "sreset_wdg_tcm_corrupt", \
- "sreset_wdg_rx_done", \
- "sreset_wdg_in_place_try", \
- "sreset_wdg_tasklet_sched_1", \
- "sreset_wdg_tasklet_sched_2", \
- "sreset_tasklet_sched", \
- "sreset_tasklet_begin", \
- "sreset_tasklet_end", \
- "hreset_req", \
- "sreset_begin", \
- "sreset_end", \
- "sreset_dma_rx_inprog", \
- "sreset_dma_tx_inprog", \
- "sreset_dma_rx_max_wait", \
- "sreset_dma_tx_max_wait", \
- "sreset_dma_tx_hang", \
- "sreset_dma_rx_hang", \
- "sreset_dma_rx_wait_timeout", \
- "sreset_dma_tx_wait_timeout", \
- "sreset_drop_not_valid", \
- "sreset_drop_bad_addr", \
- "rf_cmpvtune_out", \
- "rf_cal_freq", \
- "ac_max", \
- "ac_min", \
- "ac_cur", \
- "ac_adj", \
- "rx_gain", \
- "rd_cache_indx", \
- "logger_sreset_wmac1_dma_rx_inprog", \
- "logger_sreset_wmac1_dma_tx_inprog", \
- "logger_sreset_wmac1_dma_rx_max_wait", \
- "logger_sreset_wmac1_dma_tx_max_wait", \
- "logger_sreset_wmac1_dma_tx_hang", \
- "logger_sreset_wmac1_dma_rx_hang", \
- "logger_sreset_wmac1_dma_rx_wait_timeout", \
- "logger_sreset_wmac1_dma_tx_wait_timeout", \
- "mu_rx_pkt", \
- "pduty_sleep", \
- "pduty_rxoff", \
- "pduty_period", \
- "pduty_pct", \
- "soft_ring_push_to_tqe", \
- "soft_ring_empty", \
- "soft_ring_not_empty", \
- "soft_ring_add_force", \
- "soft_ring_add_to_head", \
- "soft_ring_add_continue", \
- "soft_ring_free_pool_empty", \
- "mimo_ps_mode_switch", \
- "rx_vlan_drop", \
- "auto_cca_state", \
- "auto_cca_th", \
- "auto_cca_spre", \
- "auto_cca_intf", \
- "total_dmem_alloc", \
- "total_dram_alloc", \
- "dmem_alloc_fails", \
- "dram_alloc_fails", \
- "total_dmem_free", \
- "total_dram_free", \
- "rx_bw_80", \
- "rx_bw_40", \
- "rx_bw_20", \
- "rx_wmm_ps_trigger", \
- "rx_wmm_ps_set", \
- "rx_wmm_ps_reset", \
- "rx_intr_next_ptr_0", \
- "rx_hbm_pool_depleted", \
- "rxq_intr[0]", \
- "rxq_intr[1]", \
- "rxq_intr[2]", \
- "rxq_fill[0]", \
- "rxq_fill[1]", \
- "rxq_fill[2]", \
- "rxq_nobuf[0]", \
- "rxq_nobuf[1]", \
- "rxq_nobuf[2]", \
- "rxq_stop[0]", \
- "rxq_stop[1]", \
- "rxq_stop[2]", \
- "rxq_pkt[0]", \
- "rxq_pkt[1]", \
- "rxq_pkt[2]", \
- "rxq_bad_status[0]", \
- "rxq_bad_status[1]", \
- "rxq_bad_status[2]", \
- "rxq_pkt_oversize[0]", \
- "rxq_pkt_oversize[1]", \
- "rxq_pkt_oversize[2]", \
- "rxq_pkt_delivered[0]", \
- "rxq_pkt_delivered[1]", \
- "rxq_pkt_delivered[2]", \
- "rxq_status_hole_chk_num[0]", \
- "rxq_status_hole_chk_num[1]", \
- "rxq_status_hole_chk_num[2]", \
- "rxq_status_hole_chk_step_sum[0]", \
- "rxq_status_hole_chk_step_sum[1]", \
- "rxq_status_hole_chk_step_sum[2]", \
- "rxq_status_hole_chk_step_max[0]", \
- "rxq_status_hole_chk_step_max[1]", \
- "rxq_status_hole_chk_step_max[2]", \
- "rxq_status_hole[0]", \
- "rxq_status_hole[1]", \
- "rxq_status_hole[2]", \
- "rxq_status_hole_max_size[0]", \
- "rxq_status_hole_max_size[1]", \
- "rxq_status_hole_max_size[2]", \
- "rxq_process_max[0]", \
- "rxq_process_max[1]", \
- "rxq_process_max[2]", \
- "rxq_process_sum[0]", \
- "rxq_process_sum[1]", \
- "rxq_process_sum[2]", \
- "rxq_process_num[0]", \
- "rxq_process_num[1]", \
- "rxq_process_num[2]", \
- "rxq_process_limited[0]", \
- "rxq_process_limited[1]", \
- "rxq_process_limited[2]", \
- "rxq_desc_chain_empty[0]", \
- "rxq_desc_chain_empty[1]", \
- "rxq_desc_chain_empty[2]", \
- "rx_data_last_seqfrag", \
- "rx_data_last_ip_id", \
- "rx_opmode_notify", \
- "accel_l2_ext_filter", \
- "accel_mc_send_l2_ext_filter", \
- "accel_mc_drop_l2_ext_filter", \
- "rx_frame_addressed_to_wrong_bss", \
-}
diff --git a/quantenna/include/qtn/qtn_net_packet.h b/quantenna/include/qtn/qtn_net_packet.h
deleted file mode 100644
index 3ebc872..0000000
--- a/quantenna/include/qtn/qtn_net_packet.h
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef __QTN_NET_PACKET_H__
-#define __QTN_NET_PACKET_H__
-
-#include <qtn/qtn_global.h>
-
-#ifndef ETHERTYPE_ARP
-#define ETHERTYPE_ARP 0x0806 /* ARP protocol */
-#endif
-
-#ifndef ETHERTYPE_AARP
-#define ETHERTYPE_AARP 0x80f3 /* Appletalk AARP */
-#endif
-
-#ifndef ETHERTYPE_PAE
-#define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */
-#endif
-
-#ifndef ETHERTYPE_IP
-#define ETHERTYPE_IP 0x0800 /* IP protocol */
-#endif
-
-#ifndef ETHERTYPE_IPV6
-#define ETHERTYPE_IPV6 0x86DD /* IPv6 protocol */
-#endif
-
-#ifndef ETHERTYPE_IPX
-#define ETHERTYPE_IPX 0x8137 /* IPX over DIX */
-#endif
-
-#ifndef ETHERTYPE_802A
-#define ETHERTYPE_802A 0x88B7
-#endif
-
-#ifndef ETHERTYPE_8021Q
-#define ETHERTYPE_8021Q 0x8100 /* 802.1Q VLAN header */
-#endif
-
-#ifndef ETHERTYPE_8021AD
-#define ETHERTYPE_8021AD 0x88A8 /* 802.1AD VLAN S-TAG header */
-#endif
-
-#ifndef ETHERTYPE_WAKE_ON_LAN
-#define ETHERTYPE_WAKE_ON_LAN 0X0842
-#endif
-
-union qtn_ipv4_addr {
- uint32_t ip32;
- uint16_t ip16[2];
- uint8_t ip8[4];
-};
-
-struct qtn_ipv4 {
- uint8_t vers_ihl;
- uint8_t dscp;
- uint16_t length;
- uint16_t ident;
- uint16_t flags:3,
- fragoffset:13;
- uint8_t ttl;
- uint8_t proto;
- uint16_t csum;
- union qtn_ipv4_addr srcip;
- union qtn_ipv4_addr dstip;
- uint32_t opt[0];
-};
-
-union qtn_ipv6_addr {
- uint64_t ip64[2];
- uint32_t ip32[4];
- uint16_t ip16[8];
- uint8_t ip8[16];
-};
-
-struct qtn_ipv6 {
- uint16_t vers_tclass_flowlabel[2];
- uint16_t length;
- uint8_t next_hdr;
- uint8_t hop_limit;
- union qtn_ipv6_addr srcip;
- union qtn_ipv6_addr dstip;
-};
-
-RUBY_INLINE uint8_t qtn_ipv6_tclass(const struct qtn_ipv6 *ipv6)
-{
- return ((ipv6->vers_tclass_flowlabel[0]) >> 4) & 0xFF;
-}
-
-#define QTN_IP_PROTO_ICMP 1
-#define QTN_IP_PROTO_IGMP 2
-#define QTN_IP_PROTO_TCP 6
-#define QTN_IP_PROTO_UDP 17
-#define QTN_IP_PROTO_IPV6FRAG 44
-#define QTN_IP_PROTO_ICMPV6 58
-#define QTN_IP_PROTO_RAW 255
-
-#define QTN_MAX_VLANS 4
-
-struct qtn_8021q {
- uint16_t tpid;
- uint16_t tci;
-};
-
-struct qtn_udp {
- uint16_t src_port;
- uint16_t dst_port;
- uint16_t length;
- uint16_t csum;
-};
-
-RUBY_INLINE void qtn_mcast_ipv4_to_mac(uint8_t *const mac_be,
- const uint8_t *const ipv4)
-{
- mac_be[0] = 0x01;
- mac_be[1] = 0x00;
- mac_be[2] = 0x5E;
- mac_be[3] = ipv4[1] & 0x7F;
- mac_be[4] = ipv4[2];
- mac_be[5] = ipv4[3];
-}
-
-RUBY_INLINE void qtn_mcast_ipv6_to_mac(uint8_t *const mac_be,
- const uint8_t *const ipv6)
-{
- mac_be[0] = 0x33;
- mac_be[1] = 0x33;
- mac_be[2] = ipv6[12];
- mac_be[3] = ipv6[13];
- mac_be[4] = ipv6[14];
- mac_be[5] = ipv6[15];
-}
-
-RUBY_INLINE void qtn_mcast_mac_to_ipv4(uint8_t *const ipv4,
- const uint8_t *const mac_be, const uint8_t ip_map)
-{
- ipv4[0] = ((ip_map >> 1) & 0xF) | (0xE << 4);
- ipv4[1] = (mac_be[3] & 0x7F) | ((ip_map & 1) << 7);
- ipv4[2] = mac_be[4];
- ipv4[3] = mac_be[5];
-}
-
-RUBY_INLINE void qtn_mcast_to_mac(uint8_t *mac_be, const void *addr, uint16_t ether_type)
-{
- if (ether_type == htons(ETHERTYPE_IP)) {
- qtn_mcast_ipv4_to_mac(mac_be, addr);
- } else if (ether_type == htons(ETHERTYPE_IPV6)) {
- qtn_mcast_ipv6_to_mac(mac_be, addr);
- } else {
- /* invalid address family */
- }
-}
-
-/*
- * IPV4 extra metadata per entry
- * Size derive from ipv4 address[27:23]
- * ipv4[0] is always 0xe followed by 5 bits that define the ipv4
- * table size so in this way we can differentiate between similar multicast mac addresses
- * the other 23 bits assemble the mac multicast id.
- */
-RUBY_INLINE uint8_t qtn_mcast_ipv4_alias(const uint8_t *ipv4)
-{
- return ((ipv4[1] >> 7) | (ipv4[0] & 0xF) << 1);
-}
-
-RUBY_INLINE uint8_t qtn_ether_type_is_vlan(const uint16_t type)
-{
- return ((type == htons(ETHERTYPE_8021Q))
- || (type == htons(ETHERTYPE_8021AD)));
-}
-
-#endif // __QTN_NET_PACKET_H__
-
diff --git a/quantenna/include/qtn/qtn_pcap.h b/quantenna/include/qtn/qtn_pcap.h
deleted file mode 100644
index 300905a..0000000
--- a/quantenna/include/qtn/qtn_pcap.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2013 Quantenna Communications, Inc.
- * All rights reserved.
- */
-
-#ifndef __QTN_PCAP_H__
-#define __QTN_PCAP_H__
-
-#define QTN_GENPCAP 0
-
-#ifdef MUC_BUILD
- #define qtn_pcap_memcpy uc_memcpy
- extern struct qtn_genpcap *g_qtn_genpcap_state;
-#else
- #define qtn_pcap_memcpy memcpy
-#endif /* MUC_BUILD */
-
-struct qtn_genpcap {
- uint8_t active;
- uint8_t payloads_count_s;
- uint8_t payload_size_s;
- uint8_t ___pad;
- uint8_t *payloads_vaddr;
- uint8_t *payloads_paddr;
- unsigned long payloads_written;
-};
-
-struct qtn_genpcap_args {
- void *vaddr;
- dma_addr_t paddr;
-};
-
-
-struct qtn_pcap_hdr {
- uint64_t tsf;
- uint16_t incl;
- uint16_t orig;
-};
-
-static __inline__ unsigned long qtn_pcap_max_payload(const struct qtn_genpcap *state)
-{
- return (1 << state->payload_size_s) - sizeof(struct qtn_pcap_hdr);
-}
-
-static __inline__ struct qtn_pcap_hdr *
-qtn_pcap_add_packet_start(struct qtn_genpcap *state, uint64_t tsf)
-{
- unsigned int pkt_index;
- struct qtn_pcap_hdr *hdr;
-
- pkt_index = state->payloads_written % (1 << state->payloads_count_s);
- state->payloads_written++;
-
- hdr = (void *) (state->payloads_paddr + ((1 << state->payload_size_s) * pkt_index));
- hdr->tsf = tsf;
-
- return hdr;
-}
-
-static __inline__ void qtn_pcap_add_packet(struct qtn_genpcap *state,
- const void *payload, uint16_t len, uint64_t tsf)
-{
- struct qtn_pcap_hdr *hdr;
-
- hdr = qtn_pcap_add_packet_start(state, tsf);
- hdr->orig = len;
- if (len >= qtn_pcap_max_payload(state))
- hdr->incl = qtn_pcap_max_payload(state);
- else
- hdr->incl = len;
-
- qtn_pcap_memcpy((hdr + 1), payload, hdr->incl);
-}
-
-#endif /* __QTN_PCAP_H__ */
-
diff --git a/quantenna/include/qtn/qtn_pcap_public.h b/quantenna/include/qtn/qtn_pcap_public.h
deleted file mode 100644
index d43b1b1..0000000
--- a/quantenna/include/qtn/qtn_pcap_public.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2013 Quantenna Communications Inc **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _QDRV_PCAP_PUBLIC_H
-#define _QDRV_PCAP_PUBLIC_H
-
-struct pcap_hdr {
- uint32_t magic_number;
- uint16_t version_major; /* major version number */
- uint16_t version_minor; /* minor version number */
- int32_t thiszone; /* GMT to local correction */
- uint32_t sigfigs; /* accuracy of timestamps */
- uint32_t snaplen; /* max length of captured packets, in octets */
- uint32_t network; /* data link type */
-};
-#define PCAP_HDR_MAGIC 0xa1b2c3d4
-#define PCAP_HDR_LINKTYPE_ETHER 1
-#define PCAP_HDR_LINKTYPE_80211 105
-#define PCAP_HDR_LINKTYPE_80211_RTAP 127
-
-struct pcaprec_hdr {
- uint32_t ts_sec;
- uint32_t ts_usec;
- uint32_t incl_len;
- uint32_t orig_len;
-};
-
-static __inline__ struct pcap_hdr qtn_pcap_mkhdr(uint32_t max_pkt)
-{
- struct pcap_hdr h;
-
- h.magic_number = PCAP_HDR_MAGIC;
- h.version_major = 2;
- h.version_minor = 4;
- h.thiszone = 0;
- h.sigfigs = 0;
- h.snaplen = max_pkt;
- h.network = PCAP_HDR_LINKTYPE_80211;
-
- return h;
-}
-
-
-#endif /* _QDRV_PCAP_PUBLIC_H */
-
diff --git a/quantenna/include/qtn/qtn_skb_cb.h b/quantenna/include/qtn/qtn_skb_cb.h
deleted file mode 100644
index eed19e2..0000000
--- a/quantenna/include/qtn/qtn_skb_cb.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_SKB_CB_H
-#define __QTN_SKB_CB_H
-
-struct qtn_skb_cb {
- uint8_t encap; /* Encapsulation type */
- uint8_t ip_protocol; /* IP protocol */
- uint16_t ether_type; /* Ethernet Type */
- void *ni; /* Node structure pointer */
- uint32_t flags;
-#define M_LINK0 0x0001 /* frame needs WEP encryption */
-#define M_FF 0x0002 /* fast frame */
-#define M_PWR_SAV 0x0004 /* bypass powersave handling */
-#define M_UAPSD 0x0008 /* frame flagged for u-apsd handling */
-#define M_RAW 0x0010
-#define M_CLASSIFY 0x0020 /* Packet has been classified */
-#define M_VSP_CHK 0x0040 /* VSP check done */
-#define M_VSP_NOT_FOUND 0x0080 /* VSP stream not found - usually first pkts from Eth */
-#define M_VSP_RX_BSS 0x0100 /* VSP stream originating from the BSS */
-#define M_RATE_TRAINING 0x0200 /* Empty data frame used to do rate training */
-#define M_NO_AMSDU 0x0400 /* AMSDU is prohibited for this frame */
-#define M_ENQUEUED_SCH 0x0800 /* Enqueued in qdrv_sch */
-#define M_ENQUEUED_MUC 0x1000 /* Enqueued to MuC */
-#define M_TX_DONE_IMM_INT 0x2000 /* Immediately interrupt lhost when tx done */
-#define M_VLAN_TAGGED 0x4000 /* skb belongs to some VLAN */
-#define M_ORIG_OUTSIDE 0x8000 /* skb is not from local protocol stack */
-#define M_ORIG_BR 0x10000 /* skb is sent from bridge interfaces */
-#define M_NO_L2_LRN 0x20000 /* MAC learning disabled */
-};
-
-#define QTN_SKB_ENCAP_ETH 0
-#define QTN_SKB_ENCAP_80211_MGMT 1
-#define QTN_SKB_ENCAP_80211_DATA 2
-#define QTN_SKB_ENCAP(_skb) ((_skb)->qtn_cb.encap)
-#define QTN_SKB_ENCAP_IS_80211(_skb) ((_skb)->qtn_cb.encap > 0)
-#define QTN_SKB_ENCAP_IS_80211_MGMT(_skb) \
- ((_skb)->qtn_cb.encap == QTN_SKB_ENCAP_80211_MGMT)
-
-#define QTN_SKB_CB_NI(_skb) ((_skb)->qtn_cb.ni)
-#define QTN_SKB_CB_ETHERTYPE(_skb) ((_skb)->qtn_cb.ether_type)
-#define QTN_SKB_CB_IPPROTO(_skb) ((_skb)->qtn_cb.ip_protocol)
-
-#define M_FLAG_SET(_skb, _flag) ((_skb)->qtn_cb.flags |= _flag)
-#define M_FLAG_CLR(_skb, _flag) ((_skb)->qtn_cb.flags &= ~_flag)
-#define M_FLAG_GET(_skb, _flag) ((_skb)->qtn_cb.flags & _flag)
-#define M_FLAG_ISSET(_skb, _flag) (!!((_skb)->qtn_cb.flags & _flag))
-#define M_FLAG_KEEP_ONLY(_skb, _flag) ((_skb)->qtn_cb.flags &= _flag)
-
-#define M_PWR_SAV_SET(skb) M_FLAG_SET((skb), M_PWR_SAV)
-#define M_PWR_SAV_CLR(skb) M_FLAG_CLR((skb), M_PWR_SAV)
-#define M_PWR_SAV_GET(skb) M_FLAG_GET((skb), M_PWR_SAV)
-
-#endif /* #ifndef __QTN_SKB_CB_H */
diff --git a/quantenna/include/qtn/qtn_skb_size.h b/quantenna/include/qtn/qtn_skb_size.h
deleted file mode 100644
index 7733127..0000000
--- a/quantenna/include/qtn/qtn_skb_size.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_SKB_SIZE_H
-#define __QTN_SKB_SIZE_H
-
-#include "qtn_buffers.h"
-
-#define RX_BUF_SIZE_PAYLOAD (4400)
-
-/*
- * sk_buff size for Ruby qdrv and arasan driver.
- * These should be the same since they share the same recycle list.
- *
- * In Topaz, HBM is used for buffer allocation
- */
-#define RX_BUF_SIZE (RX_BUF_SIZE_PAYLOAD + 2 * L1_CACHE_BYTES - 1)
-
-/*
- * Optimization for buffer allocation.
- * Used to modify kernel to have kmalloc() cache entry of this size.
- */
-#define RX_BUF_SIZE_KMALLOC (roundup((RX_BUF_SIZE) + 256, 256))
-
-/*
- * EMAC buffer limits for software rx/tx, not hardware rxp/txp
- */
-#define RUBY_EMAC_NUM_TX_BUFFERS (1 << 8)
-#define RUBY_EMAC_NUM_RX_BUFFERS (1 << 10)
-
-#endif // #ifndef __QTN_SKB_SIZE_H
-
diff --git a/quantenna/include/qtn/qtn_trace.h b/quantenna/include/qtn/qtn_trace.h
deleted file mode 100644
index 2c9855e..0000000
--- a/quantenna/include/qtn/qtn_trace.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2011 Quantenna Communications, Inc.
- * All rights reserved.
- */
-
-
-#ifndef _IF_QTN_TRACE_H_
-#define _IF_QTN_TRACE_H_
-
-enum qtn_trace_types {
- QTN_TRACE_EV_NONE = 0x00000000,
- QTN_TRACE_EV_TX_PKT = 0x01000001,
- QTN_TRACE_EV_TX_PKT_SZ = 0x01000002,
- QTN_TRACE_EV_TX_PKT_BA = 0x01000003,
- QTN_TRACE_EV_RX_PKT = 0x02000001,
- QTN_TRACE_EV_RX_BAD_PKT = 0x02000002,
- QTN_TRACE_EV_RX_NOT_VALID = 0x02000003,
- QTN_TRACE_EV_RX_MAX_DUR = 0x02000004,
- QTN_TRACE_EV_RX_BAD_LEN = 0x02000005,
- QTN_TRACE_EV_RX_BAD_MCS_1 = 0x02000006,
- QTN_TRACE_EV_RX_BAD_MCS_2 = 0x02000008,
- QTN_TRACE_EV_RX_BAD_MCS_3 = 0x02000009,
- QTN_TRACE_EV_RX_BAD_MCS_4 = 0x0200000a,
- QTN_TRACE_EV_RX_BAD_MCS_5 = 0x0200000b,
- QTN_TRACE_EV_RX_PS_POLL = 0x02000007,
- QTN_TRACE_EV_RX_INTR_SECOVRFL = 0x03000001,
- QTN_TRACE_EV_RX_INTR_STRQOFLOW = 0x03000002,
- QTN_TRACE_EV_RST_BCN = 0x04000001,
- QTN_TRACE_EV_RST_TX = 0x04000002,
- QTN_TRACE_EV_RST_RX = 0x04000003,
- QTN_TRACE_EV_RST_PM = 0x04000004,
- QTN_TRACE_EV_RST_SCHED1 = 0x04000005,
- QTN_TRACE_EV_RST_SCHED2 = 0x04000006,
- QTN_TRACE_EV_RST_START = 0x04000007,
- QTN_TRACE_EV_RST_END = 0x04000008,
- QTN_TRACE_EV_BB_INT = 0x05000001,
- QTN_TRACE_EV_RX_DONE_INT = 0x06000001,
- QTN_TRACE_EV_RX_TYPEDONE_INT = 0x06000002,
- QTN_TRACE_EV_TX_DONE_INT = 0x07000001,
- QTN_TRACE_EV_TX_DONE_DEPTH = 0x07000002,
- QTN_TRACE_EV_TX_DONE_INHW = 0x07000003,
- QTN_TRACE_EV_TX_DONE_CNT = 0x07000004,
- QTN_TRACE_EV_TX_XATTEMPTS = 0x07000005,
- QTN_TRACE_EV_TX_PROBE_RESP = 0x07000006,
- QTN_TRACE_EV_WDOG_TX_START = 0x08000001,
- QTN_TRACE_EV_WDOG_TX_DONE = 0x08000002,
- QTN_TRACE_EV_MCST_DEFER = 0x09000001,
- QTN_TRACE_EV_HW_WDOG_WARN = 0x0A000001,
- QTN_TRACE_EV_PROBE_STATE = 0x0B000001,
- QTN_TRACE_EV_PROBE_PPPC_START = 0x0B000002,
- QTN_TRACE_EV_PROBE_PPPC_END = 0x0B000003,
- QTN_TRACE_EV_PROBE_SGI_START = 0x0B000004,
- QTN_TRACE_EV_PROBE_SGI_END = 0x0B000005,
- QTN_TRACE_EV_PPPC_PWR_INDEX = 0x0B000003,
- QTN_TRACE_EV_RA_START = 0x0C000001,
- QTN_TRACE_EV_RA_END = 0x0C000002,
- QTN_TRACE_EV_RA_MCS_SAMPLE = 0x0C000003,
- QTN_TRACE_EV_RF_TXPWR_CAL_START = 0x0D000001,
- QTN_TRACE_EV_RF_TXPWR_CAL_END = 0x0D000002,
- QTN_TRACE_EV_RF_TXPD_CAL_START = 0x0D000003,
- QTN_TRACE_EV_RF_TXPD_CAL_END = 0x0D000004,
- QTN_TRACE_EV_RF_VCO_CAL_START = 0x0D000005,
- QTN_TRACE_EV_RF_VCO_CAL_END = 0x0D000006,
- QTN_TRACE_EV_RF_GAIN_AD_START = 0x0D000007,
- QTN_TRACE_EV_RF_GAIN_AD_END = 0x0D000008,
- QTN_TRACE_EV_PS_STATE = 0x0E000001,
- QTN_TRACE_EV_RST_TCM = 0x0E000002,
-};
-
-enum qtn_trace_trigger {
- QTN_TRACE_TRIGGER_DROP_QDRV_SCH = 0x00000001,
-};
-
-#if QTN_ENABLE_TRACE_BUFFER
-/* Debugs for tracing activity */
-
-#define QTN_TRACE_BUF_SIZE 75
-
-extern uint32_t qtn_trace_index;
-struct qtn_trace_record {
- uint32_t tsf;
- uint32_t event;
- uint32_t data;
-};
-extern struct qtn_trace_record qtn_trace_buffer[QTN_TRACE_BUF_SIZE];
-
-#define QTN_TRACE(sc, event, data) qtn_trace((sc), (event), (uint32_t)(data))
-
-#define QTN_TRACE_SET(field, value) do { (field) = (value); } while(0)
-
-# ifdef MUC_BUILD
-# include "qtn/if_qtnvar.h"
-# endif
-
-static __inline__
-# ifdef MUC_BUILD
-void qtn_trace(struct qtn_softc *sc, uint32_t event, uint32_t data)
-{
- qtn_trace_index++;
- if (qtn_trace_index >= QTN_TRACE_BUF_SIZE) {
- qtn_trace_index = 0;
- }
- qtn_trace_buffer[qtn_trace_index].tsf = hal_get_tsf_lo(sc->sc_qh);
- qtn_trace_buffer[qtn_trace_index].event = event;
- qtn_trace_buffer[qtn_trace_index].data = data;
-}
-# else
-void qtn_trace(struct qdrv_mac *mac, uint32_t event, uint32_t data)
-{
- qtn_trace_index++;
- if (qtn_trace_index >= QTN_TRACE_BUF_SIZE) {
- qtn_trace_index = 0;
- }
- qtn_trace_buffer[qtn_trace_index].tsf = jiffies; /* FIXME: hal_get_tsf_lo(sc->sc_qh); */
- qtn_trace_buffer[qtn_trace_index].event = event;
- qtn_trace_buffer[qtn_trace_index].data = data;
-}
-# endif //MUC_BUILD
-
-#else //QTN_ENABLE_TRACE_BUFFER
-
-#define QTN_TRACE(sc, type, data) do {} while(0)
-
-#define QTN_TRACE_SET(field, value) do {} while(0)
-
-#endif //QTN_ENABLE_TRACE_BUFFER
-
-
-#endif /* _IF_QTN_TRACE_H_ */
-
diff --git a/quantenna/include/qtn/qtn_uc_comm.h b/quantenna/include/qtn/qtn_uc_comm.h
deleted file mode 100644
index 3c35434..0000000
--- a/quantenna/include/qtn/qtn_uc_comm.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2012 Quantenna Communications, Inc.
- */
-
-#ifndef _QTN_UC_COMM_H
-#define _QTN_UC_COMM_H
-
-#define MAC_UNITS 1
-
-#if defined(TOPAZ_128_NODE_MODE)
-#define QTN_NCIDX_MAX 128
-#define QTN_NODE_TBL_SIZE_LHOST 118
-#define QTN_NODETID_NODE_SHIFT 7
-#else
-#define QTN_NCIDX_MAX 64
-#define QTN_NODE_TBL_SIZE_LHOST 56
-#define QTN_NODETID_NODE_SHIFT 6
-#endif
-#define QTN_MAX_BSS_VAPS 8
-#define QTN_MAX_WDS_VAPS 8
-#define QTN_MAX_VAPS ((QTN_MAX_BSS_VAPS) + (QTN_MAX_WDS_VAPS))
-#define QTN_NODE_TBL_MUC_HEADRM 3 /* Allow for delayed delete on MUC */
-#define QTN_NODE_TBL_SIZE_MUC ((QTN_NODE_TBL_SIZE_LHOST) + (QTN_NODE_TBL_MUC_HEADRM))
-#define QTN_ASSOC_LIMIT ((QTN_NODE_TBL_SIZE_LHOST) - (QTN_MAX_VAPS))
-
-#endif // #ifndef _QTN_UC_COMM_H
-
diff --git a/quantenna/include/qtn/qtn_vlan.h b/quantenna/include/qtn/qtn_vlan.h
deleted file mode 100644
index ca1c220..0000000
--- a/quantenna/include/qtn/qtn_vlan.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * Copyright (c) 2014 Quantenna Communications, Inc.
- * All rights reserved.
- */
-
-#ifndef _QTN_VLAN_H_
-#define _QTN_VLAN_H_
-
-#include "../common/ruby_mem.h"
-#include <qtn/qtn_debug.h>
-#include <qtn/qtn_uc_comm.h>
-#include <qtn/qtn_net_packet.h>
-#if defined(__KERNEL__) || defined(MUC_BUILD) || defined(AUC_BUILD)
-#include <qtn/topaz_tqe_cpuif.h>
-#endif
-#if defined(__KERNEL__)
-#include <qtn/dmautil.h>
-#endif
-
-#define QVLAN_MODE_ACCESS 0
-#define QVLAN_MODE_TRUNK 1
-#define QVLAN_MODE_HYBRID 2
-#define QVLAN_MODE_DYNAMIC 3
-#define QVLAN_MODE_MAX QVLAN_MODE_DYNAMIC
-#define QVLAN_MODE_DISABLED (QVLAN_MODE_MAX + 1)
-#define QVLAN_SHIFT_MODE 16
-#define QVLAN_MASK_MODE 0xffff0000
-#define QVLAN_MASK_VID 0x00000fff
-
-#define QVLAN_MODE(x) (uint16_t)((x) >> QVLAN_SHIFT_MODE)
-#define QVLAN_VID(x) (uint16_t)((x) & QVLAN_MASK_VID)
-
-#define QVLAN_MODE_STR_ACCESS "Access mode"
-#define QVLAN_MODE_STR_TRUNK "Trunk mode"
-#define QVLAN_MODE_STR_HYBRID "Hybrid mode"
-#define QVLAN_MODE_STR_DYNAMIC "Dynamic mode"
-
-/* default port vlan id */
-#define QVLAN_DEF_PVID 1
-
-#define QVLAN_VID_MAX 4096
-#define QVLAN_VID_MAX_S 12
-#define QVLAN_VID_ALL 0xffff
-
-#ifndef NBBY
-#define NBBY 8
-#endif
-
-#ifndef NBDW
-#define NBDW 32
-#endif
-
-#ifdef CONFIG_TOPAZ_DBDC_HOST
-#define VLAN_INTERFACE_MAX (QTN_MAX_VAPS + 2 + MAX_QFP_NETDEV)
-#define QFP_VDEV_IDX(dev_id) (QTN_MAX_VAPS + 2 + (dev_id))
-#else
-#define VLAN_INTERFACE_MAX (QTN_MAX_VAPS + 2)
-#endif
-#define WMAC_VDEV_IDX_MAX QTN_MAX_VAPS
-#define EMAC_VDEV_IDX(port) (QTN_MAX_VAPS + (port))
-#define PCIE_VDEV_IDX (QTN_MAX_VAPS + 0)
-
-#ifndef howmany
-#define howmany(x, y) (((x) + ((y) - 1)) / (y))
-#endif
-
-#define bitsz_var(var) (sizeof(var) * 8)
-#define bitsz_ptr(ptr) bitsz_var((ptr)[0])
-
-#define set_bit_a(a, i) ((a)[(i) / bitsz_ptr(a)] |= 1 << ((i) % bitsz_ptr(a)))
-#define clr_bit_a(a, i) ((a)[(i) / bitsz_ptr(a)] &= ~(1 << ((i) % bitsz_ptr(a))))
-#define is_set_a(a, i) ((a)[(i) / bitsz_ptr(a)] & (1 << ((i) % bitsz_ptr(a))))
-#define is_clr_a(a, i) (is_set_a(a, i) == 0)
-
-struct qtn_vlan_stats {
- uint32_t lhost;
- uint32_t auc;
- uint32_t muc;
-};
-
-struct qtn_vlan_user_interface {
- unsigned long bus_addr;
- uint8_t mode;
-};
-
-struct qtn_vlan_dev {
- uint8_t idx;
- uint8_t port;
- uint16_t pvid;
-#define QVLAN_DEV_F_DYNAMIC BIT(0)
- uint32_t flags;
- unsigned long bus_addr;
- int ifindex;
- union {
- uint32_t member_bitmap[howmany(QVLAN_VID_MAX, NBDW)];
- uint16_t node_vlan[QTN_NCIDX_MAX];
- }u;
- uint32_t tag_bitmap[howmany(QVLAN_VID_MAX, NBDW)];
- struct qtn_vlan_stats ig_pass;
- struct qtn_vlan_stats ig_drop;
- struct qtn_vlan_stats eg_pass;
- struct qtn_vlan_stats eg_drop;
- struct qtn_vlan_stats magic_invalid;
- void *user_data;
-};
-#define QVLAN_IS_DYNAMIC(vdev) ((vdev)->flags & QVLAN_DEV_F_DYNAMIC)
-
-struct qtn_vlan_pkt {
-#define QVLAN_PKT_MAGIC 0x1234
- uint16_t magic;
-#define QVLAN_TAGGED 0x8000
-#define QVLAN_SKIP_CHECK 0x4000
- uint16_t vlan_info;
-} __packed;
-
-#define QVLAN_PKTCTRL_LEN sizeof(struct qtn_vlan_pkt)
-
-struct qtn_vlan_info {
-#define QVLAN_TAGRX_UNTOUCH 0
-#define QVLAN_TAGRX_STRIP 1
-#define QVLAN_TAGRX_TAG 2
-#define QVLAN_TAGRX_BITMASK 0x3
-#define QVLAN_TAGRX_BITWIDTH 2
-#define QVLAN_TAGRX_BITSHIFT 1
-#define QVLAN_TAGRX_NUM_PER_DW (32 / QVLAN_TAGRX_BITWIDTH)
-#define QVLAN_TAGRX_NUM_PER_DW_S 4
- uint32_t vlan_tagrx_bitmap[howmany(QVLAN_VID_MAX * QVLAN_TAGRX_BITWIDTH, NBDW)];
-};
-
-RUBY_INLINE int qvlan_tagrx_index(int vid)
-{
- return (vid >> QVLAN_TAGRX_NUM_PER_DW_S);
-}
-
-RUBY_INLINE int qvlan_tagrx_shift(int vid)
-{
- int shift;
-
- shift = vid & (QVLAN_TAGRX_NUM_PER_DW - 1);
- return (shift << QVLAN_TAGRX_BITSHIFT);
-}
-
-/*
- * Must be in sync with qcsapi_vlan_config in qcsapi.h
- * -- Whenever 'struct qtn_vlan_config' changes, qcsapi.h changes as well
- */
-struct qtn_vlan_config {
- uint32_t vlan_cfg;
- union {
- struct vlan_dev_config {
- uint32_t member_bitmap[howmany(QVLAN_VID_MAX, NBDW)];
- uint32_t tag_bitmap[howmany(QVLAN_VID_MAX, NBDW)];
- } dev_config;
- uint32_t tagrx_config[howmany(QVLAN_VID_MAX * QVLAN_TAGRX_BITWIDTH, NBDW)];
- } u;
-};
-
-/*
-* VLAN forward/drop table
-*| traffic direction | frame | Access(MBSS/Dynamic mode) | Trunk(Passthrough mode)
-*|--------------------------------------------------------------------------------------------------------------
-*| wifi tx | no vlan | drop | forward
-*|--------------------------------------------------------------------------------------------------------------
-*| | vlan tagged | compare tag with PVID: | compare tag against VID list
-*| | | 1.equal:untag and forward | 1.Found:forward
-*| | | 2.not equal:drop | 2.Not found:drop
-*|--------------------------------------------------------------------------------------------------------------
-*| wifi rx | no vlan | Add PVID tag and forward | forward
-*|--------------------------------------------------------------------------------------------------------------
-*| | vlan tagged | Compare tag with PVID: | compare tag against VID list
-*| | | 1.equal:forward | 1. Found:forward
-*| | | 2.not equal:drop | 2. Not found:drop
-*|--------------------------------------------------------------------------------------------------------------
-*/
-
-#define QVLAN_BYTES_PER_VID ((QTN_MAX_BSS_VAPS + NBBY - 1) / NBBY)
-#define QVLAN_BYTES_PER_VID_SHIFT 0
-
-RUBY_INLINE int
-qtn_vlan_is_valid(int vid)
-{
- /* VLAN ID 0 is reserved */
- return (vid > 0 && vid < QVLAN_VID_MAX);
-}
-
-RUBY_INLINE int
-qtn_vlan_is_member(volatile struct qtn_vlan_dev *vdev, uint16_t vid)
-{
- return !!is_set_a(vdev->u.member_bitmap, vid);
-}
-
-RUBY_INLINE int
-qtn_vlan_is_tagged_member(volatile struct qtn_vlan_dev *vdev, uint16_t vid)
-{
- return !!is_set_a(vdev->tag_bitmap, vid);
-}
-
-RUBY_INLINE int
-qtn_vlan_is_pvid(volatile struct qtn_vlan_dev *vdev, uint16_t vid)
-{
- return vdev->pvid == vid;
-}
-
-RUBY_INLINE int
-qtn_vlan_is_mode(volatile struct qtn_vlan_dev *vdev, uint16_t mode)
-{
- return ((struct qtn_vlan_user_interface *)vdev->user_data)->mode == mode;
-}
-
-#if defined(__KERNEL__) || defined(MUC_BUILD) || defined(AUC_BUILD)
-RUBY_INLINE int
-qtn_vlan_port_indexable(uint8_t port)
-{
- return ((port == TOPAZ_TQE_EMAC_0_PORT)
- || (port == TOPAZ_TQE_EMAC_1_PORT)
- || (port == TOPAZ_TQE_PCIE_PORT)
- || (port == TOPAZ_TQE_DSP_PORT));
-}
-#endif
-
-RUBY_INLINE int
-qtn_vlan_get_tagrx(uint32_t *tagrx_bitmap, uint16_t vlanid)
-{
- return (tagrx_bitmap[vlanid >> QVLAN_TAGRX_NUM_PER_DW_S] >>
- ((vlanid & (QVLAN_TAGRX_NUM_PER_DW - 1)) << QVLAN_TAGRX_BITSHIFT)) &
- QVLAN_TAGRX_BITMASK;
-}
-
-RUBY_INLINE void
-qtn_vlan_gen_group_addr(uint8_t *mac, uint16_t vid, uint8_t vapid)
-{
- uint16_t encode;
-
- mac[0] = 0xff;
- mac[1] = 0xff;
- mac[2] = 0xff;
- mac[3] = 0xff;
-
- encode = ((uint16_t)vapid << QVLAN_VID_MAX_S) | vid;
- mac[4] = encode >> 8;
- mac[5] = (uint8_t)(encode & 0xff);
-}
-
-RUBY_INLINE int
-qtn_vlan_is_group_addr(const uint8_t *mac)
-{
- return (mac[0] == 0xff && mac[1] == 0xff
- && mac[2] == 0xff && mac[3] == 0xff
- && mac[4] != 0xff);
-}
-
-#if defined(__KERNEL__) || defined(MUC_BUILD) || defined(AUC_BUILD)
-RUBY_INLINE struct qtn_vlan_pkt*
-qtn_vlan_get_info(const void *data)
-{
- struct qtn_vlan_pkt *pkt;
-#if defined(AUC_BUILD)
-#pragma Off(Behaved)
-#endif
- pkt = (struct qtn_vlan_pkt *)((const uint8_t *)data - QVLAN_PKTCTRL_LEN);
-#if defined(AUC_BUILD)
-#pragma On(Behaved)
-#endif
- return pkt;
-}
-
-RUBY_INLINE void
-qtn_vlan_inc_stats(struct qtn_vlan_stats *stats) {
-#if defined(__KERNEL__)
- stats->lhost++;
-#elif defined(AUC_BUILD)
- stats->auc++;
-#elif defined(MUC_BUILD)
- stats->muc++;
-#endif
-}
-
-RUBY_INLINE int
-qtn_vlan_magic_check(struct qtn_vlan_dev *outdev, struct qtn_vlan_pkt *pkt)
-{
- if (unlikely(pkt->magic != QVLAN_PKT_MAGIC)) {
- qtn_vlan_inc_stats(&outdev->magic_invalid);
- return 0;
- }
-
- return 1;
-}
-
-RUBY_INLINE int
-qtn_vlan_vlanid_check(struct qtn_vlan_dev *vdev, uint16_t ncidx, uint16_t vlanid)
-{
- if (QVLAN_IS_DYNAMIC(vdev))
- return (vdev->u.node_vlan[ncidx] == vlanid);
- else
- return qtn_vlan_is_member(vdev, vlanid);
-}
-
-RUBY_INLINE int
-qtn_vlan_egress(struct qtn_vlan_dev *outdev, uint16_t ncidx, void *data)
-{
- struct qtn_vlan_pkt *pkt = qtn_vlan_get_info(data);
-
- if (!qtn_vlan_magic_check(outdev, pkt)
- || (pkt->vlan_info & QVLAN_SKIP_CHECK)
- || qtn_vlan_vlanid_check(outdev, ncidx, pkt->vlan_info & QVLAN_MASK_VID)) {
- qtn_vlan_inc_stats(&outdev->eg_pass);
- return 1;
- }
-
- qtn_vlan_inc_stats(&outdev->eg_drop);
- return 0;
-}
-#endif
-
-#if defined(__KERNEL__) || defined(MUC_BUILD)
-RUBY_INLINE int
-qtn_vlan_ingress(struct qtn_vlan_dev *indev, uint16_t ncidx,
- void *data, uint16_t known_vlanid, uint8_t cache_op)
-{
- struct ether_header *eh = (struct ether_header *)data;
- struct qtn_vlan_pkt *pkt = qtn_vlan_get_info(data);
- uint16_t vlanid;
- const uint16_t magic = QVLAN_PKT_MAGIC;
-
- if (eh->ether_type == htons(ETHERTYPE_8021Q)) {
- vlanid = ntohs(*(uint16_t *)(eh + 1)) & QVLAN_MASK_VID;
-
- if (!qtn_vlan_vlanid_check(indev, ncidx, vlanid)) {
- qtn_vlan_inc_stats(&indev->ig_drop);
- return 0;
- }
-
- vlanid |= QVLAN_TAGGED;
- } else if (known_vlanid) {
- vlanid = known_vlanid;
-
- if (!qtn_vlan_vlanid_check(indev, ncidx, vlanid)) {
- qtn_vlan_inc_stats(&indev->ig_drop);
- return 0;
- }
- } else {
- vlanid = indev->pvid;
- }
-
- pkt->magic = magic;
- pkt->vlan_info = vlanid;
-
- if (cache_op) {
-#if defined(__KERNEL__)
- flush_and_inv_dcache_sizerange_safe(pkt, QVLAN_PKTCTRL_LEN);
-#elif defined(MUC_BUILD)
- flush_and_inv_dcache_range_safe(pkt, QVLAN_PKTCTRL_LEN);
-#endif
- }
-
- qtn_vlan_inc_stats(&indev->ig_pass);
- return 1;
-}
-#endif
-
-#if defined(__KERNEL__)
-extern uint8_t vlan_enabled;
-extern struct qtn_vlan_dev *vdev_tbl_lhost[VLAN_INTERFACE_MAX];
-extern struct qtn_vlan_dev *vdev_tbl_bus[VLAN_INTERFACE_MAX];
-extern struct qtn_vlan_dev *vport_tbl_lhost[TOPAZ_TQE_NUM_PORTS];
-extern struct qtn_vlan_dev *vport_tbl_bus[TOPAZ_TQE_NUM_PORTS];
-extern struct qtn_vlan_info qtn_vlan_info;
-
-extern struct qtn_vlan_dev *switch_alloc_vlan_dev(uint8_t port, uint8_t idx, int ifindex);
-extern void switch_free_vlan_dev(struct qtn_vlan_dev *dev);
-extern void switch_free_vlan_dev_by_idx(uint8_t idx);
-extern struct qtn_vlan_dev *switch_vlan_dev_get_by_port(uint8_t port);
-extern struct qtn_vlan_dev *switch_vlan_dev_get_by_idx(uint8_t idx);
-
-extern int switch_vlan_add_member(struct qtn_vlan_dev *vdev, uint16_t vid, uint8_t tag);
-extern int switch_vlan_del_member(struct qtn_vlan_dev *vdev, uint16_t vid);
-extern int switch_vlan_tag_member(struct qtn_vlan_dev *vdev, uint16_t vid);
-extern int switch_vlan_untag_member(struct qtn_vlan_dev *vdev, uint16_t vid);
-extern int switch_vlan_set_pvid(struct qtn_vlan_dev *vdev, uint16_t vid);
-
-/* dynamic VLAN support */
-extern void switch_vlan_dyn_enable(struct qtn_vlan_dev *vdev);
-extern void switch_vlan_dyn_disable(struct qtn_vlan_dev *vdev);
-extern int switch_vlan_set_node(struct qtn_vlan_dev *vdev, uint16_t ncidx, uint16_t vlan);
-extern int switch_vlan_clr_node(struct qtn_vlan_dev *vdev, uint16_t ncidx);
-
-extern struct sk_buff *switch_vlan_to_proto_stack(struct sk_buff *, int copy);
-extern struct sk_buff *switch_vlan_from_proto_stack(struct sk_buff *, struct qtn_vlan_dev *, uint16_t ncidx, int copy);
-extern void switch_vlan_reset(void);
-extern void switch_vlan_dev_reset(struct qtn_vlan_dev *vdev, uint8_t mode);
-extern void switch_vlan_emac_to_lhost(uint32_t enable);
-#endif
-
-#endif
diff --git a/quantenna/include/qtn/qtn_wmm_ac.h b/quantenna/include/qtn/qtn_wmm_ac.h
deleted file mode 100644
index bab24ee..0000000
--- a/quantenna/include/qtn/qtn_wmm_ac.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2013 Quantenna Communications, Inc.
- */
-
-#ifndef _QTN_WMM_AC_H
-#define _QTN_WMM_AC_H
-
-#define WMM_AC_BE 0
-#define WMM_AC_BK 1
-#define WMM_AC_VI 2
-#define WMM_AC_VO 3
-#define WMM_AC_NUM 4
-#define QTN_AC_MGMT WMM_AC_VO
-#define WMM_AC_INVALID WMM_AC_NUM
-
-#define QTN_AC_ORDER { WMM_AC_VO, WMM_AC_VI, WMM_AC_BE, WMM_AC_BK }
-
-#define QTN_TID_BE 0
-#define QTN_TID_BK 1
-#define QTN_TID_2 2
-#define QTN_TID_3 3
-#define QTN_TID_WLAN 4 /* 802.11 encap'ed data from wlan driver */
-#define QTN_TID_VI 5
-#define QTN_TID_VO 6
-#define QTN_TID_MGMT 7
-#define QTN_TID_IS_80211(tid) ((tid == QTN_TID_MGMT) || (tid == QTN_TID_WLAN))
-
-#define QTN_TID_ORDER { \
- QTN_TID_MGMT, \
- QTN_TID_WLAN, \
- QTN_TID_VO, \
- QTN_TID_VI, \
- QTN_TID_BE, \
- QTN_TID_BK \
-}
-
-#define QTN_TID_ORDER_DATA { \
- QTN_TID_VO, \
- QTN_TID_VI, \
- QTN_TID_BE, \
- QTN_TID_BK \
-}
-
-#define QTN_TID_ORDER_POLL { \
- QTN_TID_VO, \
- QTN_TID_VI, \
- QTN_TID_BE, \
- QTN_TID_BK, \
- QTN_TID_WLAN, \
- QTN_TID_MGMT \
-}
-
-#define WMM_AC_TO_TID(_ac) ( \
- (_ac == WMM_AC_VO) ? QTN_TID_VO : \
- (_ac == WMM_AC_VI) ? QTN_TID_VI : \
- (_ac == WMM_AC_BK) ? QTN_TID_BK : \
- QTN_TID_BE)
-
-#define TID_TO_WMM_AC(_tid) ( \
- (_tid == QTN_TID_BK) ? WMM_AC_BK : \
- (_tid == QTN_TID_VI) ? WMM_AC_VI : \
- (_tid == QTN_TID_VO) ? WMM_AC_VO : \
- (_tid == QTN_TID_WLAN) ? QTN_AC_MGMT : \
- (_tid == QTN_TID_MGMT) ? QTN_AC_MGMT : \
- WMM_AC_BE)
-
-#define QTN_TID_COLLAPSE(_tid) WMM_AC_TO_TID(TID_TO_WMM_AC(_tid))
-
-#define AC_TO_QTN_QNUM(_ac) \
- (((_ac) == WME_AC_BE) ? 1 : \
- ((_ac) == WME_AC_BK) ? 0 : \
- (_ac))
-
-#define QTN_TID_MAP_UNUSED(_tid) ( \
- (_tid == QTN_TID_2) ? QTN_TID_BK : \
- (_tid == QTN_TID_3) ? QTN_TID_BE : \
- (_tid))
-
-#endif /* _QTN_WMM_AC_H */
diff --git a/quantenna/include/qtn/qtn_wowlan.h b/quantenna/include/qtn/qtn_wowlan.h
deleted file mode 100644
index cf15486..0000000
--- a/quantenna/include/qtn/qtn_wowlan.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef __QTN_WOWLAN_H__
-#define __QTN_WOWLAN_H__
-
-#include <qtn/qtn_net_packet.h>
-#define WOWLAN_MATCH_TYPE_DEFAULT 0
-#define WOWLAN_MATCH_TYPE_L2 1
-#define WOWLAN_MATCH_TYPE_UDP 2
-
-#ifndef IEEE80211_ADDR_BCAST
-#define IEEE80211_ADDR_BCAST(a) ((a)[0] == 0xff && (a)[1] == 0xff && (a)[2] == 0xff && \
- (a)[3] == 0xff && (a)[4] == 0xff && (a)[5] == 0xff)
-#endif
-RUBY_INLINE uint16_t get_udp_dst_port(const void *iphdr)
-{
- const struct qtn_ipv4 *ipv4 = (const struct qtn_ipv4 *)iphdr;
- const uint8_t proto = ipv4->proto;
-
- if (proto == QTN_IP_PROTO_UDP) {
- const struct qtn_udp *udp = (struct qtn_udp *)((uint8_t *)ipv4 + sizeof(struct qtn_ipv4));
- return udp->dst_port;
- }
- return 0;
-}
-
-RUBY_INLINE uint8_t wowlan_is_magic_packet(uint16_t ether_type, const void *eth_hdr, const void *iphdr,
- uint16_t wowlan_match_type, uint16_t config_ether_type, uint16_t config_udp_port)
-{
- const struct ether_header *eh = (struct ether_header *)eth_hdr;
-
- if (wowlan_match_type == WOWLAN_MATCH_TYPE_DEFAULT) {
- if (IEEE80211_ADDR_BCAST(eh->ether_dhost))/*broadcast*/
- return 1;
- if (ether_type == htons(ETHERTYPE_WAKE_ON_LAN))/* ehter type is 0x0842*/
- return 1;
- if (ether_type == htons(ETHERTYPE_IP)) {
- uint16_t udp_dst = get_udp_dst_port(iphdr);
- if (udp_dst == htons(7) || udp_dst == htons(9))
- return 1;
- }
- } else if (wowlan_match_type == WOWLAN_MATCH_TYPE_L2) {
- if (ether_type == htons(config_ether_type))/* ehter type is 0x0842 or user defined*/
- return 1;
- } else if (wowlan_match_type == WOWLAN_MATCH_TYPE_UDP) {
- if (ether_type == htons(ETHERTYPE_IP)) {
- uint16_t udp_dst = get_udp_dst_port(iphdr);
- if (((config_udp_port == 0xffff) && (udp_dst == htons(7) || udp_dst == htons(9))) ||
- (udp_dst == htons(config_udp_port)))
- return 1;
-
- }
- }
-
- return 0;
-}
-#endif
diff --git a/quantenna/include/qtn/qvsp.h b/quantenna/include/qtn/qvsp.h
deleted file mode 100644
index 9c52eb3..0000000
--- a/quantenna/include/qtn/qvsp.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*SH0
-*******************************************************************************
-** **
-** Copyright (c) 2011-2013 Quantenna Communications, Inc **
-** All Rights Reserved **
-** **
-*******************************************************************************
-EH0*/
-
-#ifndef _QVSP_DRV_H_
-#define _QVSP_DRV_H_
-
-#ifdef CONFIG_QVSP
-
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-#include <linux/ip.h>
-
-#include <net80211/if_ethersubr.h>
-
-#include "qtn/qvsp_data.h"
-#include "qtn/shared_defs.h"
-
-#define QVSP_BA_THROT_TIMER_INTV 25 /* unit: ms */
-
-struct qvsp_s;
-struct qvsp_strm;
-struct qvsp_ext_s;
-struct ieee80211_node;
-struct qdrv_wlan;
-
-enum qdrv_vsp_check_type {
- QDRV_VSP_CHECK_ENABLE,
-};
-
-#define QVSP_CHECK_FUNC_PROTOTYPE(_fn) \
- int (_fn)(struct qvsp_ext_s *qvsp, \
- enum qvsp_if_e qvsp_if, \
- struct sk_buff *skb, \
- void *data_start, \
- uint32_t pktlen, \
- uint8_t ac)
-
-typedef void (*_fn_qvsp_inactive_flags_changed_handler)(struct qvsp_ext_s *qvsp_ext);
-
-/* This definition must be kept in sync with QVSP_INACTIVE_REASON */
-struct qvsp_ext_s {
-
-#define QVSP_INACTIVE_CFG 0x00000001
-#define QVSP_INACTIVE_WDS 0x00000002
-#define QVSP_INACTIVE_COC 0x00000004
- uint32_t inactive_flags;
- _fn_qvsp_inactive_flags_changed_handler flags_changed;
-};
-
-struct qvsp_wrapper {
- struct qvsp_ext_s *qvsp;
- QVSP_CHECK_FUNC_PROTOTYPE(*qvsp_check_func);
-};
-
-static inline void
-__qvsp_inactive_flag_update(struct qvsp_ext_s *qvsp_ext, uint32_t flag, int set)
-{
- unsigned long irq_flags;
- unsigned long old_flags;
- unsigned long update = 0;
-
- if (qvsp_ext && flag) {
- local_irq_save(irq_flags);
-
- old_flags = qvsp_ext->inactive_flags;
- if (set) {
- qvsp_ext->inactive_flags |= flag;
- } else {
- qvsp_ext->inactive_flags &= ~flag;
- }
-
- local_irq_restore(irq_flags);
-
- update = ((old_flags == 0) != (qvsp_ext->inactive_flags == 0));
- if (update && qvsp_ext->flags_changed) {
- qvsp_ext->flags_changed(qvsp_ext);
- }
- }
-}
-
-#define qvsp_inactive_flag_set(_qvsp, _flag) \
- __qvsp_inactive_flag_update((struct qvsp_ext_s *)(_qvsp), (_flag), 1)
-
-#define qvsp_inactive_flag_clear(_qvsp, _flag) \
- __qvsp_inactive_flag_update((struct qvsp_ext_s *)(_qvsp), (_flag), 0)
-
-static __always_inline int
-__qvsp_is_active(struct qvsp_ext_s *qvsp_ext)
-{
- return (qvsp_ext && (qvsp_ext->inactive_flags == 0));
-}
-#define qvsp_is_active(_qvsp) __qvsp_is_active((struct qvsp_ext_s *)(_qvsp))
-
-static __always_inline int
-__qvsp_is_enabled(struct qvsp_ext_s *qvsp_ext)
-{
- return (qvsp_ext && ((qvsp_ext->inactive_flags & QVSP_INACTIVE_CFG) == 0));
-}
-#define qvsp_is_enabled(_qvsp) \
- __qvsp_is_enabled((struct qvsp_ext_s *)(_qvsp))
-
-
-
-int qvsp_strm_check_add(struct qvsp_s *qvsp, enum qvsp_if_e qvsp_if, struct ieee80211_node *ni,
- struct sk_buff *skb, struct ether_header *eh, struct iphdr *iphdr_p,
- int pktlen, uint8_t ac, int32_t tid);
-void qvsp_cmd_strm_state_set(struct qvsp_s *qvsp, uint8_t strm_state,
- const struct ieee80211_qvsp_strm_id *strm_id, struct ieee80211_qvsp_strm_dis_attr *attr);
-void qvsp_cmd_vsp_configure(struct qvsp_s *qvsp, uint32_t index, uint32_t value);
-void qvsp_fat_set(struct qvsp_s *qvsp, uint32_t fat, uint32_t intf_ms, uint8_t chan);
-void qvsp_node_del(struct qvsp_s *qvsp, struct ieee80211_node *ni);
-void qvsp_reset(struct qvsp_s *qvsp);
-void qvsp_change_stamode(struct qvsp_s *qvsp, uint8_t stamode);
-int qvsp_netdbg_init(struct qvsp_s *qvsp,
- void (*cb_logger)(void *token, void *vsp_data, uint32_t size),
- uint32_t interval);
-void qvsp_netdbg_exit(struct qvsp_s *qvsp);
-void qvsp_disable(struct qvsp_s *qvsp);
-struct qvsp_s *qvsp_init(int (*ioctl_fn)(void *token, uint32_t param, uint32_t value),
- void *ioctl_fn_token, struct net_device *dev, uint8_t stamode,
- void (*cb_cfg)(void *token, uint32_t index, uint32_t value),
- void (*cb_strm_ctrl)(void *token, struct ieee80211_node *ni, uint8_t strm_state,
- struct ieee80211_qvsp_strm_id *strm_id, struct ieee80211_qvsp_strm_dis_attr *attr),
- void (*cb_strm_ext_throttler)(void *token, struct ieee80211_node *node,
- uint8_t strm_state, const struct ieee80211_qvsp_strm_id *strm_id,
- struct ieee80211_qvsp_strm_dis_attr *attr, uint32_t throt_intvl),
- uint32_t ieee80211node_size, uint32_t ieee80211vap_size
- );
-void qvsp_exit(struct qvsp_s **qvsp, struct net_device *dev);
-
-void qvsp_wrapper_init(struct qvsp_ext_s *qvsp_ext, QVSP_CHECK_FUNC_PROTOTYPE(fn));
-void qvsp_wrapper_exit(void);
-void qvsp_node_init(struct ieee80211_node *ni);
-
-void qvsp_3rdpt_register_cb(struct qvsp_s *qvsp,
- void *wme_token,
- int (*cb_3rdpt_get_method)(struct ieee80211_node *ni, uint8_t *throt_session_dur, uint8_t *throt_winsize),
- int (*cb_ba_throt)(struct ieee80211_node *ni, int32_t tid, int intv, int dur, int win_size),
- int (*cb_wme_throt)(void *qw, uint32_t ac, uint32_t enable,
- uint32_t aifs, uint32_t cwmin, uint32_t cwmax, uint32_t txoplimit,
- uint32_t add_qwme_ie)
- );
-
-#if TOPAZ_QTM
-void qvsp_strm_tid_check_add(struct qvsp_s *qvsp, struct ieee80211_node *ni, uint8_t node, uint8_t tid,
- uint32_t pkts, uint32_t bytes, uint32_t sent_pkts, uint32_t sent_bytes);
-#endif
-#endif /* CONFIG_QVSP */
-
-#endif
diff --git a/quantenna/include/qtn/qvsp_common.h b/quantenna/include/qtn/qvsp_common.h
deleted file mode 100644
index 2dc41dd..0000000
--- a/quantenna/include/qtn/qvsp_common.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-*******************************************************************************
-** **
-** Copyright (c) 2012 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications, Inc. **
-** File : qvsp_common.h **
-** Description : Video Screen Protection **
-** **
-*******************************************************************************
-*/
-
-#ifndef _QVSP_COMMON_H_
-#define _QVSP_COMMON_H_
-
-/*
- * Default stream airtime cost in msec per sec to send or receive at 8 Mbps.
- * Constants are binary for efficiency and do not need to be accurate. They only need to
- * scale so that stream cost roughly equates to used airtime, in order to estimate the
- * affect of disabling or re-enabling a stream.
- */
-#define BYTES_PER_KIB (1024) /* Kibibytes */
-#define BYTES_PER_MIB (1024 * 1024) /* Mebibytes */
-#define QVSP_STRM_COST_UNIT_MIB (8) /* arbitrary (optimised) cost unit */
-#define QVSP_STRM_COST_UNIT_BYTES (QVSP_STRM_COST_UNIT_MIB * BYTES_PER_MIB)
-#define QVSP_NODE_COST_DFLT (1000)
-
-struct qtn_per_tid_stats {
- uint32_t tx_throt_pkts;
- uint32_t tx_throt_bytes;
- uint32_t tx_sent_pkts;
- uint32_t tx_sent_bytes;
-};
-
-#endif
diff --git a/quantenna/include/qtn/registers.h b/quantenna/include/qtn/registers.h
deleted file mode 100644
index 8cac133..0000000
--- a/quantenna/include/qtn/registers.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2008 - 2010 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications Inc **
-** File : registers.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _QTN_REGISTERS_H
-#define _QTN_REGISTERS_H
-
-#include <asm/io.h>
-
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
-#include <qtn/registers_muc.h>
-#endif
-
-#if (CONFIG_ARCH_ARC)
-# define CONFIG_RUBY 1
-#else
-# define CONFIG_ENVY 1
-#endif
-
-#define QTN_BIT(_i) (1L << (_i))
-
-#define SYS_REG_BASE 0xE0000000
-#define SYS_RESET_VECTOR_MASK (SYS_REG_BASE + 0x0)
-#define SYS_RESET_VECTOR (SYS_REG_BASE + 0x4)
-#define SYS_CONTROL_MASK (SYS_REG_BASE + 0x8)
-#define SYS_CONTROL_REG (SYS_REG_BASE + 0xC)
-
-#define ULA_RESET_VECTOR_MASK 0xE0000000
-#define ULA_RESET_VECTOR 0xE0000004
-
-#define NDP_PKT_SRC_BBO (0xE60B0000)
-#define NDP_PKT_SRC_BB1 (0xE68B0000)
-
-#define DSP_MASTER_GPIO_ENABLE (1<<15)
-
-#define MUC_BASE_ADDR 0xE5000000
-#define MUC_OFFSET_CTRL_REG 0x42000
-
-#define MUC_CTRL_REG_SIZE 0xFF
-
-/* Interrupts */
-#define MUC_INT0 0
-#define MUC_INT1 1
-#define MUC_INT2 2
-#define MUC_INT3 3
-#define MUC_INT4 4
-#define MUC_INT5 5
-#define MUC_INT6 6
-#define MUC_INT7 7
-#define MUC_INT8 8
-#define MUC_INT9 9
-#define MUC_INT10 10
-#define MUC_INT11 11
-#define MUC_INT12 12
-#define MUC_INT13 13
-#define MUC_INT14 14
-
-/* UMS reset Masks */
-#define ARMSS_RESET 0x00000001
-#define EBI_RESET 0x00000002
-#define DRAM_RESET 0x00000004
-#define SRAM_RESET 0x00000008
-#define DSPSS_RESET 0x00000010
-#define DSP_RESET 0x00000020
-#define MUC_RESET 0x00000040
-#define NETSS_RESET 0x00000080
-#define MMC_RESET 0x00000100
-#define ENET_RESET 0x00000200
-#define IOSS_RESET 0x00000400
-#define PCI_RESET 0x00000800
-#define SDIO_RESET 0x00001000
-#define USB_RESET 0x00002000
-#define BB_RESET 0x00004000
-#define MB_RESET 0x00008000
-#define ULA_RESET 0x00010000
-
-struct muc_ctrl_reg
-{
- volatile u32 int_mask;
- volatile u32 int_status;
- volatile u32 host_sem0;
- volatile u32 host_sem1;
- volatile u32 uc_sem0;
- volatile u32 uc_sem1;
- volatile u32 mac0_host_int_pri;
- volatile u32 mac0_host_int_mask;
- volatile u32 mac0_host_int_status;
- volatile u32 mac0_host_int_gen;
- volatile u32 mac1_host_int_pri; //Not in Ruby
- volatile u32 mac1_host_int_mask; //Not in Ruby
- volatile u32 mac1_host_int_status; //Not in Ruby
- volatile u32 mac1_host_int_gen; //Not in Ruby
- volatile u32 soft_rst;
- volatile u32 lpbck_cntl; //Not in Ruby
-#if CONFIG_RUBY
- volatile u32 global_tim0;
- volatile u32 global_tim1;
- volatile u32 global_csr;
- volatile u32 mac_debug_sel;
-#endif
-} __attribute__ ((packed));
-
-struct ruby_sys_ctrl_reg
-{
- volatile u32 reset_vector_mask; /* 0xE0000000 */
- volatile u32 reset_vector;
- volatile u32 system_control_mask;
- volatile u32 system_control;
- volatile u32 reset_cause; /* 0xE0000010 */
- volatile u32 csr;
- volatile u32 debug_select;
- volatile u32 l2m_int;
- volatile u32 l2m_int_mask; /* 0xE0000020 */
- volatile u32 l2d_int;
- volatile u32 l2d_int_mask;
- volatile u32 m2l_int;
- volatile u32 m2l_int_mask; /* 0xE0000030 */
- volatile u32 m2d_int;
- volatile u32 m2d_int_mask;
- volatile u32 d2l_int;
- volatile u32 d2l_int_mask; /* 0xE0000040 */
- volatile u32 d2m_int;
- volatile u32 d2m_int_mask;
- volatile u32 lhost_int_en;
- volatile u32 muc_int_en; /* 0xE0000050 */
- volatile u32 dsp_int_en;
- volatile u32 lhost_int_or_en;
- volatile u32 muc_int_or_en;
- volatile u32 dsp_int_or_en; /* 0xE0000060 */
- volatile u32 muc_remap;
- volatile u32 dsp_remap;
- volatile u32 pcie_cfg_0;
- volatile u32 pcie_cfg_1; /* 0xE0000070 */
- volatile u32 pcie_cfg_2;
- volatile u32 pcie_cfg_3;
- volatile u32 pcie_cfg_4;
- volatile u32 pll0_ctrl; /* 0xE0000080 */
- volatile u32 pll1_ctrl;
- volatile u32 proc_id;
- volatile u32 pll2_ctrl;
- volatile u32 reserved1; /* 0xE0000090 */
- volatile u32 l2m_sem;
- volatile u32 m2l_sem;
- volatile u32 l2d_sem;
- volatile u32 d2l_sem; /* 0xE00000A0 */
- volatile u32 m2d_sem;
- volatile u32 d2m_sem;
- volatile u32 intr_inv0;
- volatile u32 intr_inv1; /* 0xE00000B0 */
- volatile u32 gmii_clkdll;
- volatile u32 debug_bus;
- volatile u32 spare;
- volatile u32 pcie_int_mask; /* 0xE00000C0 */
-} __attribute__ ((packed));
-
-#define NETDEV_F_ALLOC 0x0001 /* dev allocated */
-#define NETDEV_F_VALID 0x0002 /* dev is valid */
-#define NETDEV_F_RUNNING 0x0004 /* dev is running */
-#define NETDEV_F_PROMISC 0x0008 /* dev is in promiscuous mode */
-#define NETDEV_F_ALLMULTI 0x0010
-#define NETDEV_F_UP 0x0020 /* dev is up */
-#define NETDEV_F_EXTERNAL 0x0040 /* dev is exposed to tcp/ip stack */
-
-#define SCAN_BASEBAND_RESET 0x0000
-#define SCAN_CHAN_CHANGE 0x0001
-
-extern void enable_host_irq(int devid, int irq);
-extern void disable_host_irq(int devid, int irq);
-
-#define BB_BASE_ADDR(_i) (0xE6000000 + (_i * 0x800000))
-
-#define BB_SPI_BASE(_i) (BB_BASE_ADDR(_i) + 0x40000)
-#define BB_RF_BASE(_i) (BB_BASE_ADDR(_i) + 0x70000)
-#define BB_RDR_BASE(_i) (BB_BASE_ADDR(_i) + 0x80000)
-
-/*
- * Define RFIC version register.
- * Expected to map across multiple versions of the RFIC
- */
-
-#define RFIC_VERSION (BB_SPI_BASE(0) + 0X0018)
-
-/*Define SPI registers */
-
-#define SPI_VCO_FREQ_CC_OUTPUT(_i) (BB_SPI_BASE(_i) + 0X0004)
-#define SPI_LX_PLL_COUNTER_DATA_LSB(_i) (BB_SPI_BASE(_i) + 0X0008)
-#define SPI_LX_PLL_COUNTER_DATA_MSB(_i) (BB_SPI_BASE(_i) + 0X000C)
-#define SPI_RC_TUNING_DATA_OUT(_i) (BB_SPI_BASE(_i) + 0X0010)
-#define SPI_CTRL_DATA_AGC_TST(_i) (BB_SPI_BASE(_i) + 0X00C4)
-#define SPI_READ_AGC_RX1(_i) (BB_SPI_BASE(_i) + 0X00C8)
-#define SPI_READ_AGC_RX2(_i) (BB_SPI_BASE(_i) + 0X00CC)
-#define SPI_RX12_AGC_OUT(_i) (BB_SPI_BASE(_i) + 0X00D0)
-#define SPI_ET_DAC_TX12(_i) (BB_SPI_BASE(_i) + 0X00D4)
-#define SPI_RX1_DAC_I(_i) (BB_SPI_BASE(_i) + 0X00D8)
-#define SPI_RX1_DAC_Q(_i) (BB_SPI_BASE(_i) + 0X00DC)
-#define SPI_RX2_DAC_I(_i) (BB_SPI_BASE(_i) + 0X00E0)
-#define SPI_RX2_DAC_Q(_i) (BB_SPI_BASE(_i) + 0X00E4)
-#define SPI_PDN_RX_BUS_CTRL_BUS_1(_i) (BB_SPI_BASE(_i) + 0X00E8)
-#define SPI_PDN_RX_BUS_CTRL_BUS_2(_i) (BB_SPI_BASE(_i) + 0X00EC)
-#define SPI_PDN_RX_BUS_CTRL_BUS_3(_i) (BB_SPI_BASE(_i) + 0x00F0)
-#define SPI_PDN_RX_BUS_CTRL_BUS_4(_i) (BB_SPI_BASE(_i) + 0x00F4)
-#define SPI_MUX_IN(_i) (BB_SPI_BASE(_i) + 0x00F8)
-#define SPI_MUX_OUT(_i) (BB_SPI_BASE(_i) + 0x00FC)
-#define SPI_DAC_RX1TB1_I(_i) (BB_SPI_BASE(_i) + 0x0100)
-#define SPI_DAC_RX1TB2_I(_i) (BB_SPI_BASE(_i) + 0x0104)
-#define SPI_DAC_RX1TB3_I(_i) (BB_SPI_BASE(_i) + 0x0108)
-#define SPI_DAC_RX1TB4_I(_i) (BB_SPI_BASE(_i) + 0x010C)
-#define SPI_DAC_RX1TB1_Q(_i) (BB_SPI_BASE(_i) + 0x0110)
-#define SPI_DAC_RX1TB2_Q(_i) (BB_SPI_BASE(_i) + 0x0114)
-#define SPI_DAC_RX1TB3_Q(_i) (BB_SPI_BASE(_i) + 0x0118)
-#define SPI_DAC_RX1TB4_Q(_i) (BB_SPI_BASE(_i) + 0x011C)
-#define SPI_DAC_RX2TB1_I(_i) (BB_SPI_BASE(_i) + 0x0120)
-#define SPI_DAC_RX2TB2_I(_i) (BB_SPI_BASE(_i) + 0x0124)
-#define SPI_DAC_RX2TB3_I(_i) (BB_SPI_BASE(_i) + 0x0128)
-#define SPI_DAC_RX2TB4_I(_i) (BB_SPI_BASE(_i) + 0x012C)
-#define SPI_DAC_RX2TB1_Q(_i) (BB_SPI_BASE(_i) + 0x0130)
-#define SPI_DAC_RX2TB2_Q(_i) (BB_SPI_BASE(_i) + 0x0134)
-#define SPI_DAC_RX2TB3_Q(_i) (BB_SPI_BASE(_i) + 0x0138)
-#define SPI_DAC_RX2TB4_Q(_i) (BB_SPI_BASE(_i) + 0x013C)
-#define SPI_RX_PDN_11_0(_i) (BB_SPI_BASE(_i) + 0x0140)
-#define SPI_RX_PDN_23_12(_i) (BB_SPI_BASE(_i) + 0x0144)
-#define SPI_TX1_PDN_11_0(_i) (BB_SPI_BASE(_i) + 0x0148)
-#define SPI_TX1_PDN_23_12(_i) (BB_SPI_BASE(_i) + 0x014C)
-#define SPI_TX2_PDN_11_0(_i) (BB_SPI_BASE(_i) + 0X0150)
-#define SPI_TX2_PDN_23_12(_i) (BB_SPI_BASE(_i) + 0X0154)
-#define SPI_ALX_PDN_11_0(_i) (BB_SPI_BASE(_i) + 0X0158)
-#define SPI_ALX_PDN_23_12(_i) (BB_SPI_BASE(_i) + 0X015C)
-#define SPI_PDN_VAL_23_0(_i) (BB_SPI_BASE(_i) + 0X0160)
-#define SPI_RX_CAL_OVRD_VAL(_i) (BB_SPI_BASE(_i) + 0X0164)
-#define SPI_AGC_CTRL_DAC_RC_TST(_i) (BB_SPI_BASE(_i) + 0X0168)
-#define SPI_PLL_FRACTIONAL(_i) (BB_SPI_BASE(_i) + 0X016C)
-#define SPI_PLL_N_CH(_i) (BB_SPI_BASE(_i) + 0X0170)
-#define SPI_CP_D_U_VCO(_i) (BB_SPI_BASE(_i) + 0X0174)
-#define SPI_VCO_CLK_PFD_LPF(_i) (BB_SPI_BASE(_i) + 0X0178)
-#define SPI_BG_BIAS_EXT_PTAT(_i) (BB_SPI_BASE(_i) + 0X017C)
-#define SPI_CURR_OPT_DAC_TX_RX_SSB(_i) (BB_SPI_BASE(_i) + 0X0180)
-#define SPI_RXMX_BBMX_VBIAS_ADJ(_i) (BB_SPI_BASE(_i) + 0X0184)
-#define SPI_TX_SSB_DAC(_i) (BB_SPI_BASE(_i) + 0X0188)
-#define SPI_BYP_PWR_OFS_PROBE_IQ(_i) (BB_SPI_BASE(_i) + 0X018C)
-#define SPI_LNA12_GAIN_FREQ_CURR_LOOPBK(_i) (BB_SPI_BASE(_i) + 0X0190)
-#define SPI_ICT_WCT_TX1_PA(_i) (BB_SPI_BASE(_i) + 0X0194)
-#define SPI_ICT_WCT_TX2_PA(_i) (BB_SPI_BASE(_i) + 0X0198)
-#define SPI_GCT_FCT_TX1_PA(_i) (BB_SPI_BASE(_i) + 0X019C)
-#define SPI_WCT_TX12_PA(_i) (BB_SPI_BASE(_i) + 0X01A0)
-#define SPI_MOD_ICT_ABS_VRRP(_i) (BB_SPI_BASE(_i) + 0X01A4)
-#define SPI_MOD_CCT_RCT(_i) (BB_SPI_BASE(_i) + 0X01A8)
-#define SPI_MOD_LO_GCT_TX_1MA(_i) (BB_SPI_BASE(_i) + 0X01AC)
-#define SPI_MODDAC_1M_IQ(_i) (BB_SPI_BASE(_i) + 0X01B0)
-#define SPI_MODDAC_1A_IQ(_i) (BB_SPI_BASE(_i) + 0X01B4)
-#define SPI_MOD_LO_GCT_TX_2MA(_i) (BB_SPI_BASE(_i) + 0X01B8)
-#define SPI_MODDAC_2M_IQ(_i) (BB_SPI_BASE(_i) + 0X01BC)
-#define SPI_MODDAC_2A_IQ(_i) (BB_SPI_BASE(_i) + 0X01C0)
-#define SPI_RX12_MUX_DATA_CNTL(_i) (BB_SPI_BASE(_i) + 0X01C4)
-
-// timer register definition
-#define ARM_TIMER_BASE_ADDR (0XF3000000)
-#define ARM_TIMER_MEM_LEN (0x30)
-#define ARM_TIMER_PRESCALE_EN (0x0000)
-#define ARM_TIMER_PRESCALE_0 (0x0004)
-#define ARM_TIMER_PRESCALE_1 (0x0008)
-#define ARM_TIMER_CTL(_i) (0x000c + (_i)*8)
-#define ARM_TIMER_ENABLE (QTN_BIT(0))
-#define ARM_TIMER_PERIODIC (QTN_BIT(1))
-#define ARM_TIMER_PRESCALER_1 (QTN_BIT(2))
-
-#define ARM_TIMER_CNT(_i) (0x0010 + (_i)*8)
-
-#if CONFIG_RUBY
-#define QT3_BB_GLBL_SOFT_RST 0xE6000008
-#define QT3_BB_TD_PA_CONF 0xE609048C
-
-/* The following definitions used to install the steering vectors */
-#define QT3_RF_NUM_CHAINS 4
-#define QT3_BB_Q_MATRIX_MEM 0xE6100000
-#define QT3_BB_Q_MATRIX_SIZE 0x8000
-#endif
-
-#endif /* _QTN_REGISTERS_H */
diff --git a/quantenna/include/qtn/ruby_cpumon.h b/quantenna/include/qtn/ruby_cpumon.h
deleted file mode 100644
index 07f6fdb..0000000
--- a/quantenna/include/qtn/ruby_cpumon.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*SH0
-*******************************************************************************
-** **
-** Copyright (c) 2012 Quantenna Communications, Inc. **
-** All Rights Reserved **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH0*/
-
-#ifndef __QTN_CPUMON_H
-#define __QTN_CPUMON_H
-
-void ruby_cpumon_get_cycles(uint64_t *sleep, uint64_t *awake);
-
-#endif /* __QTN_CPUMON_H */
-
diff --git a/quantenna/include/qtn/semaphores.h b/quantenna/include/qtn/semaphores.h
deleted file mode 100644
index 0f69b29..0000000
--- a/quantenna/include/qtn/semaphores.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2011 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications Inc **
-** File : semaphores.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _QTN_SEMAPHORES_H_
-#define _QTN_SEMAPHORES_H_
-
-
-#define QTN_SEM_HOST_LINK_SEMNUM 0
-#define QTN_SEM_NUMFREESEM 31
-#define QTN_SEM_BB_MUTEX_SEMNUM 31
-
-
-#endif // #ifndef _QTN_SEMAPHORES_H_
-
-
diff --git a/quantenna/include/qtn/shared_defs.h b/quantenna/include/qtn/shared_defs.h
deleted file mode 100644
index 8f9a9e6..0000000
--- a/quantenna/include/qtn/shared_defs.h
+++ /dev/null
@@ -1,691 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2010 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications Inc **
-** File : shared_params.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _SHARED_DEFS_H_
-#define _SHARED_DEFS_H_
-
-#include "shared_defs_common.h"
-
-#define QTN_SWITCH_CHANNEL_TIME_AVG 3750 /* microseconds */
-
-#define IEEE80211_MAX_NAV 32767
-
-/* SCS (ACI/CCI Detection and Mitigation) APIs */
-enum qtn_vap_scs_cmds {
- IEEE80211_SCS_SET_ENABLE = 1,
- IEEE80211_SCS_SET_DEBUG_ENABLE,
- IEEE80211_SCS_SET_SAMPLE_ENABLE,
- IEEE80211_SCS_SET_SAMPLE_DWELL_TIME,
- IEEE80211_SCS_SET_SAMPLE_INTERVAL,
- IEEE80211_SCS_SET_THRSHLD_SMPL_PKTNUM,
- IEEE80211_SCS_SET_THRSHLD_PRI_CCA,
- IEEE80211_SCS_SET_THRSHLD_SEC_CCA,
- IEEE80211_SCS_SET_THRSHLD_SMPL_AIRTIME,
- IEEE80211_SCS_SET_WF_CCA,
- IEEE80211_SCS_SET_WF_RSSI,
- IEEE80211_SCS_SET_WF_CRC_ERR,
- IEEE80211_SCS_SET_WF_LPRE,
- IEEE80211_SCS_SET_WF_SPRE,
- IEEE80211_SCS_SET_WF_RETRIES,
- IEEE80211_SCS_SET_WF_DFS,
- IEEE80211_SCS_SET_WF_MAX_TX_PWR,
- IEEE80211_SCS_SET_REPORT_ONLY,
- IEEE80211_SCS_SET_CCA_INTF_RATIO,
- IEEE80211_SCS_SET_CCA_IDLE_THRSHLD,
- IEEE80211_SCS_SET_CCA_INTF_LO_THR,
- IEEE80211_SCS_SET_CCA_INTF_HI_THR,
- IEEE80211_SCS_SET_CCA_SMPL_DUR,
- IEEE80211_SCS_GET_REPORT,
- IEEE80211_SCS_GET_INTERNAL_STATS,
- IEEE80211_SCS_SET_CCA_INTF_SMTH_FCTR,
- IEEE80211_SCS_RESET_RANKING_TABLE,
- IEEE80211_SCS_SET_CHAN_MTRC_MRGN,
- IEEE80211_SCS_SET_RSSI_SMTH_FCTR,
- IEEE80211_SCS_SET_ATTEN_ADJUST,
- IEEE80211_SCS_SET_ATTEN_SWITCH_ENABLE,
- IEEE80211_SCS_SET_THRSHLD_ATTEN_INC,
- IEEE80211_SCS_SET_THRSHLD_DFS_REENTRY,
- IEEE80211_SCS_SET_THRSHLD_DFS_REENTRY_MINRATE,
- IEEE80211_SCS_SET_PMBL_ERR_SMTH_FCTR,
- IEEE80211_SCS_SET_PMBL_ERR_RANGE,
- IEEE80211_SCS_SET_PMBL_ERR_MAPPED_INTF_RANGE,
- IEEE80211_SCS_SET_THRSHLD_LOAD,
- IEEE80211_SCS_SET_PMBL_ERR_WF,
- IEEE80211_SCS_SET_THRSHLD_AGING_NOR,
- IEEE80211_SCS_SET_THRSHLD_AGING_DFSREENT,
- IEEE80211_SCS_SET_THRSHLD_DFS_REENTRY_INTF,
- IEEE80211_SCS_SET_PMP_RPT_CCA_SMTH_FCTR,
- IEEE80211_SCS_SET_PMP_RX_TIME_SMTH_FCTR,
- IEEE80211_SCS_SET_PMP_TX_TIME_SMTH_FCTR,
- IEEE80211_SCS_SET_PMP_STATS_STABLE_PERCENT,
- IEEE80211_SCS_SET_PMP_STATS_STABLE_RANGE,
- IEEE80211_SCS_SET_PMP_STATS_CLEAR_INTERVAL,
- IEEE80211_SCS_SET_PMP_TXTIME_COMPENSATION,
- IEEE80211_SCS_SET_PMP_RXTIME_COMPENSATION,
- IEEE80211_SCS_SET_PMP_TDLSTIME_COMPENSATION,
- IEEE80211_SCS_SET_SWITCH_CHANNEL_MANUALLY,
- IEEE80211_SCS_SET_AS_RX_TIME_SMTH_FCTR,
- IEEE80211_SCS_SET_AS_TX_TIME_SMTH_FCTR,
- IEEE80211_SCS_SET_STATS_START,
- IEEE80211_SCS_SET_CCA_IDLE_SMTH_FCTR,
- IEEE80211_SCS_SET_PMBL_ERR_THRSHLD,
- IEEE80211_SCS_SET_CCA_INTF_DFS_MARGIN,
- IEEE80211_SCS_SET_LEAVE_DFS_CHAN_MTRC_MRGN,
- IEEE80211_SCS_SET_CCA_THRESHOLD_TYPE,
- IEEE80211_SCS_SET_MAX
-};
-
-#define IEEE80211_SCS_STATE_INIT 0
-#define IEEE80211_SCS_STATE_RESET 1
-#define IEEE80211_SCS_STATE_CHANNEL_SWITCHING 2
-#define IEEE80211_SCS_STATE_MEASUREMENT_CHANGE_CLEAN 3 /* param change */
-#define IEEE80211_SCS_STATE_PERIOD_CLEAN 4
-
-#define IEEE80211_SCS_COMPARE_INIT_TIMER 5
-#define IEEE80211_SCS_COMPARE_TIMER_INTVAL 2
-#define IEEE80211_CCA_SAMPLE_DUR IEEE80211_SCS_COMPARE_TIMER_INTVAL /* seconds */
-#define IEEE80211_SCS_CHAN_CURRENT 0
-#define IEEE80211_SCS_CHAN_ALL 0xFF
-#define IEEE80211_SCS_THRSHLD_MAX 100 /* metric */
-#define IEEE80211_SCS_THRSHLD_MIN 1 /* metric */
-#define IEEE80211_SCS_SMPL_DWELL_TIME_MAX 24 /* milliseconds, limited by max NAV reservation */
-#define IEEE80211_SCS_SMPL_DWELL_TIME_MIN 5 /* milliseconds */
-#define IEEE80211_SCS_SMPL_DWELL_TIME_DEFAULT 10 /* milliseconds */
-#define IEEE80211_SCS_SMPL_INTV_MAX 3600 /* seconds */
-#define IEEE80211_SCS_SMPL_INTV_MIN 1 /* seconds */
-#define IEEE80211_SCS_SMPL_INTV_DEFAULT 5 /* seconds */
-#define IEEE80211_SCS_THRSHLD_SMPL_PKTNUM_DEFAULT 16 /* packet number */
-#define IEEE80211_SCS_THRSHLD_SMPL_PKTNUM_MAX 1000 /* packet number */
-#define IEEE80211_SCS_THRSHLD_SMPL_PKTNUM_MIN 1 /* packet number */
-#define IEEE80211_SCS_THRSHLD_SMPL_AIRTIME_DEFAULT 200 /* ms */
-#define IEEE80211_SCS_THRSHLD_SMPL_AIRTIME_MAX 1000 /* ms */
-#define IEEE80211_SCS_THRSHLD_SMPL_AIRTIME_MIN 1 /* ms */
-#define IEEE80211_SCS_THRSHLD_PMBL_ERR_MAX 10000 /* count */
-#define IEEE80211_SCS_THRSHLD_PMBL_ERR_MIN 1 /* count */
-
-/*
- * Packet rate threshold is determined by how many packets we can hold in buffer without drop
- * during off-channel period. It is limited by:
- * - sw queue length of each node/tid
- * - global resource shared by all node/tid, such as tqew descriptors and msdu headers.
- * Current value doesn't apply to the scenario when tqew descriptors are already used up by large
- * number of stations.
- */
-#define IEEE80211_SCS_THRSHLD_SMPL_TX_PKTRATE (1024 - 128) /* margin = 128 + hw ring size */
-#define IEEE80211_SCS_THRSHLD_SMPL_RX_PKTRATE IEEE80211_SCS_THRSHLD_SMPL_TX_PKTRATE /* assume qtn peer */
-#define IEEE80211_SCS_THRSHLD_ATTEN_INC_DFT 5 /* db */
-#define IEEE80211_SCS_THRSHLD_ATTEN_INC_MIN 0 /* db */
-#define IEEE80211_SCS_THRSHLD_ATTEN_INC_MAX 20 /* db */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_DFT 60 /* seconds */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MIN 0 /* seconds */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MAX 0xffff /* seconds */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_INTF_MIN 0
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_INTF_MAX 100
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_INTF_DFT 40
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MINRATE_UNIT 100 /* kbps */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MINRATE_DFT 5 /* unit: 100kbps */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MINRATE_MIN 0 /* unit: 100kbps */
-#define IEEE80211_SCS_THRSHLD_DFS_REENTRY_MINRATE_MAX 0xffff /* unit: 100kbps */
-#define IEEE80211_SCS_THRSHLD_AGING_MIN 0
-#define IEEE80211_SCS_THRSHLD_AGING_MAX 0xFFFF
-#define IEEE80211_SCS_THRSHLD_AGING_NOR_DFT (60 * 6)
-#define IEEE80211_SCS_THRSHLD_AGING_DFSREENT_DFT 5
-#define IEEE80211_SCS_CCA_DUR_MAX 10 /* seconds */
-#define IEEE80211_SCS_CCA_DUR_MIN 2 /* seconds */
-#define IEEE80211_SCS_CCA_INTF_SCALE 1000 /* milliseconds */
-#define IEEE80211_SCS_SENDING_QOSNULL_TIME_AVG 1000 /* microseconds */
-#define IEEE80211_SCS_SMPL_TIME_MARGIN 2000 /* microseconds */
-#define IEEE80211_SCS_SMPL_TIME_OFFSET_SEND_QOSNULL 5000 /* microseconds */
-#define IEEE80211_SCS_SMPL_TIME_SENDING_ALL_BEACONS 25000 /* microseconds, the time duration for transmitting all beacons */
-#define IEEE80211_CCA_INTF_SMTH_FCTR_NOXP_DFT 75
-#define IEEE80211_CCA_INTF_SMTH_FCTR_XPED_DFT 90
-#define IEEE80211_CCA_INTF_SMTH_FCTR_MIN 0
-#define IEEE80211_CCA_INTF_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_CHAN_MTRC_MRGN_MAX 100
-#define IEEE80211_SCS_CHAN_MTRC_MRGN_DFT 15
-#define IEEE80211_SCS_LEAVE_DFS_CHAN_MTRC_MRGN_DFT 25
-#define IEEE80211_SCS_RSSI_SMTH_FCTR_UP_DFT 75
-#define IEEE80211_SCS_RSSI_SMTH_FCTR_DOWN_DFT 25
-#define IEEE80211_SCS_RSSI_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_ATTEN_ADJUST_MIN -20
-#define IEEE80211_SCS_ATTEN_ADJUST_MAX 20
-#define IEEE80211_SCS_ATTEN_ADJUST_DFT 5
-#define IEEE80211_SCS_BRCM_RXGLITCH_THRSHLD_SCALE_DFT 40
-#define IEEE80211_SCS_PMBL_ERR_SMTH_FCTR_MIN 0
-#define IEEE80211_SCS_PMBL_ERR_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_PMBL_ERR_SMTH_FCTR_DFT 66
-#define IEEE80211_SCS_CCA_IDLE_SMTH_FCTR_MIN 0
-#define IEEE80211_SCS_CCA_IDLE_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_CCA_IDLE_SMTH_FCTR_DFT 50
-#define IEEE80211_SCS_PMP_RPT_CCA_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_PMP_RPT_CCA_SMTH_FCTR_DFT 66
-#define IEEE80211_SCS_PMP_RX_TIME_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_PMP_RX_TIME_SMTH_FCTR_DFT 66
-#define IEEE80211_SCS_PMP_TX_TIME_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_PMP_TX_TIME_SMTH_FCTR_DFT 66
-#define IEEE80211_SCS_PMP_STATS_STABLE_PERCENT_MAX 100
-#define IEEE80211_SCS_PMP_STATS_STABLE_PERCENT_DFT 30
-#define IEEE80211_SCS_PMP_STATS_STABLE_RANGE_MAX 1000
-#define IEEE80211_SCS_PMP_STATS_STABLE_RANGE_DFT 50
-#define IEEE80211_SCS_PMP_STATS_CLEAR_INTERVAL_MAX 3600 /* seconds */
-#define IEEE80211_SCS_PMP_STATS_CLEAR_INTERVAL_DFT 60 /* seconds */
-#define IEEE80211_SCS_AS_RX_TIME_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_AS_RX_TIME_SMTH_FCTR_DFT 50
-#define IEEE80211_SCS_AS_TX_TIME_SMTH_FCTR_MAX 100
-#define IEEE80211_SCS_AS_TX_TIME_SMTH_FCTR_DFT 50
-
-#define IEEE80211_SCS_SMTH_RBS_TIME 80
-
-#define IEEE80211_SCS_PMBL_ERR_RANGE_MIN 1000
-#define IEEE80211_SCS_PMBL_ERR_RANGE_MAX 0xFFFF
-#define IEEE80211_SCS_PMBL_ERR_RANGE_DFT 5000
-#define IEEE80211_SCS_PMBL_ERR_MAPPED_INTF_RANGE_MIN 0
-#define IEEE80211_SCS_PMBL_ERR_MAPPED_INTF_RANGE_MAX 100
-#define IEEE80211_SCS_PMBL_ERR_MAPPED_INTF_RANGE_DFT 40
-#define IEEE80211_SCS_PMBL_ERR_WF_MIN 0
-#define IEEE80211_SCS_PMBL_ERR_WF_MAX 100
-#define IEEE80211_SCS_PMBL_SHORT_WF_DFT 0
-#define IEEE80211_SCS_PMBL_LONG_WF_DFT 100
-#define IEEE80211_SCS_THRSHLD_LOADED_MIN 0
-#define IEEE80211_SCS_THRSHLD_LOADED_MAX 1000
-#define IEEE80211_SCS_THRSHLD_LOADED_DFT 20
-
-#define IEEE80211_SCS_CHAN_POWER_CUTPOINT 15
-#define IEEE80211_SCS_NORMALIZE(_v, _duration) (((_v) < (0xFFFFFFFF / IEEE80211_SCS_CCA_INTF_SCALE)) ? \
- ((_v) * IEEE80211_SCS_CCA_INTF_SCALE / (_duration)) : \
- ((_v) / (_duration) * IEEE80211_SCS_CCA_INTF_SCALE))
-
-#define IEEE80211_SCS_SMOOTH(_old, _new, _fctr) (((_old) * (_fctr) + (_new) * (100 - (_fctr))) / 100)
-
-#define IEEE80211_SCS_OFFCHAN_WHOLE_DUR(_dwell_us) ((_dwell_us) + \
- (2 * QTN_SWITCH_CHANNEL_TIME_AVG) + \
- IEEE80211_SCS_SENDING_QOSNULL_TIME_AVG + \
- IEEE80211_SCS_SMPL_TIME_MARGIN)
-
-#define IEEE80211_SCS_VALUE_S 0
-#define IEEE80211_SCS_VALUE_M 0xffff
-#define IEEE80211_SCS_WF_VALUE_M 0xff
-#define IEEE80211_SCS_COMMAND_S 16
-#define IEEE80211_SCS_COMMAND_M 0xffff
-
-#define IEEE80211_SCS_NA_CC 0x0
-#define IEEE80211_SCS_STA_CCA_REQ_CC 0x1
-#define IEEE80211_SCS_SELF_CCA_CC 0x2
-#define IEEE80211_SCS_ATTEN_INC_CC 0x4
-#define IEEE80211_SCS_BRCM_STA_TRIGGER_CC 0x8
-#define IEEE80211_SCS_CCA_INTF_CC (IEEE80211_SCS_STA_CCA_REQ_CC | IEEE80211_SCS_SELF_CCA_CC)
-#define IEEE80211_SCS_INTF_CC (IEEE80211_SCS_CCA_INTF_CC | IEEE80211_SCS_BRCM_STA_TRIGGER_CC)
-
-#define IEEE80211_REMAIN_CHAN_MIN_RSV_PERD 2
-
-enum ieee80211_scs_update_mode {
- IEEE80211_SCS_OFFCHAN, /* off-channel, use smoothing and omit current channel */
- IEEE80211_SCS_COCHAN, /* co-channel mode */
- IEEE80211_SCS_INIT_SCAN, /* like off-channel but include current channel */
-};
-
-#define SCSLOG_CRIT 0
-#define SCSLOG_NOTICE 1
-#define SCSLOG_INFO 2
-#define SCSLOG_VERBOSE 3
-#define SCSLOG_LEVEL_MAX 3
-#if !defined(MUC_BUILD) && !defined(DSP_BUILD) && !defined(AUC_BUILD)
-#define SCSDBG(_level, _fmt, ...) do { \
- if (ic->ic_scs.scs_debug_enable >= (_level)) { \
- DBGFN("SCS: " _fmt, ##__VA_ARGS__); \
- } \
- } while (0)
-#endif
-
-
-/* OCAC (Off-channel CAC) APIs */
-enum qtn_ocac_cmds {
- IEEE80211_OCAC_SET_ENABLE = 1,
- IEEE80211_OCAC_SET_DISABLE,
- IEEE80211_OCAC_SET_DEBUG_LEVEL,
- IEEE80211_OCAC_SET_DWELL_TIME,
- IEEE80211_OCAC_SET_DURATION,
- IEEE80211_OCAC_SET_THRESHOLD_FAT,
- IEEE80211_OCAC_SET_DUMP_COUNTS,
- IEEE80211_OCAC_SET_CAC_TIME,
- IEEE80211_OCAC_SET_THRESHOLD_TRAFFIC,
- IEEE80211_OCAC_SET_TIMER_INTERVAL,
- IEEE80211_OCAC_SET_DUMP_TSFLOG,
- IEEE80211_OCAC_SET_DUMP_CFG,
- IEEE80211_OCAC_SET_TRAFFIC_CONTROL,
- IEEE80211_OCAC_SET_THRESHOLD_CCA_INTF,
- IEEE80211_OCAC_SET_REPORT_ONLY,
- IEEE80211_OCAC_SET_DUMP_CCA_COUNTS,
- IEEE80211_OCAC_SET_OFFSET_TXHALT,
- IEEE80211_OCAC_SET_OFFSET_OFFCHAN,
- IEEE80211_OCAC_SET_THRESHOLD_FAT_DEC,
- IEEE80211_OCAC_SET_TIMER_EXPIRE_INIT,
- IEEE80211_OCAC_SET_SECURE_DWELL_TIME,
- IEEE80211_OCAC_SET_BEACON_INTERVAL,
- IEEE80211_OCAC_SET_WEATHER_DURATION,
- IEEE80211_OCAC_SET_WEATHER_CAC_TIME,
- IEEE80211_OCAC_SET_WEATHER_DWELL_TIME,
- IEEE80211_OCAC_SET_MAX
-};
-
-enum qtn_ocac_get_cmds {
- IEEE80211_OCAC_GET_STATUS = 1,
- IEEE80211_OCAC_GET_AVAILABILITY,
-};
-
-#define IEEE80211_OCAC_CLEAN_STATS_STOP 0
-#define IEEE80211_OCAC_CLEAN_STATS_START 1
-#define IEEE80211_OCAC_CLEAN_STATS_RESET 2
-
-
-#define IEEE80211_OCAC_DWELL_TIME_MIN 5 /* milliseconds */
-#define IEEE80211_OCAC_DWELL_TIME_MAX 200 /* milliseconds */
-#define IEEE80211_OCAC_DWELL_TIME_DEFAULT 40 /* milliseconds */
-#define IEEE80211_OCAC_WEA_DWELL_TIME_DEFAULT 20 /* milliseconds */
-
-#define IEEE80211_OCAC_SECURE_DWELL_TIME_MIN 5 /* milliseconds */
-#define IEEE80211_OCAC_SECURE_DWELL_TIME_MAX 23 /* milliseconds */
-#define IEEE80211_OCAC_SECURE_DWELL_TIME_DEFAULT 23 /* milliseconds */
-
-#define IEEE80211_OCAC_DURATION_MIN 1 /* seconds */
-#define IEEE80211_OCAC_DURATION_MAX 64800 /* seconds */
-#define IEEE80211_OCAC_DURATION_DEFAULT 720 /* seconds */
-
-#define IEEE80211_OCAC_CAC_TIME_MIN 1 /* seconds */
-#define IEEE80211_OCAC_CAC_TIME_MAX 64800 /* seconds */
-#define IEEE80211_OCAC_CAC_TIME_DEFAULT 240 /* seconds */
-
-#define IEEE80211_OCAC_WEA_DURATION_MIN 60 /* seconds */
-#define IEEE80211_OCAC_WEA_DURATION_MAX 86400 /* seconds */
-#define IEEE80211_OCAC_WEA_DURATION_DEFAULT 11520 /* seconds */
-
-#define IEEE80211_OCAC_WEA_CAC_TIME_MIN 1 /* seconds */
-#define IEEE80211_OCAC_WEA_CAC_TIME_MAX 86400 /* seconds */
-#define IEEE80211_OCAC_WEA_CAC_TIME_DEFAULT 1920 /* seconds */
-
-#define IEEE80211_OCAC_THRESHOLD_FAT_MIN 1 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_FAT_MAX 100 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_FAT_DEFAULT 90 /* percent */
-
-#define IEEE80211_OCAC_THRESHOLD_TRAFFIC_MIN 1 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_TRAFFIC_MAX 100 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_TRAFFIC_DEFAULT 30 /* percent */
-
-#define IEEE80211_OCAC_OFFSET_TXHALT_MIN 2 /* milliseconds */
-#define IEEE80211_OCAC_OFFSET_TXHALT_MAX 80 /* milliseconds */
-#define IEEE80211_OCAC_OFFSET_TXHALT_DEFAULT 10 /* milliseconds */
-
-#define IEEE80211_OCAC_OFFSET_OFFCHAN_MIN 2 /* milliseconds */
-#define IEEE80211_OCAC_OFFSET_OFFCHAN_MAX 80 /* milliseconds */
-#define IEEE80211_OCAC_OFFSET_OFFCHAN_DEFAULT 5 /* milliseconds */
-
-#define IEEE80211_OCAC_TRAFFIC_CTRL_DEFAULT 1 /* on */
-
-#define IEEE80211_OCAC_THRESHOLD_CCA_INTF_MIN 1 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_CCA_INTF_MAX 100 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_CCA_INTF_DEFAULT 20 /* percent */
-
-#define IEEE80211_OCAC_THRESHOLD_FAT_DEC_MIN 1 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_FAT_DEC_MAX 100 /* percent */
-#define IEEE80211_OCAC_THRESHOLD_FAT_DEC_DEFAULT 10 /* percent */
-
-#define IEEE80211_OCAC_TIMER_INTERVAL_MIN 1 /* seconds */
-#define IEEE80211_OCAC_TIMER_INTERVAL_MAX 100 /* seconds */
-#define IEEE80211_OCAC_TIMER_INTERVAL_DEFAULT 2 /* seconds */
-
-#define IEEE80211_OCAC_BEACON_INTERVAL_MIN 100 /* TUs */
-#define IEEE80211_OCAC_BEACON_INTERVAL_MAX 1000 /* TUs */
-#define IEEE80211_OCAC_BEACON_INTERVAL_DEFAULT 100 /* TUs */
-
-#define IEEE80211_OCAC_TIMER_EXPIRE_INIT_MIN 1 /* seconds */
-#define IEEE80211_OCAC_TIMER_EXPIRE_INIT_MAX 65000 /* seconds */
-#define IEEE80211_OCAC_TIMER_EXPIRE_INIT_DEFAULT 2 /* seconds */
-
-#define IEEE80211_OBSS_PASSIVE_DWELL_DEFAULT 20
-#define IEEE80211_OBSS_ACTIVE_DWELL_DEFAULT 10
-#define IEEE80211_OBSS_TRIGGER_INTERVAL_DEFAULT 200
-#define IEEE80211_OBSS_PASSIVE_TOTAL_DEFAULT 200
-#define IEEE80211_OBSS_ACTIVE_TOTAL_DEFAULT 20
-#define IEEE80211_OBSS_CHANNEL_WIDTH_DELAY_DEFAULT 5
-#define IEEE80211_OBSS_ACTIVITY_THRESHOLD_DEFAULT 25
-
-#define IEEE80211_OCAC_VALUE_S 0
-#define IEEE80211_OCAC_VALUE_M 0xffff
-#define IEEE80211_OCAC_COMMAND_S 16
-#define IEEE80211_OCAC_COMMAND_M 0xffff
-#define IEEE80211_OCAC_COMPRESS_VALUE_F 0x8000
-#define IEEE80211_OCAC_COMPRESS_VALUE_M 0x7fff
-
-#define IEEE80211_OCAC_TIME_MARGIN 2000 /* microseconds */
-
-#define OCACLOG_CRIT 0
-#define OCACLOG_WARNING 1
-#define OCACLOG_NOTICE 2
-#define OCACLOG_INFO 3
-#define OCACLOG_VERBOSE 4
-#define OCACLOG_LEVEL_MAX 4
-#if !defined(MUC_BUILD) && !defined(DSP_BUILD) && !defined(AUC_BUILD)
-#define OCACDBG(_level, _fmt, ...) do { \
- if (ic->ic_ocac.ocac_cfg.ocac_debug_level >= (_level)) { \
- DBGFN("DFS_s_radio: " _fmt, ##__VA_ARGS__); \
- } \
- } while (0)
-#endif
-
-#define QTN_M2A_EVENT_TYPE_DTIM 1
-#define QTN_M2A_PS_EVENT_PM_ENABLE 2 /* enable power management */
-#define QTN_M2A_PS_EVENT_PM_DISABLE 3 /* disable power management */
-#define QTN_M2A_PS_EVENT_PS_POLL 4 /* ps poll */
-#define QTN_M2A_EVENT_TYPE_UAPSD_SP 5 /* U-APSD SP */
-#define QTN_M2A_EVENT_PTID_FLAG_SET 6 /* Set per-TID flag(muc) */
-#define QTN_M2A_EVENT_TYPE_TXBA_DISABLE 7 /* per VAP TX BA est control */
-
-/* Common definitions for flags used to indicate ieee80211_node's states */
-#define IEEE80211_NODE_AUTH 0x0001 /* authorized for data */
-#define IEEE80211_NODE_QOS 0x0002 /* QoS enabled */
-#define IEEE80211_NODE_ERP 0x0004 /* ERP enabled */
-#define IEEE80211_NODE_HT 0x0008 /* HT enabled */
-/* NB: this must have the same value as IEEE80211_FC1_PWR_MGT */
-#define IEEE80211_NODE_PWR_MGT 0x0010 /* power save mode enabled */
-#define IEEE80211_NODE_PS_DELIVERING 0x0040 /* STA out of PS, getting delivery */
-#define IEEE80211_NODE_PS_POLL 0x0080 /* power save ps poll mode */
-#define IEEE80211_NODE_AREF 0x0020 /* authentication ref held */
-#define IEEE80211_NODE_2_TX_CHAINS 0x0400 /* this node needs to use 2 TX chain only, for IOT purpose */
-#define IEEE80211_NODE_UAPSD 0x1000
-#define IEEE80211_NODE_WDS_PEER 0x2000 /* this node is the wds peer in a wds vap */
-#define IEEE80211_NODE_VHT 0x4000 /* VHT enabled */
-#define IEEE80211_NODE_TPC 0x8000 /* indicate tpc capability */
-
-/* Common definitions for ext_flags */
-#define IEEE80211_NODE_TDLS_PTI_REQ 0x0001 /* Should sending PTI request to peer */
-#define IEEE80211_NODE_TDLS_PTI_PENDING 0x0002 /* PTI request xmit to peer but not responsed */
-#define IEEE80211_NODE_UAPSD_SP_IN_PROGRESS 0x0004 /* U-APSD SP in progress */
-#define IEEE80211_NODE_TDLS_PTI_RESP 0x0008 /* PTI response frame received */
-#define IEEE80211_NODE_TDLS_AUTH 0x0010 /* authorized for TDLS link data */
-
-#define IEEE80211_NODE_TDLS_PTI_MASK 0x000B /* Mask for TDLS PTI bits */
-
-#define QTN_VAP_PRIORITY_RESERVED 2 /* reserve the low values for internal use */
-#define QTN_VAP_PRIORITY_NUM 4
-#define QTN_VAP_PRIORITY_MGMT (QTN_VAP_PRIORITY_RESERVED + QTN_VAP_PRIORITY_NUM)
-#define QTN_TACMAP_HW_PRI_NUM 8 /* hw limitation for 128 node mode */
-#define QTN_TACMAP_PRI_PER_VAP 8 /* for maximum 8 TIDs */
-#define QTN_TACMAP_SW_PRI_BASE 64 /* values below this are used for "bad apple" nodes */
-
-/* Quantenna specific flags (ni_qtn_flags), do not modify in Auc */
-#define QTN_IS_BCM_NODE 0x0000001
-#define QTN_IS_INTEL_5100_NODE 0x0000002
-#define QTN_IS_INTEL_5300_NODE 0x0000004
-#define QTN_IS_GALAXY_NOTE_4_NODE 0x0000008
-#define QTN_IS_NOT_4ADDR_CAPABLE_NODE 0x0000010
-#define QTN_AC_BE_INHERITANCE_UPTO_VO 0x0000020
-#define QTN_AC_BE_INHERITANCE_UPTO_VI 0x0000040
-#define QTN_IS_INTEL_NODE 0x0000080
-#define QTN_IS_REALTEK_NODE 0x0000100
-#define QTN_NODE_TX_RESTRICTED 0x0000200 /* restricted tx enabled */
-#define QTN_NODE_TX_RESTRICT_RTS 0x0000400 /* use RTS to confirm node is lost */
-#define QTN_OPTI_NODE 0x0000800
-#define QTN_NODE_RXAMSDU_SUPPORT 0x0001000 /* node support TX amsdu */
-#define QTN_NODE_11N_TXAMSDU_OFF 0x0002000
-#define QTN_NODE_TXOP_RESTRICTED 0x0004000
-/*
- * Bits that can be updated again by Lhost after association creation. Explicit definition helps
- * avoid overwriting bits maintained by MuC itself.
- */
-#define QTN_FLAGS_UPDATABLE_BITS (QTN_IS_INTEL_NODE)
-
-/* QTN bandwidth definition - make sure this is up-to-date with regards
- * to txbf_common.h
- */
-#define QTN_BW_20M 0
-#define QTN_BW_40M 1
-#define QTN_BW_80M 2
-#define QTN_BW_MAX QTN_BW_80M
-
-#define QTN_MAILBOX_INVALID 0xffffffff /* Invalid value to indicate mailbox is disabled */
-
-enum ni_tdls_status {
- IEEE80211_TDLS_NODE_STATUS_NONE = 0,
- IEEE80211_TDLS_NODE_STATUS_INACTIVE = 1,
- IEEE80211_TDLS_NODE_STATUS_STARTING = 2,
- IEEE80211_TDLS_NODE_STATUS_ACTIVE = 3,
- IEEE80211_TDLS_NODE_STATUS_IDLE = 4
-};
-
-/* WoWLAN APIs */
-enum qtn_vap_wowlan_cmds {
- IEEE80211_WOWLAN_HOST_POWER_SAVE = 1,
- IEEE80211_WOWLAN_MATCH_TYPE,
- IEEE80211_WOWLAN_L2_ETHER_TYPE,
- IEEE80211_WOWLAN_L3_UDP_PORT,
- IEEE80211_WOWLAN_MAGIC_PATTERN,
- IEEE80211_WOWLAN_MAGIC_PATTERN_GET,
- IEEE80211_WOWLAN_SET_MAX
-};
-/*
- * Definitions relating to individual fields from phy_stats,
- * shared between the Q driver and the APIs.
- */
-
-/*
- * Error Sum needs to be reported together with the corresponding Number of
- * Symbols; getting them in separate operations would introduce a race condition
- * where the Error Sum and the Number of Symbols came from different
- * PHY stat blocks.
- */
-
-#define QTN_PHY_AVG_ERROR_SUM_NSYM_NAME "avg_error_sum_nsym"
-
-#define QTN_PHY_EVM_MANTISSA_SHIFT 5
-#define QTN_PHY_EVM_EXPONENT_MASK 0x1f
-
-enum qtn_phy_stat_field {
- QTN_PHY_NOSUCH_FIELD = -1,
- QTN_PHY_AVG_ERROR_SUM_NSYM_FIELD,
-};
-
-#define QTN_M2A_TX_SCALE_BITS 4
-#define QTN_M2A_TX_SCALE_MASK ((1 << QTN_M2A_TX_SCALE_BITS) - 1)
-
-/* only for little endian */
-#if defined(AUC_BUILD)
-#define U64_LOW32(_v) ((uint32_t)(_v))
-#define U64_HIGH32(_v) ((uint32_t)((_v) >> 32))
-#else
-#define U64_LOW32(_v) (((uint32_t*)&(_v))[0])
-#define U64_HIGH32(_v) (((uint32_t*)&(_v))[1])
-#endif
-
-#define U64_COMPARE_GE(_a, _b) ((U64_HIGH32(_a) > U64_HIGH32(_b)) || \
- ((U64_HIGH32(_a) == U64_HIGH32(_b)) && (U64_LOW32(_a) >= U64_LOW32(_b))))
-
-#define U64_COMPARE_GT(_a, _b) ((U64_HIGH32(_a) > U64_HIGH32(_b)) || \
- ((U64_HIGH32(_a) == U64_HIGH32(_b)) && (U64_LOW32(_a) > U64_LOW32(_b))))
-
-#define U64_COMPARE_LE(_a, _b) ((U64_HIGH32(_a) < U64_HIGH32(_b)) || \
- ((U64_HIGH32(_a) == U64_HIGH32(_b)) && (U64_LOW32(_a) <= U64_LOW32(_b))))
-
-#define U64_COMPARE_LT(_a, _b) ((U64_HIGH32(_a) < U64_HIGH32(_b)) || \
- ((U64_HIGH32(_a) == U64_HIGH32(_b)) && (U64_LOW32(_a) < U64_LOW32(_b))))
-
-#ifndef MAC2STR
-#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
-#define MACSTR "%02X:%02X:%02X:%02X:%02X:%02X"
-#define MACSTRL "%02x:%02x:%02x:%02x:%02x:%02x" /* for MuC and Auc which don't support "X" */
-#endif
-
-/*
- * VSP/QTM
- * Macro TOPAZ_QTM is used to help identify changes between original VSP and QTM.
- * In Lhost kernel driver, it must be used within CONFIG_QVSP(in kernel .config).
- * CONFIG_QVSP TOPAZ_QTM ruby topaz
- * Y 1 invalid *QTM works
- * Y 0 *VSP works VSP alive but doesn't work for HDP
- * N 1 invalid *no VSP/QTM
- * N 0 *no VSP no VSP/QTM, and no QTM changes in MuC and AuC
- * So generally, sololy changing CONFIG_QVSP works for both ruby and topaz as indicated by *.
- * But to throughly clean QTM code in AuC and MuC, disable TOPAZ_QTM in topaz below.
- */
-#define TOPAZ_QTM 1
-
-#define COMPILE_TIME_ASSERT(constant_expr) \
-do { \
- switch(0) { \
- case 0: \
- case constant_expr: \
- ; \
- } \
-} while(0)
-
-/**@addtogroup DFSAPIs
- *@{*/
-/**
- * Reason for channel change
- */
-#define CSW_REASON_MASK 0xff
-#define CSW_SCS_FLAG_SHIFT 16
-#define CSW_SCS_FLAG_MASK 0xff0000
-#define CSW_SCS_FLAG_STRING_MAX 64
-
-#define CSW_REASON_GET_SCS_FLAG(_reason) (((_reason) & CSW_SCS_FLAG_MASK) >> CSW_SCS_FLAG_SHIFT)
-#define CSW_REASON_SET_SCS_FLAG(_scs_flag, _reason) ((((_scs_flag) << CSW_SCS_FLAG_SHIFT) & CSW_SCS_FLAG_MASK) | (_reason))
-enum ieee80211_csw_reason {
- /**
- * Reason is unknown
- */
- IEEE80211_CSW_REASON_UNKNOWN,
- /**
- * Smart channel selection
- */
- IEEE80211_CSW_REASON_SCS,
- /**
- * Radar detection
- */
- IEEE80211_CSW_REASON_DFS,
- /**
- * Channel set by user
- */
- IEEE80211_CSW_REASON_MANUAL,
- /**
- * Configuration change
- */
- IEEE80211_CSW_REASON_CONFIG,
- /**
- * Scan initiated by user
- */
- IEEE80211_CSW_REASON_SCAN,
- /**
- * Off-channel CAC
- */
- IEEE80211_CSW_REASON_OCAC,
- /**
- * Channel switch announcement
- */
- IEEE80211_CSW_REASON_CSA,
- /**
- * TDLS Channel switch announcement
- */
- IEEE80211_CSW_REASON_TDLS_CS,
- /**
- * Number of values
- */
- IEEE80211_CSW_REASON_MAX
-};
-/**@}*/
-
-/*
- * Reasons for channel switches that are not recorded and therefore
- * should not be listed in QCSAPI documentation
- */
-enum ieee80211_csw_reason_private {
- IEEE80211_CSW_REASON_SAMPLING = IEEE80211_CSW_REASON_MAX,
- IEEE80211_CSW_REASON_OCAC_RUN,
- IEEE80211_CSW_REASON_BGSCAN,
-};
-
-/* Keep this in sync with swfeat_desc */
-enum swfeat {
- SWFEAT_ID_MODE_AP,
- SWFEAT_ID_MODE_STA,
- SWFEAT_ID_MODE_REPEATER,
- SWFEAT_ID_PCIE_RC,
- SWFEAT_ID_VHT,
- SWFEAT_ID_2X2,
- SWFEAT_ID_2X4,
- SWFEAT_ID_3X3,
- SWFEAT_ID_4X4,
- SWFEAT_ID_HS20,
- SWFEAT_ID_WPA2_ENT,
- SWFEAT_ID_MESH,
- SWFEAT_ID_TDLS,
- SWFEAT_ID_OCAC,
- SWFEAT_ID_QHOP,
- SWFEAT_ID_QSV,
- SWFEAT_ID_QSV_NEIGH,
- SWFEAT_ID_MU_MIMO,
- SWFEAT_ID_DUAL_CHAN_VIRT,
- SWFEAT_ID_DUAL_CHAN,
- SWFEAT_ID_DUAL_BAND_VIRT,
- SWFEAT_ID_DUAL_BAND,
- SWFEAT_ID_QTM_PRIO,
- SWFEAT_ID_QTM,
- SWFEAT_ID_SPEC_ANALYZER,
- SWFEAT_ID_MAX
-};
-
-#define SWFEAT_MAP_SIZE (SWFEAT_ID_MAX / 8 + 1)
-
-/* Used to scale temperature measurements */
-#define QDRV_TEMPSENS_COEFF 100000
-#define QDRV_TEMPSENS_COEFF10 (10 * QDRV_TEMPSENS_COEFF)
-
-/* Aligns the supplied size to the specified power_of_two */
-#define QTN_ALIGN_TO(size_to_align, power_of_two) \
- (((size_to_align) + (power_of_two) - 1) & ~((power_of_two) - 1))
-
-#define FIELD_ARRAY_SIZE(t, a) (sizeof((((t*)0)->a))/sizeof(((((t*)0)->a))[0]))
-
-#endif /* _SHARED_DEFS_H_ */
diff --git a/quantenna/include/qtn/shared_params.h b/quantenna/include/qtn/shared_params.h
deleted file mode 100644
index 2b039c5..0000000
--- a/quantenna/include/qtn/shared_params.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2010 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications Inc **
-** File : shared_params.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _SHARED_PARAMS_H_
-#define _SHARED_PARAMS_H_
-
-#ifndef SYSTEM_BUILD
-#include "../common/ruby_config.h"
-#endif
-#include <qtn/shared_defs.h>
-#include <qtn/topaz_shared_params.h>
-
-/*
- * Forward declarations.
- */
-struct qtn_txbf_mbox;
-struct qtn_bb_mutex;
-struct qtn_csa_info;
-struct qtn_samp_chan_info;
-struct qtn_scs_info;
-struct qtn_scs_info_set;
-struct qtn_ocac_info;
-
-#define QTN_SEM_TRACE 1
-/*
- * As DSP accesses sempahore with high frequency, to minimize performance impact, it would be better to
- * enable DSP sem trace log only in non-release build.
- */
-#define QTN_SEM_TRACE_DSP 0
-#if QTN_SEM_TRACE
-struct qtn_sem_trace_log;
-#endif
-
-#ifndef IEEE80211_ADDR_LEN
- #define IEEE80211_ADDR_LEN 6
-#endif
-
-#define MUC_FCS_CORRUPTION 0x00000001
-#define MUC_QOS_Q_MERGE 0x00000002
-
-#define MUC_PROFILE_DROP 0x08000000
-#define MUC_PROFILE_DCACHE 0x10000000
-#define MUC_PROFILE_P 0x20000000
-#define MUC_PROFILE_EP 0x40000000
-#define MUC_PROFILE_IPTR 0x80000000
-
-#define MUC_BOOT_WAIT_SECS 20
-
-#define CHIP_ID_RUBY 0x30
-#define CHIP_ID_TOPAZ 0x40
-#define REV_ID_RUBY_A 0x0
-#define REV_ID_RUBY_B 0x1
-#define REV_ID_RUBY_D 0x3
-#define REV_ID_TOPAZ_A 0x0
-#define REV_ID_TOPAZ_B 0x1
-#define REV_ID_TOPAZ_A2 0x3
-#define HARDWARE_REVISION_UNKNOWN 0
-#define HARDWARE_REVISION_RUBY_A 1
-#define HARDWARE_REVISION_RUBY_B 2
-#define HARDWARE_REVISION_RUBY_D 3
-#define HARDWARE_REVISION_TOPAZ_A 4
-#define HARDWARE_REVISION_TOPAZ_B 5
-#define HARDWARE_REVISION_TOPAZ_A2 6
-#define CHIP_ID_MASK 0xF0
-#define CHIP_ID_SW_MASK 0xC0 /* bits set in sw, for downgrade only */
-#define CHIP_REV_ID_MASK 0x0F
-
-#define HW_OPTION_BONDING_RUBY_PROD (HARDWARE_REVISION_RUBY_D << 8)
-#define HW_OPTION_BONDING_RUBY_UNKNOWN (HW_OPTION_BONDING_RUBY_PROD | 0x00000000)
-#define HW_OPTION_BONDING_RUBY_2x4STA (HW_OPTION_BONDING_RUBY_PROD | 0x00000001)
-#define HW_OPTION_BONDING_RUBY_4SS (HW_OPTION_BONDING_RUBY_PROD | 0x00000002)
-
-#define HW_PLAT_TOPAZ_QV860 0x00
-#define HW_PLAT_TOPAZ_QV860_2X2 0x80 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV860_2X4 0x40 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV860_3X3 0xF0 /* downgrade only */
-#define HW_PLAT_TOPAZ_QD840 0x01
-#define HW_PLAT_TOPAZ_QV880 0x32
-#define HW_PLAT_TOPAZ_QV880_2X2 0xb2 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV880_2X4 0x72 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV880_3X3 0xF2 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV920 0x03
-#define HW_PLAT_TOPAZ_QV920_2X4 0x43 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV840 0x04
-#define HW_PLAT_TOPAZ_QV840_2X4 0x44 /* downgrade only */
-#define HW_PLAT_TOPAZ_QV940 0x05
-#define HW_PLAT_TOPAZ_QV840C 0x06
-
-#define HW_OPTION_BONDING_TOPAZ_PROD (HARDWARE_REVISION_TOPAZ_B << 8)
-enum hw_opt_t {
- HW_OPTION_BONDING_TOPAZ_QV860 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV860),
- HW_OPTION_BONDING_TOPAZ_QV860_2X2 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV860_2X2),
- HW_OPTION_BONDING_TOPAZ_QV860_2X4 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV860_2X4),
- HW_OPTION_BONDING_TOPAZ_QV860_3X3 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV860_3X3),
- HW_OPTION_BONDING_TOPAZ_QD840 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QD840),
- HW_OPTION_BONDING_TOPAZ_QV880 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV880),
- HW_OPTION_BONDING_TOPAZ_QV880_2X2 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV880_2X2),
- HW_OPTION_BONDING_TOPAZ_QV880_2X4 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV880_2X4),
- HW_OPTION_BONDING_TOPAZ_QV880_3X3 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV880_3X3),
- HW_OPTION_BONDING_TOPAZ_QV920 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV920),
- HW_OPTION_BONDING_TOPAZ_QV920_2X4 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV920_2X4),
- HW_OPTION_BONDING_TOPAZ_QV840 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV840),
- HW_OPTION_BONDING_TOPAZ_QV840_2X4 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV840_2X4),
- HW_OPTION_BONDING_TOPAZ_QV940 = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV940),
- HW_OPTION_BONDING_TOPAZ_QV840C = (HW_OPTION_BONDING_TOPAZ_PROD | HW_PLAT_TOPAZ_QV840C),
-};
-
-#define HW_OPTION_BONDING_NOT_SET 0xFFFFFFFF
-
-typedef struct shared_params
-{
- u_int32_t tqe_sem_en; /*replaced for TQE SWR lh_flags; */
- u_int16_t lh_chip_id;
- u_int8_t rf_chip_id;
- u_int8_t vco_lock_detect_mode;
- u_int8_t lh_wifi_hw;
- u_int8_t lh_num_devices;
- u_int8_t lh_mac_0[ IEEE80211_ADDR_LEN ];
- u_int8_t lh_mac_1[ IEEE80211_ADDR_LEN ];
-
- u_int32_t uc_flags;
- u_int32_t uc_hostlink;
-
- u_int32_t m2l_hostlink_mbox;
- u_int32_t m2l_printbuf_producer;
-
- u_int64_t last_chan_sw_tsf;
- u_int32_t l2m_sem;
- u_int32_t m2l_sem;
-
- int hardware_revision;
- uint32_t hardware_options;
- uint8_t swfeat_map[SWFEAT_MAP_SIZE];
- int8_t shortrange_scancnt;
- uint8_t slow_ethernet_war;
- uint8_t calstate;
- uint8_t post_rfloop;
-#define QTN_IOT_INTEL5100_TWEAK 0x00000001
-#define QTN_IOT_INTEL6200_TWEAK 0x00000002
-#define QTN_IOT_INTEL6300_TWEAK 0x00000004
-#define QTN_IOT_INTELFD_TWEAK 0x00000008
-#define QTN_IOT_INTEL_SEND_NCW_ACTION 0x00000010 /* IOT action: send Notify Channel Width Action frame to Intel */
-#define QTN_IOT_BCM_TWEAK 0x00000020 /* Disable aggregation on Broadcom MBP clients */
-#define QTN_IOT_INTEL_NOAGG2TXCHAIN_TWEAK 0x00000040 /* NO Aggregation & 2 Tx chain restriction for some Intel */
-#define QTN_IOT_BCM_NO_3SS_MCS_TWEAK 0x00000080 /* Disable 3ss MCS for Broadcom MBP clients */
-#define QTN_IOT_BCM_AMSDU_DUTY_TWEAK 0x00000100 /* AMSDU duty cycle tweak */
-#define QTN_IOT_BCM_MBA_AMSDU_TWEAK 0x00000200 /* MBA doesn't work with 7.9k AMSDU with security mode */
-#define QTN_IOT_RLNK_NO_3SS_MCS_TWEAK 0x00000400 /* Disable 3ss MCS for Ralink clients */
-#define QTN_IOT_RTK_NO_AMSDU_TWEAK 0x00000800 /* Disable A-MSDU for Realtek devices */
-#define QTN_IOT_DEFAULT_TWEAK (QTN_IOT_BCM_MBA_AMSDU_TWEAK | \
- QTN_IOT_BCM_AMSDU_DUTY_TWEAK | \
- QTN_IOT_RLNK_NO_3SS_MCS_TWEAK | \
- QTN_IOT_RTK_NO_AMSDU_TWEAK \
- )
- uint32_t iot_tweaks;
-
- struct qtn_txbf_mbox* txbf_mbox_lhost;
- struct qtn_txbf_mbox* txbf_mbox_bus;
-
- struct qtn_muc_dsp_mbox *muc_dsp_mbox_lhost;
- struct qtn_muc_dsp_mbox *muc_dsp_mbox_bus;
-
- struct qtn_bb_mutex* bb_mutex_lhost;
- struct qtn_bb_mutex* bb_mutex_bus;
-
- struct qtn_csa_info* csa_lhost;
- struct qtn_csa_info* csa_bus;
-
- struct qtn_samp_chan_info* chan_sample_lhost;
- struct qtn_samp_chan_info* chan_sample_bus;
-
- struct qtn_scan_chan_info* chan_scan_lhost;
- struct qtn_scan_chan_info* chan_scan_bus;
-
- struct qtn_scs_info_set* scs_info_lhost;
- struct qtn_scs_info_set* scs_info_bus;
-
- struct qtn_remain_chan_info* remain_chan_lhost;
- struct qtn_remain_chan_info* remain_chan_bus;
- struct qtn_ocac_info* ocac_lhost;
- struct qtn_ocac_info* ocac_bus;
-
- struct qtn_bmps_info* bmps_lhost;
- struct qtn_bmps_info* bmps_bus;
-
- struct qtn_meas_chan_info* chan_meas_lhost;
- struct qtn_meas_chan_info* chan_meas_bus;
-
-#if QTN_SEM_TRACE
- struct qtn_sem_trace_log *sem_trace_log_lhost;
- struct qtn_sem_trace_log *sem_trace_log_bus;
-#endif
-
- struct qtn_vlan_dev **vdev_lhost;
- struct qtn_vlan_dev **vdev_bus;
- struct qtn_vlan_dev **vport_lhost;
- struct qtn_vlan_dev **vport_bus;
- struct topaz_ipmac_uc_table *ipmac_table_bus;
- struct qtn_vlan_info *vlan_info;
-
-#if CONFIG_RUBY_BROKEN_IPC_IRQS
- u_int32_t m2l_irq[2];
-#endif
-
- void * p_debug_1;
- int debug_1_arg;
- void * p_debug_2;
- int debug_2_arg;
-
- u_int32_t pm_duty_lock;
-
-#define QTN_EXT_LNA_GAIN_MAX 126
- int ext_lna_gain;
- int ext_lna_bypass_gain;
- int tx_power_cal;
- int hardware_id;
- int min_tx_power;
- int max_tx_power;
-#define QTN_FW_VERSION_LENGTH 32
- char fw_version[QTN_FW_VERSION_LENGTH + 1];
-#ifndef SYSTEM_BUILD
- shared_params_auc auc;
-#endif
-
- int cca_adjusting_flag;
- int active_tid_num;
- uint32_t bb_param;
- uint32_t cs_thresh_base_val; /* Carrier sense threshold base value */
- uint32_t qtn_hal_pm_corrupt;
- uint32_t qtn_hal_pm_corrupt_debug;
- uint32_t free_airtime; /* in ms */
-} shared_params;
-
-#define QTN_RATE_TRAIN_DATA_LEN 64
-#define QTN_RATE_TRAIN_BYTE 0x2A
-
-#endif /* _SHARED_PARAMS_H_ */
diff --git a/quantenna/include/qtn/shared_print_buf.h b/quantenna/include/qtn/shared_print_buf.h
deleted file mode 100644
index aef5085..0000000
--- a/quantenna/include/qtn/shared_print_buf.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __SHARED_PRINT_BUF
-#define __SHARED_PRINT_BUF
-
-struct shared_print_producer {
- u32 produced;
- u32 bufsize;
- char* buf; /* producer address space ptr */
-};
-
-struct shared_print_consumer {
- const volatile struct shared_print_producer * producer;
- u32 consumed;
- char* buf; /* consumer address space ptr */
-};
-
-#endif // __SHARED_PRINT_BUF
diff --git a/quantenna/include/qtn/skb_recycle.h b/quantenna/include/qtn/skb_recycle.h
deleted file mode 100644
index b3f7494..0000000
--- a/quantenna/include/qtn/skb_recycle.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_SKBUFF_H
-#define __QTN_SKBUFF_H
-
-#include <common/queue.h>
-#include <linux/spinlock.h>
-#include <linux/skbuff.h>
-#include <linux/version.h>
-#include <linux/interrupt.h>
-
-#include "qtn_global.h"
-#include "qtn_skb_size.h"
-#include "qtn_buffers.h"
-
-#define SKB_RECYCLE_STATS
-
-#ifdef SKB_RECYCLE_STATS
-#define SKB_RECYCLE_STAT(x) ((x) = (x) + 1)
-#else
-#define SKB_RECYCLE_STAT(x)
-#endif
-
-#define QTN_SKB_RECYCLE_ENABLE 0
-
-/**
- * \addtogroup LHOST_STATS
- */
-/** @{ */
-
-/**
- * \brief Linux SKB recycle statistics.
- *
- * These statistics are generated and counted per-interface. They are used
- * primarily as a performance metric - the more recylcling that succeeds, the
- * more efficient the system will be (less chance for bottlenecks/dropped
- * packets).
- */
-struct qtn_skb_recycle_stats {
- /**
- * The number of packets for the given interface that have been
- * successfully recycled.
- */
- u32 free_recycle_pass;
-
- /**
- * The number of packets for the given interface that have failed to
- * be recycled. If this counter is constantly increasing at a rapid
- * rate (approx. the same as the per-packet count of traffic streams),
- * then this can indicate a performance issue.
- */
- u32 free_recycle_fail;
-
- /**
- * This counter shows the number of undersized packets that have been
- * incorrectly pushed to the recycle code.
- *
- * \note It is an error for this counter to be anything other than
- * zero.
- */
- u32 free_recycle_fail_undersize;
-
- /**
- * This counter shows the number of packets that have been allocated
- * off the shared buffer pool.
- */
- u32 alloc_recycle;
-
- /**
- * This counter shows the number of packets that have dropped back to
- * the kernel alloc function due to not having any packets in the
- * recycle pool.
- */
- u32 alloc_kmalloc;
-};
-/** @} */
-
-struct qtn_skb_recycle_list {
- struct sk_buff_head list; /* Shared buffers between wireless and Ethernet driver */
- int max; /* Maximum size of the skb_list */
- struct qtn_skb_recycle_stats stats_qdrv; /* skb free/alloc stats for qdrv */
- struct qtn_skb_recycle_stats stats_eth; /* skb free/alloc stats for ethernet driver */
-#if defined(CONFIG_RUBY_PCIE_HOST) || defined(CONFIG_RUBY_PCIE_TARGET) \
- || defined(CONFIG_TOPAZ_PCIE_HOST) || defined(CONFIG_TOPAZ_PCIE_TARGET)
- struct qtn_skb_recycle_stats stats_pcie; /* skb free/alloc stats for pcie driver */
-#endif
- struct qtn_skb_recycle_stats stats_kfree; /* skb free stats for the kfree_skb collector */
- int (*recycle_func)(struct qtn_skb_recycle_list *recycle_list,
- struct sk_buff *skb); /* skb recycling check function */
-};
-
-
-/* Define RX buffer size and mapping */
-__inline__ static unsigned long rx_buf_map_size(void)
-{
- return RX_BUF_SIZE + roundup(NET_IP_ALIGN, dma_get_cache_alignment());
-}
-__inline__ static unsigned long qtn_rx_buf_size(void)
-{
- /*
- * Make sure that we can flush cache (both beginning and ending
- * must be aligned on cache line) - otherwise flush would not work.
- * Also make sure that we can reserve NET_IP_ALIGN
- * at the beginning of data after do cache flush.
- * Without NET_IP_ALIGN reserving IP header will be not aligned
- * and network stack can kick unaligned access exception, which is expensive
- * or even would crash kernel if unaligned access handler is not implemented.
- */
- return rx_buf_map_size() + dma_get_cache_alignment() - 1;
-}
-
-#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,30)
-static inline struct dst_entry *skb_dst(struct sk_buff *skb)
-{
- return skb->dst;
-}
-#endif
-
-static __inline__ int __qtn_skb_recyclable_check(struct qtn_skb_recycle_stats *stats, struct sk_buff *skb)
-{
- if (!QTN_SKB_RECYCLE_ENABLE) {
- return 0;
- }
-
- if (unlikely(skb->next)) {
- printk(KERN_EMERG "skb being recycled: 0x%p is queued\n", skb);
- return 0;
- }
-
- if (!skb->is_recyclable ||
- skb->next ||
- skb_dst(skb) ||
- skb_shared(skb) ||
- skb_is_nonlinear(skb) ||
- skb_shinfo(skb)->nr_frags ||
- skb_shinfo(skb)->frag_list ||
- skb_shinfo(skb)->gso_size ||
- skb_cloned(skb) ||
- atomic_read(&(skb_shinfo(skb)->dataref)) != 1) {
- return 0;
- }
-
- /* check for undersize skb; this should never happen, and indicates problems elsewhere */
- if (skb_end_pointer(skb) - skb->head < qtn_rx_buf_size()) {
- SKB_RECYCLE_STAT(stats->free_recycle_fail_undersize);
- return 0;
- }
-
- return 1;
-}
-
-static __inline__ struct sk_buff *qtn_skb_recycle_list_pop(
- struct qtn_skb_recycle_list *recycle_list,
- struct qtn_skb_recycle_stats *stats)
-{
- struct sk_buff *skb = NULL;
- unsigned long flags;
-
- if (!QTN_SKB_RECYCLE_ENABLE) {
- return NULL;
- }
-
- spin_lock_irqsave(&recycle_list->list.lock, flags);
- skb = __skb_dequeue(&recycle_list->list);
- if (skb) {
- SKB_RECYCLE_STAT(stats->alloc_recycle);
- } else {
- SKB_RECYCLE_STAT(stats->alloc_kmalloc);
- }
- spin_unlock_irqrestore(&recycle_list->list.lock, flags);
-
- return skb;
-}
-
-/*
- * Push a used skb onto the recycle list. returns 1 if it was pushed onto the list
- */
-static __inline__ int qtn_skb_recycle_list_push(struct qtn_skb_recycle_list *recycle_list,
- struct qtn_skb_recycle_stats *stats, struct sk_buff *skb)
-{
- int pushed = 0;
- unsigned long flags;
- struct skb_shared_info *shinfo;
-
- if (!QTN_SKB_RECYCLE_ENABLE) {
- return 0;
- }
-
- spin_lock_irqsave(&recycle_list->list.lock, flags);
-
- if (skb_queue_len(&recycle_list->list) < recycle_list->max) {
- if (__qtn_skb_recyclable_check(stats, skb)) {
- if (skb->destructor) {
- WARN_ON(in_irq());
- skb->destructor(skb);
- skb->destructor = NULL;
- }
-
- skb->len = 0;
- skb->priority = 0;
- skb->dest_port = 0;
- skb->src_port = 0;
- skb->is_recyclable = 0;
- skb->tail = skb->data = skb->head;
- skb->vlan_tci = 0;
- skb->orig_dev = NULL;
- skb_reserve(skb, NET_SKB_PAD);
-
- memset(skb->cb, 0, sizeof(skb->cb));
- memset(&skb->qtn_cb, 0, sizeof(skb->qtn_cb));
-
- shinfo = skb_shinfo(skb);
- memset(shinfo, 0, offsetof(struct skb_shared_info, dataref));
-
- __skb_queue_tail(&recycle_list->list, skb);
- pushed = 1;
- }
- }
-
- spin_unlock_irqrestore(&recycle_list->list.lock, flags);
-
- if (pushed) {
- SKB_RECYCLE_STAT(stats->free_recycle_pass);
- } else {
- SKB_RECYCLE_STAT(stats->free_recycle_fail);
- }
-
- return pushed;
-}
-
-static __inline__ struct qtn_skb_recycle_list *qtn_get_shared_recycle_list(void)
-{
- extern struct qtn_skb_recycle_list __qtn_skb_recycle_list;
- return &__qtn_skb_recycle_list;
-}
-
-#endif // __QTN_SKBUFF_H
-
diff --git a/quantenna/include/qtn/topaz_congest_queue.h b/quantenna/include/qtn/topaz_congest_queue.h
deleted file mode 100644
index f97c6cd..0000000
--- a/quantenna/include/qtn/topaz_congest_queue.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
- * Copyright (c) 2012-2013 Quantenna Communications, Inc.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- **/
-#ifndef __DRIVERS_NET_TOPAZ_CONGEST_H
-#define __DRIVERS_NET_TOPAZ_CONGEST_H
-
-#include <asm/param.h>
-#include <qtn/topaz_tqe_cpuif.h>
-
-/* Total number of congestion queues we will pre-allocated */
-#define TOPAZ_CONGEST_QUEUE_NUM (6)
-/* Maximum number of packets in one queue */
-#define TOPAZ_CONGEST_PKT_MAX (2048)
-/* Maximum number of packets in all congest queues */
-#define TOPAZ_CONGEST_TOTAL_PKT_MAX (2048)
-/* Maximum number of congest queue for unicast frame */
-#define TOPAZ_CONGEST_MAX_UNICAST_QCOUNT (3)
-
-/* Budget for packet number consmued at softirq at one time */
-#define TOPAZ_SOFTIRQ_BUDGET 8
-
-#define TOPAZ_PCIE_NODE_MAX (128)
-#define TOPAZ_PCIE_TID_MAX (16)
-
-#define TOPAZ_CONGEST_QUEUE_STATS_QLEN 0
-#define TOPAZ_CONGEST_QUEUE_STATS_ENQFAIL 1
-
-struct topaz_congest_q_elem {
- union topaz_tqe_cpuif_ppctl ppctl;
-};
-
-/* Congestion queue descriptor */
-struct topaz_congest_q_desc {
- struct topaz_congest_q_elem elems[TOPAZ_CONGEST_PKT_MAX];
- uint32_t head; /* The index of packet to be sent */
- uint32_t tail; /* The index of packet to be append */
- uint32_t qlen; /* Total number of pending requests per queue*/
-
- uint32_t valid;
- uint32_t index;
- uint32_t node_id;
- uint32_t tid;
-
- uint32_t congest_xmit; /* Packet number forwarded successfully */
- uint32_t congest_drop; /* Packet number dropped due to transmission time-out */
- uint32_t congest_enq_fail; /* packet number dropped due to enqueue failure */
-
- uint32_t last_retry_success; /* 0: Fail, 1: Success */
- unsigned long retry_timeout;
- uint32_t is_unicast;
-
- struct topaz_congest_queue *congest_queue;
-};
-
-struct topaz_congest_queue {
- struct vmac_priv *vmp;
- int (*xmit_func)(union topaz_tqe_cpuif_ppctl *);
- int (*tasklet_extra_proc)(void *);
-
- struct topaz_congest_q_desc queues[TOPAZ_CONGEST_QUEUE_NUM];
-
- /* A pointer array, if queues[node_id][tid] is not NULL, node-tid queue is congested
- * and it will point to attached congested queue.
- */
- struct topaz_congest_q_desc* ptrs[TOPAZ_PCIE_NODE_MAX][TOPAZ_PCIE_TID_MAX];
- struct tasklet_struct congest_tx;
-
- /* Counters */
- uint32_t func_entry; /* tasklet hook function called count */
- uint32_t cnt_retries; /* tried times on triggering to TQE */
- uint32_t xmit_entry;
-
- int logs[TOPAZ_CONGEST_PKT_MAX]; /* Used to check queue fullness */
-
- uint32_t congest_timeout;
- uint32_t tasklet_budget;
-
- uint32_t total_qlen; /* Total number of pending requests in all queues*/
-
- uint32_t unicast_qcount; /* Total congest queue count of unicast frame */
- uint32_t max_unicast_qcount; /* Max unicast congest queue count*/
-};
-
-struct qdrv_tqe_cgq {
- uint32_t congest_qlen;
-};
-/**
-* Return NULL if node-tid pair is not congested, not NULL otherwise.
-*/
-RUBY_INLINE int
-topaz_queue_congested(struct topaz_congest_queue *congest_queue, uint32_t node_id, uint32_t tid)
-{
- BUG_ON(node_id >= TOPAZ_PCIE_NODE_MAX);
- BUG_ON(tid >= TOPAZ_PCIE_TID_MAX);
-
- return (int)congest_queue->ptrs[node_id][tid];
-}
-
-RUBY_INLINE struct topaz_congest_q_desc*
-topaz_get_congest_queue(struct topaz_congest_queue *congest_queue, uint32_t node_id, uint32_t tid)
-{
- return congest_queue->ptrs[node_id][tid];
-}
-
-static inline uint32_t get_timestamp(void)
-{
- return read_new_aux_reg(ARC_REG_TIMER1_CNT);
-}
-
-/**
-* Return NULL if failed
-*/
-extern struct topaz_congest_queue* topaz_congest_queue_init(void);
-
-extern void topaz_congest_queue_exit(struct topaz_congest_queue* congest_queue);
-
-/**
-* Push ppctl into congestion queue.
-*/
-
-extern int topaz_congest_enqueue(struct topaz_congest_q_desc* queue, union topaz_tqe_cpuif_ppctl *ppctl);
-
-extern void topaz_congest_dump(struct topaz_congest_queue *queue);
-
-extern struct topaz_congest_q_desc* topaz_congest_alloc_unicast_queue(struct topaz_congest_queue *congest_queue,
- uint32_t node_id,
- uint32_t tid);
-
-extern struct topaz_congest_q_desc* topaz_congest_alloc_queue(struct topaz_congest_queue *congest_queue, uint32_t node_id, uint32_t tid);
-
-extern int topaz_congest_queue_xmit(struct topaz_congest_q_desc *queue, uint32_t budget);
-
-extern void reg_congest_queue_stats(void (*fn)(void *, uint32_t, uint8_t, uint32_t), void *ctx);
-
-extern struct topaz_congest_queue* topaz_congest_queue_get(void);
-
-extern void topaz_hbm_congest_queue_put_buf(const union topaz_tqe_cpuif_ppctl *ppctl);
-
-extern void topaz_congest_set_unicast_queue_count(uint32_t qnum);
-#endif
diff --git a/quantenna/include/qtn/topaz_dpi.h b/quantenna/include/qtn/topaz_dpi.h
deleted file mode 100644
index b96228c..0000000
--- a/quantenna/include/qtn/topaz_dpi.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_DPI_H
-#define __TOPAZ_DPI_H
-
-#include <common/topaz_emac.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-#include <compat.h>
-
-struct topaz_dpi_field_def {
- uint32_t val;
- uint32_t mask;
- union topaz_emac_rx_dpi_ctrl ctrl;
-};
-
-#define TOPAZ_DPI_ANCHOR_FRAME_START 0x0000
-#define TOPAZ_DPI_ANCHOR_VLAN0 0x0001
-#define TOPAZ_DPI_ANCHOR_VLAN1 0x0002
-#define TOPAZ_DPI_ANCHOR_VLAN2 0x0003
-#define TOPAZ_DPI_ANCHOR_VLAN3 0x0004
-#define TOPAZ_DPI_ANCHOR_OTHER 0x0005
-#define TOPAZ_DPI_ANCHOR_LLC 0x0006
-#define TOPAZ_DPI_ANCHOR_IPV4 0x0007
-#define TOPAZ_DPI_ANCHOR_IPV6 0x0008
-#define TOPAZ_DPI_ANCHOR_TCP 0x0009
-#define TOPAZ_DPI_ANCHOR_UDP 0x000a
-
-#define TOPAZ_DPI_CMPOP_EQ 0x00
-#define TOPAZ_DPI_CMPOP_NE 0x01
-#define TOPAZ_DPI_CMPOP_GT 0x02
-#define TOPAZ_DPI_CMPOP_LT 0x03
-
-#define TOPAZ_DPI_DISABLE 0x0
-#define TOPAZ_DPI_ENABLE 0x1
-
-struct topaz_dpi_filter_request {
- uint8_t out_port;
- uint8_t out_node;
- uint8_t tid;
- struct topaz_dpi_field_def *fields;
- unsigned int field_count;
- struct in6_addr srcaddr;
- struct in6_addr destaddr;
- uint16_t srcport;
- uint16_t destport;
-};
-
-int topaz_dpi_filter_add(unsigned int emac,
- const struct topaz_dpi_filter_request *req);
-void topaz_dpi_filter_del(unsigned int emac, int filter_no);
-int topaz_dpi_init(unsigned int emac);
-
-static inline void topaz_dpi_iptuple_poll_complete(unsigned long base)
-{
- while (readl(base + TOPAZ_EMAC_RX_DPI_IPT_MEM_COM)
- & (TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_WRITE | TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_READ)) {}
-
-}
-
-static inline void topaz_dpi_iptuple_read_entry(unsigned long base, uint8_t entry)
-{
- writel(TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_READ | SM(entry, TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_ENT),
- base + TOPAZ_EMAC_RX_DPI_IPT_MEM_COM);
- topaz_dpi_iptuple_poll_complete(base);
-}
-
-static inline void topaz_dpi_iptuple_write_entry(unsigned long base, uint8_t entry)
-{
- writel(TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_WRITE | SM(entry, TOPAZ_EMAC_RX_DPI_IPT_MEM_COM_ENT),
- base + TOPAZ_EMAC_RX_DPI_IPT_MEM_COM);
- topaz_dpi_iptuple_poll_complete(base);
-}
-
-#endif /* __TOPAZ_DPI_H */
-
diff --git a/quantenna/include/qtn/topaz_fwt.h b/quantenna/include/qtn/topaz_fwt.h
deleted file mode 100644
index 338815d..0000000
--- a/quantenna/include/qtn/topaz_fwt.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * (C) Copyright 2013 Quantenna Communications Inc.
- */
-
-#ifndef __TOPAZ_FWT_H
-#define __TOPAZ_FWT_H
-
-#include <qtn/topaz_fwt_cpuif.h>
-
-typedef void (*fwt_notify_swap )( uint16_t dst_index, uint16_t src_index);
-
-/*
- * The FWT algorithm maintain the first level entries available first for a fast look up
- * In scenarios where there is a need to delete a first level entry with following index at the
- * second level, there is a need to copy the second level entry over the first one, then delete
- * the second level entry. The FWT interface register the overwrite call back so we can mirror the
- * same entries indexers in both tables
- * @param cbk_func: call back function to overwrite the index table entries
- */
-void topaz_fwt_register_overwrite(fwt_notify_swap cbk_func);
-
-int topaz_fwt_add_entry(const uint8_t *mac_be, uint8_t out_port,
- const uint8_t *out_node, unsigned int out_node_count, uint8_t portal);
-
-int topaz_fwt_del_entry(const uint8_t *mac_id);
-
-uint16_t topaz_fwt_hash(const uint8_t *mac_le);
-
-int topaz_get_mac_be_from_index(uint16_t index, uint8_t *mac_be);
-
-void topaz_update_node(uint16_t index, uint8_t node_index,uint8_t node,bool enable);
-
-void topaz_set_portal(uint16_t index, uint8_t portal);
-
-void topaz_fwt_sw_entry_set(uint16_t index, uint8_t out_port,
- const uint8_t *out_nodes, unsigned int out_node_count, uint8_t portal);
-void topaz_fwt_sw_entry_del(uint16_t fwt_index);
-
-int topaz_sw_lookup(const uint8_t *mac_be);
-
-void topaz_fwt_sw_entry_set_multicast(uint16_t fwt_index, uint16_t mcast_index);
-
-int topaz_update_entry(uint16_t index, uint8_t port, uint8_t portal,
- uint8_t node_index , uint8_t node_num, bool enable);
-
-int topaz_fwt_get_timestamp(uint16_t index);
-int topaz_fwt_init(void);
-
-#endif /* __TOPAZ_FWT_H */
-
diff --git a/quantenna/include/qtn/topaz_fwt_cpuif.h b/quantenna/include/qtn/topaz_fwt_cpuif.h
deleted file mode 100644
index 39ec4be..0000000
--- a/quantenna/include/qtn/topaz_fwt_cpuif.h
+++ /dev/null
@@ -1,794 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_FWT_CPUIF_PLATFORM_H
-#define __TOPAZ_FWT_CPUIF_PLATFORM_H
-
-#include <common/topaz_platform.h>
-#include <qtn/mproc_sync_base.h>
-#include <qtn/topaz_tqe_cpuif.h>
-#include <qtn/qtn_net_packet.h>
-#include <qtn/lhost_muc_comm.h>
-
-#if defined(__linux__)
- #define TOPAZ_FWT_LOCAL_CPU TOPAZ_FWT_LOOKUP_LHOST
-#elif defined(ARCSHELL)
- #define TOPAZ_FWT_LOCAL_CPU TOPAZ_FWT_LOOKUP_LHOST
-#elif defined(MUC_BUILD)
- #define TOPAZ_FWT_LOCAL_CPU TOPAZ_FWT_LOOKUP_MUC
-#elif defined(DSP_BUILD)
- #define TOPAZ_FWT_LOCAL_CPU TOPAZ_FWT_LOOKUP_DSP
-#elif defined(AUC_BUILD)
- #define TOPAZ_FWT_LOCAL_CPU TOPAZ_FWT_LOOKUP_AUC
-#else
- #error No TOPAZ_FWT_LOCAL_CPU set
-#endif
-
-#define TOPAZ_FWT_LOOKUP_REG __TOPAZ_FWT_LOOKUP_REG(TOPAZ_FWT_LOCAL_CPU)
-#define TOPAZ_FWT_LOOKUP_MAC_LO __TOPAZ_FWT_LOOKUP_MAC_LO(TOPAZ_FWT_LOCAL_CPU)
-#define TOPAZ_FWT_LOOKUP_MAC_HI __TOPAZ_FWT_LOOKUP_MAC_HI(TOPAZ_FWT_LOCAL_CPU)
-/* Hardware limitation for node entries */
-#define TOPAZ_FWT_MAX_NODE_ENTRY (6)
-
-/** Macro to get a number with its 'bits' LSB bits set */
-#define SET_LSB_BITS(bits) ((1 << (bits)) - 1)
-
-/** Macro to update a bit-field with a new value */
-#define TOPAZ_FWT_SET_BIT_FIELD(var, start_bit, width, value) \
- (((var) & ~(SET_LSB_BITS(width) << (start_bit))) | \
- ((value) & SET_LSB_BITS(width)) << (start_bit))
-
-/** Macro to extract a bit-field */
-#define TOPAZ_FWT_GET_BIT_FIELD(data, start_offset, width)\
- (((data) >> (start_offset)) & SET_LSB_BITS(width))
-
-#if defined(ARCSHELL)
-typedef unsigned int uint32_t;
-typedef unsigned short uint16_t;
-typedef unsigned char uint8_t;
-#define ETH_ALEN 6
-#define inline _Inline
-#define unlikely
-#define likely
-#elif defined(MUC_BUILD)
-#define ETH_ALEN 6
-#endif
-
-/*
- * Forwarding Table manipulation
- *
- * FWT has 2048 entries. First 1024 are mac address crc hash done by hardware.
- * Next 1024 are linked list (nxt_entry) for when hash collision occurs.
- *
- * Basic forwarding table flow is:
- * 1) Packet received
- * 2) crc32 of incoming packet macaddr forms a 10 bit number [0 .. 1023]
- * 3) This number is the index of the first FWT entry in the physical table. MAC address is compared.
- * a) If MAC matches, this is the fwt entry
- * b) If not, follow next entry index. Must be [1024 .. 2047], repeat.
- * 4) Interpret FWT if present
- *
- * In sw maintain tailqs to know which slots are occupied
- */
-
-/*
- * FWT timestamp field is 10 bits. FWT clock is at 250MHz on BBIC4 ASIC.
- * UNIT affects clock ticks per timer reg clock tick.
- * SCALE affects shifting of the above register when applied to the timestamp field
- * when updating it.
- * ASIC: Values of 0xe unit and 13 (0xd) scale result in a time wrap time of 1 minute.
- * FPGA: 0xc unit, 0xa scale results in very rougly 1m wrap
- */
-
-#define TOPAZ_FWT_TIMESTAMP_BITS 10
-#define TOPAZ_FWT_TIMESTAMP_MASK ((1 << TOPAZ_FWT_TIMESTAMP_BITS) - 1)
-
-#if TOPAZ_FPGA_PLATFORM
- #define TOPAZ_FWT_TIMESTAMP_UNIT 0xc
- #define TOPAZ_FWT_TIMESTAMP_SCALE 0xa
-#else
- #define TOPAZ_FWT_TIMESTAMP_UNIT 0x1b /* (3500 ticks 14 usec) */
- #define TOPAZ_FWT_TIMESTAMP_SCALE 0x13 /* (2^19) */
- /*
- * Resolution Calculation:
- * (per tick) * (FWT clock [sec]) * (bits store location) = Resolution[sec]
- * (3500) * (1 / (250*10^6)) * (2^19) = 7.34 [sec]
- * */
-
- #define TOPAZ_FWT_RESOLUTION_MSEC 7340 /* Derive from unit & scale */
-#endif
-
-RUBY_INLINE uint32_t topaz_fwt_get_scaled_timestamp(void)
-{
-#ifdef CONSOLE_TEST
- return 0;
-#else
- uint32_t tsr = qtn_mproc_sync_mem_read(TOPAZ_FWT_TIME_STAMP_CNT);
- return (tsr >> TOPAZ_FWT_TIMESTAMP_SCALE) & TOPAZ_FWT_TIMESTAMP_MASK;
-#endif
-}
-
-union topaz_fwt_entry {
- struct {
- uint32_t word0; /* macaddr[30:1] */
- uint32_t word1; /* valid bit(31), portal(30), next_index(27:16), macaddr[47:32](15:0) */
- uint32_t word2; /* out_node + valid 0, 1, 2, 3 */
- uint32_t word3; /* out_node + valid 4, 5, outport, timestamp(9:0) */
- } raw;
- struct {
- uint8_t mac_le[ETH_ALEN];
- uint16_t __unused1 :1,
- next_index :11,
- __unused2 :2,
- portal :1,
- valid :1;
- uint8_t out_node_0 :7,
- out_node_vld_0 :1;
- uint8_t out_node_1 :7,
- out_node_vld_1 :1;
- uint8_t out_node_2 :7,
- out_node_vld_2 :1;
- uint8_t out_node_3 :7,
- out_node_vld_3 :1;
- uint16_t timestamp :10,
- out_port :4,
- __unused3 :2;
- uint8_t out_node_4 :7,
- out_node_vld_4 :1;
- uint8_t out_node_5 :7,
- out_node_vld_5 :1;
- } data;
-};
-
-#define FWT_ZERO_ENTRY_INIT { { 0, 0, 0, 0 } }
-
-RUBY_INLINE union topaz_fwt_entry *topaz_fwt_get_hw_entry(uint16_t index)
-{
-#ifdef CONSOLE_TEST
- extern union topaz_fwt_entry test_hw_fwt[TOPAZ_FWT_HW_TOTAL_ENTRIES];
- return &test_hw_fwt[index];
-#else
- union topaz_fwt_entry *e;
- e = (union topaz_fwt_entry *)(TOPAZ_FWT_TABLE_BASE + index * sizeof(*e));
- return e;
-#endif
-}
-
-RUBY_INLINE int topaz_fwt_is_valid(const union topaz_fwt_entry *e)
-{
- return e->raw.word1 & TOPAZ_FWT_ENTRY_VALID;
-}
-
-RUBY_INLINE uint16_t topaz_fwt_next_index(const union topaz_fwt_entry *e)
-{
- return MS(e->raw.word1, TOPAZ_FWT_ENTRY_NXT_ENTRY);
-}
-
-RUBY_INLINE const uint8_t *topaz_fwt_macaddr(const union topaz_fwt_entry *e)
-{
- return (void *) e;
-}
-
-RUBY_INLINE void topaz_fwt_set_next_index(union topaz_fwt_entry *e, uint16_t index)
-{
- unsigned long word1 = e->raw.word1 & ~TOPAZ_FWT_ENTRY_NXT_ENTRY;
- e->raw.word1 = word1 | SM(index, TOPAZ_FWT_ENTRY_NXT_ENTRY);
-}
-
-RUBY_INLINE void topaz_fwt_copy_entry(union topaz_fwt_entry *dest, const union topaz_fwt_entry *src,
- int words)
-{
- int i;
-#pragma Off(Behaved)
- uint32_t *d = &dest->raw.word0;
- const uint32_t *s = &src->raw.word0;
-#pragma On(Behaved)
-
- for (i = 0; i < words; i++) {
- *d++ = *s++;
- }
-}
-
-RUBY_INLINE void topaz_fwt_insert_entry(const union topaz_fwt_entry *newent, uint16_t index)
-{
- union topaz_fwt_entry *hw_ent = topaz_fwt_get_hw_entry(index);
- topaz_fwt_copy_entry(hw_ent, newent, 4);
-}
-
-/*
- * Software FWT mirror. Used by MuC for Rx path
- * acceleration, without accessing the FWT memory
- */
-union topaz_fwt_sw_entry {
- uint16_t raw;
- struct {
- uint8_t valid :1,
- mcast :1,
- vsp :1,
- portal :1,
- port :4;
- uint8_t __pad :1,
- node :7;
- } unicast;
- struct {
- uint16_t valid :1,
- mcast :1,
- index :14;
- } multicast;
-};
-
-/* 23 bits of multicast ipv4 -> mac leaves 5 bits of ambiguity */
-#define TOPAZ_FWT_SW_IP_ALIAS_ENTRIES 32
-#define TOPAZ_FWT_SW_NODE_MAX 128
-#define TOPAZ_BITS_PER_WD (32)
-#define TOPAZ_FWT_SW_NODE_BITMAP_SIZE (TOPAZ_FWT_SW_NODE_MAX / TOPAZ_BITS_PER_WD)
-
-struct topaz_fwt_sw_mcast_entry {
- uint32_t node_bitmap[TOPAZ_FWT_SW_NODE_BITMAP_SIZE];
- uint8_t port_bitmap;
- uint8_t flood_forward;
- uint8_t seen;
-#ifdef CONFIG_TOPAZ_DBDC_HOST
- uint8_t dev_bitmap;
-#else
- uint8_t __pad[1];
-#endif
-};
-
-#ifdef CONFIG_TOPAZ_DBDC_HOST
-RUBY_INLINE int topaz_fwt_sw_mcast_dev_is_set(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t dev_id)
-{
- return (e->dev_bitmap & (1 << dev_id));
-}
-
-RUBY_INLINE int topaz_fwt_sw_mcast_dev_is_empty(struct topaz_fwt_sw_mcast_entry *const e)
-{
- return (e->dev_bitmap == 0);
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_dev_set(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t dev_id)
-{
- e->dev_bitmap |= (1 << dev_id);
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_dev_clear(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t dev_id)
-{
- e->dev_bitmap &= ~(1 << dev_id);
-}
-#endif
-
-struct topaz_fwt_sw_alias_table {
- int16_t mcast_entry_index[TOPAZ_FWT_SW_IP_ALIAS_ENTRIES];
-};
-
-RUBY_INLINE int8_t topaz_fwt_mcast_to_ip_alias(const void *addr, uint16_t ether_type)
-{
- if (ether_type == htons(ETHERTYPE_IP)) {
- return qtn_mcast_ipv4_alias(addr);
- } else if (ether_type == htons(ETHERTYPE_IPV6)) {
- return 0;
- } else {
- return -1;
- }
-}
-
-RUBY_INLINE int topaz_fwt_sw_alias_table_index_valid(int16_t index)
-{
- return index >= 0 && index < TOPAZ_FWT_MCAST_ENTRIES;
-}
-
-RUBY_INLINE int topaz_fwt_sw_mcast_entry_index_valid(int16_t index)
-{
- return index >= 0 && index < TOPAZ_FWT_MCAST_ENTRIES;
-}
-
-RUBY_INLINE uint8_t topaz_fwt_sw_mcast_entry_nodes_clear(const struct topaz_fwt_sw_mcast_entry *e)
-{
- unsigned int i;
- for (i = 0; i < TOPAZ_FWT_SW_NODE_BITMAP_SIZE; i++) {
- if (e->node_bitmap[i]) {
- return 0;
- }
- }
- return 1;
-}
-
-RUBY_INLINE int topaz_fwt_sw_alias_table_empty(const struct topaz_fwt_sw_alias_table *alias_table)
-{
- unsigned int i;
- for (i = 0; i < TOPAZ_FWT_SW_IP_ALIAS_ENTRIES; i++) {
- if (topaz_fwt_sw_mcast_entry_index_valid(alias_table->mcast_entry_index[i])) {
- return 0;
- }
- }
- return 1;
-}
-
-RUBY_INLINE int topaz_fwt_sw_mcast_port_is_set(const uint8_t port_bitmap, const uint8_t port)
-{
- return (port_bitmap & (1 << port));
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_port_set(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t port)
-{
- e->port_bitmap |= (1 << port);
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_port_clear(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t port)
-{
- e->port_bitmap &= ~(1 << port);
-}
-
-RUBY_INLINE int topaz_fwt_sw_mcast_port_has_nodes(const uint8_t port)
-{
- return (port == TOPAZ_TQE_WMAC_PORT);
-}
-
-RUBY_INLINE void
-topaz_fwt_sw_mcast_flood_forward_set(struct topaz_fwt_sw_mcast_entry *const e, const uint8_t enable)
-{
- e->flood_forward = enable;
-}
-
-RUBY_INLINE int
-topaz_fwt_sw_mcast_is_flood_forward(const struct topaz_fwt_sw_mcast_entry *const e)
-{
- return (e->flood_forward);
-}
-
-RUBY_INLINE uint32_t topaz_fwt_sw_mcast_do_per_node(
- void (*handler)(const void *token1, void *token2, uint8_t node, uint8_t port, uint8_t tid),
- const struct topaz_fwt_sw_mcast_entry *mcast_ent,
- const void *token1, void *token2, uint8_t in_node, uint8_t port, uint8_t tid)
-{
- uint8_t node;
- uint8_t node_cnt = 0;
- uint32_t bitmap;
- uint8_t i;
- uint8_t j;
-
- for (i = 0; i < TOPAZ_FWT_SW_NODE_BITMAP_SIZE; i++) {
- bitmap = mcast_ent->node_bitmap[i];
- j = 0;
- while (bitmap) {
- if (bitmap & 0x1) {
- node = (i * TOPAZ_BITS_PER_WD) + j;
- if ((in_node == 0) || (node != in_node)) {
- handler(token1, token2, port, node, tid);
- node_cnt++;
- }
- }
- bitmap >>= 1;
- j++;
- }
- }
-
- return node_cnt;
-}
-
-RUBY_INLINE int topaz_fwt_sw_mcast_node_is_set(const struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t port, const uint8_t node)
-{
- if (port == TOPAZ_TQE_WMAC_PORT) {
- return (e->node_bitmap[node / TOPAZ_BITS_PER_WD] &
- (1 << (node % TOPAZ_BITS_PER_WD)));
- }
- return 0;
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_node_set(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t port, const uint16_t node)
-{
- if (port == TOPAZ_TQE_WMAC_PORT) {
- e->node_bitmap[node / TOPAZ_BITS_PER_WD] |= (1 << (node % TOPAZ_BITS_PER_WD));
- }
-}
-
-RUBY_INLINE void topaz_fwt_sw_mcast_node_clear(struct topaz_fwt_sw_mcast_entry *const e,
- const uint8_t port, const uint16_t node)
-{
- if (port == TOPAZ_TQE_WMAC_PORT) {
- e->node_bitmap[node / TOPAZ_BITS_PER_WD] &= ~(1 << (node % TOPAZ_BITS_PER_WD));
- if (!topaz_fwt_sw_mcast_is_flood_forward(e) &&
- topaz_fwt_sw_mcast_entry_nodes_clear(e)) {
- topaz_fwt_sw_mcast_port_clear(e, port);
- }
- }
-}
-
-RUBY_INLINE union topaz_fwt_sw_entry *topaz_fwt_sw_entry_get(uint16_t index)
-{
- union topaz_fwt_sw_entry *fwt = (void *) (RUBY_SRAM_BEGIN + TOPAZ_FWT_SW_START);
- return &fwt[index];
-}
-
-RUBY_INLINE struct topaz_fwt_sw_mcast_entry *topaz_fwt_sw_mcast_ff_entry_get(void)
-{
- return (void *)(RUBY_DRAM_BEGIN + TOPAZ_FWT_MCAST_TQE_FF_BASE);
-}
-
-RUBY_INLINE struct topaz_fwt_sw_mcast_entry *topaz_fwt_sw_mcast_entry_get(uint16_t index)
-{
- struct topaz_fwt_sw_mcast_entry *fwt = (void *) (RUBY_DRAM_BEGIN + TOPAZ_FWT_MCAST_TQE_BASE);
- return &fwt[index];
-}
-
-RUBY_INLINE struct topaz_fwt_sw_alias_table *topaz_fwt_sw_alias_table_get(uint16_t index)
-{
- struct topaz_fwt_sw_alias_table *fwt = (void *) (RUBY_DRAM_BEGIN + TOPAZ_FWT_MCAST_IPMAP_BASE);
- return &fwt[index];
-}
-
-RUBY_INLINE uint8_t topaz_fwt_sw_count_bits(uint32_t x)
-{
- uint8_t bits_set = 0;
-
- while (x) {
- bits_set++;
- x &= x - 1;
- }
-
- return bits_set;
-}
-
-RUBY_INLINE uint32_t topaz_fwt_sw_mcast_enqueues(const struct topaz_fwt_sw_mcast_entry *const e,
- uint8_t port_bitmap, const uint8_t in_port, const uint8_t in_node)
-{
- uint32_t enqueues = 0;
- uint8_t i;
-
- /* Exclude input port. If WMAC, the port doesn't contribute, only nodes. */
- port_bitmap &= ~((1 << in_port) | (1 << TOPAZ_TQE_WMAC_PORT));
- enqueues += topaz_fwt_sw_count_bits(port_bitmap);
-
- /* add wmac nodes */
- for (i = 0; i < ARRAY_SIZE(e->node_bitmap) ; i++) {
- enqueues += topaz_fwt_sw_count_bits(e->node_bitmap[i]);
- }
-
- /* must exclude the input node */
- if (topaz_fwt_sw_mcast_node_is_set(e, in_port, in_node)) {
- --enqueues;
- }
-
- return enqueues;
-}
-
-RUBY_INLINE void __topaz_fwt_hash_set(int enable)
-{
- uint32_t reg = enable ? TOPAZ_FWT_HASH_CTRL_ENABLE : 0;
- qtn_mproc_sync_mem_write(TOPAZ_FWT_HASH_CTRL, reg);
-}
-
-RUBY_INLINE void __topaz_fwt_hw_lookup_write_be(const uint8_t *mac_be)
-{
- uint32_t lo = mac_be[5] | (mac_be[4] << 8) | (mac_be[3] << 16) | (mac_be[2] << 24);
- uint32_t hi = mac_be[1] | (mac_be[0] << 8);
-
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_MAC_LO, lo);
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_MAC_HI, hi);
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_REG, SM(1, TOPAZ_FWT_LOOKUP_TRIG));
-}
-
-RUBY_INLINE void __topaz_fwt_hw_lookup_write_le(const uint8_t *mac_le)
-{
- uint32_t lo = mac_le[0] | (mac_le[1] << 8) | (mac_le[2] << 16) | (mac_le[3] << 24);
- uint32_t hi = mac_le[4] | (mac_le[5] << 8);
-
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_MAC_LO, lo);
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_MAC_HI, hi);
- qtn_mproc_sync_mem_write(TOPAZ_FWT_LOOKUP_REG, SM(1, TOPAZ_FWT_LOOKUP_TRIG));
-}
-
-RUBY_INLINE void topaz_fwt_reverse_mac(uint8_t *dest, const uint8_t *src)
-{
- int i;
- for (i = 0; i < ETH_ALEN; i++) {
- dest[ETH_ALEN - i - 1] = src[i];
- }
-}
-
-RUBY_INLINE void topaz_fwt_setup_entry(union topaz_fwt_entry *ent, const uint8_t *mac_be,
- uint8_t out_port, const uint8_t *out_nodes,
- unsigned int out_node_count, uint8_t portal)
-{
- ent->raw.word0 = 0;
- ent->raw.word1 = 0;
- ent->raw.word2 = 0;
- ent->raw.word3 = 0;
-
-#pragma Off(Behaved)
- topaz_fwt_reverse_mac(ent->data.mac_le, mac_be);
-#pragma On(Behaved)
- ent->data.valid = 1;
- ent->data.portal = portal;
-
-#define __topaz_fwt_setup_entry_set_out_node(x) \
- do { \
- if (x < out_node_count) { \
- ent->data.out_node_##x = out_nodes[x]; \
- ent->data.out_node_vld_##x = 1; \
- } \
- } while(0)
-
- __topaz_fwt_setup_entry_set_out_node(0);
- __topaz_fwt_setup_entry_set_out_node(1);
- __topaz_fwt_setup_entry_set_out_node(2);
- __topaz_fwt_setup_entry_set_out_node(3);
- __topaz_fwt_setup_entry_set_out_node(4);
- __topaz_fwt_setup_entry_set_out_node(5);
-
- ent->data.out_port = out_port;
- ent->data.timestamp = topaz_fwt_get_scaled_timestamp();
-}
-
-union topaz_fwt_lookup {
- struct {
- uint32_t word0;
- } raw;
- struct {
- uint32_t trig :1,
- __unused :7,
- hash_addr :10,
- __unused2 :2,
- entry_addr :11,
- valid :1;
- } data;
-};
-
-#define FWT_ZERO_LOOKUP_INIT { { 0 } }
-
-RUBY_INLINE union topaz_fwt_lookup __topaz_fwt_hw_lookup_rd(void)
-{
- union topaz_fwt_lookup u;
- u.raw.word0 = qtn_mproc_sync_mem_read(TOPAZ_FWT_LOOKUP_REG);
- return u;
-}
-
-RUBY_INLINE union topaz_fwt_lookup __topaz_fwt_hw_lookup_wait_be(const uint8_t *mac_be, int *timeout)
-{
- unsigned long timeouts = 0;
- union topaz_fwt_lookup u;
- union topaz_fwt_lookup zero_lookup = FWT_ZERO_LOOKUP_INIT;
-
- __topaz_fwt_hw_lookup_write_be(mac_be);
- while (1) {
- u = __topaz_fwt_hw_lookup_rd();
- if (u.data.trig == 0) {
- *timeout = 0;
- return u;
- } else {
- qtn_pipeline_drain();
- if (unlikely(timeouts++ > 1000)) {
- *timeout = 1;
- return zero_lookup;
- }
- }
- }
-
- return zero_lookup;
-}
-
-RUBY_INLINE union topaz_fwt_lookup topaz_fwt_hw_lookup_wait_be(const uint8_t *mac_be, int *timeout, uint8_t *false_miss)
-{
-#ifndef TOPAZ_DISABLE_FWT_WAR
- /*
- * This is to workaround the FWT lookup false issue:
- * It seems when EMAC is under heavy VLAN traffic, Lhost and MuC
- * may get false miss from FWT -- FWT returns invalid while a MAC
- * address truly exists in it. A double check reduces count of false
- * misses significantly.
- */
- uint8_t retries = 1;
-#else
- uint8_t retries = 0;
-#endif
- union topaz_fwt_lookup u;
-
- do {
- u = __topaz_fwt_hw_lookup_wait_be(mac_be, timeout);
- } while (!u.data.valid && retries--);
-
-#if !defined(TOPAZ_DISABLE_FWT_WAR) && !defined(MUC_BUILD)
- *false_miss += (retries == 0);
-#endif
-
- return u;
-}
-
-RUBY_INLINE uint32_t __topaz_fwt_cpu_access_rd(void)
-{
- return qtn_mproc_sync_mem_read(TOPAZ_FWT_CPU_ACCESS);
-}
-
-RUBY_INLINE void __topaz_fwt_set_4addrmode(union topaz_fwt_entry *ent, uint8_t portal)
-{
- ent->data.portal = !!portal;
-}
-
-RUBY_INLINE void __topaz_fwt_set_port(union topaz_fwt_entry *ent, uint8_t port)
-{
- ent->data.out_port = port;
-}
-
-
-RUBY_INLINE void __topaz_fwt_set_node(union topaz_fwt_entry *ent,
- uint8_t node_index, uint8_t node_num, bool enable)
-{
-#define ____topaz_fwt_set_node(n) \
- case n: do { \
- ent->data.out_node_##n = node_num; \
- ent->data.out_node_vld_##n = !!enable; \
- } while(0); \
- break
-
- switch (node_index) {
- ____topaz_fwt_set_node(0);
- ____topaz_fwt_set_node(1);
- ____topaz_fwt_set_node(2);
- ____topaz_fwt_set_node(3);
- ____topaz_fwt_set_node(4);
- ____topaz_fwt_set_node(5);
- default:
- break;
- }
-}
-
-RUBY_INLINE int __topaz_fwt_cpu_access_start_wait(void)
-{
-#ifndef CONSOLE_TEST
- unsigned long timeouts = 0;
- qtn_mproc_sync_mem_write(TOPAZ_FWT_CPU_ACCESS, TOPAZ_FWT_CPU_ACCESS_REQ);
- while (timeouts++ < 1000) {
- uint32_t reg = __topaz_fwt_cpu_access_rd();
- if (MS(reg, TOPAZ_FWT_CPU_ACCESS_STATE) == TOPAZ_FWT_CPU_ACCESS_STATE_GRANTED) {
- return 0;
- }
- qtn_pipeline_drain();
- }
-
- return -1;
-#else
- return 0;
-#endif
-}
-
-RUBY_INLINE void __topaz_fwt_cpu_access_stop(void)
-{
-#ifndef CONSOLE_TEST
- qtn_mproc_sync_mem_write(TOPAZ_FWT_CPU_ACCESS, 0);
-#endif
-}
-
-RUBY_INLINE int topaz_fwt_cpu_access_lock_wait_irqsave(unsigned long *flags)
-{
-#ifndef CONSOLE_TEST
- int rc;
-
- local_irq_save(*flags);
- rc = __topaz_fwt_cpu_access_start_wait();
- if (rc) {
- local_irq_restore(*flags);
- }
- return rc;
-#else
- (void)flags;
- return 0;
-#endif
-}
-
-RUBY_INLINE void topaz_fwt_cpu_access_unlock_irqrestore(unsigned long *flags)
-{
-#ifndef CONSOLE_TEST
- __topaz_fwt_cpu_access_stop();
- local_irq_restore(*flags);
-#else
- (void)flags;
-#endif
-}
-#ifndef TOPAZ_TEST_ASSERT_EQUAL
-# define TOPAZ_TEST_ASSERT_EQUAL(a, b) if ((a) != (b)) { return -1; }
-#endif
-RUBY_INLINE int topaz_fwt_lookup_bitfield_test(const union topaz_fwt_lookup *e)
-{
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word0, TOPAZ_FWT_LOOKUP_TRIG), e->data.trig);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word0, TOPAZ_FWT_LOOKUP_ENTRY_ADDR), e->data.entry_addr);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word0, TOPAZ_FWT_LOOKUP_HASH_ADDR), e->data.hash_addr);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word0, TOPAZ_FWT_LOOKUP_VALID), e->data.valid);
-
- return 0;
-}
-
-RUBY_INLINE int topaz_fwt_entry_bitfield_test(const union topaz_fwt_entry *e)
-{
- TOPAZ_TEST_ASSERT_EQUAL(!!topaz_fwt_is_valid(e), e->data.valid);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word1, TOPAZ_FWT_ENTRY_NXT_ENTRY), e->data.next_index);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_0), e->data.out_node_0);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_0), e->data.out_node_vld_0);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_1), e->data.out_node_1);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_1), e->data.out_node_vld_1);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_2), e->data.out_node_2);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_2), e->data.out_node_vld_2);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_3), e->data.out_node_3);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word2, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_3), e->data.out_node_vld_3);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_OUT_NODE_4), e->data.out_node_4);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_4), e->data.out_node_vld_4);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_OUT_NODE_5), e->data.out_node_5);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_OUT_NODE_VLD_5), e->data.out_node_vld_5);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_OUT_PORT), e->data.out_port);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw.word3, TOPAZ_FWT_ENTRY_TIMESTAMP), e->data.timestamp);
-#ifdef __KERNEL_
- TOPAZ_TEST_ASSERT_EQUAL(memcmp(topaz_fwt_macaddr(e), e->data.mac_le, ETH_ALEN), 0);
-#endif
-
- return 0;
-}
-
-struct topaz_ipmac_uc_entry {
- struct topaz_ipmac_uc_entry *next;
- union {
- uint8_t ipv4_addr[4];
- uint8_t ipv6_addr[16];
- }u;
- uint8_t mac_addr[MAC_ADDR_LEN];
- uint16_t type;
- struct topaz_ipmac_uc_entry *lhost_next;
-};
-
-#define TOPAZ_IPMAC_UC_HASH_SLOT 128
-#define TOPAZ_IPMAC_UC_HASH_SLOT_MASK 0x7f
-#define TOPAZ_IPMAC_UC_HASH_SIZE (TOPAZ_IPMAC_UC_HASH_SLOT * sizeof(void *))
-
-#define TOPAZ_IPMAC_UC_ENTRY_SIZE sizeof(struct topaz_ipmac_uc_entry)
-#define TOPAZ_IPMAC_UC_ENTRY_COUNT 31
-
-struct topaz_ipmac_uc_table {
- struct topaz_ipmac_uc_entry *slots[TOPAZ_IPMAC_UC_HASH_SLOT];
- struct topaz_ipmac_uc_entry entries[TOPAZ_IPMAC_UC_ENTRY_COUNT];
- uint32_t update_cnt_lhost;
- uint32_t update_cnt_muc;
-};
-
-#define TOPAZ_IPMAC_UC_TBL_SIZE (sizeof(struct topaz_ipmac_uc_table))
-
-/*
- * The hash works under the assumption that in most cases, hosts behind
- * the STA are in the same IP subnet. The host number differs so we have
- * a good chance to have diverse MSB byte of a be IP address
- */
-RUBY_INLINE uint16_t topaz_ipmac_uc_hash(__be32 ipaddr)
-{
- return ((ipaddr >> 24) & TOPAZ_IPMAC_UC_HASH_SLOT_MASK);
-}
-
-RUBY_INLINE uint16_t topaz_ipmac_ipv6uc_hash(const uint8_t *ipv6_addr)
-{
- return (ipv6_addr[15] & TOPAZ_IPMAC_UC_HASH_SLOT_MASK);
-}
-
-#endif /* __TOPAZ_FWT_CPUIF_PLATFORM_H */
-
diff --git a/quantenna/include/qtn/topaz_fwt_db.h b/quantenna/include/qtn/topaz_fwt_db.h
deleted file mode 100644
index 2c9c54b..0000000
--- a/quantenna/include/qtn/topaz_fwt_db.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * (C) Copyright 2013 Quantenna Communications Inc.
- */
-
-#ifndef FWT_DB_H_
-#define FWT_DB_H_
-
-
-#ifndef CONSOLE_TEST
-#include <linux/types.h>
-#include <linux/in.h>
-#include <linux/if_ether.h>
-
-#include <common/queue.h>
-
-#include <qtn/br_types.h>
-#include <qtn/topaz_fwt.h>
-#include <qtn/dmautil.h>
-#include <qtn/topaz_tqe_cpuif.h>
-#include <qtn/topaz_fwt_cpuif.h>
-#include <qtn/qtn_net_packet.h>
-
-typedef enum
-{
- FWT_DB_MLT_PORT_WMAC = 0,
- FWT_DB_MLT_PORT_MAX,
-}fwt_db_mlt_ports;
-
-/* Set success return status */
-#define FWT_DB_STATUS_SUCCESS (1)
-
-/* Set Invalid node number */
-#define FWT_DB_INVALID_NODE (0xFF)
-
-/* Set Invalid IPV4 value */
-#define FWT_DB_INVALID_IPV4 (0xFF)
-
-/* Size of IPV4 address */
-#define FWT_DB_IPV4_SIZE (4)
-
-/*
- * LHost FWT entry copy.
- * Sufficient for unicast; multicast with multiple ports/nodes
- * is handled in topaz_fwt_sw_mcast_entry
- */
-typedef struct fwt_db_entry {
- uint8_t mac_id[ETH_ALEN];
- uint8_t out_port;
- uint8_t out_node;
- int16_t fwt_index;
- int16_t alias_table_index;
- uint32_t false_miss;
- uint8_t portal :1,
- valid :1,
-#ifdef CONFIG_TOPAZ_DBDC_HOST
- mcast :1,
- dev_id :DEV_ID_BITS;
-#else
- mcast :1;
-#endif
-} fwt_db_entry;
-
-/* node list indexed by the fwt */
-typedef struct fwt_db_node_element {
- uint16_t index;
- uint8_t ip_alias;
- uint8_t port;
- STAILQ_ENTRY(fwt_db_node_element) next;
-} fwt_db_node_element;
-
-typedef struct {
- fwt_db_node_element *element;
- bool in_use;
- int node_index;
-} fwt_db_node_iterator;
-
-static inline struct topaz_fwt_sw_alias_table *
-fwt_db_get_sw_alias_table(struct fwt_db_entry *db)
-{
- if (db && topaz_fwt_sw_alias_table_index_valid(db->alias_table_index)) {
- return topaz_fwt_sw_alias_table_get(db->alias_table_index);
- }
- return NULL;
-}
-
-static inline struct topaz_fwt_sw_mcast_entry *
-fwt_db_get_sw_mcast(struct fwt_db_entry *db, uint8_t ipmap_index)
-{
- struct topaz_fwt_sw_alias_table *ipmap = fwt_db_get_sw_alias_table(db);
- if (ipmap) {
- int16_t mcast_index = ipmap->mcast_entry_index[ipmap_index];
- if (topaz_fwt_sw_mcast_entry_index_valid(mcast_index)) {
- return topaz_fwt_sw_mcast_entry_get(mcast_index);
- }
- }
-
- return NULL;
-}
-
-static inline struct topaz_fwt_sw_mcast_entry *fwt_db_get_sw_mcast_ff(void)
-{
- return topaz_fwt_sw_mcast_ff_entry_get();
-}
-
-static inline void topaz_fwt_sw_alias_table_flush(struct topaz_fwt_sw_alias_table *p)
-{
- flush_dcache_sizerange_safe(p, sizeof(*p));
-}
-
-static inline void topaz_fwt_sw_mcast_flush(struct topaz_fwt_sw_mcast_entry *p)
-{
- flush_dcache_sizerange_safe(p, sizeof(*p));
-}
-
-static inline void fwt_mcast_to_mac(uint8_t *mac_be, const struct br_ip *group)
-{
- return qtn_mcast_to_mac(mac_be, &group->u, group->proto);
-}
-
-static inline int8_t fwt_mcast_to_ip_alias(const struct br_ip *group)
-{
- if (group == NULL) {
- return -1;
- } else {
- return topaz_fwt_mcast_to_ip_alias(&group->u, group->proto);
- }
-}
-
-fwt_db_node_element *fwt_db_create_node_element(void);
-void fwt_db_free_node_element(fwt_db_node_element *node_element);
-int fwt_db_is_node_exists_list(uint8_t node_index, uint16_t table_index,
- uint8_t ip_alias, uint8_t port);
-/*
- * Initialise the fwt_db database
- */
-void fwt_db_init(void);
-
-/*
- * Get IP Flood-forwarding configuration
- * @Param buf: location of print buffer
- * @Param buflen: size of print buffer
- * @return number of characters printed
- */
-int fwt_db_get_ipff(char *buf, int buflen);
-
-/*
- * Print FWT Database to console
- * @return number of existing valid entries
- */
-int fwt_db_print(int is_mult);
-
-/*
- * Print FWT node hash lise to console
- * @return number of existing valid entries
- */
-int fwt_db_node_table_print(void);
-
-/*
- * Print the FWT multicast entries to a buffer
- * @return number of bytes written
- */
-int fwt_db_get_mc_list(char *buf, int buflen);
-
-/*
- * Calculate ageing time by the FWT HW timestamp
- * @Param fwt_index: FWT table index
- */
-int fwt_db_calculate_ageing_scale(int fwt_index);
-/*
- * Insert new table entry
- * @param index: the HW FWT index.
- * Note: the FWT SW table use the FWT HW index algorithm for matching the table entries
- * @param element: FWT SW table element that reflect both FWT HW table entry and additional data
- * @return Success / Failure indication
- */
-int fwt_db_table_insert(uint16_t index, fwt_db_entry *element);
-/*
- * Acquire iterator to run over the list database from node index entry
- * @param node_index: node number represented as a hash list index
- * @return: Iterator database element
- */
-fwt_db_node_iterator *fwt_db_iterator_acquire(uint8_t node_index);
-
-/*
- * Release iterator to mark elements on the database can be erase or modify safely.
- */
-void fwt_db_iterator_release(void);
-
-/*
- * Give back current element and advance iterator to the next one.
- * service function for running over the database.
- * Note: Node_index is a part of the iterator
- * @param iterator: Iterator database element
- * @return: Current iterator database element
- */
-fwt_db_node_element *fwt_db_iterator_next(fwt_db_node_iterator **iterator);
-
-/* Add a new node entry
- * @param node_num:
- * @param table_index: the HW FWT table index
- */
-void fwt_db_add_new_node(uint8_t node_num, uint16_t table_index,
- const int8_t ip_alias, uint8_t port, fwt_db_node_element *const new_element);
-
-/* Remove specific node from the hash list,
- * Note: does not involve removing node from the fwt table.
- * @param node_index: the hash list entry point that represent the node number
- * @return: Function returns the number of elements that were removed.(Debug feature)
- */
-int fwt_db_clear_node(uint8_t node_index);
-
-/* In cases where fwt entry is remove we need to maintain the specific index from
- * the node table since its not relevant anymore.
- * We conduct the maintenance procedure in order to take advantage of the knowledge of the specific node index
- * so we can avoid going through the whole database.
- * @param node_index: the hash list entry point that represent the node number
- * @param table_index: the specific fwt index to be removed
- */
-void fwt_db_delete_index_from_node_table(uint8_t node_index, uint16_t table_index,
- uint8_t ip_alias, uint8_t port);
-
-fwt_db_node_element *fwt_db_get_table_index_from_node(uint8_t node_num);
-
-/*
- * Delete fwt table entry.
- * @param index: the HW FWT index.
- * Note: the FWT SW table use the FWT HW index algorithm for matching the table entries
- */
-void fwt_db_delete_table_entry(uint16_t index);
-/*
- * Get table entry.
- * @param index: the HW FWT index.
- * Note: return ptr from database. Handle with care.
- * @return indexed fwt database entry
- */
-fwt_db_entry *fwt_db_get_table_entry(uint16_t index);
-
-/* Initialize the fwt db entry */
-int fwt_db_init_entry(fwt_db_entry *entry);
-
-/*
- * Update parameters to existing entry
- * @param index: the HW FWT index that match the SW one
- * @param port: TQE output port.
- * @param node: node number.
- * @param portal: 4addr mode flag.
- */
-int fwt_db_update_params(uint16_t index, uint8_t port, uint8_t node, uint8_t portal);
-
-/*
- * Return the existing entry if present, otherwise create a new multicast entry
- */
-struct topaz_fwt_sw_mcast_entry *fwt_db_get_or_add_sw_mcast(struct fwt_db_entry *db,
- int8_t ip_alias);
-
-/*
- * Free multicast entry, and possibly the alias_table if it becomes empty.
- * Returns 1 if there are no multicast entries present under this db anymore.
- */
-int fwt_db_delete_sw_mcast(struct fwt_db_entry *db, uint8_t ipmap_index);
-
-/*
- * Get mac addresses of nondes behind associated node
- * @param index: node index
- * @param num_entries: returns number of entries found
- * @param max_req: maximum entries requested
- * @param flags: bit 0 - results overflowed/truncated, bit 1 - 4addr node
- * @param buf: buffer to store macs
- */
-int fwt_db_get_macs_behind_node(const uint8_t index, uint32_t *num_entries, uint32_t max_req,
- uint32_t *flags, uint8_t *buf);
-
-#endif // TOPAZ PLATFORM
-
-#endif /* FWT_DB_H_ */
diff --git a/quantenna/include/qtn/topaz_fwt_if.h b/quantenna/include/qtn/topaz_fwt_if.h
deleted file mode 100644
index 746e275..0000000
--- a/quantenna/include/qtn/topaz_fwt_if.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2013 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef FWT_INTERFACE_H_
-#define FWT_INTERFACE_H_
-
-#include <qtn/br_types.h>
-
-/* Must match FWT_IF_KEY_xxx macros */
-typedef enum fwt_if_usr_cmd {
- FWT_IF_CMD_CLEAR = 0,
- FWT_IF_CMD_ON,
- FWT_IF_CMD_OFF,
- FWT_IF_CMD_PRINT,
- FWT_IF_CMD_ADD_STATIC_MC,
- FWT_IF_CMD_DEL_STATIC_MC,
- FWT_IF_CMD_GET_MC_LIST,
- FWT_IF_CMD_ADD,
- FWT_IF_CMD_DELETE,
- FWT_IF_CMD_AUTO,
- FWT_IF_CMD_MANUAL,
- FWT_IF_CMD_4ADDR,
- FWT_IF_CMD_DEBUG,
- FWT_IF_CMD_HELP,
- FWT_IF_CMD_AGEING,
- FWT_IF_MAX_CMD,
-} fwt_if_usr_cmd;
-
-#include <linux/types.h>
-
-#define FWT_IF_USER_NODE_MAX (6)
-
-struct fwt_if_id {
- uint8_t mac_be[ETH_ALEN];
- struct br_ip ip;
-};
-
-struct fwt_if_common {
- struct fwt_if_id id;
- uint8_t port;
- uint8_t node[FWT_IF_USER_NODE_MAX];
- uint32_t param;
- void *extra;
-};
-
-typedef int (*fwt_if_sw_cmd_hook)(fwt_if_usr_cmd cmd, struct fwt_if_common *data);
-
-void fwt_if_register_cbk_t(fwt_if_sw_cmd_hook cbk_func);
-
-#endif /* FWT_INTERFACE_H_ */
diff --git a/quantenna/include/qtn/topaz_fwt_sw.h b/quantenna/include/qtn/topaz_fwt_sw.h
deleted file mode 100644
index 0267b16..0000000
--- a/quantenna/include/qtn/topaz_fwt_sw.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * (C) Copyright 2013 Quantenna Communications Inc.
- */
-
-#ifndef FWT_SW_H_
-#define FWT_SW_H_
-
-
-#include <linux/types.h>
-#include <qtn/topaz_fwt_db.h>
-#include <qtn/topaz_fwt_if.h>
-
-/* Success definition in FWT Interface is return positive value */
-#define FWT_IF_SUCCESS(x) ((x) >= 0)
-/* Error definition in FWT Interface is return negative value */
-#define FWT_IF_ERROR(x) (!(FWT_IF_SUCCESS(x)))
-
-typedef enum
-{
- FWT_SW_4_ADDR_DEPRECATE = 0,
- FWT_SW_4_ADDR_SUPPORT,
- FWT_SW_4_ADDR_MAX,
-}fwt_sw_4addr_status;
-
-/* Portal represent support in 4 address mode */
-#define FWT_SW_DEFAULT_4ADDR FWT_SW_4_ADDR_DEPRECATE
-
-/*
- * Register overwrite entries for second level entry delete protocol from FWT table
- * @param dst_index: Index to be overwritten
- * @param src_index: Source index
- * */
-void topaz_fwt_register_overwrite_entries(uint16_t dst_index,uint16_t src_index);
-
-/*
- * Register a node
- * @param node_num: node number
- * @param vap_idx: vap index
- */
-void fwt_sw_register_node(uint16_t node_num);
-
-/*
- * Unregister a node
- * @param node_num: node number
- * @param vap_idx: vap index
- */
-void fwt_sw_unregister_node(uint16_t node_num);
-
-/*
- * Add device to the FWT.
- * If successful, update the FWT mirror table and the node list at the fwt database
- *
- * @param mac_id: MAC ID in big endian presentation
- * @param port_id: the port number. Note: must match the FWT HW presentation.
- * @param node_num: the node number
- * @param ip_map: Multicast aliasing bit identifier.
- * @return success / failure indication.
- */
-int fwt_sw_add_device(const uint8_t *mac_be, uint8_t port_id, uint8_t node_num,
- const struct br_ip *group);
-
-/*
- * Set 4 address support for specific MAC ID
- * @param mac_be: mac id in big endian presentation
- * @param addr: Support indication for 4 address method
- */
-int fwt_sw_set_4_address_support(const uint8_t *mac_be, fwt_sw_4addr_status addr);
-/*
- * Reset call will clear both HW and Software FWT tables
- */
-void fwt_sw_reset(void);
-
-/*
- * Print both node list and FWT table
- */
-int fwt_sw_print(void);
-
-
-/* Inidicate expiry time
- * @param mac_be: mac id in big endian presentation
- */
-int fwt_sw_get_timestamp(const uint8_t *mac_be);
-
-/*
- * Delete device entry from both HW and SW FWT tables
- * @param mac_be: MAC in big endian
- */
-int fwt_sw_delete_device(const uint8_t *mac_be);
-
-/*
- * Update or insert new FWT table entry from multicast IGMP message.
- * @param node: node number.
- * @param port_id: output port.
- * @param group: Indication for the multicast address by group id.
- */
-int fwt_sw_join_multicast(uint8_t node, uint8_t port_id,
- const struct br_ip *group);
-/*
- * Remove or delete node from the FWT table entry from multicast IGMP message.
- * @param node: node number.
- * @param port_id: output port.
- * @param group: Indication for the multicast address by group id.
- */
-int fwt_sw_leave_multicast(uint8_t node, uint8_t port_id,
- const struct br_ip *group);
-
-typedef int (*fwt_sw_4addr_callback_t)(void *token, const uint8_t *mac_be, uint8_t port_id,
- uint8_t node_num);
-
-typedef uint8_t (*fwt_sw_remapper_t)(uint8_t in_port, const uint8_t *mac_be);
-
-void fwt_sw_register_port_remapper(uint8_t port, fwt_sw_remapper_t remapper);
-
-/**
- * Callback to determine whether a FWT table entry should be added as 4 address mode or not.
- * Typically registered by qdrv
- * @param callback: callback function pointer to register
- * @param token: will always be provided to the callback when invoked, as the first argument
- */
-void fwt_sw_4addr_callback_set(fwt_sw_4addr_callback_t callback, void *token);
-
-/* Get number of current entries */
-uint16_t fwt_sw_get_entries_cnt(void);
-
-int fwt_sw_cmd(fwt_if_usr_cmd cmd, struct fwt_if_common *data);
-
-int fwt_sw_get_index_from_mac_be(const uint8_t *mac_be);
-
-/*
- * Fast way to get fwt entry for unicast packet
- * @param src_mac_be: source mac address of the packet
- * @param dst_mac_be: destination mac address of the packet
- */
-fwt_db_entry *fwt_sw_fast_get_ucast_entry(const unsigned char *src_mac_be,
- const unsigned char *dst_mac_be);
-
-void fwt_sw_update_false_miss(int index, uint8_t false_miss);
-
-int fwt_sw_get_ipff(char *buf, int buflen);
-
-extern dma_addr_t ipmac_hash_bus;
-extern dma_addr_t ipmac_base_bus;
-
-int fwt_sw_update_uc_ipmac(const uint8_t *mac_be, const uint8_t *ip, uint16_t type);
-
-void fwt_sw_remove_uc_ipmac(const uint8_t *ip, uint16_t type);
-
-#endif /* FWT_INTERFACE_H_ */
diff --git a/quantenna/include/qtn/topaz_hbm.h b/quantenna/include/qtn/topaz_hbm.h
deleted file mode 100644
index e9548cd5..0000000
--- a/quantenna/include/qtn/topaz_hbm.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_HBM_H
-#define __TOPAZ_HBM_H
-
-#include <linux/skbuff.h>
-#include <qtn/qtn_buffers.h>
-#include <qtn/topaz_hbm_cpuif.h>
-
-#include <qtn/dmautil.h>
-#include <asm/cacheflush.h>
-
-#define topaz_hbm_attach_skb(buf_virt, pool, headroom) \
- _topaz_hbm_attach_skb((buf_virt), (pool), 1, (headroom) \
- QTN_SKB_ALLOC_TRACE_ARGSRC)
-#define topaz_hbm_attach_skb_no_invalidate(buf_virt, pool, headroom) \
- _topaz_hbm_attach_skb((buf_virt), (pool), 0, (headroom) \
- QTN_SKB_ALLOC_TRACE_ARGSRC)
-struct sk_buff *_topaz_hbm_attach_skb(void *buf_virt, int8_t pool, int inv, uint8_t headroom
- QTN_SKB_ALLOC_TRACE_ARGS);
-
-#define topaz_hbm_attach_skb_bus(buf_bus, pool) \
- _topaz_hbm_attach_skb_bus((buf_bus), (pool) \
- QTN_SKB_ALLOC_TRACE_ARGSRC)
-static inline struct sk_buff *
-_topaz_hbm_attach_skb_bus(void *buf_bus, int8_t pool
- QTN_SKB_ALLOC_TRACE_ARGS)
-{
- void *buf_virt;
-
- if (unlikely(buf_bus == NULL)) {
- return NULL;
- }
-
- buf_virt = bus_to_virt((uintptr_t) buf_bus);
- if (unlikely(buf_virt == RUBY_BAD_VIRT_ADDR)) {
- return NULL;
- }
-
- return _topaz_hbm_attach_skb(buf_virt, pool, 1, 0
- QTN_SKB_ALLOC_TRACE_ARGVARS);
-}
-
-static inline void topaz_hbm_flush_skb_cache(struct sk_buff *skb)
-{
- uintptr_t flush_start = (uintptr_t) align_buf_cache(skb->head);
- uintptr_t flush_end = align_val_up((uintptr_t) skb_end_pointer(skb),
- dma_get_cache_alignment());
- if (!skb->cache_is_cleaned)
- flush_and_inv_dcache_range(flush_start, flush_end);
-}
-
-void topaz_hbm_filter_txdone_pool(void);
-void topaz_hbm_filter_txdone_buf(void *const buf_bus);
-unsigned int topaz_hbm_pool_available(int8_t pool);
-#ifdef TOPAZ_EMAC_NULL_BUF_WR
-extern void (*topaz_emac_null_buf_del_cb)(void);
-#endif
-
-void topaz_hbm_release_buf_safe(void *const pkt_bus);
-
-struct sk_buff *topaz_hbm_attach_skb_quarantine(void *buf_virt, int pool, int len, uint8_t **whole_frm_hdr);
-
-#endif /* __TOPAZ_HBM_H */
-
diff --git a/quantenna/include/qtn/topaz_hbm_cpuif.h b/quantenna/include/qtn/topaz_hbm_cpuif.h
deleted file mode 100644
index daf2609..0000000
--- a/quantenna/include/qtn/topaz_hbm_cpuif.h
+++ /dev/null
@@ -1,793 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_HBM_CPUIF_PLATFORM_H
-#define __TOPAZ_HBM_CPUIF_PLATFORM_H
-
-#include "mproc_sync.h"
-#include "qtn_buffers.h"
-#include "qtn_arc_processor.h"
-
-/**
- * HBM Requestors
- * 0 - LHost
- * 1 - MuC
- * 2 - emac0 hw wired
- * 3 - emac1 hw wired
- * 4 - wmac hw wired
- * 5 - tqe hw wired
- * 6 - AuC
- * 7 - DSP
- * 8 - PCIE(?)
- *
- * Note: qdrv_pktlogger_get_hbm_stats must be updated if this list is changed.
- */
-#define TOPAZ_HBM_REQUESTOR_NAMES { "lhost", "muc", "emac0", "emac1", "wmac", "tqe", "AuC", "DSP", "PCIe" }
-
-#if defined(__linux__)
- #define TOPAZ_HBM_LOCAL_CPU 0
- #define topaz_hbm_local_irq_save local_irq_save
- #define topaz_hbm_local_irq_restore local_irq_restore
-#elif defined(MUC_BUILD)
- #define TOPAZ_HBM_LOCAL_CPU 1
- #define topaz_hbm_local_irq_save(x) do { (x) = _save_disable(); } while(0)
- #define topaz_hbm_local_irq_restore(x) do { _restore_enable((x)); } while(0)
-#elif defined(AUC_BUILD)
- #define TOPAZ_HBM_LOCAL_CPU 6
- #define topaz_hbm_local_irq_save(x) do { (void)(x); } while(0)
- #define topaz_hbm_local_irq_restore(x) do { (void)(x); } while(0)
-#elif defined(DSP_BUILD)
- #define TOPAZ_HBM_LOCAL_CPU 7
-#else
- #error No TOPAZ_HBM_LOCAL_CPU set
-#endif
-
-#define TOPAZ_HBM_NUM_POOLS 4
-
-#ifdef QTN_RC_ENABLE_HDP
-#define TOPAZ_HBM_PAYLOAD_HEADROOM 128
-#else
-#define TOPAZ_HBM_PAYLOAD_HEADROOM 64
-#endif
-
-#define TOPAZ_HBM_PAYLOAD_END_GUARD_SIZE 32 /* equal to cacheline size */
-#define TOPAZ_HBM_BUF_GUARD_MAGIC 0xDEADBEEF
-#define TOPAZ_HBM_BUF_CORRUPTED_MAGIC 0xDEADBEEF
-#define TOPAZ_HBM_BUF_PAYLOAD_POISON 0xA5
-#define TOPAZ_HBM_BUF_PAYLOAD_POISON32 (TOPAZ_HBM_BUF_PAYLOAD_POISON | \
- (TOPAZ_HBM_BUF_PAYLOAD_POISON << 8) | \
- (TOPAZ_HBM_BUF_PAYLOAD_POISON << 16) | \
- (TOPAZ_HBM_BUF_PAYLOAD_POISON << 24))
-
-#define TOPAZ_HBM_BUF_EXTERNAL_META 1 /* move meta data outside of buffer */
-#define TOPAZ_HBM_BUF_WMAC_RX_QUARANTINE 1 /* quarantine wmac rx buffers when deliver important packets */
-
-#if defined(CONFIG_TOPAZ_PCIE_TARGET) || defined(CONFIG_TOPAZ_DBDC_HOST)
-/*
- * Checking emac rx pool buffers lead to performance impact in PCIe, so limit
- * the check for wmac rx pool only.
- */
-#define TOPAZ_HBM_BUF_MAGIC_CHK_ALLPOOL 0
-#else
-#define TOPAZ_HBM_BUF_MAGIC_CHK_ALLPOOL 1
-#endif
-
-#define TOPAZ_HBM_DEBUG_DUMP 0 /* inline debug dump functions */
-#define TOPAZ_HBM_DEBUG_STAMPS 0 /* extra trace info in meta data */
-
-#if TOPAZ_HBM_DEBUG_STAMPS
-#define TOPAZ_HBM_OWNER_MUC_FREE 0x9
-#define TOPAZ_HBM_OWNER_AUC_FREE 0xa
-#define TOPAZ_HBM_OWNER_LH_TX_TQE 0xb
-#define TOPAZ_HBM_OWNER_LH_RX_TQE 0xc
-#define TOPAZ_HBM_OWNER_LH_RX_MBOX 0xd
-#define TOPAZ_HBM_OWNER_INIT 0xe
-#define TOPAZ_HBM_OWNER_FREE 0xf
-#endif
-
-#define TOPAZ_HBM_ERR_NONE 0
-#define TOPAZ_HBM_ERR_PTR (-1)
-#define TOPAZ_HBM_ERR_MAGIC (-2)
-#define TOPAZ_HBM_ERR_TAILGUARD (-3)
-
-/*
- * The usage of the HBM buffer headroom and meta data, depending on TOPAZ_HBM_BUF_EXTERNAL_META:
- * 1. When it is 1, all the below meta data except magic in head and tail, and pointer to meta are
- * in separate memory region, outside of the buffer.
- * 2. When it is 0, all the below meta data are in HBM buffer headroom.
- * To avoid define different offset values for above 2 cases, we use the same definition. The only
- * difference is where the meta data is stored.
- */
-enum QTN_HBM_BUF_HEADROOM_OFFSET {
- HBM_HR_OFFSET_ENQ_CNT = 1, /* in word */
- HBM_HR_OFFSET_FREE_CNT = 2, /* in word */
- HBM_HR_OFFSET_OCS_FRM_ID = 3, /* in word */
- HBM_HR_OFFSET_FREE_JIFF = 4, /* debugging; jiffies of last free. leaked buffer heuristic */
- HBM_HR_OFFSET_OWNER = 5, /* debugging; buffer owner */
- HBM_HR_OFFSET_SIZE = 6, /* debugging; buffer size */
- HBM_HR_OFFSET_STATE = 7, /* state about the buffer */
- HBM_HR_OFFSET_META_PTR = 8, /* pointer and back pointer bwtween buffer and meta, bus addr */
- HBM_HR_OFFSET_MAGIC = 9, /* the magic, keep it biggest thus first in headroom */
- HBM_HR_OFFSET_MAX = HBM_HR_OFFSET_MAGIC,
-};
-
-#define QTN_HBM_SANITY_BAD_HR_MAGIC BIT(0)
-#define QTN_HBM_SANITY_BAD_TAIL_GUARD BIT(1)
-#define QTN_HBM_SANITY_BAD_ALREADY BIT(31)
-
-#define TOPAZ_HBM_BUF_DUMP_MAX 0xFFFF
-#define TOPAZ_HBM_BUF_DUMP_DFT 512U
-#define TOPAZ_HBM_BUF_DUMP_TAIL_DFT 2048U
-
-#if TOPAZ_HBM_DEBUG_DUMP
-#if defined(DSP_BUILD)
-#elif defined(AUC_BUILD)
- #define CPU_PRINT auc_os_printf
- #define CPU_INV_DCACHE_RANGE(_v, _range)
- #define CPU_HZ AUC_CPU_TIMER_HZ
-#elif defined(MUC_BUILD)
- #define CPU_PRINT uc_printk
- #define CPU_INV_DCACHE_RANGE invalidate_dcache_range_safe
- #define CPU_HZ HZ
-#else
- #ifdef __KERNEL__
- #include <qtn/dmautil.h>
- #define CPU_PRINT printk
- #define CPU_INV_DCACHE_RANGE inv_dcache_sizerange_safe
- #define CPU_HZ HZ
- #endif
-#endif
-#endif // TOPAZ_HBM_DEBUG_DUMP
-
-RUBY_INLINE uint32_t topaz_hbm_buf_offset_from_start_bus(void *buf_bus, uint8_t pool, uint8_t is_aligned)
-{
- if (is_aligned) {
- return ((uint32_t)buf_bus) & (TOPAZ_HBM_BUF_ALIGN - 1);
- }
- if (pool == TOPAZ_HBM_BUF_WMAC_RX_POOL) {
- return (((uint32_t)buf_bus) - TOPAZ_HBM_BUF_WMAC_RX_BASE) % TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- } else if (pool == TOPAZ_HBM_BUF_EMAC_RX_POOL) {
- return (((uint32_t)buf_bus) - TOPAZ_HBM_BUF_EMAC_RX_BASE) % TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- } else {
- return 0;
- }
-}
-
-RUBY_INLINE int topaz_hbm_buf_identify_buf_bus(const void *buf_bus, uint32_t *sizep, uint32_t *idxp)
-{
- if (__in_mem_range((uint32_t)buf_bus, TOPAZ_HBM_BUF_EMAC_RX_BASE, TOPAZ_HBM_BUF_EMAC_RX_TOTAL)) {
- *sizep = TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- *idxp = (((uint32_t)buf_bus) - TOPAZ_HBM_BUF_EMAC_RX_BASE) / TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- return TOPAZ_HBM_BUF_EMAC_RX_POOL;
- } else if (__in_mem_range((uint32_t)buf_bus, TOPAZ_HBM_BUF_WMAC_RX_BASE, TOPAZ_HBM_BUF_WMAC_RX_TOTAL)) {
- *sizep = TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- *idxp = (((uint32_t)buf_bus) - TOPAZ_HBM_BUF_WMAC_RX_BASE) / TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- return TOPAZ_HBM_BUF_WMAC_RX_POOL;
- } else {
- return -1;
- }
-}
-
-RUBY_INLINE int topaz_hbm_buf_identify_buf_virt(const void *buf_virt, uint32_t *sizep, uint32_t *idxp)
-{
- if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_EMAC_RX_TOTAL)) {
- *sizep = TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- *idxp = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT) / TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- return TOPAZ_HBM_BUF_EMAC_RX_POOL;
- } else if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_WMAC_RX_TOTAL)) {
- *sizep = TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- *idxp = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT) / TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- return TOPAZ_HBM_BUF_WMAC_RX_POOL;
- } else {
- return -1;
- }
-}
-
-RUBY_INLINE int topaz_hbm_buf_ptr_valid(const void *buf_virt)
-{
- uint32_t offset;
-
- if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_EMAC_RX_TOTAL)) {
- offset = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT) % TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- } else if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_WMAC_RX_TOTAL)) {
- offset = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT) % TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- } else {
- return 0;
- }
-
- return (offset == TOPAZ_HBM_PAYLOAD_HEADROOM);
-}
-
-#if TOPAZ_HBM_BUF_EXTERNAL_META
-RUBY_INLINE void* topaz_hbm_buf_get_meta(const void *buf_virt)
-{
- uint32_t idx;
-
- if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_EMAC_RX_TOTAL)) {
- idx = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_EMAC_RX_BASE_VIRT) / TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- return (void*)(TOPAZ_HBM_BUF_META_EMAC_RX_BASE_VIRT + TOPAZ_HBM_BUF_META_SIZE +
- idx * TOPAZ_HBM_BUF_META_SIZE);
- } else if (__in_mem_range((uint32_t)buf_virt, TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT, TOPAZ_HBM_BUF_WMAC_RX_TOTAL)) {
- idx = (((uint32_t)buf_virt) - TOPAZ_HBM_BUF_WMAC_RX_BASE_VIRT) / TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- return (void*)(TOPAZ_HBM_BUF_META_WMAC_RX_BASE_VIRT + TOPAZ_HBM_BUF_META_SIZE +
- idx * TOPAZ_HBM_BUF_META_SIZE);
- } else {
- return NULL;
- }
-}
-
-/*
- * A fast way to get the meta address.
- * However this assume the meta address in buffer headroom is not corrupted as long as the magic in
- * buffer headroom is not corrupted. So this is not 100% correct, but it can be used to speed up for
- * some non-real-world test.
- */
-RUBY_INLINE void* topaz_hbm_buf_get_meta_fast(const void *buf_virt)
-{
- uint32_t *magicp = (uint32_t*)buf_virt - HBM_HR_OFFSET_MAGIC;
-
- /* assume ptr is valid when magic is not corrupted */
- if (likely(arc_read_uncached_32(magicp) == TOPAZ_HBM_BUF_GUARD_MAGIC)) {
- uint32_t *meta_ptr_p = (uint32_t*)buf_virt - HBM_HR_OFFSET_META_PTR;
- return (void*)bus_to_virt(arc_read_uncached_32(meta_ptr_p));
- }
-
- return topaz_hbm_buf_get_meta(buf_virt);
-}
-#else
-#define topaz_hbm_buf_get_meta_fast(_buf_virt) (_buf_virt)
-#define topaz_hbm_buf_get_meta(_buf_virt) (_buf_virt)
-#endif
-
-RUBY_INLINE uint32_t topaz_hbm_buf_offset_from_start_virt(void *buf_virt, uint8_t pool, uint8_t is_aligned)
-{
- return topaz_hbm_buf_offset_from_start_bus((void *)virt_to_bus(buf_virt), pool, is_aligned);
-}
-
-RUBY_INLINE void *topaz_hbm_payload_store_align_bus(void *buf_bus, uint8_t pool, uint8_t is_aligned)
-{
- return ((uint8_t *)buf_bus) - topaz_hbm_buf_offset_from_start_bus(buf_bus, pool, is_aligned)
- + TOPAZ_HBM_PAYLOAD_HEADROOM;
-}
-
-RUBY_INLINE void *topaz_hbm_payload_store_align_virt(void *buf_virt, uint8_t pool, uint8_t is_aligned)
-{
- return ((uint8_t *)buf_virt) - topaz_hbm_buf_offset_from_start_virt(buf_virt, pool, is_aligned)
- + TOPAZ_HBM_PAYLOAD_HEADROOM;
-}
-
-RUBY_INLINE unsigned long topaz_hbm_payload_store_align_from_index(int8_t pool, uint16_t index)
-{
- if (pool == TOPAZ_HBM_BUF_EMAC_RX_POOL && index < TOPAZ_HBM_BUF_EMAC_RX_COUNT) {
- return RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_EMAC_RX_BASE +
- (index * TOPAZ_HBM_BUF_EMAC_RX_SIZE) + TOPAZ_HBM_PAYLOAD_HEADROOM;
- } else if (pool == TOPAZ_HBM_BUF_WMAC_RX_POOL && index < TOPAZ_HBM_BUF_WMAC_RX_COUNT) {
- return RUBY_DRAM_BEGIN + TOPAZ_HBM_BUF_WMAC_RX_BASE +
- (index * TOPAZ_HBM_BUF_WMAC_RX_SIZE) + TOPAZ_HBM_PAYLOAD_HEADROOM;
- }
- return 0;
-}
-
-RUBY_INLINE long topaz_hbm_payload_buff_ptr_offset_bus(void *buf_bus, uint8_t pool, void *align_bus)
-{
- unsigned long buf_align = (unsigned long)topaz_hbm_payload_store_align_bus(
- align_bus ? align_bus : buf_bus, pool, !!align_bus);
-
- return buf_align - (unsigned long)buf_bus;
-}
-
-RUBY_INLINE long topaz_hbm_payload_buff_ptr_offset_virt(void *buf_virt, uint8_t pool, void *align_virt)
-{
- return topaz_hbm_payload_buff_ptr_offset_bus((void *)virt_to_bus(buf_virt), pool,
- align_virt ? (void *)virt_to_bus(align_virt) : NULL);
-}
-
-RUBY_INLINE int __topaz_hbm_is_done(void)
-{
- return qtn_mproc_sync_mem_read(TOPAZ_HBM_POOL_REQ(TOPAZ_HBM_LOCAL_CPU)) & TOPAZ_HBM_DONE;
-}
-
-RUBY_INLINE void __topaz_hbm_release_buf(void *buf, uint8_t pool)
-{
- /* assumes previous operations are complete */
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_POOL_DATA(TOPAZ_HBM_LOCAL_CPU),
- (unsigned long) buf);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_POOL_REQ(TOPAZ_HBM_LOCAL_CPU),
- TOPAZ_HBM_POOL_NUM(pool) | TOPAZ_HBM_RELEASE_BUF);
-}
-
-RUBY_INLINE void __topaz_hbm_request_start(uint8_t pool)
-{
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_POOL_REQ(TOPAZ_HBM_LOCAL_CPU),
- TOPAZ_HBM_POOL_NUM(pool) | TOPAZ_HBM_REQUEST_BUF);
-}
-
-RUBY_INLINE void *__topaz_hbm_rd_buf(uint8_t pool)
-{
- /* must be preceded by __topaz_hbm_rd_req, then polling on __topaz_hbm_is_done */
- return (void *) qtn_mproc_sync_mem_read(TOPAZ_HBM_POOL_DATA(TOPAZ_HBM_LOCAL_CPU));
-}
-
-RUBY_INLINE void __topaz_hbm_wait(void)
-{
- unsigned int timeouts = 0;
- unsigned int timeout_reached = 0;
-
- while (1) {
- int i;
- if (__topaz_hbm_is_done()) {
- return;
- }
-
- /* busy wait until buffer is available */
- for (i = 0; i < 10; i++) {
-#if defined(AUC_BUILD) && defined(_ARC)
- /*
- * This is a workaround for MetaWare C Compiler v7.4.0
- * bug in Zero-Delay Loop code generation for ARC 600 family cores.
- * Without it the LP_START register will be written to, two
- * instruction before the end address of the loop, but at least three
- * instructions are required according to the ARC ISA Programmer's
- * Reference.
- */
- _nop();
- _nop();
- _nop();
-#else
- qtn_pipeline_drain();
-#endif
- }
-
- if (unlikely(timeout_reached == 0 && timeouts++ == 1000)) {
- timeout_reached = 1;
- qtn_mproc_sync_log("__topaz_hbm_wait timeout");
- }
- }
-
- if (unlikely(timeout_reached)) {
- qtn_mproc_sync_log("__topaz_hbm_wait succeeded");
- }
-}
-
-RUBY_INLINE int __topaz_hbm_put_buf_nowait(void *buf, uint8_t pool)
-{
- if (__topaz_hbm_is_done()) {
- __topaz_hbm_release_buf(buf, pool);
- return 0;
- }
- return -EBUSY;
-}
-
-RUBY_INLINE void __topaz_hbm_put_buf(void *buf, uint8_t pool)
-{
- __topaz_hbm_wait();
- __topaz_hbm_release_buf(buf, pool);
-}
-
-#if defined(MUC_BUILD)
-RUBY_INLINE void topaz_hbm_put_buf(void *buf, uint8_t pool)
-#else
-RUBY_WEAK(topaz_hbm_put_buf) void topaz_hbm_put_buf(void *buf, uint8_t pool)
-#endif
-{
- unsigned long flags;
-
- topaz_hbm_local_irq_save(flags);
- __topaz_hbm_put_buf(buf, pool);
- topaz_hbm_local_irq_restore(flags);
-}
-
-RUBY_INLINE void *__topaz_hbm_get_buf(uint8_t pool)
-{
- __topaz_hbm_wait();
- __topaz_hbm_request_start(pool);
- __topaz_hbm_wait();
- return __topaz_hbm_rd_buf(pool);
-}
-
-#if defined(MUC_BUILD)
-RUBY_INLINE void *topaz_hbm_get_buf(uint8_t pool)
-#else
-RUBY_WEAK(topaz_hbm_get_buf) void *topaz_hbm_get_buf(uint8_t pool)
-#endif
-{
- unsigned long flags;
- void *buf;
-
- topaz_hbm_local_irq_save(flags);
- buf = __topaz_hbm_get_buf(pool);
- topaz_hbm_local_irq_restore(flags);
-
- return buf;
-}
-
-RUBY_INLINE void topaz_hbm_init(void *pool_list_bus, uint16_t payload_count_s, uint8_t pool, int full)
-{
- unsigned long csr;
- const uint16_t payload_count = BIT(payload_count_s);
-
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_BASE_REG(pool), (unsigned long) pool_list_bus);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_LIMIT_REG(pool), payload_count);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_WR_PTR(pool), full ? payload_count : 0);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_RD_PTR(pool), 0);
-
- csr = qtn_mproc_sync_mem_read(TOPAZ_HBM_CSR_REG);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_HBM_CSR_REG, csr | TOPAZ_HBM_CSR_Q_EN(pool));
-}
-
-RUBY_INLINE uint32_t topaz_hbm_pool_buf_whole_size(int8_t pool)
-{
- if (pool == TOPAZ_HBM_BUF_EMAC_RX_POOL) {
- return TOPAZ_HBM_BUF_EMAC_RX_SIZE;
- } else if (pool == TOPAZ_HBM_BUF_WMAC_RX_POOL) {
- return TOPAZ_HBM_BUF_WMAC_RX_SIZE;
- } else {
- return 0;
- }
-}
-
-RUBY_INLINE uint32_t topaz_hbm_pool_buf_max_size(int8_t pool)
-{
- uint32_t size;
-
- size = topaz_hbm_pool_buf_whole_size(pool);
- if (!size)
- return 0;
-
- return size -
- TOPAZ_HBM_PAYLOAD_HEADROOM -
- TOPAZ_HBM_PAYLOAD_END_GUARD_SIZE;
-}
-
-RUBY_INLINE int8_t topaz_hbm_pool_valid(int8_t pool)
-{
- return pool >= 0 && pool < TOPAZ_HBM_NUM_POOLS;
-}
-
-RUBY_INLINE int8_t topaz_hbm_payload_get_pool_bus(const void *buf_bus)
-{
- const unsigned long v = (const unsigned long) buf_bus;
- if (__in_mem_range(v, TOPAZ_HBM_BUF_EMAC_RX_BASE, TOPAZ_HBM_BUF_EMAC_RX_TOTAL)) {
- return TOPAZ_HBM_BUF_EMAC_RX_POOL;
- } else if (__in_mem_range(v, TOPAZ_HBM_BUF_WMAC_RX_BASE, TOPAZ_HBM_BUF_WMAC_RX_TOTAL)) {
- return TOPAZ_HBM_BUF_WMAC_RX_POOL;
- } else {
- return -1;
- }
-}
-
-RUBY_INLINE int8_t topaz_hbm_payload_get_free_pool_bus(const void *buf_bus)
-{
- int8_t orig_pool = topaz_hbm_payload_get_pool_bus(buf_bus);
- if (orig_pool == TOPAZ_HBM_BUF_EMAC_RX_POOL || orig_pool == TOPAZ_HBM_BUF_WMAC_RX_POOL) {
- return TOPAZ_HBM_EMAC_TX_DONE_POOL;
- }
- return -1;
-}
-
-RUBY_INLINE void topaz_hbm_put_payload_aligned_bus(void *buf_bus, int8_t pool)
-{
- if (likely(topaz_hbm_pool_valid(pool))) {
- topaz_hbm_put_buf(topaz_hbm_payload_store_align_bus(buf_bus, pool, 1), pool);
- }
-}
-
-RUBY_INLINE void topaz_hbm_put_payload_realign_bus(void *buf_bus, int8_t pool)
-{
- if (likely(topaz_hbm_pool_valid(pool))) {
- topaz_hbm_put_buf(topaz_hbm_payload_store_align_bus(buf_bus, pool, 0), pool);
- }
-}
-
-RUBY_INLINE void topaz_hbm_put_payload_aligned_virt(void *buff_virt, int8_t pool)
-{
- topaz_hbm_put_payload_aligned_bus((void *) virt_to_bus(buff_virt), pool);
-}
-
-RUBY_INLINE void topaz_hbm_put_payload_realign_virt(void *buff_virt, int8_t pool)
-{
- topaz_hbm_put_payload_realign_bus((void *) virt_to_bus(buff_virt), pool);
-}
-
-#ifdef __KERNEL__
-#define topaz_hbm_get_payload_bus(pool) __topaz_hbm_get_payload_bus((pool), __FILE__, __LINE__, __FUNCTION__)
-RUBY_INLINE void *__topaz_hbm_get_payload_bus(int8_t pool, const char *file, const int line, const char *func)
-{
- if (likely(topaz_hbm_pool_valid(pool))) {
- return topaz_hbm_get_buf(pool);
- }
- if (printk_ratelimit()) {
- printk("%s:%u%s null buffer from pool %hhd\n",
- file, line, func, pool);
- }
- return NULL;
-}
-
-#define topaz_hbm_get_payload_virt(pool) __topaz_hbm_get_payload_virt((pool), __FILE__, __LINE__, __FUNCTION__)
-RUBY_INLINE void *__topaz_hbm_get_payload_virt(int8_t pool, const char *file, const int line, const char *func)
-{
- void *buf_bus = topaz_hbm_get_payload_bus(pool);
- if (unlikely(!buf_bus)) {
- if (printk_ratelimit()) {
- printk("%s:%u%s null buffer from pool %hhd\n",
- file, line, func, pool);
- }
- return NULL;
- }
- return bus_to_virt((unsigned long) buf_bus);
-}
-
-#else
-
-RUBY_INLINE void *topaz_hbm_get_payload_bus(int8_t pool)
-{
- if (likely(topaz_hbm_pool_valid(pool))) {
- return topaz_hbm_get_buf(pool);
- }
- return NULL;
-}
-
-RUBY_INLINE void *topaz_hbm_get_payload_virt(int8_t pool)
-{
- void *buf_bus = topaz_hbm_get_payload_bus(pool);
- if (unlikely(!buf_bus)) {
- return NULL;
- }
- return bus_to_virt((unsigned long) buf_bus);
-}
-#endif
-
-RUBY_INLINE int hbm_buf_check_wmac_rx_buf_overrun(void *v, int fix)
-{
- uint32_t *guardp;
-
- /* only check last 4 bytes guard */
- guardp =(uint32_t*)((uint32_t)v + TOPAZ_HBM_BUF_WMAC_RX_SIZE - TOPAZ_HBM_PAYLOAD_HEADROOM - 4);
- if (likely(arc_read_uncached_32(guardp) == TOPAZ_HBM_BUF_GUARD_MAGIC)) {
- return TOPAZ_HBM_ERR_NONE;
- }
-
- /*
- * It is best if we do the buffer pointer check first, but as we only do the overrun check after wmac rx,
- * if it is bad, the memory is already corrupted.
- */
-
- if (fix) {
- arc_write_uncached_32(guardp, TOPAZ_HBM_BUF_GUARD_MAGIC);
- }
-
- return TOPAZ_HBM_ERR_TAILGUARD;
-}
-
-RUBY_INLINE int hbm_buf_check_buf_magic(void *v)
-{
- uint32_t *magicp = (uint32_t*)v - HBM_HR_OFFSET_MAGIC;
-
- if (likely(arc_read_uncached_32(magicp) == TOPAZ_HBM_BUF_GUARD_MAGIC)) {
- return TOPAZ_HBM_ERR_NONE;
- }
-
- return TOPAZ_HBM_ERR_MAGIC;
-}
-
-RUBY_INLINE void hbm_buf_fix_buf_magic(void *v)
-{
- uint32_t *magicp = (uint32_t*)v - HBM_HR_OFFSET_MAGIC;
-
- arc_write_uncached_32(magicp, TOPAZ_HBM_BUF_GUARD_MAGIC);
-}
-
-#if TOPAZ_HBM_DEBUG_DUMP
-/* assume v is 4 bytes aligned */
-RUBY_INLINE void topaz_buf_dump_range(const void *v, int len)
-{
-#if defined(DSP_BUILD)
-#elif defined(AUC_BUILD)
- int i;
- const uint32_t *d32;
- int dump_loop;
-
- d32 = v;
- dump_loop = ((len + 3) >> 2) >> 3;
- for (i = 0; i < dump_loop; i++) {
- CPU_PRINT("0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x",
- d32[0], d32[1], d32[2], d32[3], d32[4], d32[5], d32[6], d32[7]);
- d32 += 8;
- }
-#else
- int i;
- const uint8_t *d;
-
- d = v;
- for (i = 0; i < len; ) {
- if (!(i % 32))
- CPU_PRINT("%08x ", (i - i % 32));
- ++i;
- CPU_PRINT("%02x%s", *d++, (i % 32) == 0 ? "\n" : " ");
- }
- CPU_PRINT("\n");
-#endif
-}
-
-RUBY_INLINE void topaz_hbm_buf_show(void *v, const uint32_t len, const uint32_t tail_len)
-{
-#if defined(DSP_BUILD)
-#else
- const uint32_t *_p = v;
- const uint32_t *_m = topaz_hbm_buf_get_meta(_p);
- const uint32_t *enqueuep = _m - HBM_HR_OFFSET_ENQ_CNT;
- const uint32_t *freep = _m - HBM_HR_OFFSET_FREE_CNT;
- const uint32_t *jiffp = _m - HBM_HR_OFFSET_FREE_JIFF;
- const uint32_t *ownerp = _m - HBM_HR_OFFSET_OWNER;
- const uint32_t *sizep = _m - HBM_HR_OFFSET_SIZE;
- const uint32_t *magicp = _p - HBM_HR_OFFSET_MAGIC;
- const uint32_t ec = arc_read_uncached_32(enqueuep);
- const uint32_t fc = arc_read_uncached_32(freep);
- const uint32_t jc = arc_read_uncached_32(jiffp);
- const uint32_t oc = arc_read_uncached_32(ownerp);
- const uint32_t sz = arc_read_uncached_32(sizep);
- const uint32_t magic = arc_read_uncached_32(magicp);
- uint32_t *guardp;
- uint32_t guard;
- int dump_bytes;
- uint32_t whole_size;
- uint32_t payload_size;
- int pool;
- uint32_t idx;
-
- pool = topaz_hbm_buf_identify_buf_virt(v, &whole_size, &idx);
- if (pool < 0) {
- return;
- }
- payload_size = whole_size - TOPAZ_HBM_PAYLOAD_HEADROOM;
- CPU_INV_DCACHE_RANGE((void*)v, payload_size);
- dump_bytes = (len == TOPAZ_HBM_BUF_DUMP_MAX) ? payload_size : len;
-
- /* only check last 4 bytes guard */
- guardp =(uint32_t*)((uint32_t)_p + payload_size - 4);
- guard = arc_read_uncached_32(guardp);
-
- CPU_PRINT("buf start 0x%x pool %d idx %u size %u dump %u\n",
- (unsigned int)v, pool, idx, whole_size, dump_bytes);
-#ifdef __KERNEL__
- CPU_PRINT("%p ec %u fp %u own %08x size %u j %u (%u s ago)\n",
- v, ec, fc, oc, sz, jc, (((uint32_t) jiffies) - jc) / CPU_HZ);
-#else
- /* free jiffies is only set by Lhost, so no way to do jiffies diff */
- CPU_PRINT("%p ec %u fp %u own %08x size %u j %u (local j %u)\n",
- v, ec, fc, oc, sz, jc, ((uint32_t) jiffies));
-#endif
- if (magic != TOPAZ_HBM_BUF_GUARD_MAGIC) {
- CPU_PRINT("magic %x corrupted\n", magic);
- }
- if (guard != TOPAZ_HBM_BUF_GUARD_MAGIC) {
- CPU_PRINT("guard %x corrupted\n", guard);
- }
-
- topaz_buf_dump_range(v, dump_bytes);
-
- if (tail_len) {
- uint32_t tail;
-
- tail = (uint32_t)v;
- tail += payload_size;
- tail -= tail_len;
-
- CPU_PRINT("buf tail 0x%x\n", tail);
- topaz_buf_dump_range((void*)tail, tail_len);
- }
-#endif
-}
-
-/*
- * Full sanity check suitable for all buffers.
- * Debug build use only, not suitable for release because of performance impact.
- */
-RUBY_INLINE int hbm_buf_check_sanity(void *v)
-{
- const uint32_t *magicp = (uint32_t*)v - HBM_HR_OFFSET_MAGIC;
- uint32_t *_m;
- uint32_t *statep;
- uint32_t state;
- uint32_t magic;
- uint32_t payload_size;
- uint32_t *guardp;
- uint32_t guard;
- uint32_t size = 0;
- uint32_t idx = 0;
- uint32_t bad = 0;
- int pool;
-
- magic = arc_read_uncached_32(magicp);
- if (unlikely(magic != TOPAZ_HBM_BUF_GUARD_MAGIC)) {
- bad |= QTN_HBM_SANITY_BAD_HR_MAGIC;
- }
-
- pool = topaz_hbm_buf_identify_buf_virt(v, &size, &idx);
- payload_size = size - TOPAZ_HBM_PAYLOAD_HEADROOM;
- /* only check last 4 bytes guard */
- guardp =(uint32_t*)((uint32_t)v + payload_size - 4);
- guard = arc_read_uncached_32(guardp);
- if (unlikely(guard != TOPAZ_HBM_BUF_GUARD_MAGIC)) {
- bad |= QTN_HBM_SANITY_BAD_TAIL_GUARD;
- }
-
- if (likely(!bad))
- return 0;
-
- /* avoid multiple alert */
- _m = topaz_hbm_buf_get_meta(v);
- statep = (uint32_t*)_m - HBM_HR_OFFSET_STATE;
- state = arc_read_uncached_32(statep);
- if ((bad & (~state)) == 0) {
- return (bad | QTN_HBM_SANITY_BAD_ALREADY);
- }
-
- /* new corruption */
- arc_write_uncached_32(statep, bad);
- CPU_PRINT("ERROR: hbm buffer %x corrupted, pool %d, idx %u\n",
- (unsigned int)v, pool, idx);
-
- topaz_hbm_buf_show(v, TOPAZ_HBM_BUF_DUMP_DFT, 0);
-
- /* new corruption of tail guard */
- if ((bad & QTN_HBM_SANITY_BAD_TAIL_GUARD) && !(state & QTN_HBM_SANITY_BAD_TAIL_GUARD)) {
- /* find the corruption extent */
- int i;
- int j = 0;
- int lines = (size * 4) / 16;
- uint32_t pos = 0;
- for (i = 0; i < lines ; i++) {
- for (j = 0; j < 4; j++) {
- pos = (uint32_t)v + i * 16 + j * 4;
- if (*(uint32_t*)pos != (uint32_t)TOPAZ_HBM_BUF_PAYLOAD_POISON32)
- break;
- }
- if (j == 4)
- break;
- }
- CPU_PRINT("guess tail corruption length %d %x\n", (i * 16) + (j * 4), pos);
- }
-
- return bad;
-}
-#endif // TOPAZ_HBM_DEBUG_DUMP
-
-#if TOPAZ_HBM_DEBUG_STAMPS
-RUBY_INLINE void topaz_hbm_debug_stamp(void *buf, uint8_t port, uint32_t size)
-{
- uint32_t *p = buf;
- uint32_t *_m = topaz_hbm_buf_get_meta(p);
- uint32_t *ownerp = _m - HBM_HR_OFFSET_OWNER;
- uint32_t *sizep = _m - HBM_HR_OFFSET_SIZE;
-
- arc_write_uncached_32(ownerp, (arc_read_uncached_32(ownerp) << 4) | (port & 0xF));
- if (size) {
- arc_write_uncached_32(sizep, size);
- }
-}
-
-#else
-#define topaz_hbm_debug_stamp(_buf, _port, _size)
-#endif /* TOPAZ_HBM_DEBUG_STAMPS */
-
-#endif /* __TOPAZ_HBM_CPUIF_PLATFORM_H */
diff --git a/quantenna/include/qtn/topaz_ipprt.h b/quantenna/include/qtn/topaz_ipprt.h
deleted file mode 100644
index 206f344..0000000
--- a/quantenna/include/qtn/topaz_ipprt.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_IPPROTO_TABLE_H
-#define __TOPAZ_IPPROTO_TABLE_H
-
-#include <common/topaz_emac.h>
-#include <qtn/mproc_sync_base.h>
-
-union topaz_ipprt_entry {
- uint32_t raw;
- struct {
- uint32_t out_node :7,
- out_port :4,
- valid :1,
- __unused :21;
- } data;
-};
-
-
-#define TOPAZ_IPPRT_ENTRY_INIT { 0 }
-
-RUBY_INLINE void topaz_ipprt_set_entry(uint8_t emac, uint8_t ip_proto, union topaz_ipprt_entry e)
-{
- uint32_t emac_base = emac ? RUBY_ENET1_BASE_ADDR : RUBY_ENET0_BASE_ADDR;
- qtn_mproc_sync_mem_write(emac_base + TOPAZ_EMAC_IP_PROTO_ENTRY(ip_proto), e.raw);
-}
-
-RUBY_INLINE void topaz_ipprt_clear_entry(uint8_t emac, uint8_t ip_proto)
-{
- uint32_t emac_base = emac ? RUBY_ENET1_BASE_ADDR : RUBY_ENET0_BASE_ADDR;
- qtn_mproc_sync_mem_write(emac_base + TOPAZ_EMAC_IP_PROTO_ENTRY(ip_proto), 0x0);
-}
-
-RUBY_INLINE void topaz_ipprt_clear_all_entries(uint8_t emac)
-{
- int proto;
- for (proto = 0; proto < TOPAZ_EMAC_IP_PROTO_ENTRIES; ++proto) {
- topaz_ipprt_clear_entry(emac, proto);
- }
-}
-
-RUBY_INLINE void topaz_ipprt_set(uint8_t emac, uint8_t ip_proto, uint8_t out_port, uint8_t out_node)
-{
- union topaz_ipprt_entry e = TOPAZ_IPPRT_ENTRY_INIT;
- e.data.out_node = out_node;
- e.data.out_port = out_port;
- e.data.valid = 1;
- topaz_ipprt_set_entry(emac, ip_proto, e);
-}
-
-RUBY_INLINE union topaz_ipprt_entry topaz_ipprt_get_entry(uint8_t emac, uint8_t ip_proto)
-{
- uint32_t emac_base = emac ? RUBY_ENET1_BASE_ADDR : RUBY_ENET0_BASE_ADDR;
- union topaz_ipprt_entry e;
- e.raw = qtn_mproc_sync_mem_read(emac_base + TOPAZ_EMAC_IP_PROTO_ENTRY(ip_proto));
- return e;
-}
-
-#ifndef TOPAZ_TEST_ASSERT_EQUAL
-# define TOPAZ_TEST_ASSERT_EQUAL(a, b) if ((a) != (b)) { return -1; }
-#endif
-RUBY_INLINE int topaz_ipprt_entry_bitfield_test(const union topaz_ipprt_entry *e)
-{
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_EMAC_IP_PROTO_OUT_NODE), e->data.out_node);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_EMAC_IP_PROTO_OUT_PORT), e->data.out_port);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_EMAC_IP_PROTO_VALID), e->data.valid);
-
- return 0;
-}
-
-#endif /* __TOPAZ_IPPROTO_TABLE_H */
-
diff --git a/quantenna/include/qtn/topaz_qfp.h b/quantenna/include/qtn/topaz_qfp.h
deleted file mode 100644
index f15a2e9..0000000
--- a/quantenna/include/qtn/topaz_qfp.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * (C) Copyright 2015 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_QFP_H__
-#define __TOPAZ_QFP_H__
-
-
-#define ioremap ioremap_nocache
-
-/**
- * \brief Initialize topaz PCIe QFP interface.
- *
- * Initialize topaz PCIe QFP interface. This function should be called before
- * any other QFP API call.
- *
- * \param pci_dev pci_dev pci_dev structure point to PCIe adapter
- * \param msi flag for using legacy interrupt (0) or MSI (1)
- *
- * \return 0 on success.
- *
- */
-extern int qfp_init(struct pci_dev * pci_dev, int msi);
-
-/**
- * \brief De-initialize topaz PCIe QFP interface.
- *
- * De-initialize topaz PCIe QFP interface.
- *
- * \param pci_dev pci_dev pci_dev structure point to PCIe adapter
- * \param msi flag for using legacy interrupt (0) or MSI (1)
- *
- *
- */
-extern void qfp_deinit(struct pci_dev * pci_dev, int msi);
-
-/**
- * \brief register master netdev to QFP
- *
- * Register master netdev to QFP. After calling this function, packets received
- * or transmit through this netdef will be accelerated by QFP.
- *
- * The caller should call this function right before calling register_netdev()
- * for the master netdev.
- *
- * \param netdev pointer to master netdev
- *
- * \return 0 on success and other for failure
- */
-extern int qfp_register_netdev(struct net_device * net_dev);
-
-/**
- * \brief un-register master netdev from QFP
- *
- * Un-register master netdev from QFP.
- *
- * The caller should call this function right after calling unregister_netdev()
- * for the master netdev.
- *
- * \param netdev pointer to master netdev
- *
- * \return 0 on success and other for failure
- */
-extern void qfp_unregister_netdev(struct net_device * net_dev);
-
-/**
- * \brief register virtual netdev to QFP
- *
- * Register virtual netdev to QFP. After calling this function, packets
- * received or transmit through this netdef will be accelerated by QFP. This
- * function is used to create virtual netdev for VAP.
- *
- * The caller should call this function right before calling register_netdev()
- * for the virtual netdev.
- *
- * \param netdev pointer to virtual netdev
- *
- * \return 0 on success and other for failure
- */
-extern int qfp_register_virtual_netdev(struct net_device * net_dev);
-
-/**
- * \brief un-register virtual netdev from QFP
- *
- * Un-register virtual netdev from QFP.
- *
- * The caller should call this function right after calling unregister_netdev()
- * for the virtual netdev.
- *
- * \param netdev pointer to virtual netdev
- *
- * \return 0 on success and other for failure
- */
-extern void qfp_unregister_virtual_netdev(struct net_device * net_dev);
-
-/**
- * \brief allocate skb.
- *
- * Allocate a skb from QFP, and all skb will be received to QFP must allocate by
- * calling this function. The caller should call this function instead of any
- * linux skb allocation function for RX packets.
- *
- * \param size max size of bytes for payload of skb
- *
- * \return pointer to a skb or NULL for failure
- */
-extern struct sk_buff * qfp_alloc_skb(unsigned int size);
-
-/**
- * \brief Receive skb to QFP.
- *
- * Received a skb which allocate by calling qfp_alloc_skb() to QFP. The caller
- * should call this function instead of calling netif_rx() or netif_receive_skb()
- * The caller loses reference to the skb when this function return successfu. And
- * caller should still call netif_rx() or netif_receive_skb() when this function
- * return failure.
- *
- * \param skb pointer to skb need to received to QFP
- *
- * \return 0 on success; -1 on failure
- */
-extern int qfp_rx(struct sk_buff * skb);
-
-#endif
-
diff --git a/quantenna/include/qtn/topaz_shared_params.h b/quantenna/include/qtn/topaz_shared_params.h
deleted file mode 100644
index f2dc0cb..0000000
--- a/quantenna/include/qtn/topaz_shared_params.h
+++ /dev/null
@@ -1,426 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2012 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Author : Quantenna Communications Inc **
-** File : topaz_shared_params.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _TOPAZ_SHARED_PARAMS_H_
-#define _TOPAZ_SHARED_PARAMS_H_
-
-#include <qtn/mproc_sync_mutex.h>
-#include <qtn/qtn_uc_comm.h>
-#include <qtn/qtn_wmm_ac.h>
-
-enum shared_params_auc_ipc_cmd
-{
- SHARED_PARAMS_IPC_NONE_CMD = 0,
-
- /* begining of M2A IPC config commands */
- SHARED_PARAMS_IPC_M2A_CFG_PARAMS_MIN,
- SHARED_PARAMS_IPC_M2A_SLOW_NODE_CREATE_CMD,
- SHARED_PARAMS_IPC_M2A_NODE_CREATE_CMD,
- SHARED_PARAMS_IPC_M2A_NODE_DESTROY_CMD,
- SHARED_PARAMS_IPC_M2A_SLOW_TID_CREATE_CMD,
- SHARED_PARAMS_IPC_M2A_TID_CREATE_CMD,
- SHARED_PARAMS_IPC_M2A_TID_DESTROY_CMD,
- SHARED_PARAMS_IPC_M2A_TID_ACTIVATE_CMD,
- SHARED_PARAMS_IPC_M2A_TID_DEACTIVATE_CMD,
- SHARED_PARAMS_IPC_M2A_TID_CHECK_IDLE_CMD,
- SHARED_PARAMS_IPC_M2A_TID_BA_CTL_CMD,
- SHARED_PARAMS_IPC_M2A_TX_SCALE_CMD,
- SHARED_PARAMS_IPC_M2A_TX_SCALE_BASE_CMD,
- SHARED_PARAMS_IPC_M2A_TX_SCALE_MAX_CMD,
- SHARED_PARAMS_IPC_M2A_TX_AGG_TIMEOUT_CMD,
- SHARED_PARAMS_IPC_M2A_TX_DBG_CMD,
- SHARED_PARAMS_IPC_M2A_TX_QOS_SCH_CMD,
- SHARED_PARAMS_IPC_M2A_TX_AGG_DURATION,
- SHARED_PARAMS_IPC_M2A_FCS_GIVE_CMD,
- SHARED_PARAMS_IPC_M2A_NODE_RATEDATA_CHANGE_CMD,
- SHARED_PARAMS_IPC_M2A_OCS_TX_SUSPEND_CMD,
- SHARED_PARAMS_IPC_M2A_TQEW_DESCR_LIMIT_CMD,
- SHARED_PARAMS_IPC_M2A_ENABLE_VLAN_CMD,
- SHARED_PARAMS_IPC_M2A_MU_GRP_UPDATE_CMD,
- SHARED_PARAMS_IPC_M2A_MU_DBG_FLAG_UPDATE_CMD,
- SHARED_PARAMS_IPC_M2A_MU_AIRTIME_PADDING_UPDATE_CMD,
- /* end of M2A IPC config commands */
- SHARED_PARAMS_IPC_M2A_CFG_PARAMS_MAX,
-
- SHARED_PARAMS_IPC_M2A_MU_QMAT_UPDATE_CMD,
- SHARED_PARAMS_IPC_M2A_SRESET_BEGIN_CMD,
- SHARED_PARAMS_IPC_M2A_SRESET_END_CMD,
- SHARED_PARAMS_IPC_M2A_PAUSE_ON_CMD,
- SHARED_PARAMS_IPC_M2A_PAUSE_OFF_CMD,
-
- /*
- * Following are cmd used in A2M IPC interrupt. Put in same enum so that most code can be
- * used for both A2M and M2A IPC.
- */
- SHARED_PARAMS_IPC_A2M_FIRST_CMD = 0x100,
- SHARED_PARAMS_IPC_A2M_AUC_BOOTED_CMD,
- SHARED_PARAMS_IPC_A2M_BA_ADD_START_CMD,
- SHARED_PARAMS_IPC_A2M_PANIC,
- SHARED_PARAMS_IPC_A2M_TDLS_PTI_CMD,
- SHARED_PARAMS_IPC_A2M_BB_RESET,
-#if QTN_HDP_MU_FCS_WORKROUND
- SHARED_PARAMS_IPC_A2M_PUSH_WMAC1_FCS,
-#endif
- SHARED_PARAMS_IPC_A2M_LAST_CMD,
-};
-
-enum qtn_exp_mat_cmd {
- EXP_MAT_DIS_CMD = 0,
- EXP_MAT_DEL_CMD= EXP_MAT_DIS_CMD,
- EXP_MAT_EN_CMD,
- EXP_MAT_ADD_CMD,
- EXP_MAT_FRZ_CMD,
- EXP_MAT_NUSE_CMD,
-};
-
-#define AUC_IPC_CMD_BA_NODE 0x000000FF
-#define AUC_IPC_CMD_BA_NODE_S 0
-#define AUC_IPC_CMD_BA_TID 0x00000F00
-#define AUC_IPC_CMD_BA_TID_S 8
-#define AUC_IPC_CMD_BA_STATE 0x0000F000
-#define AUC_IPC_CMD_BA_STATE_S 12
-#define AUC_IPC_CMD_BA_FLAGS 0xFFFF0000
-#define AUC_IPC_CMD_BA_FLAGS_S 16
-#define AUC_IPC_CMD_BA_SUBFRM_MAX 0x000000FF
-#define AUC_IPC_CMD_BA_SUBFRM_MAX_S 0
-#define AUC_IPC_CMD_BA_WINSIZE 0x000FFF00
-#define AUC_IPC_CMD_BA_WINSIZE_S 8
-#define AUC_IPC_CMD_BA_AMSDU 0x00100000
-#define AUC_IPC_CMD_BA_AMSDU_S 20
-#define AUC_IPC_CMD_BA_AGG_TIMEOUT 0x0000FFFF
-#define AUC_IPC_CMD_BA_AGG_TIMEOUT_S 0
-#define AUC_IPC_CMD_AGG_TIMEOUT_UNIT 100 /* us */
-
-#define QTN_BA_ARGS_F_IMPLICIT BIT(0)
-#define QTN_BA_ARGS_F_AMSDU BIT(1)
-#define QTN_BA_ARGS_F_BLOCK_SINGLETON BIT(2)
-
-#define AUC_IPC_CMD_AGGTIMEOUT_BE 0x0000FFFF
-#define AUC_IPC_CMD_AGGTIMEOUT_BE_S 0
-#define AUC_IPC_CMD_AGGTIMEOUT_BK 0xFFFF0000
-#define AUC_IPC_CMD_AGGTIMEOUT_BK_S 16
-#define AUC_IPC_CMD_AGGTIMEOUT_VI 0x0000FFFF
-#define AUC_IPC_CMD_AGGTIMEOUT_VI_S 0
-#define AUC_IPC_CMD_AGGTIMEOUT_VO 0xFFFF0000
-#define AUC_IPC_CMD_AGGTIMEOUT_VO_S 16
-
-/*
- * AuC tx tunable params
- */
-#define AUC_QOS_SCH_PARAM 0xF0000000
-#define AUC_QOS_SCH_PARAM_S 28
-#define AUC_QOS_SCH_VALUE 0x0FFFFFFF
-#define AUC_QOS_SCH_VALUE_S 0
-#define AUC_QOS_SCH_PARAM_AIRTIME_FAIRNESS 1
-#define AUC_QOS_SCH_PARAM_MERCY_RATIO 3
-#define AUC_QOS_SCH_PARAM_TID_THROT 4
-#define AUC_QOS_SCH_PARAM_AIRTIME_INTRABSS_LOAD_THRSH 5
-#define AUC_QOS_SCH_PARAM_AIRTIME_MARGIN 6
-#define AUC_QOS_SCH_PARAM_AIRTIME_TWEAK 7
-#define AUC_TX_AGG_BASE 8
-#define AUC_TX_AGG_FLAG (AUC_TX_AGG_BASE + 0)
-#define AUC_TX_AGG_DYN_EAGER_THRSH (AUC_TX_AGG_BASE + 1)
-#define AUC_TX_AGG_ADAP_SWITCH (AUC_TX_AGG_BASE + 2)
-#define AUC_TX_OPTIM_FLAG (AUC_TX_AGG_BASE + 3)
-
-#define QTN_AUC_THROT_NODE 0x0FF00000
-#define QTN_AUC_THROT_NODE_S 20
-#define QTN_AUC_THROT_TID 0x000F0000
-#define QTN_AUC_THROT_TID_S 16
-#define QTN_AUC_THROT_INTVL 0x0000F800
-#define QTN_AUC_THROT_INTVL_S 11
-#define QTN_AUC_THROT_QUOTA 0x000007FF
-#define QTN_AUC_THROT_QUOTA_S 0
-
-#define QTN_AUC_THROT_INTVL_MAX (0x1F)
-#define QTN_AUC_THROT_INTVL_UNIT (1 * 5) /* ms */
-#define QTN_AUC_THROT_QUOTA_MAX (0x7FF)
-#define QTN_AUC_THROT_QUOTA_UNIT (1024 * 5) /* byte */
-
-#define QTN_AUC_AIRFAIR_DFT 1
-#define QTN_AUC_AGG_ADAP_SWITCH_DFT 0
-#define QTN_AUC_TQEW_DESCR_LIMIT_PERCENT_DFT 75
-#define QTN_AUC_OPTIM_FLAG_DFT 0
-
-/*
- * M2A event setting per-TID flags
- */
-#define M2A_TIDFLAG_NODE 0x000000FF
-#define M2A_TIDFLAG_NODE_S 0
-#define M2A_TIDFLAG_TID 0x00000F00
-#define M2A_TIDFLAG_TID_S 8
-#define M2A_TIDFLAG_FLAG 0x00FF0000
-#define M2A_TIDFLAG_FLAG_S 16
-#define M2A_TIDFLAG_VAL 0xFF000000
-#define M2A_TIDFLAG_VAL_S 24
-
-enum shared_params_auc_ipc_irq
-{
- SHARED_PARAMS_IPC_M2A_SRESET_IRQ = 0,
- SHARED_PARAMS_IPC_M2A_CONFIG_IRQ,
- SHARED_PARAMS_IPC_M2A_PAUSE_IRQ
-};
-
-enum shared_params_a2m_ipc_irq
-{
- /*
- * Currently only use 1 bit of IPC register and use "cmd" to expand the ipc usage.
- * This makes the top half and bottom half simple.
- */
- SHARED_PARAMS_IPC_A2M_CFG_IRQ = 0,
-};
-
-/*
- * Command structure for both A2M and M2A IPC
- */
-typedef struct shared_params_auc_ipc
-{
- uint32_t cmd; /* "enum shared_params_auc_ipc_cmd" type, but want to ensure 32-bit size */
- uint32_t arg1;
- uint32_t arg2;
- uint32_t arg3;
- uint32_t ret;
-} shared_params_auc_ipc;
-
-struct qtn_auc_per_node_data_s;
-struct qtn_auc_misc_data_s;
-struct qtn_auc_per_mac_data_s;
-struct qtn_auc_mu_grp_tbl_elem_s;
-struct qtn_hal_tcm;
-
-typedef struct qtn_shared_node_stats {
- /* Write by Muc only */
- uint32_t qtn_rx_pkts;
- uint32_t qtn_rx_bytes;
- uint32_t qtn_rx_ucast;
- uint32_t qtn_rx_bcast;
- uint32_t qtn_rx_mcast;
- uint32_t qtn_tx_pkts;
- uint32_t qtn_tx_bytes;
- uint32_t qtn_rx_vlan_pkts;
-
- uint32_t qtn_tx_mcast; /* Lhost */
- uint32_t qtn_muc_tx_mcast; /* Muc */
- /*
- * The number of dropped data packets failed to transmit through
- * wireless media for each traffic category(TC).
- */
- uint32_t qtn_tx_drop_data_msdu[WMM_AC_NUM]; /* AuC */
-} qtn_shared_node_stats_t;
-
-typedef struct qtn_shared_vap_stats {
- /* Write by Muc only */
- uint32_t qtn_rx_pkts;
- uint32_t qtn_rx_bytes;
- uint32_t qtn_rx_ucast;
- uint32_t qtn_rx_bcast;
- uint32_t qtn_rx_mcast;
- uint32_t qtn_rx_dropped;
- uint32_t qtn_tx_pkts;
- uint32_t qtn_tx_bytes;
-
- uint32_t qtn_tx_mcast; /* Lhost */
- uint32_t qtn_muc_tx_mcast; /* Muc */
- uint32_t qtn_tx_dropped; /* Auc */
-} qtn_shared_vap_stats_t;
-
-typedef struct shared_params_auc
-{
-#define SHARED_PARAMS_AUC_CONFIG_ASSERT_EN BIT(0)
-#define SHARED_PARAMS_AUC_CONFIG_PRINT_EN BIT(1)
- u_int32_t auc_config;
- u_int32_t a2l_printbuf_producer;
- uint32_t auc_tqe_sem_en;
-#define SHARED_PARAMS_AUC_IPC_STUB ((shared_params_auc_ipc*)1)
- struct shared_params_auc_ipc *m2a_ipc; /* M2A */
- struct shared_params_auc_ipc *a2m_ipc; /* A2M */
- /*
- * 'ma_shared_buf' is used to transfer data btw MuC and AuC in IPC call.
- * So far it is used to pass node position in node cache and ieee80211
- * vht group. The buffer size is defined to exactly match those data:
- * sizeof(struct ieee80211_mu_groups_update)
- */
-#define MA_SHARED_BUF_SIZE (150)
- uint8_t (*ma_shared_buf)[MA_SHARED_BUF_SIZE];
- struct qtn_auc_per_node_data_s **auc_per_node_data_ptr;
- struct qtn_auc_misc_data_s *auc_misc_data_ptr;
- struct qtn_auc_per_mac_data_s *auc_per_mac_data_ptr;
- qtn_mproc_sync_mutex *auc_per_node_mutex;
- struct qtn_hal_tcm *hal_tcm;
- uint32_t *auc_last_ilink1_p;
- uint32_t *auc_last_ilink2_p;
- qtn_shared_node_stats_t *node_stats;
- qtn_shared_vap_stats_t *vap_stats;
- uint32_t *per_ac_traffic_prev_second;
- struct qtn_auc_mu_grp_tbl_elem_s *mu_grp_tbl;
- struct qtn_hal_tcm *hal_wmac1_tcm;
- struct qtn_vlan_dev **vdev_bus;
- struct qtn_vlan_dev **vport_bus;
-} shared_params_auc;
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_set_arg1(volatile struct shared_params_auc_ipc *ipc, uint32_t arg1)
-{
- ipc->arg1 = arg1;
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_set_args(volatile struct shared_params_auc_ipc *ipc,
- uint32_t arg1, uint32_t arg2, uint32_t arg3)
-{
- ipc->arg1 = arg1;
- ipc->arg2 = arg2;
- ipc->arg3 = arg3;
- ipc->ret = 0;
-}
-
-RUBY_INLINE uint32_t
-qtn_mproc_sync_auc_ipc_get_arg1(volatile struct shared_params_auc_ipc *ipc)
-{
- return ipc->arg1;
-}
-
-RUBY_INLINE uint32_t
-qtn_mproc_sync_auc_ipc_get_arg2(volatile struct shared_params_auc_ipc *ipc)
-{
- return ipc->arg2;
-}
-
-RUBY_INLINE uint32_t
-qtn_mproc_sync_auc_ipc_get_arg3(volatile struct shared_params_auc_ipc *ipc)
-{
- return ipc->arg3;
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_set_cmd(volatile struct shared_params_auc_ipc *ipc,
- enum shared_params_auc_ipc_cmd cmd)
-{
- ipc->cmd = cmd;
-}
-
-RUBY_INLINE int
-qtn_mproc_sync_auc_ipc_wait_ready(volatile struct shared_params_auc_ipc *ipc,
- enum shared_params_auc_ipc_cmd cmd, int relax_count, uint32_t loop_count)
-{
- uint32_t cnt = 0;
-
- while (ipc->cmd != cmd) {
- if ((loop_count > 0) && (cnt >= loop_count)) {
- return -1;
- }
-
- qtn_mproc_sync_mutex_relax(relax_count);
-
- cnt++;
- }
-
- return 0;
-}
-
-RUBY_INLINE enum shared_params_auc_ipc_cmd
-qtn_mproc_sync_auc_ipc_wait_mready(volatile struct shared_params_auc_ipc *ipc,
- int relax_count, int loop_count)
-{
- enum shared_params_auc_ipc_cmd cmd;
- int loop = 0;
-
- while(loop++ < loop_count) {
- cmd = ipc->cmd;
- if (cmd > SHARED_PARAMS_IPC_M2A_CFG_PARAMS_MIN &&
- cmd < SHARED_PARAMS_IPC_M2A_CFG_PARAMS_MAX) {
- return cmd;
- }
-
- qtn_mproc_sync_mutex_relax(relax_count);
- }
-
- return SHARED_PARAMS_IPC_NONE_CMD;
-}
-
-RUBY_INLINE int
-qtn_mproc_sync_auc_ipc_wait_done(volatile struct shared_params_auc_ipc *ipc,
- int relax_count, uint32_t loop_count)
-{
- return qtn_mproc_sync_auc_ipc_wait_ready(ipc,
- SHARED_PARAMS_IPC_NONE_CMD, relax_count, loop_count);
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_done(volatile struct shared_params_auc_ipc *ipc)
-{
- qtn_mproc_sync_auc_ipc_set_cmd(ipc, SHARED_PARAMS_IPC_NONE_CMD);
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_req(volatile struct shared_params_auc_ipc *ipc,
- enum shared_params_auc_ipc_cmd cmd, int relax_count)
-{
- qtn_mproc_sync_auc_ipc_set_cmd(ipc, cmd);
- qtn_mproc_sync_auc_ipc_wait_done(ipc, relax_count, 0);
-}
-
-RUBY_INLINE void
-qtn_mproc_sync_auc_ipc_ack(volatile struct shared_params_auc_ipc *ipc,
- enum shared_params_auc_ipc_cmd cmd, int relax_count)
-{
- qtn_mproc_sync_auc_ipc_wait_ready(ipc, cmd, relax_count, 0);
- qtn_mproc_sync_auc_ipc_done(ipc);
-}
-
-RUBY_INLINE int
-qtn_mproc_sync_auc_ipc_init_wait(volatile struct shared_params_auc *params, int relax_count)
-{
- while (!params->m2a_ipc) {
- qtn_mproc_sync_mutex_relax(relax_count);
- }
- return (params->m2a_ipc != SHARED_PARAMS_AUC_IPC_STUB);
-}
-
-#define topaz_mgmt_fcs_offset(buf, len) roundup_ptr(((unsigned long) (buf)) + (len))
-
-#endif /* _TOPAZ_SHARED_PARAMS_H_ */
-
diff --git a/quantenna/include/qtn/topaz_tqe.h b/quantenna/include/qtn/topaz_tqe.h
deleted file mode 100644
index 54b3b84..0000000
--- a/quantenna/include/qtn/topaz_tqe.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_TQE_H
-#define __TOPAZ_TQE_H
-
-#include <linux/if_ether.h>
-#include <linux/netdevice.h>
-#include <qtn/topaz_tqe_cpuif.h>
-
-
-typedef void (*tqe_port_handler)(void *token,
- const union topaz_tqe_cpuif_descr *descr,
- struct sk_buff *skb, uint8_t *whole_frm_hdr);
-
-typedef const struct topaz_fwt_sw_mcast_entry*(
- *tqe_fwt_get_mcast_hook)(uint16_t fwt_index, const void *addr, uint16_t ether_type);
-typedef const struct fwt_db_entry*(
- *tqe_fwt_get_ucast_hook)(const unsigned char *src_mac_be, const unsigned char *dst_mac_be);
-typedef const struct fwt_db_entry*(
- *tqe_fwt_get_from_mac_hook)(const unsigned char *mac_be);
-typedef int(*tqe_mac_reserved_hook)(const uint8_t *addr);
-typedef struct topaz_fwt_sw_mcast_entry*(
- *tqe_fwt_get_mcast_ff_hook)(void);
-typedef void(*tqe_fwt_false_miss_hook)(int fwt_index, uint8_t false_miss);
-
-int tqe_port_add_handler(enum topaz_tqe_port port, tqe_port_handler handler, void *token);
-void tqe_port_remove_handler(enum topaz_tqe_port port);
-int tqe_tx(union topaz_tqe_cpuif_ppctl *ppctl, struct sk_buff *skb);
-void tqe_register_fwt_cbk(tqe_fwt_get_mcast_hook mcast_cbk_func,
- tqe_fwt_get_mcast_ff_hook mcast_ff_get_cbk_func,
- tqe_fwt_false_miss_hook false_miss_func);
-void tqe_register_ucastfwt_cbk(tqe_fwt_get_ucast_hook cbk_func);
-void tqe_register_macfwt_cbk(tqe_fwt_get_from_mac_hook cbk_func);
-void tqe_register_mac_reserved_cbk(tqe_mac_reserved_hook cbk_func);
-int tqe_rx_multicast(void *queue, const union topaz_tqe_cpuif_descr *desc);
-void tqe_port_register(const enum topaz_tqe_port port);
-void tqe_port_unregister(const enum topaz_tqe_port port);
-void tqe_reg_multicast_tx_stats(void (*fn)(void *ctx, uint8_t), void *ctx);
-void tqe_port_set_group(const enum topaz_tqe_port port, int32_t group);
-void tqe_port_clear_group(const enum topaz_tqe_port port);
-uint32_t switch_tqe_multi_proc_sem_down(char * funcname, int linenum);
-uint32_t switch_tqe_multi_proc_sem_up(void);
-int tqe_rx_l2_ext_filter(union topaz_tqe_cpuif_descr *desc, struct sk_buff *skb);
-void tqe_rx_call_port_handler(union topaz_tqe_cpuif_descr *desc,
- struct sk_buff *skb, uint8_t *whole_frm_hdr);
-
-#endif /* __TOPAZ_TQE_H */
-
diff --git a/quantenna/include/qtn/topaz_tqe_cpuif.h b/quantenna/include/qtn/topaz_tqe_cpuif.h
deleted file mode 100644
index 80b8f58..0000000
--- a/quantenna/include/qtn/topaz_tqe_cpuif.h
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_TQE_CPUIF_PLATFORM_H
-#define __TOPAZ_TQE_CPUIF_PLATFORM_H
-
-#include "mproc_sync_base.h"
-
-enum topaz_tqe_port {
- TOPAZ_TQE_FIRST_PORT = 0,
-
- TOPAZ_TQE_EMAC_0_PORT = 0,
- TOPAZ_TQE_EMAC_1_PORT = 1,
- TOPAZ_TQE_WMAC_PORT = 2,
- TOPAZ_TQE_PCIE_PORT = 3,
- TOPAZ_TQE_LHOST_PORT = 4,
- TOPAZ_TQE_MUC_PORT = 5,
- TOPAZ_TQE_DSP_PORT = 6,
- TOPAZ_TQE_AUC_PORT = 7,
-
- TOPAZ_TQE_NUM_PORTS = 8,
- TOPAZ_TQE_DUMMY_PORT = 15
-};
-
-enum topaz_mproc_tqe_sem_id
-{
- TOPAZ_MPROC_TQE_SEM_INVALID = 0,
- TOPAZ_MPROC_TQE_SEM_LHOST = 1,
- TOPAZ_MPROC_TQE_SEM_MUC = 2,
- TOPAZ_MPROC_TQE_SEM_AUC = 3
-};
-
-/* bits of port_id */
-#define PORT_ID_BITS 8
-/* high 3 bits in port_id is used to save dev_id for 2.4G VAP */
-#define DEV_ID_BITS 3
-
-#define MAX_QFP_NETDEV (1 << DEV_ID_BITS)
-#define MAX_DEV_ID (1 << DEV_ID_BITS)
-#define MAX_PORT_ID (1 << (PORT_ID_BITS - DEV_ID_BITS))
-
-#define GET_BIT_FIELD(var, offset, width) \
- (((var) >> (offset)) & ((1 << (width)) - 1))
-
-#define INJECT_DEV_ID_TO_PORT_ID(port_id, dev_id, target) \
- do {\
- BUG_ON((port_id) >= MAX_PORT_ID || (dev_id) >= MAX_DEV_ID); \
- (target) = (port_id) | ((dev_id) << (PORT_ID_BITS - DEV_ID_BITS)); \
- } while (0)
-#define EXTRACT_PORT_ID_FROM_PORT_ID(port_id) \
- GET_BIT_FIELD((port_id), 0, (PORT_ID_BITS - DEV_ID_BITS))
-#define EXTRACT_DEV_ID_FROM_PORT_ID(port_id) \
- GET_BIT_FIELD((port_id), (PORT_ID_BITS - DEV_ID_BITS), DEV_ID_BITS)
-
-#define TOPAZ_TQE_PORT_NAMES { "emac0", "emac1", "wmac", "pcie", "lhost", "muc", "dsp", "auc", }
-#define TOPAZ_TQE_PORT_IS_EMAC(_port) (((_port) == TOPAZ_TQE_EMAC_0_PORT) || \
- ((_port) == TOPAZ_TQE_EMAC_1_PORT))
-#define TOPAZ_TQE_PORT_IS_WMAC(_port) ((_port) == TOPAZ_TQE_WMAC_PORT)
-
-#if defined(__linux__)
- #define TOPAZ_TQE_LOCAL_CPU TOPAZ_TQE_LHOST_PORT
-#elif defined(ARCSHELL)
- #define TOPAZ_TQE_LOCAL_CPU TOPAZ_TQE_LHOST_PORT
-#elif defined(MUC_BUILD)
- #define TOPAZ_TQE_LOCAL_CPU TOPAZ_TQE_MUC_PORT
-#elif defined(DSP_BUILD)
- #define TOPAZ_TQE_LOCAL_CPU TOPAZ_TQE_DSP_PORT
-#elif defined(AUC_BUILD)
- #define TOPAZ_TQE_LOCAL_CPU TOPAZ_TQE_AUC_PORT
-#else
- #error No TOPAZ_TQE_LOCAL_CPU set
-#endif
-
-union topaz_tqe_cpuif_descr
-{
- struct
- {
- uint32_t dw0;
- uint32_t dw1;
- uint32_t dw2;
- uint32_t dw3;
- } raw;
- struct
- {
- signed buff_ptr_offset:16;
- unsigned misc_user:10;
- unsigned __reserved1:5;
- unsigned own:1;
- unsigned length:16;
- enum topaz_tqe_port in_port:4;
- unsigned need_to_free:1;
- unsigned __reserved2:3;
- unsigned control:8;
- void *pkt;
- union topaz_tqe_cpuif_descr *next;
- } data;
-};
-
-#define TQE_MISCUSER_A2M_TYPE 0x300
-#define TQE_MISCUSER_A2M_TYPE_S 8
-#define TQE_MISCUSER_A2M_TYPE_PARAM 0x0FF
-#define TQE_MISCUSER_A2M_TYPE_PARAM_S 0
-
-#define TQE_MISCUSER_A2M_TYPE_TXFEEDBACK 0
-#define TQE_MISCUSER_A2M_TYPE_RXPKT 1
-#define TQE_MISCUSER_A2M_TYPE_TXPKT 2
-
-#define TQE_MISCUSER_M2L_DATA_NODE_IDX 0x7F
-#define TQE_MISCUSER_M2L_DATA_NODE_IDX_S 0
-#if TOPAZ_SWITCH_OUT_NODE_MASK != TQE_MISCUSER_M2L_DATA_NODE_IDX
- #error Node cache index misc_user must support 128 entries
-#endif
-#define TQE_MISCUSER_M2L_DATA_3ADDR_BR 0x80
-#define TQE_MISCUSER_M2L_DATA_3ADDR_BR_S 7
-#define TQE_MISCUSER_M2L_DROP 0x100
-#define TQE_MISCUSER_M2L_DROP_S 8
-
-#define TQE_MISCUSER_L2A_NO_AMSDU 0x002
-#define TQE_MISCUSER_L2A_RATE_TRAINING 0x008
-#define TQE_MISCUSER_L2A_RESERVED_FOR_A2A 0x10 /* place holder for A2A below */
-
-#define TQE_MISCUSER_M2A_MGMT_SKIP_RATE_RETRY1 0x01
-#define TQE_MISCUSER_M2A_MGMT_SKIP_RATE_RETRY1_S 0
-#define TQE_MISCUSER_M2A_MGMT_OCS_FRAME 0x02
-#define TQE_MISCUSER_M2A_MGMT_OCS_FRAME_S 1
-#define TQE_MISCUSER_M2A_EVENT_VIA_TQE 0x04
-#define TQE_MISCUSER_M2A_EVENT_VIA_TQE_S 2
-#define TQE_MISCUSER_M2A_MGMT_PROBE_FRAME 0x08
-#define TQE_MISCUSER_M2A_MGMT_PROBE_FRAME_S 3
-#define TQE_MISCUSER_M2A_RESERVED_FOR_A2A 0x10 /* place holder for A2A below */
-#define TQE_MISCUSER_M2A_MGMT_GROUP 0x20
-#define TQE_MISCUSER_M2A_MGMT_GROUP_S 5
-
-/*
- * At the ethq stage, only tqew descriptor is available for use. Some place holder have been added
- * above in M2A and L2A define to reserve bits.
- */
-#define TQE_MISCUSER_A2A_GROUP 0x10
-
-
-#define TQE_MISCUSER_DTIM_GROUP (TQE_MISCUSER_M2A_MGMT_GROUP | TQE_MISCUSER_A2A_GROUP)
-
-union topaz_tqe_cpuif_q_ptr_status
-{
- uint32_t raw;
- struct {
- unsigned write_idx:15;
- unsigned write_idx_wrap:1;
- unsigned read_idx:15;
- unsigned read_idx_wrap:1;
- } data;
-};
-
-union topaz_tqe_cpuif_status
-{
- uint32_t raw;
- struct {
- unsigned available:16;
- unsigned __reserved1:14;
- unsigned empty:1;
- unsigned full:1;
- } data;
-};
-
-union topaz_tqe_cpuif_tx_start
-{
-#define TOPAZ_TQE_CPUIF_TX_START_NREADY RUBY_BIT(0)
-#define TOPAZ_TQE_CPUIF_TX_START_NOT_SUCCESS RUBY_BIT(30)
-#define TOPAZ_TQE_CPUIF_TX_START_SUCCESS RUBY_BIT(31)
-#define TOPAZ_TQE_CPUIF_TX_START_DELIVERED (TOPAZ_TQE_CPUIF_TX_START_NOT_SUCCESS | TOPAZ_TQE_CPUIF_TX_START_SUCCESS)
- uint32_t raw;
- struct {
- unsigned nready:1;
- unsigned __reserved1:29;
- unsigned not_success:1;
- unsigned success:1;
- } data;
-};
-
-union topaz_tqe_cpuif_ppctl
-{
- struct
- {
-#define TOPAZ_TQE_CPUIF_SM(val, mask, shift) (((uint32_t)(val) & (mask)) << (shift))
-#define TOPAZ_TQE_CPUIF_PPCTL_DW0(descr) TOPAZ_TQE_CPUIF_SM(descr, 0xFFFFFFFF, 0)
- uint32_t ppctl0;
-#define TOPAZ_TQE_CPUIF_PPCTL_DW1(pkt) TOPAZ_TQE_CPUIF_SM(pkt, 0xFFFFFFFF, 0)
- uint32_t ppctl1;
-#define TOPAZ_TQE_CPUIF_PPCTL_DW2(out_pri, out_node, out_port, out_portal, out_node_1, out_node_1_en, out_node_2, out_node_2_en) \
- TOPAZ_TQE_CPUIF_SM(out_pri, 0xF, 0) | \
- TOPAZ_TQE_CPUIF_SM(out_node, 0x7F, 4) | \
- TOPAZ_TQE_CPUIF_SM(out_port, 0xF, 11) | \
- TOPAZ_TQE_CPUIF_SM(out_portal, 0x1, 15) | \
- TOPAZ_TQE_CPUIF_SM(out_node_1, 0x7F, 16) | \
- TOPAZ_TQE_CPUIF_SM(out_node_1_en, 0x1, 23) | \
- TOPAZ_TQE_CPUIF_SM(out_node_2, 0x7F, 24) | \
- TOPAZ_TQE_CPUIF_SM(out_node_2_en, 0x1, 31)
- uint32_t ppctl2;
-#define TOPAZ_TQE_CPUIF_PPCTL_DW3(out_node_3, out_node_3_en, out_node_4, out_node_4_en, out_node_5, out_node_5_en, out_node_6, out_node_6_en) \
- TOPAZ_TQE_CPUIF_SM(out_node_3, 0x7F, 0) | \
- TOPAZ_TQE_CPUIF_SM(out_node_3_en, 0x1, 7) | \
- TOPAZ_TQE_CPUIF_SM(out_node_4, 0x7F, 8) | \
- TOPAZ_TQE_CPUIF_SM(out_node_4_en, 0x1, 15) | \
- TOPAZ_TQE_CPUIF_SM(out_node_5, 0x7F, 16) | \
- TOPAZ_TQE_CPUIF_SM(out_node_5_en, 0x1, 23) | \
- TOPAZ_TQE_CPUIF_SM(out_node_6, 0x7F, 24) | \
- TOPAZ_TQE_CPUIF_SM(out_node_6_en, 0x1, 31)
- uint32_t ppctl3;
-#define TOPAZ_TQE_CPUIF_PPCTL_DW4(buff_ptr_offset, sa_match, da_match, mcast, free, buff_pool_num, tqe_free) \
- TOPAZ_TQE_CPUIF_SM(buff_ptr_offset, 0xFFFF, 0) | \
- TOPAZ_TQE_CPUIF_SM(sa_match, 0x1, 24) | \
- TOPAZ_TQE_CPUIF_SM(da_match, 0x1, 25) | \
- TOPAZ_TQE_CPUIF_SM(mcast, 0x1, 26) | \
- TOPAZ_TQE_CPUIF_SM(free, 0x1, 27) | \
- TOPAZ_TQE_CPUIF_SM(buff_pool_num, 0x3, 28) | \
- TOPAZ_TQE_CPUIF_SM(tqe_free, 0x1, 30)
- uint32_t ppctl4;
-#define TOPAZ_TQE_CPUIF_PPCTL_DW5(length, misc_user) \
- TOPAZ_TQE_CPUIF_SM(length, 0xFFFF, 0) | \
- TOPAZ_TQE_CPUIF_SM(misc_user, 0x3FF, 16)
- uint32_t ppctl5;
- } raw;
- struct
- {
- void *descr;
- void *pkt;
- unsigned out_pri:4;
- unsigned out_node_0:7;
- enum topaz_tqe_port out_port:4;
- unsigned portal:1;
- unsigned out_node_1:7;
- unsigned out_node_1_en:1;
- unsigned out_node_2:7;
- unsigned out_node_2_en:1;
- unsigned out_node_3:7;
- unsigned out_node_3_en:1;
- unsigned out_node_4:7;
- unsigned out_node_4_en:1;
- unsigned out_node_5:7;
- unsigned out_node_5_en:1;
- unsigned out_node_6:7;
- unsigned out_node_6_en:1;
- signed buff_ptr_offset:16;
- unsigned __reserved1:8;
- unsigned sa_match:1;
- unsigned da_match:1;
- unsigned mcast:1;
- unsigned free:1;
- unsigned buff_pool_num:2;
- unsigned tqe_free:1;
- unsigned __reserved2:1;
- unsigned length:16;
- unsigned misc_user:10;
- unsigned __reserved3:6;
- } data;
-};
-
-RUBY_INLINE void
-topaz_tqe_cpuif_ppctl_clear(union topaz_tqe_cpuif_ppctl *pp)
-{
- pp->raw.ppctl0 = 0;
- pp->raw.ppctl1 = 0;
- pp->raw.ppctl2 = 0;
- pp->raw.ppctl3 = 0;
- pp->raw.ppctl4 = 0;
- pp->raw.ppctl5 = 0;
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_ppctl_init(union topaz_tqe_cpuif_ppctl *pp,
- uint8_t port, const uint8_t *const nodes, uint8_t node_count, uint8_t pri,
- uint8_t portal, uint8_t free, uint8_t buff_pool, uint8_t tqe_free, uint16_t misc_user)
-{
- pp->raw.ppctl0 = TOPAZ_TQE_CPUIF_PPCTL_DW0(0);
- pp->raw.ppctl1 = TOPAZ_TQE_CPUIF_PPCTL_DW1(0);
- pp->raw.ppctl2 = TOPAZ_TQE_CPUIF_PPCTL_DW2(pri, nodes ? nodes[0] : 0, port, portal, 0, 0, 0, 0);
- pp->raw.ppctl3 = TOPAZ_TQE_CPUIF_PPCTL_DW3(0, 0, 0, 0, 0, 0, 0, 0);
- pp->raw.ppctl4 = TOPAZ_TQE_CPUIF_PPCTL_DW4(0, 0, 0, (node_count > 1), free, buff_pool, tqe_free);
- pp->raw.ppctl5 = TOPAZ_TQE_CPUIF_PPCTL_DW5(0, misc_user);
-#if 0
-#define _outnode(_i) do { \
- if ((_i) <= node_count) { \
- pp->data.out_node_##_i = nodes[(_i)-1]; \
- pp->data.out_node_##_i##_en = 1; \
- } \
- } while(0)
-
- if(nodes) {
- /* Multicast nodes number range from 1->6. unicast set to 0*/
- _outnode(1);
- _outnode(2);
- _outnode(3);
- _outnode(4);
- _outnode(5);
- _outnode(6);
- }
-#undef _outnode
-#endif
-}
-
-RUBY_INLINE int
-topaz_tqe_cpuif_port_to_num(enum topaz_tqe_port port)
-{
- if (port == TOPAZ_TQE_PCIE_PORT) {
- return 4;
- } else {
- return port - TOPAZ_TQE_LHOST_PORT;
- }
-}
-
-RUBY_INLINE void
-__topaz_tqe_cpuif_setup_irq(enum topaz_tqe_port port, int enable, unsigned int threshold)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- uint32_t csr = qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_CSR(num));
-
- csr &= ~TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD(~0x0);
- if (threshold) {
- csr |= TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD_EN;
- csr |= TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD(threshold);
- } else {
- csr &= ~TOPAZ_TQE_CPUIF_CSR_IRQ_THRESHOLD_EN;
- }
-
- if (enable) {
- csr |= TOPAZ_TQE_CPUIF_CSR_IRQ_EN;
- } else {
- csr &= ~TOPAZ_TQE_CPUIF_CSR_IRQ_EN;
- }
-
- qtn_mproc_sync_mem_write_wmb(TOPAZ_TQE_CPUIF_CSR(num), csr); /* can be used to disable/enable, so better to have barrier*/
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_setup_irq(int enable, unsigned int threshold)
-{
- __topaz_tqe_cpuif_setup_irq(TOPAZ_TQE_LOCAL_CPU, enable, threshold);
-}
-
-RUBY_INLINE void
-__topaz_tqe_cpuif_setup_reset(enum topaz_tqe_port port, int reset)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- uint32_t csr = qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_CSR(num));
- if (reset) {
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_CSR(num), csr | TOPAZ_TQE_CPUIF_CSR_RESET);
- } else {
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_CSR(num), csr & ~TOPAZ_TQE_CPUIF_CSR_RESET);
- }
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_setup_reset(int reset)
-{
- __topaz_tqe_cpuif_setup_reset(TOPAZ_TQE_LOCAL_CPU, reset);
-}
-
-RUBY_INLINE void
-__topaz_tqe_cpuif_setup_ring(enum topaz_tqe_port port, union topaz_tqe_cpuif_descr *base, uint16_t count)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_RX_RING(num), (uint32_t)base);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_RX_RING_SIZE(num), count);
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_setup_ring(union topaz_tqe_cpuif_descr *base, uint16_t count)
-{
- __topaz_tqe_cpuif_setup_ring(TOPAZ_TQE_LOCAL_CPU, base, count);
-}
-
-RUBY_INLINE uint16_t
-__topaz_tqe_cpuif_get_ring_size(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- return qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_RX_RING_SIZE(num));
-}
-
-RUBY_INLINE uint16_t
-topaz_tqe_cpuif_get_ring_size(void)
-{
- return __topaz_tqe_cpuif_get_ring_size(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_descr*
-__topaz_tqe_cpuif_get_curr(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- return (union topaz_tqe_cpuif_descr*)
- qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_RX_CURPTR(num));
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_descr*
-topaz_tqe_cpuif_get_curr(void)
-{
- return __topaz_tqe_cpuif_get_curr(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE void
-__topaz_tqe_cpuif_put_back(enum topaz_tqe_port port, union topaz_tqe_cpuif_descr * descr)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PKT_FINISH(num), (uint32_t)descr);
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_put_back(union topaz_tqe_cpuif_descr * descr)
-{
- __topaz_tqe_cpuif_put_back(TOPAZ_TQE_LOCAL_CPU, descr);
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_q_ptr_status
-__topaz_tqe_cpuif_get_q_ptr_status(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- union topaz_tqe_cpuif_q_ptr_status status;
- status.raw = qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_Q_PTR_STATUS(num));
- return status;
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_q_ptr_status
-topaz_tqe_cpuif_get_q_ptr_status(void)
-{
- return __topaz_tqe_cpuif_get_q_ptr_status(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_status
-__topaz_tqe_cpuif_get_status(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- union topaz_tqe_cpuif_status status;
- status.raw = qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_STATUS(num));
- return status;
-}
-
-RUBY_INLINE union topaz_tqe_cpuif_status
-topaz_tqe_cpuif_get_status(void)
-{
- return __topaz_tqe_cpuif_get_status(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE int
-__topaz_tqe_cpuif_tx_nready(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- return (qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_TXSTART(num)) &
- TOPAZ_TQE_CPUIF_TX_START_NREADY);
-}
-
-RUBY_INLINE int
-topaz_tqe_cpuif_tx_nready(void)
-{
- return __topaz_tqe_cpuif_tx_nready(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE int
-__topaz_tqe_cpuif_tx_success(enum topaz_tqe_port port)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- uint32_t tx_start = qtn_mproc_sync_mem_read(TOPAZ_TQE_CPUIF_TXSTART(num));
-
- if ((tx_start & TOPAZ_TQE_CPUIF_TX_START_NREADY) ||
- !(tx_start & TOPAZ_TQE_CPUIF_TX_START_DELIVERED)) {
- return -1;
- } else if (tx_start & TOPAZ_TQE_CPUIF_TX_START_SUCCESS) {
- return 1;
- } else {
- return 0;
- }
-}
-
-RUBY_INLINE int
-topaz_tqe_cpuif_tx_success(void)
-{
- return __topaz_tqe_cpuif_tx_success(TOPAZ_TQE_LOCAL_CPU);
-}
-
-RUBY_INLINE int
-__topaz_tqe_cpuif_ppctl_write(enum topaz_tqe_port port, const union topaz_tqe_cpuif_ppctl *ctl)
-{
- int num = topaz_tqe_cpuif_port_to_num(port);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PPCTL0(num), ctl->raw.ppctl0);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PPCTL1(num), ctl->raw.ppctl1);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PPCTL2(num), ctl->raw.ppctl2);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PPCTL3(num), ctl->raw.ppctl3);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_PPCTL4(num), ctl->raw.ppctl4);
- qtn_mproc_sync_mem_write_wmb(TOPAZ_TQE_CPUIF_PPCTL5(num), ctl->raw.ppctl5);
- return num;
-}
-
-RUBY_INLINE int
-topaz_tqe_cpuif_ppctl_write(const union topaz_tqe_cpuif_ppctl *ctl)
-{
- return __topaz_tqe_cpuif_ppctl_write(TOPAZ_TQE_LOCAL_CPU, ctl);
-}
-
-RUBY_INLINE void
-__topaz_tqe_cpuif_tx_start(enum topaz_tqe_port port, const union topaz_tqe_cpuif_ppctl *ctl)
-{
- int num = __topaz_tqe_cpuif_ppctl_write(port, ctl);
- qtn_mproc_sync_mem_write(TOPAZ_TQE_CPUIF_TXSTART(num), TOPAZ_TQE_CPUIF_TX_START_NREADY);
-}
-
-RUBY_INLINE void
-topaz_tqe_cpuif_tx_start(const union topaz_tqe_cpuif_ppctl *ctl)
-{
- __topaz_tqe_cpuif_tx_start(TOPAZ_TQE_LOCAL_CPU, ctl);
-}
-
-#define TQE_SEMA_GET_MAX 0xFFFF
-
-#define QTN_WAIT_TQE_CPUIF_LOOP_MASK 0xFFFF
-RUBY_INLINE void topaz_tqe_wait(void)
-{
- uint32_t loop = 0;
-
- while (topaz_tqe_cpuif_tx_nready()) {
- loop++;
- if ((loop & ~QTN_WAIT_TQE_CPUIF_LOOP_MASK) &&
- !((loop) & QTN_WAIT_TQE_CPUIF_LOOP_MASK)) {
-#ifdef __KERNEL__
- printk("stuck in topaz_tqe_wait()\n");
-#endif
-#ifdef MUC_BUILD
- uc_printk("stuck in topaz_tqe_wait()\n");
-#endif
- }
- }
-}
-
-RUBY_INLINE void topaz_tqe_emac_reflect_to(const uint8_t out_port, const int bonded)
-{
- if (out_port < TOPAZ_TQE_NUM_PORTS) {
- uint32_t done_dly = qtn_mproc_sync_mem_read(TOPAZ_TQE_MISC);
-
- done_dly &= ~TOPAZ_TQE_MISC_RFLCT_OUT_PORT;
- done_dly |= SM(out_port, TOPAZ_TQE_MISC_RFLCT_OUT_PORT) |
- TOPAZ_TQE_MISC_RFLCT_OUT_PORT_ENABLE;
- if (bonded) {
- done_dly |= TOPAZ_TQE_MISC_RFLCT_2_OUT_PORT_ENABLE;
- }
- qtn_mproc_sync_mem_write(TOPAZ_TQE_MISC, done_dly);
-#if defined (__KERNEL__) && defined (DEBUG)
- printk("TOPAZ_TQE_MISC: 0x%x\n", done_dly);
-#endif
- }
-}
-#endif /* #ifndef __TOPAZ_TQE_CPUIF_PLATFORM_H */
-
-
diff --git a/quantenna/include/qtn/topaz_vlan_cpuif.h b/quantenna/include/qtn/topaz_vlan_cpuif.h
deleted file mode 100644
index e0c8bf4..0000000
--- a/quantenna/include/qtn/topaz_vlan_cpuif.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * (C) Copyright 2012 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __TOPAZ_VLAN_CPUIF_PLATFORM_H
-#define __TOPAZ_VLAN_CPUIF_PLATFORM_H
-
-#include <common/topaz_platform.h>
-#include <qtn/mproc_sync_base.h>
-
-union topaz_vlan_entry {
- uint32_t raw;
- struct {
- uint32_t out_node :7,
- out_port :3,
- valid :1,
- __unused :22;
- } data;
-};
-
-#define TOPAZ_VLAN_ENTRY_INIT { 0 }
-
-RUBY_INLINE void topaz_vlan_set_entry(uint16_t vlan_id, union topaz_vlan_entry e)
-{
- qtn_mproc_sync_mem_write(TOPAZ_VLAN_ENTRY_ADDR(vlan_id), e.raw);
-}
-
-RUBY_INLINE void topaz_vlan_clear_entry(uint16_t vlan_id)
-{
- qtn_mproc_sync_mem_write(TOPAZ_VLAN_ENTRY_ADDR(vlan_id), 0x0);
-}
-
-RUBY_INLINE void topaz_vlan_clear_all_entries(void)
-{
- int vlan_id;
- for (vlan_id = 0; vlan_id < TOPAZ_VLAN_ENTRIES; ++vlan_id) {
- topaz_vlan_clear_entry(vlan_id);
- }
-}
-
-RUBY_INLINE void topaz_vlan_set(uint16_t vlan_id, uint8_t out_port, uint8_t out_node)
-{
- union topaz_vlan_entry e = TOPAZ_VLAN_ENTRY_INIT;
- e.data.out_node = out_node;
- e.data.out_port = out_port;
- e.data.valid = 1;
- topaz_vlan_set_entry(vlan_id, e);
-}
-
-RUBY_INLINE union topaz_vlan_entry topaz_vlan_get_entry(uint16_t vlan_id)
-{
- union topaz_vlan_entry e;
- e.raw = qtn_mproc_sync_mem_read(TOPAZ_VLAN_ENTRY_ADDR(vlan_id));
- return e;
-}
-
-#ifndef TOPAZ_TEST_ASSERT_EQUAL
-# define TOPAZ_TEST_ASSERT_EQUAL(a, b) if ((a) != (b)) { return -1; }
-#endif
-RUBY_INLINE int topaz_vlan_entry_bitfield_test(const union topaz_vlan_entry *e)
-{
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_VLAN_OUT_NODE), e->data.out_node);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_VLAN_OUT_PORT), e->data.out_port);
- TOPAZ_TEST_ASSERT_EQUAL(MS(e->raw, TOPAZ_VLAN_VALID), e->data.valid);
-
- return 0;
-}
-
-#endif /* __TOPAZ_VLAN_CPUIF_PLATFORM_H */
-
diff --git a/quantenna/include/qtn/txbf_common.h b/quantenna/include/qtn/txbf_common.h
deleted file mode 100644
index 89677e0..0000000
--- a/quantenna/include/qtn/txbf_common.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/*SH1
-*******************************************************************************
-** **
-** Copyright (c) 2008 - 2009 Quantenna Communications Inc **
-** All Rights Reserved **
-** **
-** Date : 01/28/09 **
-** File : txbf_api.h **
-** Description : **
-** **
-*******************************************************************************
-** **
-** Redistribution and use in source and binary forms, with or without **
-** modification, are permitted provided that the following conditions **
-** are met: **
-** 1. Redistributions of source code must retain the above copyright **
-** notice, this list of conditions and the following disclaimer. **
-** 2. Redistributions in binary form must reproduce the above copyright **
-** notice, this list of conditions and the following disclaimer in the **
-** documentation and/or other materials provided with the distribution. **
-** 3. The name of the author may not be used to endorse or promote products **
-** derived from this software without specific prior written permission. **
-** **
-** Alternatively, this software may be distributed under the terms of the **
-** GNU General Public License ("GPL") version 2, or (at your option) any **
-** later version as published by the Free Software Foundation. **
-** **
-** In the case this software is distributed under the GPL license, **
-** you should have received a copy of the GNU General Public License **
-** along with this software; if not, write to the Free Software **
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA **
-** **
-** THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR **
-** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES**
-** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. **
-** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, **
-** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT **
-** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,**
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY **
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT **
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF **
-** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. **
-** **
-*******************************************************************************
-EH1*/
-
-#ifndef _TXBF_API_H_
-#define _TXBF_API_H_
-
-/*
- * Enable installation of a fixed Q matrix in place of the derived ones.
- * The matrix should be put in the file drivers/qdrv/fixedqmat.h
- * The format of the data should be word values comma delimited.
- */
-#define TXBF_CANNED_QMAT
-#undef TXBF_CANNED_QMAT
-
-/* Until we get 2 tx antennas working on a 2x4 station */
-#define HAL_2x4STA_USE_4_TX_ANTENNAS
-
-/*
- * Comment this line to disable locking.
- * Or set to 1 to enable manual locking.
- * Or set to 0 to enable hw-centric automatic locking.
- */
-#define QTN_TXBF_FFT_LOCK_MANUAL (1)
-
-/* VHTTXBFTBD - 11ac BF enabled by default */
-#define TXBF_ENABLE_VHT_BF
-
-/* Use sw generated VHT BF path */
-/* #define TXBF_VHT_SW_FEEDBACK */
-/* #define TXBF_VHT_SW_UNCOMPRESSED */ /* for debugging */
-
-/* Expansion Matrix Modes */
-#define TXBF_MODE_NO_MATRIX 0
-#define TXBF_MODE_DEFAULT_MATRIX 1
-#define TXBF_MODE_BBF 2
-#define TXBF_MODE_STD_BF 3
-
-/* Enable (1) both hw and sw generated VHT BF feedback, used for debugging */
-#define TXBF_VHT_HW_AND_SW_FEEDBACK 0
-
-enum txbf_buff_state
-{
- /* Tx BF buffer for the frame is free */
- TXBF_BUFF_FREE = 0,
- /* The frame is stored in Tx BF buffer for processing and can not be released*/
- TXBF_BUFF_IN_USE = 1,
- /* Not used */
- TXBF_DMA_FROM_BB = 2,
- /* NDP only. The frame is being processed by DSP */
- TXBF_DSP_PROC = 3,
- /* DSP completes frame processing */
- TXBF_DSP_DONE = 4,
- /* For action frame only. Action frame is stored in action frame cache */
- TXBF_DSP_STORED = 5
-};
-
-#define TXBF_BF_VER1 1 /* Envy */
-#define TXBF_BF_VER2 2 /* 2 stream Ruby */
-#define TXBF_BF_VER3 3 /* 4 stream non-tone grouping Ruby */
-#define TXBF_BF_VER4 4 /* 4 stream tone grouping Ruby and later */
-/*
- * Version 4 means the action frames generated are now standards compliant
- * and the BF parameters are derived from the various fields and association
- * exchange, rather than from using a new version for each combination
- */
-
-/*
- * These structures are shared between Linux, MuC and DSP.
- */
-struct txbf_ndp_info
-{
- char bw_mode;
- char rxgain;
- char MN;
- char hwnoise;
- char max_gain;
- char macaddr[6];
- signed char reg_scale_fac;
- unsigned char Nsts;
- unsigned char Ness;
-};
-
-#define TXBF_MUC_DSP_SHMEM_START (0x80060000)
-
-#define QTN_MU_QMAT_MAX_SLOTS 3
-
-/* Beamforming message types */
-#define QTN_TXBF_NDP_RX_MSG 1
-#define QTN_TXBF_ACT_FRM_TX_MSG 2
-#define QTN_TXBF_ACT_FRM_RX_MSG 3
-#define QTN_TXBF_ACT_FRM_FREE_MSG 4
-#define QTN_TXBF_DEL_MU_NODE_MSG 5
-#define QTN_TXBF_MU_GRP_UPD_DONE_MSG 6
-#define QTN_TXBF_TRIG_MU_GRP_SEL_MSG 7
-#define QTN_TXBF_RATE_TRAIN_MSG 8
-#define QTN_TXBF_RATE_TRAIN_HASH_MSG 9
-#define QTN_TXBF_NDP_DISCARD_MSG 10
-
-#define QTN_TXBF_ACT_FRM_XTRA_HDR_LEN 10
-
-#define QTN_TXBF_MODE_HT 0
-#define QTN_TXBF_MODE_VHT 1
-
-#define QTN_TXBF_NO_EXPMAT 0xFFFF
-
-#define MU_NDPA_TOKEN_MASK 0x1F
-
-/* Number of 10ms timeslots used on the DSP to process feedback */
-#define QTN_TXBF_SU_DSP_TIMESLOTS 1
-#define QTN_TXBF_MU_DSP_TIMESLOTS 2
-
-/* We leave backward compatibility here. As SU token value was randomly chosen as 0x33
-we now say when bit 5 is set it indicates SU sounding. */
-#define MU_NDPA_SU_MASK 0x20
-#define MU_NDPA_GRP_SND_MASK 0x10
-#define IS_MU_GRP_SND(token) ((token) & MU_NDPA_GRP_SND_MASK)
-
-/* TODO: Needs reworking. Some fields (at least mu_grp_id) are used only by
-distinct message type */
-struct txbf_pkts
-{
- unsigned msg_type;
- unsigned state;
- unsigned bf_ver;
- unsigned bf_mode;
- unsigned act_frame_phys;
- unsigned buffer_start;
- unsigned act_frame_len;
- unsigned skb;
- unsigned qmat_offset;
- unsigned inst_1ss_def_mat;
- unsigned success;
- unsigned ndp_phys;
- unsigned nstream;
- unsigned bf_mimo_nc;
- unsigned bf_mimo_nr;
- unsigned bf_tone_grp;
- unsigned bf_coeff_size;
- unsigned bf_nss_snr[4];
- unsigned bf_compressed;
- unsigned bf_codebook;
- unsigned pkt_indx;
- unsigned short aid;
- unsigned node_bw;
- unsigned bw_pri_40m_lower;
- unsigned bw_pri_20m_lower;
- unsigned txbf_skip_dftmat_flag;
- unsigned txbf_2x4sta_flag;
- unsigned txbf_qmat_install_wait;
- struct txbf_ndp_info ndp_info;
- char act_frame_sa[6];
- char act_frame_bssid[6];
- char slot;
- uint8_t mu_grp_id[QTN_MU_QMAT_MAX_SLOTS];
- uint8_t vapid;
- unsigned counter;
-};
-
-#define IEEE80211_ADDR_LEN 6
-struct qtn_rate_train_info
-{
- unsigned msg_type;
- unsigned state;
- char src[IEEE80211_ADDR_LEN];
- char dst[IEEE80211_ADDR_LEN];
- unsigned ver;
- unsigned nonce;
- unsigned hash;
- unsigned stamp;
- unsigned ni;
- void *next; /* Chaining for retry on mbox busy */
- int index;
- char devid;
- char padding[15]; /* Cache aligned */
-};
-
-struct txbf_ctrl {
- unsigned bf_tone_grp;
- unsigned svd_mode;
- unsigned bfoff_thresh;
-};
-
-typedef struct
-{
- signed int pad1:4;
- signed int im:12;
- signed int pad2:4;
- signed int re:12;
-} ndp_format;
-
-typedef union
-{
- ndp_format ndp;
- int wrd;
-} bbmem_ndp;
-
-
-typedef struct
-{
- /* Compq format BB0 20 bits */
- signed int bb0_re_s0:8;
- signed int bb0_im_s0:8;
- signed int bb0_re_s1_lo:4;
- /* Interleaved BB1 12 bits */
- signed int bb1_re_s1_hi:4;
- signed int bb1_im_s1:8;
- /* Compq format BB0 12 bits */
- signed int bb0_re_s1_hi:4;
- signed int bb0_im_s1:8;
- /* Interleaved BB1 20 bits */
- signed int bb1_re_s0:8;
- signed int bb1_im_s0:8;
- signed int bb1_re_s1_lo:4;
-}st_format;
-
-typedef union
-{
- st_format st;
- unsigned wrd[2];
-} bbmem_st;
-
-/*
- * Maximum streams supported for different matrix types
- */
-#define QTN_MAX_STREAMS 4
-#define QTN_MAX_40M_VHT_STREAMS 2
-#define QTN_MAX_20M_VHT_STREAMS 2
-#define QTN_MAX_IOT_QMAT_STREAMS 3
-
-/*
- * Default decimation used for matrices in Q memory. Some matrices
- * may use more decimation if space is a problem
- */
-#define QTN_TXBF_DEFAULT_QMAT_NG 1
-#define QTN_TXBF_MAX_QMAT_NG 2
-
-#define NDP_TO_STVEC_SIZE_RATIO 4
-
-#define NDP_START_DELAY 2 /* in seconds */
-
-#define STVEC_SIZE_BYTES_1STRM_20M 0x100 /* Assumes NG 1 matrices */
-#define STVEC_MAX_NODES 10
-
-/*
- * Matrix sizes for NG 1 matrices
- */
-#define STVEC_SIZE_BYTES_1STRM_40M (STVEC_SIZE_BYTES_1STRM_20M << 1)
-#define STVEC_SIZE_BYTES_1STRM_80M (STVEC_SIZE_BYTES_1STRM_40M << 1)
-#define STVEC_SIZE_BYTES_2STRM_20M (STVEC_SIZE_BYTES_1STRM_20M << 1)
-#define STVEC_SIZE_BYTES_2STRM_40M (STVEC_SIZE_BYTES_2STRM_20M << 1)
-#define STVEC_SIZE_BYTES_2STRM_80M (STVEC_SIZE_BYTES_2STRM_40M << 1)
-#define STVEC_SIZE_BYTES_3STRM_20M (STVEC_SIZE_BYTES_2STRM_20M + STVEC_SIZE_BYTES_1STRM_20M)
-#define STVEC_SIZE_BYTES_3STRM_40M (STVEC_SIZE_BYTES_3STRM_20M << 1)
-#define STVEC_SIZE_BYTES_3STRM_80M (STVEC_SIZE_BYTES_3STRM_40M << 1)
-#define STVEC_SIZE_BYTES_4STRM_20M (STVEC_SIZE_BYTES_2STRM_20M << 1)
-#define STVEC_SIZE_BYTES_4STRM_40M (STVEC_SIZE_BYTES_2STRM_40M << 1)
-#define STVEC_SIZE_BYTES_4STRM_80M (STVEC_SIZE_BYTES_4STRM_40M << 1)
-#define STVEC_SIZE_BYTES_1STRM_MAX STVEC_SIZE_BYTES_1STRM_80M
-#define STVEC_SIZE_BYTES_2STRM_MAX STVEC_SIZE_BYTES_2STRM_80M
-#define STVEC_SIZE_BYTES_3STRM_MAX STVEC_SIZE_BYTES_3STRM_80M
-#define STVEC_SIZE_BYTES_4STRM_MAX STVEC_SIZE_BYTES_4STRM_80M
-
-#ifndef QTN_BW_20M
-# define QTN_BW_20M 0
-# define QTN_BW_40M 1
-# define QTN_BW_80M 2
-#endif
-#define QTN_BW_SW_MAX QTN_BW_80M
-
-#define NDP_SIZE_BYTES_BASE 1024
-#define NDP_SIZE_BYTES_20M (NDP_SIZE_BYTES_BASE << QTN_BW_20M)
-#define NDP_SIZE_BYTES_40M (NDP_SIZE_BYTES_BASE << QTN_BW_40M)
-#define NDP_SIZE_BYTES_80M (NDP_SIZE_BYTES_BASE << QTN_BW_80M)
-#define NDP_SIZE_BYTES_MAX (NDP_SIZE_BYTES_BASE << QTN_BW_SW_MAX)
-
-/*
- * Q matrix defines for 80 MHz nodes using NG 1
- */
-#define QTN_TXBF_QMAT80_1STRM_OFFSET(offset) (offset)
-#define QTN_TXBF_QMAT80_1STRM_MAT_TOTAL (STVEC_SIZE_BYTES_1STRM_80M + \
- STVEC_SIZE_BYTES_1STRM_40M + \
- STVEC_SIZE_BYTES_1STRM_20M)
-#define QTN_TXBF_QMAT80_2STRM_MAT_TOTAL (STVEC_SIZE_BYTES_2STRM_80M + \
- STVEC_SIZE_BYTES_2STRM_40M + \
- STVEC_SIZE_BYTES_2STRM_20M)
-#define QTN_TXBF_QMAT80_3STRM_MAT_TOTAL (STVEC_SIZE_BYTES_3STRM_80M)
-#define QTN_TXBF_QMAT80_4STRM_MAT_TOTAL (STVEC_SIZE_BYTES_4STRM_80M)
-#define QTN_TXBF_QMAT80_1STRM_40M_OFFSET(offset) (offset + \
- STVEC_SIZE_BYTES_1STRM_80M)
-#define QTN_TXBF_QMAT80_1STRM_20M_OFFSET(offset) (offset + \
- STVEC_SIZE_BYTES_1STRM_80M + \
- STVEC_SIZE_BYTES_1STRM_40M)
-#define QTN_TXBF_QMAT80_2STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_1STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_2STRM_40M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- STVEC_SIZE_BYTES_2STRM_80M)
-#define QTN_TXBF_QMAT80_2STRM_20M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- STVEC_SIZE_BYTES_2STRM_80M + \
- STVEC_SIZE_BYTES_2STRM_40M)
-#define QTN_TXBF_QMAT80_3STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_2STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_4STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_3STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_TOTAL_SIZE (QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_3STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_4STRM_MAT_TOTAL)
-
-/*
- * Q matrix defines for 80 MHz nodes using NG 2
- */
-#define QTN_TXBF_QMAT80_NG2_1STRM_OFFSET(offset) (offset)
-#define QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL ((STVEC_SIZE_BYTES_1STRM_80M / 2) + \
- ( STVEC_SIZE_BYTES_1STRM_40M / 2) + \
- (STVEC_SIZE_BYTES_1STRM_20M / 2))
-#define QTN_TXBF_QMAT80_NG2_2STRM_MAT_TOTAL ((STVEC_SIZE_BYTES_2STRM_80M / 2) + \
- (STVEC_SIZE_BYTES_2STRM_40M / 2) + \
- (STVEC_SIZE_BYTES_2STRM_20M / 2))
-#define QTN_TXBF_QMAT80_NG2_3STRM_MAT_TOTAL (STVEC_SIZE_BYTES_3STRM_80M / 2)
-#define QTN_TXBF_QMAT80_NG2_4STRM_MAT_TOTAL (STVEC_SIZE_BYTES_4STRM_80M / 2)
-#define QTN_TXBF_QMAT80_NG2_1STRM_40M_OFFSET(offset) (offset + \
- (STVEC_SIZE_BYTES_1STRM_80M / 2))
-#define QTN_TXBF_QMAT80_NG2_1STRM_20M_OFFSET(offset) (offset + \
- (STVEC_SIZE_BYTES_1STRM_80M / 2) + \
- (STVEC_SIZE_BYTES_1STRM_40M / 2))
-#define QTN_TXBF_QMAT80_NG2_2STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_NG2_2STRM_40M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL + \
- (STVEC_SIZE_BYTES_2STRM_80M / 2))
-#define QTN_TXBF_QMAT80_NG2_2STRM_20M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL + \
- (STVEC_SIZE_BYTES_2STRM_80M / 2) + \
- (STVEC_SIZE_BYTES_2STRM_40M / 2))
-#define QTN_TXBF_QMAT80_NG2_3STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_2STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_NG2_4STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT80_NG2_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_3STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT80_NG2_TOTAL_SIZE (QTN_TXBF_QMAT80_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_3STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT80_NG2_4STRM_MAT_TOTAL)
-/*
- * Q matrix defines for 40 MHz nodes using NG 1
- */
-#define QTN_TXBF_QMAT40_1STRM_MAT_TOTAL (STVEC_SIZE_BYTES_1STRM_40M + \
- STVEC_SIZE_BYTES_1STRM_20M)
-#define QTN_TXBF_QMAT40_2STRM_MAT_TOTAL (STVEC_SIZE_BYTES_2STRM_40M + \
- STVEC_SIZE_BYTES_2STRM_20M)
-#define QTN_TXBF_QMAT40_3STRM_MAT_TOTAL (STVEC_SIZE_BYTES_3STRM_40M)
-#define QTN_TXBF_QMAT40_4STRM_MAT_TOTAL (STVEC_SIZE_BYTES_4STRM_40M)
-#define QTN_TXBF_QMAT40_1STRM_OFFSET(offset) (offset)
-#define QTN_TXBF_QMAT40_1STRM_40M_OFFSET(offset) (offset)
-#define QTN_TXBF_QMAT40_1STRM_20M_OFFSET(offset) (offset + \
- STVEC_SIZE_BYTES_1STRM_40M)
-#define QTN_TXBF_QMAT40_2STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT40_1STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT40_2STRM_40M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT40_1STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT40_2STRM_20M_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT40_1STRM_MAT_TOTAL + \
- STVEC_SIZE_BYTES_2STRM_40M)
-#define QTN_TXBF_QMAT40_3STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT40_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_2STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT40_4STRM_OFFSET(offset) (offset + \
- QTN_TXBF_QMAT40_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_3STRM_MAT_TOTAL)
-#define QTN_TXBF_QMAT40_TOTAL_SIZE (QTN_TXBF_QMAT40_1STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_2STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_3STRM_MAT_TOTAL + \
- QTN_TXBF_QMAT40_4STRM_MAT_TOTAL)
-
-/*
- * Defines for dividing Q memory into slots for nodes using standard BF
- */
-#define QTN_TXBF_QMAT_SLOT_SIZE MAX(QTN_TXBF_QMAT40_TOTAL_SIZE, \
- QTN_TXBF_QMAT80_TOTAL_SIZE / 2)
-
-#define QTN_TXBF_QMAT_SLOTS_USED(qn) (MAX(1, ((qn)->qn_node.ni_bw_cap >> \
- MAX(((qn)->qn_expmat.ng - QTN_TXBF_DEFAULT_QMAT_NG), 0))))
-
-#define QTN_TXBF_QMAT_SLOT(idx) ((idx) * QTN_TXBF_QMAT_SLOT_SIZE)
-
-#define QTN_TXBF_QMAT_OFFSET_SHIFT 6
-
-/*
- * Defines for fixed matrix (BBF and default) sizes
- */
-#define QTN_TXBF_QMAT_MIN_OFFSET (1 << QTN_TXBF_QMAT_OFFSET_SHIFT)
-
-#define QTN_TXBF_1SS_WORDS_PER_TONE 2
-#define QTN_TXBF_2SS_WORDS_PER_TONE 4
-#define QTN_TXBF_3SS_WORDS_PER_TONE 6
-#define QTN_TXBF_4SS_WORDS_PER_TONE 8
-#define QTN_TXBF_IOT_QMAT_1SS_WORDS (QTN_TXBF_IOT_QMAT_TONES * \
- QTN_TXBF_1SS_WORDS_PER_TONE)
-#define QTN_TXBF_IOT_QMAT_2SS_WORDS (QTN_TXBF_IOT_QMAT_TONES * \
- QTN_TXBF_2SS_WORDS_PER_TONE)
-#define QTN_TXBF_IOT_QMAT_3SS_WORDS (QTN_TXBF_IOT_QMAT_TONES * \
- QTN_TXBF_3SS_WORDS_PER_TONE)
-#define QTN_TXBF_IOT_QMAT_4SS_WORDS (QTN_TXBF_IOT_QMAT_TONES * \
- QTN_TXBF_4SS_WORDS_PER_TONE)
-#define QTN_TXBF_IOT_QMAT_1SS_MEM MAX((QTN_TXBF_IOT_QMAT_1SS_WORDS * 4), \
- QTN_TXBF_QMAT_MIN_OFFSET)
-#define QTN_TXBF_IOT_QMAT_2SS_MEM MAX((QTN_TXBF_IOT_QMAT_2SS_WORDS * 4), \
- QTN_TXBF_QMAT_MIN_OFFSET)
-#define QTN_TXBF_IOT_QMAT_3SS_MEM MAX((QTN_TXBF_IOT_QMAT_3SS_WORDS * 4), \
- QTN_TXBF_QMAT_MIN_OFFSET)
-#define QTN_TXBF_IOT_QMAT_4SS_MEM MAX((QTN_TXBF_IOT_QMAT_4SS_WORDS * 4), \
- QTN_TXBF_QMAT_MIN_OFFSET)
-
-#define QTN_TXBF_QMAT_FIXED_MAT_START (QTN_TXBF_QMAT_SLOT_SIZE * STVEC_MAX_NODES)
-
-/*
- * Fixed 2x4 node matrix definitions
- */
-/*
- * 80MHz 2x4 matrices need to start in normal BF area to fit,
- * this is OK, as they are used on the station only at present
- */
-#define QTN_TXBF_QMAT_2x4STA_1_STRM_OFFSET (QTN_TXBF_QMAT_SLOT_SIZE * (STVEC_MAX_NODES - 1))
-#define QTN_TXBF_QMAT_2x4STA_2_STRM_OFFSET (QTN_TXBF_QMAT_2x4STA_1_STRM_OFFSET + \
- STVEC_SIZE_BYTES_1STRM_80M)
-
-#define QTN_TXBF_2x4STA_1SS_TONE_DATA {0x00400040, 0x00000000}
-#define QTN_TXBF_2x4STA_2SS_TONE_DATA {0x00000040, 0x00400000, 0x00000000, 0x00000000}
-
-/*
- * Fixed default matrix offset definitions
- */
-#define QTN_TXBF_QMAT_STD_START QTN_TXBF_QMAT_FIXED_MAT_START
-#define QTN_TXBF_QMAT_STD_1_STRM_OFFSET QTN_TXBF_QMAT_STD_START
-#define QTN_TXBF_QMAT_STD_2_STRM_OFFSET (QTN_TXBF_QMAT_STD_1_STRM_OFFSET + \
- QTN_TXBF_IOT_QMAT_1SS_MEM)
-#define QTN_TXBF_QMAT_STD_3_STRM_OFFSET (QTN_TXBF_QMAT_STD_2_STRM_OFFSET + \
- QTN_TXBF_IOT_QMAT_2SS_MEM)
-#define QTN_TXBF_QMAT_STD_4_STRM_OFFSET (QTN_TXBF_QMAT_STD_3_STRM_OFFSET + \
- QTN_TXBF_IOT_QMAT_3SS_MEM)
-
-#define QTN_TXBF_IOT_QMAT_START (QTN_TXBF_QMAT_STD_4_STRM_OFFSET + \
- QTN_TXBF_IOT_QMAT_4SS_MEM)
-#define QTN_TXBF_IOT_QMAT_TONES 2 /* number of tones for fixed matrices */
-
-/*
- * BBF slot and matrix offset definitions
- *
- * For each slot there is space for the probed matrix, plus the 1, 2 and 3 streams
- * matrices for the index being used by that node
- */
-#define QTN_TXBF_IOT_QMAT_MAX_SLOTS 9
-#define QTN_TXBF_IOT_QMAT_NG 7
-#define QTN_TXBF_IOT_QMAT_PER_SS 18
-#define QTN_TXBF_IOT_QMAT_PROBE_MEM QTN_TXBF_IOT_QMAT_3SS_MEM
-#define QTN_TXBF_IOT_QMAT_SLOT_SIZE (QTN_TXBF_IOT_QMAT_1SS_MEM + \
- QTN_TXBF_IOT_QMAT_2SS_MEM + \
- QTN_TXBF_IOT_QMAT_3SS_MEM + \
- QTN_TXBF_IOT_QMAT_PROBE_MEM)
-#define QTN_TXBF_IOT_QMAT_BASE_OFFSET(slot) (QTN_TXBF_IOT_QMAT_START + \
- (QTN_TXBF_IOT_QMAT_SLOT_SIZE * (slot)))
-#define QTN_TXBF_IOT_QMAT_1SS_OFFSET(slot) (QTN_TXBF_IOT_QMAT_BASE_OFFSET(slot))
-#define QTN_TXBF_IOT_QMAT_2SS_OFFSET(slot) (QTN_TXBF_IOT_QMAT_BASE_OFFSET(slot) + \
- QTN_TXBF_IOT_QMAT_1SS_MEM)
-#define QTN_TXBF_IOT_QMAT_3SS_OFFSET(slot) (QTN_TXBF_IOT_QMAT_BASE_OFFSET(slot) + \
- QTN_TXBF_IOT_QMAT_1SS_MEM + \
- QTN_TXBF_IOT_QMAT_2SS_MEM)
-#define QTN_TXBF_IOT_QMAT_PROBE_OFFSET(slot) (QTN_TXBF_IOT_QMAT_BASE_OFFSET(slot) + \
- QTN_TXBF_IOT_QMAT_1SS_MEM + \
- QTN_TXBF_IOT_QMAT_2SS_MEM + \
- QTN_TXBF_IOT_QMAT_3SS_MEM)
-
-#define FFT_TONE_20M_LO 1
-#define FFT_TONE_20M_HI 28
-
-#define FFT_TONE_40M_LO 2
-#define FFT_TONE_40M_HI 58
-
-#define QTN_TXBF_TONES_PER_CHAN 64
-#define QTN_TXBF_MAX_TONES 128
-#define QTN_TXBF_MIN_TONES 1
-#define QTN_TXBF_MODE 4 /* 80MHz Mode */
-
-enum {
- SVD_MODE_STREAM_MIXING =0,
- SVD_MODE_TWO_STREAM,
- SVD_MODE_PER_ANT_SCALE,
- SVD_MODE_CHANNEL_INV,
- SVD_MODE_BYPASS,
-};
-
-#define SVD_MODE_GET(X,S) (( X >> S) & 1)
-#define SVD_MODE_SET(S) (1 << S)
-
-#if !defined(QTN_TXBF_FFT_LOCK_MANUAL) || (QTN_TXBF_FFT_LOCK_MANUAL == 1)
- /* Locking is disabled or manual locking */
- #define QT3_BB_MIMO_BF_RX_INIT_VAL (0x0A)
- #define QT4_BB_MIMO_BF_RX_INIT_VAL (QT3_BB_MIMO_BF_RX_INIT_VAL)
-#else
- /* Automatic, hw-centric locking. */
- #define QT3_BB_MIMO_BF_RX_INIT_VAL (0x0B)
- #define QT4_BB_MIMO_BF_RX_INIT_VAL (QT3_BB_MIMO_BF_RX_INIT_VAL)
-#endif
-
-/* should be 64 bytes aligned (expmat ptr in TxVector drops lower 5 bits)*/
-struct phys_qmat_layout {
- uint64_t length;
- int8_t body[0];
-} __packed;
-
-// TODO: describe bodies as 2 dimensional arrays
-struct phys_qmat_1x1 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_2STRM_80M];
-} __packed;
-
-struct phys_qmat_2x1 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_3STRM_80M];
-} __packed;
-
-struct phys_qmat_3x1 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_4STRM_80M];
-} __packed;
-
-struct phys_qmat_1x2 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_3STRM_80M];
-} __packed;
-
-struct phys_qmat_1x3 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_4STRM_80M];
-} __packed;
-
-struct phys_qmat_2x2 {
- uint64_t length;
- int8_t body[STVEC_SIZE_BYTES_4STRM_80M];
-} __packed;
-
-struct phys_qmat_dummy {
- uint64_t length;
- int8_t body[0x10];
-} __packed;
-
-/* structure to hold MU group qmatrix info */
-struct qtn_sram_qmat {
- uint8_t valid; /* set to 1 when it is occupied, 0 indicates it is free */
- uint8_t grp_id; /* MU group id */
- uint16_t tk; /* Token */
- uint16_t u0_aid; /* user position 0 AID */
- uint16_t u1_aid; /* user position 1 AID */
- int32_t rank;
-/* Number of following Q matrix elements */
-#define MU_QMAT_ELEM_NUM 6
- /* matrix starting addresses in sram */
- uint32_t u0_1ss_u1_1ss;
- uint32_t u0_2ss_u1_1ss;
- uint32_t u0_3ss_u1_1ss;
- uint32_t u0_1ss_u1_2ss;
- uint32_t u0_1ss_u1_3ss;
- uint32_t u0_2ss_u1_2ss;
- uint32_t dsp_cnt;
-} __packed;
-
-struct qtn_grp_rank {
- uint16_t u0_aid;
- uint16_t u1_aid;
- int32_t rank;
-} __packed;
-
-#define TXBF_MAX_NC 4
-#define TXBF_MAX_NR 4
-#define TXBF_MAX_NG 3
-#define TXBF_MAX_BW 4 /* Multiple of 20 MHz channels */
-
-#define TXBF_EXPMAT_TYPE_0_BYPASS 0
-#define TXBF_EXPMAT_TYPE_2_QMEM_MODE 2
-#define TXBF_EXPMAT_TYPE_5_QREG_MODE 5
-
-#define QTN_TXBF_QMAT_STD_1SS_TONE_DATA {0x00400040, 0x00400040, 0x00400040, 0x00400040}
-#define QTN_TXBF_QMAT_STD_2SS_TONE_DATA {0x002D002D, 0x2D00002D, 0x00D3002D, 0xD300002D, \
- 0x002D002D, 0x2D00002D, 0x00D3002D, 0xD300002D}
-#define QTN_TXBF_QMAT_STD_3SS_TONE_DATA {0x00250025, 0x00250025, 0x00DB2500, 0x00DB0025, \
- 0x00250025, 0x00DBDB00, 0x00250025, 0x00250025, \
- 0x00DB2500, 0x00DB0025, 0x00250025, 0x00DBDB00}
-#define QTN_TXBF_QMAT_STD_4SS_TONE_DATA {0x00000040, 0x00000000, 0x00400000, 0x00000000, \
- 0x00000000, 0x00000040, 0x00000000, 0x00400000, \
- 0x00000040, 0x00000000, 0x00400000, 0x00000000, \
- 0x00000000, 0x00000040, 0x00000000, 0x00400000}
-
-static __inline__ uint8_t qtn_txbf_get_bf_qmat_offsets(uint32_t *expmat_ss, uint8_t max,
- uint32_t qmat_base_offset, uint8_t node_bw, uint8_t bw, uint8_t ng)
-{
- if ((bw == QTN_BW_40M) && (node_bw == QTN_BW_80M)) {
- if (ng == QTN_TXBF_DEFAULT_QMAT_NG) {
- expmat_ss[0] = QTN_TXBF_QMAT80_1STRM_40M_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_2STRM_40M_OFFSET(qmat_base_offset);
- } else {
- expmat_ss[0] = QTN_TXBF_QMAT80_NG2_1STRM_40M_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_NG2_2STRM_40M_OFFSET(qmat_base_offset);
- }
- return (QTN_MAX_40M_VHT_STREAMS - 1);
- } else if ((bw == QTN_BW_20M) && (node_bw > QTN_BW_20M)) {
- if ((node_bw == QTN_BW_80M) && (ng == QTN_TXBF_DEFAULT_QMAT_NG)) {
- expmat_ss[0] = QTN_TXBF_QMAT80_1STRM_20M_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_2STRM_20M_OFFSET(qmat_base_offset);
- } else if (node_bw == QTN_BW_80M) {
- expmat_ss[0] = QTN_TXBF_QMAT80_NG2_1STRM_20M_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_NG2_2STRM_20M_OFFSET(qmat_base_offset);
- } else {
- expmat_ss[0] = QTN_TXBF_QMAT40_1STRM_20M_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT40_2STRM_20M_OFFSET(qmat_base_offset);
- }
- return (QTN_MAX_20M_VHT_STREAMS - 1);
- }
- if (node_bw == QTN_BW_80M) {
- if (ng == QTN_TXBF_DEFAULT_QMAT_NG) {
- expmat_ss[0] = QTN_TXBF_QMAT80_1STRM_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_2STRM_OFFSET(qmat_base_offset);
- } else {
- expmat_ss[0] = QTN_TXBF_QMAT80_NG2_1STRM_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT80_NG2_2STRM_OFFSET(qmat_base_offset);
- }
- if ((max == QTN_MAX_STREAMS) && (ng == QTN_TXBF_DEFAULT_QMAT_NG)) {
- expmat_ss[2] = QTN_TXBF_QMAT80_3STRM_OFFSET(qmat_base_offset);
- expmat_ss[3] = QTN_TXBF_QMAT80_4STRM_OFFSET(qmat_base_offset);
- } else if (max == QTN_MAX_STREAMS) {
- expmat_ss[2] = QTN_TXBF_QMAT80_NG2_3STRM_OFFSET(qmat_base_offset);
- expmat_ss[3] = QTN_TXBF_QMAT80_NG2_4STRM_OFFSET(qmat_base_offset);
- }
- } else {
- expmat_ss[0] = QTN_TXBF_QMAT40_1STRM_OFFSET(qmat_base_offset);
- expmat_ss[1] = QTN_TXBF_QMAT40_2STRM_OFFSET(qmat_base_offset);
- if (max == QTN_MAX_STREAMS) {
- expmat_ss[2] = QTN_TXBF_QMAT40_3STRM_OFFSET(qmat_base_offset);
- expmat_ss[3] = QTN_TXBF_QMAT40_4STRM_OFFSET(qmat_base_offset);
- }
- }
-
- return (QTN_MAX_STREAMS - 1);
-}
-
-unsigned dsp_rt_hash(volatile struct qtn_rate_train_info *p_rate_info);
-
-#endif /*TXBF_COMMON_H_*/
-
diff --git a/quantenna/include/qtn/txbf_mbox.h b/quantenna/include/qtn/txbf_mbox.h
deleted file mode 100644
index 5dad35e..0000000
--- a/quantenna/include/qtn/txbf_mbox.h
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * (C) Copyright 2011 Quantenna Communications Inc.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __QTN_TXBF_MBOX_H
-#define __QTN_TXBF_MBOX_H
-
-#include "mproc_sync.h"
-#include "txbf_common.h"
-
-#define QTN_TXBF_MBOX_BAD_IDX ((u_int32_t)-1)
-
-#define QTN_TXBF_MUC_TO_DSP_MBOX_INT (0)
-#define QTN_TXBF_DSP_TO_HOST_MBOX_INT (0)
-#define QTN_TXBF_DSP_TO_MUC_MBOX_INT (0)
-
-#define QTN_RATE_MUC_DSP_MSG_RING_SIZE (32)
-
-/*
- * QTN_MAX_MU_SND_NODES nodes (6) + QTN_MAX_SND_NODES (10) + 3 for IPC cmd 19.
- * This value still causes buffer allocation failure, which is probably due to bad DSP performance.
- * With 3 more there is no allocation failure for 4 STAs case.
- */
-#define QTN_TXBF_MUC_DSP_MSG_RING_SIZE (6 + 10 + 3 + 3)
-
-#define QTN_TXBF_NDP_DATA_BUFS (1)
-
-/* MU group install/delete IPC from DSP to LHost */
-#define QTN_TXBF_DSP_TO_HOST_INST_MU_GRP 1
-#define QTN_TXBF_DSP_TO_HOST_DELE_MU_GRP 2
-
-#ifndef __ASSEMBLY__
-
-#define DSP_ACT_RX_DBG_SIZE 10
-
-#if DSP_ENABLE_STATS && !defined(QTN_RC_ENABLE_HDP)
-#define DSP_UPDATE_STATS(_a, _b) (qtn_txbf_mbox_get()->dsp_stats._a += (_b))
-#define DSP_SETSTAT(_a, _b) (qtn_txbf_mbox_get()->dsp_stats._a = (_b))
-#else
-#define DSP_UPDATE_STATS(_a, _b)
-#define DSP_SETSTAT(_a, _b)
-#endif
-
-#if DSP_ENABLE_STATS
-struct qtn_dsp_stats {
- uint32_t dsp_ndp_rx;
-
- /* Per-node DSP stats */
-
- /* Total number of feedbacks received */
- uint32_t dsp_act_rx[DSP_ACT_RX_DBG_SIZE];
-
- /* Number of SU feedbacks */
- uint32_t dsp_act_rx_su[DSP_ACT_RX_DBG_SIZE];
-
- /* Number of MU group selection feedbacks */
- uint32_t dsp_act_rx_mu_grp_sel[DSP_ACT_RX_DBG_SIZE];
-
- /* Number of MU precoding feedbacks */
- uint32_t dsp_act_rx_mu_prec[DSP_ACT_RX_DBG_SIZE];
-
- /* Number of bad feedbacks, i.e. those that are not met SU nor MU criteria */
- uint32_t dsp_act_rx_bad[DSP_ACT_RX_DBG_SIZE];
-
- /*
- * Number of feedbacks that were not places into the cache due to any reason. Counters for two reasons
- * are just below
- */
- uint32_t dsp_act_rx_mu_drop[DSP_ACT_RX_DBG_SIZE];
-
- /* The number of MU feedback not placed into the cache as the previous one has not been exprired */
- uint32_t dsp_act_rx_mu_nexp[DSP_ACT_RX_DBG_SIZE];
-
- /* The number of MU feedback not placed into the cache due to cache is locked */
- uint32_t dsp_act_rx_mu_lock_cache[DSP_ACT_RX_DBG_SIZE];
-
- /*
- * The number of precoding feedback was released unused, i.e. not participated in QMat calculation.
- * It means the buddy feedback either have not been received or received after cache expiration time
- */
- uint32_t dsp_act_rx_mu_rel_nuse[DSP_ACT_RX_DBG_SIZE];
-
- /* The number of MU feedback for which dsp_qmat_check_act_len is failed */
- uint32_t dsp_act_rx_inval_len[DSP_ACT_RX_DBG_SIZE];
-
- uint32_t dsp_del_mu_node_rx;
- uint32_t dsp_ipc_in;
- uint32_t dsp_ipc_out;
- uint32_t dsp_sleep_in;
- uint32_t dsp_sleep_out;
- uint32_t dsp_act_tx;
- uint32_t dsp_ndp_discarded;
- uint32_t dsp_ndp_inv_len;
- uint32_t dsp_ndp_max_len;
- uint32_t dsp_ndp_inv_bw;
- uint32_t dsp_act_free_tx;
- uint32_t dsp_inst_mu_grp_tx;
- uint32_t dsp_qmat_invalid;
-/* Number or QMat currently installed */
- int32_t dsp_sram_qmat_num;
-/*
- * Number of times dsp_sram_qmat_num becomes negative. Non zero value signals that the number
- * of QMat de-installation is more than the number of installations. This is an error condition but not a critical one
- */
- uint32_t dsp_err_neg_qmat_num;
- uint32_t dsp_flag;
- /* Interrupts */
- uint32_t dsp_ipc_int;
- uint32_t dsp_timer_int;
- uint32_t dsp_timer1_int;
- uint32_t dsp_last_int;
-
- uint32_t dsp_exc;
- /* registers */
- uint32_t dsp_status32;
- uint32_t dsp_status32_l1;
- uint32_t dsp_status32_l2;
- uint32_t dsp_ilink1;
- uint32_t dsp_ilink2;
- uint32_t dsp_blink;
- uint32_t dsp_sp;
- uint32_t dsp_time;
-
- uint32_t dsp_point;
- uint32_t dsp_stat_bad_stack;
-
- int16_t dspmu_D_user1[4];
- int16_t dspmu_D_user2[4];
- int16_t dspmu_max_intf_user1;
- int16_t dspmu_max_intf_user2;
- int16_t rank_criteria;
- uint32_t dsp_trig_mu_grp_sel;
- uint32_t dsp_mu_rank_success;
- uint32_t dsp_mu_rank_fail;
-
- /* The number of failed group installations */
- uint32_t dsp_mu_grp_inst_fail;
-
- /* Per-MU group DSP stats */
- /* The number of successful group installations */
- uint32_t dsp_mu_grp_inst_success[QTN_MU_QMAT_MAX_SLOTS];
- /* The number of successful QMat installations */
- uint32_t dsp_mu_grp_update_success[QTN_MU_QMAT_MAX_SLOTS];
- /* The number of failed QMat installations */
- uint32_t dsp_mu_grp_update_fail[QTN_MU_QMAT_MAX_SLOTS];
- /* Group's AID 0 */
- uint32_t dsp_mu_grp_aid0[QTN_MU_QMAT_MAX_SLOTS];
- /* Group's AID 1 */
- uint32_t dsp_mu_grp_aid1[QTN_MU_QMAT_MAX_SLOTS];
- /* Group's rank */
- int32_t dsp_mu_grp_rank[QTN_MU_QMAT_MAX_SLOTS];
-
- /*
- * Distribution (histogram) of MU QMat copying time
- 0: 0- 3us
- 1: 4- 7us
- ...............
- 3: 12+ us
- */
-#define DSP_MU_QMAT_COPY_TIME_HIST_WIDTH_US 4
- uint32_t dsp_mu_qmat_qmem_copy_time_hist[4];
- uint32_t dsp_mu_qmat_qmem_copy_time_max;
-
- /*
- * Distribution (histogram) of MU QMat calculation and installation time
- 0: 0- 3ms
- 1: 4- 7ms
- ...............
- 3: 12+ ms
- */
-#define DSP_MU_QMAT_INST_TIME_HIST_WIDTH_MS 6
- uint32_t dsp_mu_qmat_inst_time_hist[8];
- uint32_t dsp_mu_qmat_inst_time_max;
-
- uint32_t dsp_mu_grp_inv_act;
- uint32_t dsp_act_cache_expired[2];
- uint32_t dsp_mu_grp_upd_done;
- uint32_t dsp_mu_node_del;
-
- uint32_t dsp_mimo_ctrl_fail;
- uint32_t dsp_mu_fb_80mhz;
- uint32_t dsp_mu_fb_40mhz;
- uint32_t dsp_mu_fb_20mhz;
- uint32_t dsp_mu_drop_20mhz;
-};
-#endif
-
-/* Structure be used for txbf message box */
-struct qtn_txbf_mbox
-{
- /* Write index in txbf_msg_bufs array. Updated only by a sender */
- volatile u_int32_t wr;
-
- #define MUC_TO_DSP_ACT_MBOX_SIZE 12
- volatile u_int32_t muc_to_dsp_action_frame_mbox[MUC_TO_DSP_ACT_MBOX_SIZE];
- volatile u_int32_t muc_to_dsp_ndp_mbox;
- volatile u_int32_t muc_to_dsp_del_grp_node_mbox;
- volatile u_int32_t muc_to_dsp_gr_upd_done_mbox;
- volatile u_int32_t muc_to_trig_mu_grp_sel_mbox;
- volatile u_int32_t dsp_to_host_mbox;
-
- volatile struct txbf_pkts txbf_msg_bufs[QTN_TXBF_MUC_DSP_MSG_RING_SIZE];
-
- volatile struct txbf_ctrl bfctrl_params;
-
- /* Debug verbosity level */
-#define DEBUG_LVL_NO 0
-#define DEBUG_LVL_ALL 1
- volatile uint32_t debug_level;
-
-#define MU_QMAT_FREEZE 0x00000001
-#define MU_MANUAL_RANK 0x00000002
-#define MU_FREEZE_RANK 0x00000004
-#define MU_QMAT_ZERO_STA0 0x00000010
-#define MU_QMAT_ZERO_STA1 0x00000020
-#define MU_QMAT_PRINT_CHMAT 0x00000100
-#define MU_QMAT_PRINT_PRECMAT 0x00000200
-#define MU_QMAT_PRINT_SNR 0x00000400
-#define MU_QMAT_PRINT_RANK 0x00000800
-#define MU_QMAT_PRINT_STUFFMEM 0x00001000
-#define MU_QMAT_PRINT_ACTFRM 0x00002000
-#define MU_MATLAB_PROCESS 0x00004000
-#define MU_V_ANGLE 0x00008000
-#define MU_PROJ_PREC_MUEQ_NEED_MASK 0x000F0000
-#define MU_PROJ_PREC_MUEQ_NEED_NC0_MASK 0x00030000
-#define MU_PROJ_PREC_MUEQ_NEED_NC0_SHIFT 16
-#define MU_PROJ_PREC_MUEQ_NEED_NC1_MASK 0x000C0000
-#define MU_PROJ_PREC_MUEQ_NEED_NC1_SHIFT 18
-#define MU_PRINT_RANK_INFO 0x00100000
-#define MU_LIMIT_GRP_ENTRY 0x00300000
- volatile uint32_t debug_flag;
- volatile struct qtn_sram_qmat mu_grp_qmat[QTN_MU_QMAT_MAX_SLOTS];
- /* Used for testing to set rank for STA pairs manually */
- volatile struct qtn_grp_rank mu_grp_man_rank[QTN_MU_QMAT_MAX_SLOTS];
-#if DSP_ENABLE_STATS
- volatile struct qtn_dsp_stats dsp_stats;
-#endif
-
-#define MU_ALGORITHM_AUTO 0x00000000
-#define MU_ALGORITHM_PROJECTION 0x00000001
-#define MU_ALGORITHM_ITERATION 0x00000002
-#define MU_PRECODING_ALGORITHM_DEFAULT MU_ALGORITHM_PROJECTION
-#define MU_RANKING_ALGORITHM_DEFAULT MU_ALGORITHM_AUTO
-/* in case of adding algorithms above please update below equation accordingly */
-#define MU_ALLOWED_ALG(x) ((x)<=MU_ALGORITHM_ITERATION)
- volatile uint32_t ranking_algorithm_to_use;
- volatile uint32_t precoding_algorithm_to_use;
-#define RANK_CRIT_ONE_AND_ONE 0x00000000
-#define RANK_CRIT_TWO_AND_ONE 0x00000001
-#define RANK_CRIT_THREE_AND_ONE 0x00000002
-#define RANK_CRIT_ONE_AND_TWO 0x00000003
-#define RANK_CRIT_ONE_AND_THREE 0x00000004
-#define RANK_CRIT_TWO_AND_TWO 0x00000005
-#define RANK_CRIT_MAX_MU_SUB_MAX_SU 0x00000006
-#define RANK_CRIT_DEFAULT RANK_CRIT_TWO_AND_TWO
-#define RANK_CRIT_NO_USER_CONF 0x0000000f
- volatile uint32_t rank_criteria_to_use;
-
- volatile uint32_t mu_prec_cache_max_time;
- volatile int32_t mu_rank_tolerance;
-};
-
-struct qtn_muc_dsp_mbox
-{
- volatile u_int32_t muc_to_dsp_mbox;
- volatile u_int32_t dsp_to_muc_mbox;
- volatile struct qtn_rate_train_info muc_dsp_msg_bufs[QTN_RATE_MUC_DSP_MSG_RING_SIZE]
- __attribute__ ((aligned (ARC_DCACHE_LINE_LENGTH) ));
-};
-
-#define QTN_TXBF_MBOX_PROCESSED 1
-#define QTN_TXBF_MBOX_NOT_PROCESSED 0
-
-#if !defined(MUC_BUILD) && !defined(DSP_BUILD) && !defined(AUC_BUILD)
-
-#if CONFIG_USE_SPI1_FOR_IPC
- #define QTN_TXBF_D2L_IRQ RUBY_IRQ_SPI
- #define QTN_TXBF_D2L_IRQ_NAME "DSP(spi)"
-#else
- #define QTN_TXBF_D2L_IRQ RUBY_IRQ_DSP
- #define QTN_TXBF_D2L_IRQ_NAME "DSP(d2l)"
-#endif
-
-RUBY_INLINE void
-qtn_txbf_lhost_init(void)
-{
-#if CONFIG_USE_SPI1_FOR_IPC
- /* Initialize SPI controller, keep IRQ disabled */
- qtn_mproc_sync_mem_write(RUBY_SPI1_SPCR,
- RUBY_SPI1_SPCR_SPE | RUBY_SPI1_SPCR_MSTR |
- RUBY_SPI1_SPCR_SPR(0));
- qtn_mproc_sync_mem_write(RUBY_SPI1_SPER,
- RUBY_SPI1_SPER_ESPR(0));
-#else
- /* Ack, and keep IRQ disabled */
- qtn_mproc_sync_mem_write(RUBY_SYS_CTL_D2L_INT,
- qtn_mproc_sync_mem_read(RUBY_SYS_CTL_D2L_INT));
- qtn_mproc_sync_mem_write(RUBY_SYS_CTL_D2L_INT_MASK,
- ~(1 << QTN_TXBF_DSP_TO_HOST_MBOX_INT));
-#endif
-}
-
-RUBY_INLINE u_int32_t
-qtn_txbf_lhost_irq_ack(struct qdrv_mac *mac)
-{
-#if CONFIG_USE_SPI1_FOR_IPC
- /*
- * Only single interrupt is supported now.
- * If need to support more interrupts then something like
- * 'status' in RAM, guarded by semaphores has to be implemented.
- * This should be avoided, as it is performance penalty.
- */
- qtn_mproc_sync_mem_write(RUBY_SPI1_SPSR,
- qtn_mproc_sync_mem_read(RUBY_SPI1_SPSR));
- return (1 << QTN_TXBF_DSP_TO_HOST_MBOX_INT);
-#else
- return qtn_mproc_sync_irq_ack_all((u_int32_t)mac->mac_host_dsp_int_status);
-#endif
-}
-
-RUBY_INLINE void
-qtn_txbf_lhost_irq_enable(struct qdrv_mac *mac)
-{
-#if CONFIG_USE_SPI1_FOR_IPC
- set_bit(RUBY_SPI1_SPCR_SPIE_BIT, (void*)RUBY_SPI1_SPCR);
-#else
- set_bit(QTN_TXBF_DSP_TO_HOST_MBOX_INT, (void*)mac->mac_host_dsp_int_mask);
-#endif
-}
-
-RUBY_INLINE void
-qtn_txbf_lhost_irq_disable(struct qdrv_mac *mac)
-{
-#if CONFIG_USE_SPI1_FOR_IPC
- clear_bit(RUBY_SPI1_SPCR_SPIE_BIT, (void*)RUBY_SPI1_SPCR);
-#else
- clear_bit(QTN_TXBF_DSP_TO_HOST_MBOX_INT, (void*)mac->mac_host_dsp_int_mask);
-#endif
-}
-
-#endif // #if !defined(MUC_BUILD) && !defined(DSP_BUILD) && !defined(AUC_BUILD)
-
-RUBY_INLINE volatile struct txbf_pkts *
-qtn_txbf_mbox_alloc_msg_buf(volatile struct qtn_txbf_mbox* mbox) {
- int i;
-
- for (i = 0; i < ARRAY_SIZE(mbox->txbf_msg_bufs); i++) {
- int j = (i + mbox->wr) % ARRAY_SIZE(mbox->txbf_msg_bufs);
- if (mbox->txbf_msg_bufs[j].state == TXBF_BUFF_FREE) {
- mbox->wr = j;
- mbox->txbf_msg_bufs[j].state = TXBF_BUFF_IN_USE;
- return &mbox->txbf_msg_bufs[j];
- }
- }
-
- return NULL;
-}
-
-RUBY_INLINE void
-qtn_txbf_mbox_free_msg_buf(volatile struct txbf_pkts *msg) {
- msg->state = TXBF_BUFF_FREE;
-}
-
-RUBY_INLINE u_int32_t
-qtn_txbf_mbox_get_index(volatile struct qtn_txbf_mbox* mbox) {
- return mbox->wr;
-}
-
-RUBY_INLINE volatile struct qtn_txbf_mbox*
-qtn_txbf_mbox_get(void)
-{
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
- return qtn_mproc_sync_nocache
- (qtn_mproc_sync_shared_params_get()->txbf_mbox_bus);
-#else
- /* Linux target */
- return qtn_mproc_sync_shared_params_get()->txbf_mbox_lhost;
-#endif
-}
-
-RUBY_INLINE volatile struct qtn_muc_dsp_mbox*
-qtn_muc_dsp_mbox_get(void)
-{
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
- return qtn_mproc_sync_nocache
- (qtn_mproc_sync_shared_params_get()->muc_dsp_mbox_bus);
-#else
- /* Linux target */
- return qtn_mproc_sync_shared_params_get()->muc_dsp_mbox_lhost;
-#endif
-}
-
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
-RUBY_INLINE int
-qtn_muc_dsp_mbox_send(u_int32_t mbox, u_int32_t idx)
-{
- int ret = 0;
-
- if (qtn_mproc_sync_mem_read(mbox) == QTN_TXBF_MBOX_BAD_IDX) {
- qtn_mproc_sync_mem_write_wmb(mbox, idx);
-#if defined(MUC_BUILD)
- qtn_mproc_sync_irq_trigger(RUBY_SYS_CTL_M2D_INT,
- QTN_TXBF_MUC_TO_DSP_MBOX_INT);
-#else
- qtn_mproc_sync_irq_trigger(RUBY_SYS_CTL_D2M_INT,
- QTN_TXBF_DSP_TO_MUC_MBOX_INT);
-#endif
- ret = 1;
- }
-
- return ret;
-}
-#endif
-
-#if defined(MUC_BUILD) || defined(DSP_BUILD) || defined(AUC_BUILD)
-RUBY_INLINE int
-qtn_txbf_mbox_send(u_int32_t mbox, u_int32_t idx)
-{
- int ret = 0;
-
- if (qtn_mproc_sync_mem_read(mbox) == QTN_TXBF_MBOX_BAD_IDX) {
- qtn_mproc_sync_mem_write_wmb(mbox, idx);
-#if defined(MUC_BUILD)
- qtn_mproc_sync_irq_trigger(RUBY_SYS_CTL_M2D_INT,
- QTN_TXBF_MUC_TO_DSP_MBOX_INT);
-#else
- #if CONFIG_USE_SPI1_FOR_IPC
- qtn_mproc_sync_mem_write(RUBY_SPI1_SPDR, 0x1/*value is not important*/);
- #else
- qtn_mproc_sync_irq_trigger(RUBY_SYS_CTL_D2L_INT,
- QTN_TXBF_DSP_TO_HOST_MBOX_INT);
- #endif
-#endif
- ret = 1;
- }
-
- return ret;
-}
-#endif
-
-RUBY_INLINE u_int32_t
-qtn_txbf_mbox_recv(u_int32_t mbox)
-{
- u_int32_t ret = QTN_TXBF_MBOX_BAD_IDX;
-
- ret = qtn_mproc_sync_mem_read(mbox);
- if (ret != QTN_TXBF_MBOX_BAD_IDX) {
- qtn_mproc_sync_mem_write_wmb(mbox, QTN_TXBF_MBOX_BAD_IDX);
- }
-
- return ret;
-}
-
-RUBY_INLINE void
-qtn_txbf_fft_lock(void)
-{
-#ifndef QTN_TXBF_FFT_LOCK_MANUAL
- /* Locking is disabled */
-#elif QTN_TXBF_FFT_LOCK_MANUAL
- /* Manual, sw-centric locking. */
- qtn_mproc_sync_mem_write_wmb(RUBY_QT3_BB_MIMO_BF_RX,
- qtn_mproc_sync_mem_read(RUBY_QT3_BB_MIMO_BF_RX) & ~RUBY_QT3_BB_MIMO_BF_RX_DUMP_ENABLE);
-#else
- /* Automatic, hw-centric locking.
- * Hw locks FFT memory automatically after the NDP packet is received.
- * No need to explicitely lock FFT.
- */
-#endif
-}
-
-RUBY_INLINE void
-qtn_txbf_fft_unlock(void)
-{
-#ifndef QTN_TXBF_FFT_LOCK_MANUAL
- /* Locking is disabled */
-#elif QTN_TXBF_FFT_LOCK_MANUAL
- /* Manual, sw-centric locking. */
- qtn_mproc_sync_mem_write_wmb(RUBY_QT3_BB_MIMO_BF_RX,
- qtn_mproc_sync_mem_read(RUBY_QT3_BB_MIMO_BF_RX) | RUBY_QT3_BB_MIMO_BF_RX_DUMP_ENABLE);
-#else
- /* Automatic, hw-centric locking. */
- qtn_mproc_sync_mem_write_wmb(RUBY_QT3_BB_GLBL_PREG_INTR_STATUS, RUBY_QT3_BB_FFT_INTR);
-#endif
-}
-
-/*
-* qtn_txbf_mbox can be used to set parameters for DSP core from other cores.
-* Ideally this way should be reworked but until it happens lets use dedicated macros to access such parameters
-* to distibuish this qtn_txbf_mbox usage purpose from others (IPC, BF feedbacks exchange)
-*/
-#define DSP_PARAM_GET(param) (qtn_txbf_mbox_get()->param)
-#define DSP_PARAM_SET(param, value) qtn_txbf_mbox_get()->param = (value)
-
-#endif // #ifndef __ASSEMBLY__
-
-#endif // #ifndef __QTN_TXBF_MBOX_H
-
-