From a0e9b4c2ecdc394b21ffa77aa0c578818edad4f1 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 10 Nov 2016 10:20:42 +0000 Subject: larger roms --- master/32m-rom | 0 master/8m-rom | 13 + master/always-bitbang-spi | 13 +- master/ath-use-regdomain | 2383 +++++++++++++++++++++++++++++++ master/big-roms | 46 + master/config | 6 +- master/endstop | 13 + master/fix-mjpg-streamer-stack-smashing | 19 + master/more-rom | 1330 +++++++++++++++++ master/nfsv4 | 18 + master/series | 6 +- master/status | 9 + 12 files changed, 3849 insertions(+), 7 deletions(-) create mode 100644 master/32m-rom create mode 100644 master/8m-rom create mode 100644 master/ath-use-regdomain create mode 100644 master/big-roms create mode 100644 master/fix-mjpg-streamer-stack-smashing create mode 100644 master/more-rom create mode 100644 master/nfsv4 diff --git a/master/32m-rom b/master/32m-rom new file mode 100644 index 0000000..e69de29 diff --git a/master/8m-rom b/master/8m-rom new file mode 100644 index 0000000..d21cd45 --- /dev/null +++ b/master/8m-rom @@ -0,0 +1,13 @@ +diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile +index 7bf2f27..e0bf49f 100644 +--- a/target/linux/ar71xx/image/Makefile ++++ b/target/linux/ar71xx/image/Makefile +@@ -508,7 +508,7 @@ endef + TARGET_DEVICES += tl-mr10u-v1 tl-mr11u-v1 tl-mr11u-v2 tl-mr12u-v1 tl-mr13u-v1 + + define Device/tl-mr3020-v1 +- $(Device/tplink-4mlzma) ++ $(Device/tplink-8mlzma) + BOARDNAME := TL-MR3020 + DEVICE_PROFILE := TLMR3020 + TPLINK_HWID := 0x30200001 diff --git a/master/always-bitbang-spi b/master/always-bitbang-spi index b64ab7d..e9b47c3 100644 --- a/master/always-bitbang-spi +++ b/master/always-bitbang-spi @@ -1,9 +1,9 @@ diff --git a/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch b/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch new file mode 100644 -index 0000000..c8d8142 +index 0000000..1030c31 --- /dev/null +++ b/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch -@@ -0,0 +1,222 @@ +@@ -0,0 +1,231 @@ +Index: linux-4.1.11/drivers/spi/spi-ath79.c +=================================================================== +--- linux-4.1.11.orig/drivers/spi/spi-ath79.c @@ -82,6 +82,15 @@ index 0000000..c8d8142 +=================================================================== +--- linux-4.1.11.orig/drivers/mtd/tplinkpart.c ++++ linux-4.1.11/drivers/mtd/tplinkpart.c ++@@ -149,7 +149,7 @@ static int tplink_parse_partitions_offse ++ parts[0].name = "u-boot"; ++ parts[0].offset = 0; ++ parts[0].size = offset; ++- parts[0].mask_flags = MTD_WRITEABLE; +++ //parts[0].mask_flags = MTD_WRITEABLE; ++ ++ parts[1].name = "kernel"; ++ parts[1].offset = offset; +@@ -162,7 +162,7 @@ static int tplink_parse_partitions_offse + parts[3].name = "art"; + parts[3].offset = art_offset; diff --git a/master/ath-use-regdomain b/master/ath-use-regdomain new file mode 100644 index 0000000..663f202 --- /dev/null +++ b/master/ath-use-regdomain @@ -0,0 +1,2383 @@ +diff --git a/package/kernel/mac80211/files/regdb.txt b/package/kernel/mac80211/files/regdb.txt +index f318326..64affa6 100644 +--- a/package/kernel/mac80211/files/regdb.txt ++++ b/package/kernel/mac80211/files/regdb.txt +@@ -1,1262 +1,1038 @@ +-# This is the world regulatory domain + country 00: +- (2402 - 2472 @ 40), (20) +- # Channel 12 - 13. +- (2457 - 2482 @ 40), (20), NO-IR +- # Channel 14. Only JP enables this and for 802.11b only +- (2474 - 2494 @ 20), (20), NO-IR, NO-OFDM +- # Channel 36 - 48 +- (5170 - 5250 @ 80), (20), AUTO-BW +- # Channel 52 - 64 +- (5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW +- # Channel 100 - 144 +- (5490 - 5730 @ 160), (20), NO-IR, DFS +- # Channel 149 - 165 +- (5735 - 5835 @ 80), (20), NO-IR +- # IEEE 802.11ad (60GHz), channels 1..3 +- (57240 - 63720 @ 2160), (0) ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) + + + country AD: +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20) +- (5250 - 5330 @ 80), (20), DFS +- (5490 - 5710 @ 80), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country AE: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country AF: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source: +-# http://pucanguilla.org/Downloads/January2005-Anguilla%20Table%20of%20Allocations.pdf +-country AI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country AL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20.00), AUTO-BW +- (5250 - 5330 @ 80), (20.00), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27.00), DFS +- +-country AM: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (18) +- (5250 - 5330 @ 20), (18), DFS +- +-country AN: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country AR: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country AS: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country AT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country AU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5710 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country AW: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country AZ: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (18), AUTO-BW +- (5250 - 5330 @ 80), (18), DFS, AUTO-BW +- +-country BA: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country BB: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country BD: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5735 - 5835 @ 80), (30) +- +-country BE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country BF: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country BG: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 5 GHz Short Range Devices, ref: +- # Etsi EN 300 440-1 +- # Etsi EN 300 440-2 +- # http://crc.bg/files/_bg/Spisak_2015.pdf +- # http://crc.bg/files/_bg/Pravila_2015_resh24.pdf +- (5725 - 5875 @ 80), (14) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country BH: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (20) +- (5250 - 5330 @ 20), (20), DFS +- (5735 - 5835 @ 20), (20) +- +-country BL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country BM: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country BN: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5735 - 5835 @ 80), (20) +- +-country BO: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5250 - 5330 @ 80), (30), DFS +- (5735 - 5835 @ 80), (30) +- +-country BR: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country BS: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://www.bicma.gov.bt/paper/publication/nrrpart4.pdf +-country BT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country BY: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country BZ: DFS-JP +- (2402 - 2482 @ 40), (30) +- (5735 - 5835 @ 80), (30) +- +-country CA: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5600 @ 80), (24), DFS +- (5650 - 5730 @ 80), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://www.art-rca.org +-country CF: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 40), (17) +- (5250 - 5330 @ 40), (24), DFS +- (5490 - 5730 @ 40), (24), DFS +- (5735 - 5835 @ 40), (30) +- +-country CH: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country CI: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country CL: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5735 - 5835 @ 80), (20) +- +-country CN: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- # 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm +- # ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf +- (57240 - 59400 @ 2160), (28) +- (59400 - 63720 @ 2160), (44) +- (63720 - 65880 @ 2160), (28) +- +-country CO: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country CR: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (17) +- (5250 - 5330 @ 20), (24), DFS +- (5490 - 5730 @ 20), (24), DFS +- (5735 - 5835 @ 20), (30) +- +-country CX: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country CY: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-# Data from http://www.ctu.eu/164/download/VOR/VOR-12-08-2005-34.pdf +-# and http://www.ctu.eu/164/download/VOR/VOR-12-05-2007-6-AN.pdf +-# Power at 5250 - 5350 MHz and 5470 - 5725 MHz can be doubled if TPC is +-# implemented. +-country CZ: DFS-ETSI +- (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW +- (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW +- (5470 - 5725 @ 160), (500 mW), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-# Data from "Frequenznutzungsplan" (as published in April 2008), downloaded from +-# http://www.bundesnetzagentur.de/cae/servlet/contentblob/38448/publicationFile/2659/Frequenznutzungsplan2008_Id17448pdf.pdf +-# For the 5GHz range also see +-# http://www.bundesnetzagentur.de/cae/servlet/contentblob/38216/publicationFile/6579/WLAN5GHzVfg7_2010_28042010pdf.pdf +-# The values have been reduced by a factor of 2 (3db) for non TPC devices +-# (in other words: devices with TPC can use twice the tx power of this table). +-# Note that the docs do not require TPC for 5150--5250; the reduction to +-# 100mW thus is not strictly required -- however the conservative 100mW +-# limit is used here as the non-interference with radar and satellite +-# apps relies on the attenuation by the building walls only in the +-# absence of DFS; the neighbour countries have 100mW limit here as well. +- +-country DE: DFS-ETSI +- # entries 279004 and 280006 +- (2400 - 2483.5 @ 40), (100 mW) +- # entry 303005 +- (5150 - 5250 @ 80), (100 mW), NO-OUTDOOR, AUTO-BW +- # entries 304002 and 305002 +- (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW +- # entries 308002, 309001 and 310003 +- (5470 - 5725 @ 160), (500 mW), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country DK: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-# Source: +-# http://www.ntrcdom.org/index.php?option=com_content&view=category&layout=blog&id=10&Itemid=55 +-country DM: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country DO: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country DZ: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170.000 - 5250.000 @ 80.000), (23.00), AUTO-BW +- (5250.000 - 5330.000 @ 80.000), (23.00), DFS, AUTO-BW +- (5490.000 - 5670.000 @ 160.000), (23.00), DFS +- +-country EC: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (17) +- (5250 - 5330 @ 20), (24), DFS +- (5490 - 5730 @ 20), (24), DFS +- (5735 - 5835 @ 20), (30) +- +-country EE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country EG: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 40), (20) +- (5250 - 5330 @ 40), (20), DFS +- +-# Orden IET/787/2013, de 25 de abril, por la que se aprueba +-# el cuadro nacional de atribución de frecuencias. +-# http://www.boe.es/diario_boe/txt.php?id=BOE-A-2013-4845 +-# +-# more info at "Cuadro nacional de atribución de frecuencias (CNAF)": +-# http://www.minetur.gob.es/telecomunicaciones/espectro/paginas/cnaf.aspx +- +-country ES: DFS-ETSI +- (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW +- (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW +- (5470 - 5725 @ 160), (500 mW), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country ET: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country FI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country FM: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country FR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country GB: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country GD: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country GE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (18), AUTO-BW +- (5250 - 5330 @ 80), (18), DFS, AUTO-BW +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country GF: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country GH: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country GL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country GP: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country GR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country GT: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country GU: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 20), (17) +- (5250 - 5330 @ 20), (24), DFS +- (5490 - 5730 @ 20), (24), DFS +- (5735 - 5835 @ 20), (30) ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country AZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BB: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BD: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country BZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CX: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country CZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country DE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country DK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country DM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country DO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country DZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country EC: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country EE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country EG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ES: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ET: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country FI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country FM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country FR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GB: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GD: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GP: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country GU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ + + country GY: +- (2402 - 2482 @ 40), (30) +- (5735 - 5835 @ 80), (30) +- +-country HK: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5710 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country HN: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country HR: DFS-ETSI +- (2400 - 2483.5 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW +- (5470 - 5725 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country HT: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country HU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country ID: DFS-JP +- # ref: http://www.postel.go.id/content/ID/regulasi/standardisasi/kepdir/bwa%205,8%20ghz.pdf +- (2402 - 2482 @ 20), (20) +- (5735 - 5815 @ 20), (23) +- +-country IE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country IL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW +- (5250 - 5350 @ 80), (200 mW), NO-OUTDOOR, DFS, AUTO-BW +- +-country IN: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5735 - 5835 @ 80), (20) +- +-country IR: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5735 - 5835 @ 80), (30) +- +-country IS: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country IT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country JM: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country JO: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23) +- (5735 - 5835 @ 80), (23) +- +-country JP: DFS-JP +- (2402 - 2482 @ 40), (20) +- (2474 - 2494 @ 20), (20), NO-OFDM +- (4910 - 4990 @ 40), (23) +- (5030 - 5090 @ 40), (23) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (23), DFS +- # 60 GHz band channels 2-4 at 10mW, +- # ref: http://www.arib.or.jp/english/html/overview/doc/1-STD-T74v1_1.pdf +- (59000 - 66000 @ 2160), (10 mW) +- +-country KE: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23) +- (5490 - 5570 @ 80), (30), DFS +- (5735 - 5775 @ 40), (23) +- +-country KH: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source +-# http://ntrc.kn/?page_id=7 +-country KN: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (30), DFS +- (5735 - 5815 @ 80), (30) +- +-country KP: DFS-JP +- (2402 - 2482 @ 20), (20) +- (5170 - 5250 @ 20), (20) +- (5250 - 5330 @ 20), (20), DFS +- (5490 - 5630 @ 20), (30), DFS +- (5735 - 5815 @ 20), (30) +- +-country KR: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (30), DFS +- (5735 - 5835 @ 80), (30) +- +-country KW: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- +-country KY: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country HK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country HN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country HR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country HT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country HU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ID: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country IT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country JM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country JO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country JP: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KP: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country KY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ + + country KZ: +- (2402 - 2482 @ 40), (20) +- +-country LB: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://www.ntrc.org.lc/operational_structures.htm +-country LC: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (30), DFS +- (5735 - 5815 @ 80), (30) +- +-country LI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country LK: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (17) +- (5250 - 5330 @ 20), (24), DFS +- (5490 - 5730 @ 20), (24), DFS +- (5735 - 5835 @ 20), (30) +- +-# Source: +-# http://lca.org.ls/images/documents/lesotho_national_frequency_allocation_plan.pdf +-country LS: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country LT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country LU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country LV: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country MA: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- +-country MC: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source: +-# http://www.cnfr.md/index.php?pag=sec&id=117&l=en +-country MD: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source: +-# http://www.cept.org/files/1050/Tools%20and%20Services/EFIS%20-%20ECO%20Frequency%20Information%20System/National%20frequency%20tables/Montenegro%20NAFT%20-%202010.pdf +-country ME: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country MF: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country MH: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country MK: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country MN: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country MO: DFS-FCC +- (2402 - 2482 @ 40), (23) +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5490 - 5730 @ 160), (30), DFS +- (5735 - 5835 @ 80), (30) +- +-country MP: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country MQ: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source: +-# http://www.are.mr/pdfs/telec_freq_TNAbf_2010.pdf +-country MR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country MT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country MU: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://www.cam.gov.mv/docs/tech_standards/TAM-TS-100-2004-WLAN.pdf +-country MV: DFS-ETSI +- (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5250 @ 80), (200 mW), AUTO-BW +- (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW +- (5725 - 5850 @ 80), (100 mW) +- +-country MW: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country MX: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country MY: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5650 @ 160), (24), DFS +- (5735 - 5835 @ 80), (24) +- +-country NG: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5250 - 5330 @ 80), (30), DFS +- (5735 - 5835 @ 80), (30) +- +-country NI: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country NL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), NO-OUTDOOR, AUTO-BW +- (5250 - 5330 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-# Data from http://www.lovdata.no/dokument/SF/forskrift/2012-01-19-77 +-# Power at 5250 - 5350 MHz, 5470 - 5725 MHz and 5815 – 5850 MHz can +-# be doubled if TPC is implemented. +-# Up to 2W (or 4W with TPC) is allowed in the 5725 – 5795 MHz band +-# which has been merged with 5470 - 5725 MHz to allow wide channels +-country NO: DFS-ETSI +- (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5250 @ 80), (200 mW), AUTO-BW +- (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW +- (5470 - 5795 @ 160), (500 mW), DFS +- (5815 - 5850 @ 35), (2000 mW), DFS +- (17100 - 17300 @ 200), (100 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country NP: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5735 - 5835 @ 80), (20) +- +-country NZ: DFS-ETSI +- (2402 - 2482 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country OM: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country PA: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country PE: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country PF: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country PG: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country PH: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country PK: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5735 - 5835 @ 80), (30) +- +-country PL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country PM: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country PR: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country PT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country PW: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country PY: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country QA: DFS-JP +- (2402 - 2482 @ 40), (20) +- (5735 - 5835 @ 80), (30) +- +-country RE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country RO: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +- +-# Source: +-# http://www.ratel.rs/upload/documents/Plan_namene/Plan_namene-sl_glasnik.pdf +-country RS: DFS-ETSI +- (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5350 @ 40), (200 mW), NO-OUTDOOR +- (5470 - 5725 @ 20), (1000 mW), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country RU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5650 - 5730 @ 80), (30), DFS +- (5735 - 5835 @ 80), (30) +- # 60 GHz band channels 1-4, ref: Changes to NLA 124_Order №129_22042015.pdf +- (57000 - 66000 @ 2160), (40) +- +-country RW: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country SA: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country SE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country SG: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country SI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country SK: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-# Source: +-# Regulation N° 2004-005 ART/DG/DRC/D.Rég +-country SN: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country SR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country SV: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 20), (17) +- (5250 - 5330 @ 20), (23), DFS +- (5735 - 5835 @ 20), (30) ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LB: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LC: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country LV: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MC: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MD: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ME: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MP: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MQ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MV: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MX: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country MY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NP: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country NZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country OM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PL: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PM: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country PY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country QA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country RE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country RO: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country RS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country RU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country RW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SK: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country SV: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ + + country SY: +- (2402 - 2482 @ 40), (20) +- +-# Source: +-# http://www.telecommission.tc/Spectrum-plan20110324-101210.html +-country TC: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country TD: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country TG: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 40), (20) +- (5250 - 5330 @ 40), (20), DFS +- (5490 - 5710 @ 40), (27), DFS +- +-country TH: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country TN: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- +-country TR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country TT: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# Table of Frequency Allocations of Republic of China (Taiwan) / Nov 2014: +-# http://www.motc.gov.tw/websitedowndoc?file=post/201411171137330.doc& \ +-# filedisplay=Table+of+radio+frequency+allocation.doc +-# LP0002 Low-power Radio-frequency Devices Technical Regulations / 28 Jun 2011: +-# http://www.ncc.gov.tw/english/show_file.aspx?table_name=news&file_sn=681 +-# (section 3.10.1, 4.7) +-country TW: DFS-FCC +- (2400 - 2483.5 @ 40), (30) +- # Follow US 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients +- (5150 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5350 @ 80), (23), DFS, AUTO-BW +- (5470 - 5725 @ 160), (23), DFS +- (5725 - 5850 @ 80), (30) +- ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TC: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TD: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TH: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TR: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country TW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ + country TZ: +- (2402 - 2482 @ 40), (20) +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# #914 / 06 Sep 2007: http://www.ucrf.gov.ua/uk/doc/nkrz/1196068874 +-# #1174 / 23 Oct 2008: http://www.nkrz.gov.ua/uk/activities/ruling/1225269361 +-# (appendix 8) +-# Listed 5GHz range is a lowest common denominator for all related +-# rules in the referenced laws. Such a range is used because of +-# disputable definitions there. +-country UA: DFS-ETSI +- (2400 - 2483.5 @ 40), (20), NO-OUTDOOR +- (5150 - 5250 @ 80), (20), NO-OUTDOOR, AUTO-BW +- (5250 - 5350 @ 80), (20), DFS, NO-OUTDOOR, AUTO-BW +- (5490 - 5670 @ 160), (20), DFS +- (5735 - 5835 @ 80), (20) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40) +- +-country UG: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country US: DFS-FCC +- (2402 - 2472 @ 40), (30) +- # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5490 - 5730 @ 160), (23), DFS +- (5735 - 5835 @ 80), (30) +- # 60g band +- # reference: http://cfr.regstoday.com/47cfr15.aspx#47_CFR_15p255 +- # channels 1,2,3, EIRP=40dBm(43dBm peak) +- (57240 - 63720 @ 2160), (40) +- +-country UY: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://cemc.uz/article/1976/ +-country UZ: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- +-# Source: +-# http://www.ntrc.vc/regulations/Jun_2006_Spectrum_Managment_Regulations.pdf +-country VC: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-# Source: +-# Official Gazette (Gaceta Oficial) concerning Unlicensed transmitter use +-# (10 June 2013) +-# http://www.conatel.gob.ve/ +-country VE: DFS-FCC +- (2402 - 2482 @ 40), (30) +- (5170 - 5250 @ 80), (23), AUTO-BW +- (5250 - 5330 @ 80), (23), DFS, AUTO-BW +- (5735 - 5835 @ 80), (30) +- +-country VI: DFS-FCC +- (2402 - 2472 @ 40), (30) +- (5170 - 5250 @ 80), (24), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country VN: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17) +- (5250 - 5330 @ 80), (24), DFS +- (5490 - 5730 @ 80), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-# Source: +-# http://www.trr.vu/attachments/category/130/GURL_for_Short-range_Radiocommunication_Devices2.pdf +-country VU: DFS-FCC +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (17), AUTO-BW +- (5250 - 5330 @ 80), (24), DFS, AUTO-BW +- (5490 - 5730 @ 160), (24), DFS +- (5735 - 5835 @ 80), (30) +- +-country WF: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country WS: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 40), (20) +- (5250 - 5330 @ 40), (20), DFS +- (5490 - 5710 @ 40), (27), DFS ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country UA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country UG: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country US: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country UY: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country UZ: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country VC: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country VE: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country VI: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country VN: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country VU: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country WF: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country WS: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ + + country YE: +- (2402 - 2482 @ 40), (20) +- +-country YT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS +- +-country ZA: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (30) +- +-country ZW: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5490 - 5710 @ 160), (27), DFS ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country YT: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ZA: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ ++ ++country ZW: ++ (2402 - 2494 @ 92), (N/A, 500) ++ (4910 - 5835 @ 100), (N/A, 500) ++ (57240 - 65880 @ 2160), (N/A, 500) ++ + +diff --git a/package/kernel/mac80211/patches/999-ath-remove-extra-regulation-restriction.patch b/package/kernel/mac80211/patches/999-ath-remove-extra-regulation-restriction.patch +new file mode 100644 +index 0000000..91fcb4c +--- /dev/null ++++ b/package/kernel/mac80211/patches/999-ath-remove-extra-regulation-restriction.patch +@@ -0,0 +1,86 @@ ++Index: compat-wireless-2014-01-23.1/drivers/net/wireless/ath/regd.c ++=================================================================== ++--- compat-wireless-2014-01-23.1.orig/drivers/net/wireless/ath/regd.c +++++ compat-wireless-2014-01-23.1/drivers/net/wireless/ath/regd.c ++@@ -62,56 +62,81 @@ static int __ath_regd_init(struct ath_re ++ #define ATH9K_5GHZ_NO_MIDBAND ATH9K_5GHZ_5150_5350, \ ++ ATH9K_5GHZ_5725_5850 ++ +++#define ATH9K_2GHZ_GENERIC REG_RULE(2412-10, 2484+10, 92, 0, 100, 0) +++#define ATH9K_5GHZ_GENERIC REG_RULE(5150-10, 5850+10, 100, 0, 100, 0) +++ ++ #define REGD_RULES(...) \ ++ .reg_rules = { __VA_ARGS__ }, \ ++ .n_reg_rules = ARRAY_SIZE(((struct ieee80211_reg_rule[]) { __VA_ARGS__ })) ++ +++#define GENERIC_RULES REGD_RULES(ATH9K_2GHZ_GENERIC, ATH9K_5GHZ_GENERIC) +++ ++ /* Can be used for: ++ * 0x60, 0x61, 0x62 */ ++ static const struct ieee80211_regdomain ath_world_regdom_60_61_62 = { ++ .alpha2 = "99", +++#if 0 ++ REGD_RULES( ++ ATH9K_2GHZ_ALL, ++ ATH9K_5GHZ_ALL, ++ ) +++#else +++ GENERIC_RULES +++#endif ++ }; ++ ++ /* Can be used by 0x63 and 0x65 */ ++ static const struct ieee80211_regdomain ath_world_regdom_63_65 = { ++ .alpha2 = "99", +++#if 0 ++ REGD_RULES( ++ ATH9K_2GHZ_CH01_11, ++ ATH9K_2GHZ_CH12_13, ++ ATH9K_5GHZ_NO_MIDBAND, ++ ) +++#else +++ GENERIC_RULES +++#endif ++ }; ++ ++ /* Can be used by 0x64 only */ ++ static const struct ieee80211_regdomain ath_world_regdom_64 = { ++ .alpha2 = "99", +++#if 0 ++ REGD_RULES( ++ ATH9K_2GHZ_CH01_11, ++ ATH9K_5GHZ_NO_MIDBAND, ++ ) +++#else +++ GENERIC_RULES +++#endif ++ }; ++ ++ /* Can be used by 0x66 and 0x69 */ ++ static const struct ieee80211_regdomain ath_world_regdom_66_69 = { ++ .alpha2 = "99", +++#if 0 ++ REGD_RULES( ++ ATH9K_2GHZ_CH01_11, ++ ATH9K_5GHZ_ALL, ++ ) +++#else +++ GENERIC_RULES +++#endif ++ }; ++ ++ /* Can be used by 0x67, 0x68, 0x6A and 0x6C */ ++ static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = { ++ .alpha2 = "99", +++#if 0 ++ REGD_RULES( ++ ATH9K_2GHZ_CH01_11, ++ ATH9K_2GHZ_CH12_13, ++ ATH9K_5GHZ_ALL, ++ ) +++#else +++ GENERIC_RULES +++#endif ++ }; ++ ++ static bool dynamic_country_user_possible(struct ath_regulatory *reg) diff --git a/master/big-roms b/master/big-roms new file mode 100644 index 0000000..a8b32eb --- /dev/null +++ b/master/big-roms @@ -0,0 +1,46 @@ +diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile +index 7522926..d41da0d 100644 +--- a/target/linux/ar71xx/image/Makefile ++++ b/target/linux/ar71xx/image/Makefile +@@ -925,7 +925,9 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR104 + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma)) + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma)) + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma)) +-$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma)) ++$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040_4M,tl-mr3040-v1-4M,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma)) ++$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040_8M,tl-mr3040-v1-8M,TL-MR3040,ttyATH0,115200,0x30400001,1,8Mlzma)) ++$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040_16M,tl-mr3040-v1-16M,TL-MR3040,ttyATH0,115200,0x30400001,1,16Mlzma)) + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3220V2,tl-mr3220-v2,TL-MR3220-v2,ttyATH0,115200,0x32200002,1,4Mlzma)) + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma)) + $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma)) +@@ -975,6 +977,7 @@ $(eval $(call SingleProfile,Zcomax,$(fs_64k),ZCN1523H516,zcn-1523h-5-16,ZCN-1523 + $(eval $(call SingleProfile,ZyXEL,$(fs_64k),NBG_460N_550N_550NH,nbg460n_550n_550nh,NBG460N,ttyS0,115200,NBG-460N)) + + $(eval $(call MultiProfile,AP121,AP121_2M AP121_4M)) ++$(eval $(call MultiProfile,TLMR3040,TLMR3040_4M TLMR3040_8M TLMR3040_16M)) + $(eval $(call MultiProfile,AP136,AP136_010 AP136_020)) + $(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT)) + $(eval $(call MultiProfile,OPENMESH,OM2P MR600)) +diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c +index 176269b..e148769 100644 +--- a/tools/firmware-utils/src/mktplinkfw.c ++++ b/tools/firmware-utils/src/mktplinkfw.c +@@ -186,6 +186,18 @@ static struct flash_layout layouts[] = { + .kernel_ep = 0xc0000000, + .rootfs_ofs = 0x2a0000, + }, { ++ .id = "16M", ++ .fw_max_len = 0xfc0000, ++ .kernel_la = 0x80060000, ++ .kernel_ep = 0x80060000, ++ .rootfs_ofs = 0x140000, ++ }, { ++ .id = "16Mlzma", ++ .fw_max_len = 0xfc0000, ++ .kernel_la = 0x80060000, ++ .kernel_ep = 0x80060000, ++ .rootfs_ofs = 0x100000, ++ }, { + /* terminating entry */ + } + }; diff --git a/master/config b/master/config index 8e1206f..ae96fe1 100644 --- a/master/config +++ b/master/config @@ -1,6 +1,6 @@ diff --git a/.config b/.config new file mode 100644 -index 0000000..cc43ddb +index 0000000..bba31bd --- /dev/null +++ b/.config @@ -0,0 +1,4043 @@ @@ -168,7 +168,7 @@ index 0000000..cc43ddb +# CONFIG_TARGET_ar71xx_generic_TLMR3020 is not set +# CONFIG_TARGET_ar71xx_generic_TLMR3040 is not set +# CONFIG_TARGET_ar71xx_generic_TLMR3220 is not set -+CONFIG_TARGET_ar71xx_generic_TLMR3420=y ++# CONFIG_TARGET_ar71xx_generic_TLMR3420 is not set +# CONFIG_TARGET_ar71xx_generic_TLWR703 is not set +# CONFIG_TARGET_ar71xx_generic_TLWR710 is not set +# CONFIG_TARGET_ar71xx_generic_TLWR720 is not set @@ -182,7 +182,7 @@ index 0000000..cc43ddb +# CONFIG_TARGET_ar71xx_generic_TLWA850 is not set +# CONFIG_TARGET_ar71xx_generic_TLWA860 is not set +# CONFIG_TARGET_ar71xx_generic_TLWA901 is not set -+# CONFIG_TARGET_ar71xx_generic_TLWDR4300 is not set ++CONFIG_TARGET_ar71xx_generic_TLWDR4300=y +# CONFIG_TARGET_ar71xx_generic_TLWDR3320V2 is not set +# CONFIG_TARGET_ar71xx_generic_TLWDR4900V2 is not set +# CONFIG_TARGET_ar71xx_generic_TLWDR6500V2 is not set diff --git a/master/endstop b/master/endstop index e69de29..46817c5 100644 --- a/master/endstop +++ b/master/endstop @@ -0,0 +1,13 @@ +diff --git a/.config b/.config +index 089b228..ab3f8b3 100644 +--- a/.config ++++ b/.config +@@ -423,7 +423,7 @@ CONFIG_VERSIONOPT=y + CONFIG_VERSION_DIST="OpenWrt" + CONFIG_VERSION_NICK="" + CONFIG_VERSION_NUMBER="" +-CONFIG_VERSION_REPO="http://openwrt.panaceas.org/repos/tpl-mr3420/%v/%T/packages" ++CONFIG_VERSION_REPO="http://openwrt.panaceas.org/repos/tpl-wdr3600/%v/%T/packages" + CONFIG_VERSION_MANUFACTURER="" + CONFIG_VERSION_MANUFACTURER_URL="" + CONFIG_VERSION_PRODUCT="" diff --git a/master/fix-mjpg-streamer-stack-smashing b/master/fix-mjpg-streamer-stack-smashing new file mode 100644 index 0000000..9d70159 --- /dev/null +++ b/master/fix-mjpg-streamer-stack-smashing @@ -0,0 +1,19 @@ +diff --git a/feeds/packages/multimedia/mjpg-streamer/patches/998-fix-stack-smashing.patch b/feeds/packages/multimedia/mjpg-streamer/patches/998-fix-stack-smashing.patch +new file mode 100644 +index 0000000..a1a2239 +--- /dev/null ++++ b/feeds/packages/multimedia/mjpg-streamer/patches/998-fix-stack-smashing.patch +@@ -0,0 +1,13 @@ ++Index: mjpg-streamer-r182/plugins/input_uvc/v4l2uvc.c ++=================================================================== ++--- a/plugins/input_uvc/v4l2uvc.c +++++ b/plugins/input_uvc/v4l2uvc.c ++@@ -130,7 +130,7 @@ int init_videoIn(struct vdIn *vd, char * ++ return -1; ++ } ++ ++- memcpy(&pglobal->in[id].in_formats[pglobal->in[id].formatCount], &fmtdesc, sizeof(input_format)); +++ memcpy(&pglobal->in[id].in_formats[pglobal->in[id].formatCount], &fmtdesc, sizeof(struct v4l2_fmtdesc)); ++ ++ if(fmtdesc.pixelformat == format) ++ pglobal->in[id].currentFormat = pglobal->in[id].formatCount; diff --git a/master/more-rom b/master/more-rom new file mode 100644 index 0000000..9975798 --- /dev/null +++ b/master/more-rom @@ -0,0 +1,1330 @@ +diff --git a/.config b/.config +index bba31bd..089b228 100644 +--- a/.config ++++ b/.config +@@ -437,7 +437,7 @@ CONFIG_OPKGSMIME_PASSPHRASE=y + # Base system + # + CONFIG_PACKAGE_base-files=y +-# CONFIG_PACKAGE_block-mount is not set ++CONFIG_PACKAGE_block-mount=m + # CONFIG_PACKAGE_bridge is not set + CONFIG_PACKAGE_busybox=y + # CONFIG_BUSYBOX_CUSTOM is not set +@@ -1464,7 +1464,7 @@ CONFIG_PACKAGE_usign=y + # CONFIG_PACKAGE_kmod-md-mod is not set + # CONFIG_PACKAGE_kmod-nbd is not set + # CONFIG_PACKAGE_kmod-scsi-cdrom is not set +-# CONFIG_PACKAGE_kmod-scsi-core is not set ++CONFIG_PACKAGE_kmod-scsi-core=m + # CONFIG_PACKAGE_kmod-scsi-generic is not set + + # +@@ -1542,7 +1542,7 @@ CONFIG_PACKAGE_usign=y + # CONFIG_PACKAGE_kmod-fs-ntfs is not set + # CONFIG_PACKAGE_kmod-fs-reiserfs is not set + # CONFIG_PACKAGE_kmod-fs-udf is not set +-# CONFIG_PACKAGE_kmod-fs-vfat is not set ++CONFIG_PACKAGE_kmod-fs-vfat=m + # CONFIG_PACKAGE_kmod-fs-xfs is not set + # CONFIG_PACKAGE_kmod-fuse is not set + +@@ -1607,7 +1607,7 @@ CONFIG_PACKAGE_kmod-lib-crc-ccitt=y + # CONFIG_PACKAGE_kmod-lib-crc8 is not set + # CONFIG_PACKAGE_kmod-lib-lz4 is not set + # CONFIG_PACKAGE_kmod-lib-lzo is not set +-# CONFIG_PACKAGE_kmod-lib-textsearch is not set ++CONFIG_PACKAGE_kmod-lib-textsearch=m + # CONFIG_PACKAGE_kmod-lib-zlib is not set + + # +@@ -1616,7 +1616,7 @@ CONFIG_PACKAGE_kmod-lib-crc-ccitt=y + CONFIG_PACKAGE_kmod-nls-base=y + # CONFIG_PACKAGE_kmod-nls-cp1250 is not set + # CONFIG_PACKAGE_kmod-nls-cp1251 is not set +-# CONFIG_PACKAGE_kmod-nls-cp437 is not set ++CONFIG_PACKAGE_kmod-nls-cp437=m + # CONFIG_PACKAGE_kmod-nls-cp775 is not set + # CONFIG_PACKAGE_kmod-nls-cp850 is not set + # CONFIG_PACKAGE_kmod-nls-cp852 is not set +@@ -1624,7 +1624,7 @@ CONFIG_PACKAGE_kmod-nls-base=y + # CONFIG_PACKAGE_kmod-nls-cp864 is not set + # CONFIG_PACKAGE_kmod-nls-cp866 is not set + # CONFIG_PACKAGE_kmod-nls-cp932 is not set +-# CONFIG_PACKAGE_kmod-nls-iso8859-1 is not set ++CONFIG_PACKAGE_kmod-nls-iso8859-1=m + # CONFIG_PACKAGE_kmod-nls-iso8859-13 is not set + # CONFIG_PACKAGE_kmod-nls-iso8859-15 is not set + # CONFIG_PACKAGE_kmod-nls-iso8859-2 is not set +@@ -1647,7 +1647,7 @@ CONFIG_PACKAGE_kmod-ip6tables=y + # CONFIG_PACKAGE_kmod-ipt-compat-xtables is not set + # CONFIG_PACKAGE_kmod-ipt-condition is not set + CONFIG_PACKAGE_kmod-ipt-conntrack=y +-# CONFIG_PACKAGE_kmod-ipt-conntrack-extra is not set ++CONFIG_PACKAGE_kmod-ipt-conntrack-extra=m + CONFIG_PACKAGE_kmod-ipt-core=y + # CONFIG_PACKAGE_kmod-ipt-debug is not set + # CONFIG_PACKAGE_kmod-ipt-delude is not set +@@ -1686,15 +1686,15 @@ CONFIG_PACKAGE_kmod-ipt-nat=y + # CONFIG_PACKAGE_kmod-ipt-u32 is not set + # CONFIG_PACKAGE_kmod-ipt-ulog is not set + CONFIG_PACKAGE_kmod-nf-conntrack=y +-# CONFIG_PACKAGE_kmod-nf-conntrack-netlink is not set ++CONFIG_PACKAGE_kmod-nf-conntrack-netlink=m + CONFIG_PACKAGE_kmod-nf-conntrack6=y + CONFIG_PACKAGE_kmod-nf-ipt=y + CONFIG_PACKAGE_kmod-nf-ipt6=y + CONFIG_PACKAGE_kmod-nf-nat=y + # CONFIG_PACKAGE_kmod-nf-nat6 is not set +-# CONFIG_PACKAGE_kmod-nf-nathelper is not set +-# CONFIG_PACKAGE_kmod-nf-nathelper-extra is not set +-# CONFIG_PACKAGE_kmod-nfnetlink is not set ++CONFIG_PACKAGE_kmod-nf-nathelper=m ++CONFIG_PACKAGE_kmod-nf-nathelper-extra=m ++CONFIG_PACKAGE_kmod-nfnetlink=m + # CONFIG_PACKAGE_kmod-nfnetlink-log is not set + # CONFIG_PACKAGE_kmod-nfnetlink-queue is not set + # CONFIG_PACKAGE_kmod-nft-core is not set +@@ -1878,7 +1878,7 @@ CONFIG_PACKAGE_kmod-usb-core=y + # CONFIG_PACKAGE_kmod-usb-ohci-pci is not set + # CONFIG_PACKAGE_kmod-usb-printer is not set + # CONFIG_PACKAGE_kmod-usb-serial is not set +-# CONFIG_PACKAGE_kmod-usb-storage is not set ++CONFIG_PACKAGE_kmod-usb-storage=m + # CONFIG_PACKAGE_kmod-usb-storage-extras is not set + # CONFIG_PACKAGE_kmod-usb-uhci is not set + # CONFIG_PACKAGE_kmod-usb-wdm is not set +@@ -2631,7 +2631,7 @@ CONFIG_PACKAGE_liblzo=m + # CONFIG_PACKAGE_libmicroxml is not set + # CONFIG_PACKAGE_libminiupnpc is not set + # CONFIG_PACKAGE_libmms is not set +-# CONFIG_PACKAGE_libmnl is not set ++CONFIG_PACKAGE_libmnl=m + # CONFIG_PACKAGE_libmodbus is not set + # CONFIG_PACKAGE_libmosquitto is not set + # CONFIG_PACKAGE_libmosquitto-nossl is not set +@@ -2649,15 +2649,15 @@ CONFIG_PACKAGE_libncurses=m + # CONFIG_PACKAGE_libnet-1.2.x is not set + # CONFIG_PACKAGE_libnetconf is not set + # CONFIG_PACKAGE_libnetfilter-acct is not set +-# CONFIG_PACKAGE_libnetfilter-conntrack is not set +-# CONFIG_PACKAGE_libnetfilter-cthelper is not set +-# CONFIG_PACKAGE_libnetfilter-cttimeout is not set ++CONFIG_PACKAGE_libnetfilter-conntrack=m ++CONFIG_PACKAGE_libnetfilter-cthelper=m ++CONFIG_PACKAGE_libnetfilter-cttimeout=m + # CONFIG_PACKAGE_libnetfilter-log is not set +-# CONFIG_PACKAGE_libnetfilter-queue is not set ++CONFIG_PACKAGE_libnetfilter-queue=m + # CONFIG_PACKAGE_libnetsnmp is not set + # CONFIG_PACKAGE_libnettle is not set + # CONFIG_PACKAGE_libnfc is not set +-# CONFIG_PACKAGE_libnfnetlink is not set ++CONFIG_PACKAGE_libnfnetlink=m + # CONFIG_PACKAGE_libnftnl is not set + # CONFIG_PACKAGE_libnl is not set + # CONFIG_PACKAGE_libnl-core is not set +@@ -2695,7 +2695,7 @@ CONFIG_PACKAGE_libpopt=m + # CONFIG_PACKAGE_libprotobuf-c is not set + # CONFIG_PACKAGE_libqrencode is not set + # CONFIG_PACKAGE_libradcli is not set +-# CONFIG_PACKAGE_libreadline is not set ++CONFIG_PACKAGE_libreadline=m + # CONFIG_PACKAGE_libroxml is not set + # CONFIG_PACKAGE_librpc is not set + # CONFIG_PACKAGE_librrd1 is not set +@@ -2809,23 +2809,23 @@ CONFIG_PACKAGE_zlib=y + # CONFIG_LUCI_LANG_pt is not set + # CONFIG_LUCI_LANG_no is not set + # CONFIG_LUCI_LANG_en is not set +-# CONFIG_LUCI_LANG_el is not set ++# CONFIG_LUCI_LANG_pl is not set + # CONFIG_LUCI_LANG_sk is not set +-# CONFIG_LUCI_LANG_ja is not set ++# CONFIG_LUCI_LANG_ru is not set + # CONFIG_LUCI_LANG_vi is not set +-# CONFIG_LUCI_LANG_de is not set ++# CONFIG_LUCI_LANG_he is not set + # CONFIG_LUCI_LANG_ro is not set +-# CONFIG_LUCI_LANG_pt-br is not set + # CONFIG_LUCI_LANG_ms is not set +-# CONFIG_LUCI_LANG_pl is not set + # CONFIG_LUCI_LANG_zh-cn is not set +-# CONFIG_LUCI_LANG_he is not set ++# CONFIG_LUCI_LANG_de is not set + # CONFIG_LUCI_LANG_zh-tw is not set + # CONFIG_LUCI_LANG_tr is not set + # CONFIG_LUCI_LANG_sv is not set +-# CONFIG_LUCI_LANG_ru is not set ++# CONFIG_LUCI_LANG_ja is not set ++# CONFIG_LUCI_LANG_el is not set + # CONFIG_LUCI_LANG_ca is not set + # CONFIG_LUCI_LANG_es is not set ++# CONFIG_LUCI_LANG_pt-br is not set + # CONFIG_LUCI_LANG_cs is not set + # CONFIG_LUCI_LANG_fr is not set + # CONFIG_LUCI_LANG_it is not set +@@ -3051,7 +3051,7 @@ CONFIG_RSYNC_zlib=y + # Firewall + # + # CONFIG_PACKAGE_arptables is not set +-# CONFIG_PACKAGE_conntrack-tools is not set ++CONFIG_PACKAGE_conntrack-tools=m + # CONFIG_PACKAGE_ebtables is not set + # CONFIG_PACKAGE_fwknop is not set + # CONFIG_PACKAGE_fwknopd is not set +@@ -3064,7 +3064,7 @@ CONFIG_PACKAGE_iptables=y + # CONFIG_PACKAGE_iptables-mod-cluster is not set + # CONFIG_PACKAGE_iptables-mod-clusterip is not set + # CONFIG_PACKAGE_iptables-mod-condition is not set +-# CONFIG_PACKAGE_iptables-mod-conntrack-extra is not set ++CONFIG_PACKAGE_iptables-mod-conntrack-extra=m + # CONFIG_PACKAGE_iptables-mod-delude is not set + # CONFIG_PACKAGE_iptables-mod-dhcpmac is not set + # CONFIG_PACKAGE_iptables-mod-dnetmap is not set +@@ -3260,7 +3260,19 @@ CONFIG_PACKAGE_iptables=y + # CONFIG_PACKAGE_mcproxy is not set + # CONFIG_PACKAGE_mwan3 is not set + # CONFIG_PACKAGE_olsrd is not set +-# CONFIG_PACKAGE_quagga is not set ++CONFIG_PACKAGE_quagga=m ++# CONFIG_PACKAGE_quagga-babeld is not set ++CONFIG_PACKAGE_quagga-bgpd=m ++# CONFIG_PACKAGE_quagga-isisd is not set ++# CONFIG_PACKAGE_quagga-libospf is not set ++CONFIG_PACKAGE_quagga-libzebra=m ++# CONFIG_PACKAGE_quagga-ospf6d is not set ++# CONFIG_PACKAGE_quagga-ospfd is not set ++# CONFIG_PACKAGE_quagga-ripd is not set ++# CONFIG_PACKAGE_quagga-ripngd is not set ++CONFIG_PACKAGE_quagga-vtysh=m ++CONFIG_PACKAGE_quagga-watchquagga=m ++CONFIG_PACKAGE_quagga-zebra=m + # CONFIG_PACKAGE_relayd is not set + # CONFIG_PACKAGE_smcroute is not set + # CONFIG_PACKAGE_ss is not set +@@ -3640,7 +3652,8 @@ CONFIG_PACKAGE_ppp-mod-pppoe=y + # CONFIG_PACKAGE_remserial is not set + # CONFIG_PACKAGE_rssileds is not set + # CONFIG_PACKAGE_samba36-client is not set +-# CONFIG_PACKAGE_samba36-server is not set ++CONFIG_PACKAGE_samba36-server=m ++CONFIG_PACKAGE_SAMBA_MAX_DEBUG_LEVEL=-1 + # CONFIG_PACKAGE_scapy is not set + # CONFIG_PACKAGE_sctp is not set + # CONFIG_PACKAGE_sctp-tools is not set +diff --git a/bits/dev-ap9x-pci.c b/bits/dev-ap9x-pci.c +new file mode 100644 +index 0000000..19ba3da +--- /dev/null ++++ b/bits/dev-ap9x-pci.c +@@ -0,0 +1,174 @@ ++/* ++ * Atheros AP9X reference board PCI initialization ++ * ++ * Copyright (C) 2009-2012 Gabor Juhos ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include "dev-ap9x-pci.h" ++#include "pci-ath9k-fixup.h" ++#include "pci.h" ++ ++static struct ath9k_platform_data ap9x_wmac0_data = { ++ .led_pin = -1, ++}; ++static struct ath9k_platform_data ap9x_wmac1_data = { ++ .led_pin = -1, ++}; ++static char ap9x_wmac0_mac[6]; ++static char ap9x_wmac1_mac[6]; ++ ++__init void ap9x_pci_setup_wmac_led_pin(unsigned wmac, int pin) ++{ ++ switch (wmac) { ++ case 0: ++ ap9x_wmac0_data.led_pin = pin; ++ break; ++ case 1: ++ ap9x_wmac1_data.led_pin = pin; ++ break; ++ } ++} ++ ++__init struct ath9k_platform_data *ap9x_pci_get_wmac_data(unsigned wmac) ++{ ++ switch (wmac) { ++ case 0: ++ return &ap9x_wmac0_data; ++ ++ case 1: ++ return &ap9x_wmac1_data; ++ } ++ ++ return NULL; ++} ++ ++__init void ap9x_pci_setup_wmac_gpio(unsigned wmac, u32 mask, u32 val) ++{ ++ switch (wmac) { ++ case 0: ++ ap9x_wmac0_data.gpio_mask = mask; ++ ap9x_wmac0_data.gpio_val = val; ++ break; ++ case 1: ++ ap9x_wmac1_data.gpio_mask = mask; ++ ap9x_wmac1_data.gpio_val = val; ++ break; ++ } ++} ++ ++__init void ap9x_pci_setup_wmac_leds(unsigned wmac, struct gpio_led *leds, ++ int num_leds) ++{ ++ switch (wmac) { ++ case 0: ++ ap9x_wmac0_data.leds = leds; ++ ap9x_wmac0_data.num_leds = num_leds; ++ break; ++ case 1: ++ ap9x_wmac1_data.leds = leds; ++ ap9x_wmac1_data.num_leds = num_leds; ++ break; ++ } ++} ++ ++static int ap91_pci_plat_dev_init(struct pci_dev *dev) ++{ ++ switch (PCI_SLOT(dev->devfn)) { ++ case 0: ++ dev->dev.platform_data = &ap9x_wmac0_data; ++ break; ++ } ++ ++ return 0; ++} ++ ++__init void ap91_pci_init(u8 *cal_data, u8 *mac_addr) ++{ ++ if (cal_data) ++ memcpy(ap9x_wmac0_data.eeprom_data, cal_data, ++ sizeof(ap9x_wmac0_data.eeprom_data)); ++ ++ if (mac_addr) { ++ memcpy(ap9x_wmac0_mac, mac_addr, sizeof(ap9x_wmac0_mac)); ++ ap9x_wmac0_data.macaddr = ap9x_wmac0_mac; ++ } ++ ++ pci_enable_ath9k_fixup(0, ap9x_wmac0_data.eeprom_data); ++ ++ ath79_pci_set_plat_dev_init(ap91_pci_plat_dev_init); ++ ath79_register_pci(); ++} ++ ++__init void ap91_pci_init_late(u8 *cal_data, u8 *mac_addr) ++{ ++ if (cal_data) ++ memcpy(ap9x_wmac0_data.eeprom_data, cal_data, ++ sizeof(ap9x_wmac0_data.eeprom_data)); ++ ++ if (mac_addr) { ++ memcpy(ap9x_wmac0_mac, mac_addr, sizeof(ap9x_wmac0_mac)); ++ ap9x_wmac0_data.macaddr = ap9x_wmac0_mac; ++ } ++ ++ pci_late_ath9k_fixup(); ++} ++ ++ ++__init void ap91_pci_init_simple(void) ++{ ++ ap91_pci_init(NULL, NULL); ++ ap9x_wmac0_data.eeprom_name = "pci_wmac0.eeprom"; ++} ++ ++static int ap94_pci_plat_dev_init(struct pci_dev *dev) ++{ ++ switch (PCI_SLOT(dev->devfn)) { ++ case 17: ++ dev->dev.platform_data = &ap9x_wmac0_data; ++ break; ++ ++ case 18: ++ dev->dev.platform_data = &ap9x_wmac1_data; ++ break; ++ } ++ ++ return 0; ++} ++ ++__init void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, ++ u8 *cal_data1, u8 *mac_addr1) ++{ ++ if (cal_data0) ++ memcpy(ap9x_wmac0_data.eeprom_data, cal_data0, ++ sizeof(ap9x_wmac0_data.eeprom_data)); ++ ++ if (cal_data1) ++ memcpy(ap9x_wmac1_data.eeprom_data, cal_data1, ++ sizeof(ap9x_wmac1_data.eeprom_data)); ++ ++ if (mac_addr0) { ++ memcpy(ap9x_wmac0_mac, mac_addr0, sizeof(ap9x_wmac0_mac)); ++ ap9x_wmac0_data.macaddr = ap9x_wmac0_mac; ++ } ++ ++ if (mac_addr1) { ++ memcpy(ap9x_wmac1_mac, mac_addr1, sizeof(ap9x_wmac1_mac)); ++ ap9x_wmac1_data.macaddr = ap9x_wmac1_mac; ++ } ++ ++ ath79_pci_set_plat_dev_init(ap94_pci_plat_dev_init); ++ ath79_register_pci(); ++ ++ pci_enable_ath9k_fixup(17, ap9x_wmac0_data.eeprom_data); ++ pci_enable_ath9k_fixup(18, ap9x_wmac1_data.eeprom_data); ++} +diff --git a/bits/dev-ap9x-pci.h b/bits/dev-ap9x-pci.h +new file mode 100644 +index 0000000..ea0a5ac +--- /dev/null ++++ b/bits/dev-ap9x-pci.h +@@ -0,0 +1,49 @@ ++/* ++ * Atheros AP9X reference board PCI initialization ++ * ++ * Copyright (C) 2009-2012 Gabor Juhos ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#ifndef _ATH79_DEV_AP9X_PCI_H ++#define _ATH79_DEV_AP9X_PCI_H ++ ++struct gpio_led; ++struct ath9k_platform_data; ++ ++#if defined(CONFIG_ATH79_DEV_AP9X_PCI) ++void ap9x_pci_setup_wmac_led_pin(unsigned wmac, int pin); ++void ap9x_pci_setup_wmac_gpio(unsigned wmac, u32 mask, u32 val); ++void ap9x_pci_setup_wmac_leds(unsigned wmac, struct gpio_led *leds, ++ int num_leds); ++struct ath9k_platform_data *ap9x_pci_get_wmac_data(unsigned wmac); ++ ++void ap91_pci_init(u8 *cal_data, u8 *mac_addr); ++void ap91_pci_init_late(u8 *cal_data, u8 *mac_addr); ++void ap91_pci_init_simple(void); ++void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, ++ u8 *cal_data1, u8 *mac_addr1); ++ ++#else ++static inline void ap9x_pci_setup_wmac_led_pin(unsigned wmac, int pin) {} ++static inline void ap9x_pci_setup_wmac_gpio(unsigned wmac, ++ u32 mask, u32 val) {} ++static inline void ap9x_pci_setup_wmac_leds(unsigned wmac, ++ struct gpio_led *leds, ++ int num_leds) {} ++static inline struct ath9k_platform_data *ap9x_pci_get_wmac_data(unsigned wmac) ++{ ++ return NULL; ++} ++ ++static inline void ap91_pci_init(u8 *cal_data, u8 *mac_addr) {} ++static inline void ap91_pci_init_simple(void) {} ++static inline void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, ++ u8 *cal_data1, u8 *mac_addr1) {} ++#endif ++ ++#endif /* _ATH79_DEV_AP9X_PCI_H */ ++ +diff --git a/bits/mach-tl-wdr4300.c b/bits/mach-tl-wdr4300.c +new file mode 100644 +index 0000000..426b1fa +--- /dev/null ++++ b/bits/mach-tl-wdr4300.c +@@ -0,0 +1,260 @@ ++/* ++ * TP-LINK TL-WDR4300 board support ++ * ++ * Copyright (C) 2012 Gabor Juhos ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++ ++#include "common.h" ++#include "dev-ap9x-pci.h" ++#include "dev-eth.h" ++#include "dev-gpio-buttons.h" ++#include "dev-leds-gpio.h" ++#include "dev-m25p80.h" ++#include "dev-spi.h" ++#include "dev-usb.h" ++#include "dev-wmac.h" ++#include "machtypes.h" ++ ++#define WDR4300_GPIO_LED_USB1 11 ++#define WDR4300_GPIO_LED_USB2 12 ++#define WDR4300_GPIO_LED_WLAN2G 13 ++#define WDR4300_GPIO_LED_SYSTEM 14 ++#define WDR4300_GPIO_LED_QSS 15 ++ ++#define WDR4300_GPIO_BTN_WPS 16 ++#define WDR4300_GPIO_BTN_RFKILL 17 ++ ++#define WDR4300_GPIO_EXTERNAL_LNA0 18 ++#define WDR4300_GPIO_EXTERNAL_LNA1 19 ++ ++#define WDR4300_GPIO_USB1_POWER 22 ++#define WDR4300_GPIO_USB2_POWER 21 ++ ++#define WDR4300_KEYS_POLL_INTERVAL 20 /* msecs */ ++#define WDR4300_KEYS_DEBOUNCE_INTERVAL (3 * WDR4300_KEYS_POLL_INTERVAL) ++ ++#define WDR4300_MAC0_OFFSET 0 ++#define WDR4300_MAC1_OFFSET 6 ++#define WDR4300_WMAC_CALDATA_OFFSET 0x1000 ++#define WDR4300_PCIE_CALDATA_OFFSET 0x5000 ++ ++#define MAC_LEN 6 ++ ++#define CONFIG_OFFSET 0x1fc00 ++#define ART_OFFSET 0x1000 ++ ++static const char *wdr4300_part_probes[] = { ++ "tp-link", ++ NULL, ++}; ++ ++static struct flash_platform_data wdr4300_flash_data = { ++ .part_probes = wdr4300_part_probes, ++}; ++ ++static struct gpio_led wdr4300_leds_gpio[] __initdata = { ++ { ++ .name = "tp-link:blue:qss", ++ .gpio = WDR4300_GPIO_LED_QSS, ++ .active_low = 1, ++ }, ++ { ++ .name = "tp-link:blue:system", ++ .gpio = WDR4300_GPIO_LED_SYSTEM, ++ .active_low = 1, ++ }, ++ { ++ .name = "tp-link:green:usb1", ++ .gpio = WDR4300_GPIO_LED_USB1, ++ .active_low = 1, ++ }, ++ { ++ .name = "tp-link:green:usb2", ++ .gpio = WDR4300_GPIO_LED_USB2, ++ .active_low = 1, ++ }, ++ { ++ .name = "tp-link:blue:wlan2g", ++ .gpio = WDR4300_GPIO_LED_WLAN2G, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_button wdr4300_gpio_keys[] __initdata = { ++ { ++ .desc = "QSS button", ++ .type = EV_KEY, ++ .code = KEY_WPS_BUTTON, ++ .debounce_interval = WDR4300_KEYS_DEBOUNCE_INTERVAL, ++ .gpio = WDR4300_GPIO_BTN_WPS, ++ .active_low = 1, ++ }, ++ { ++ .desc = "RFKILL switch", ++ .type = EV_SW, ++ .code = KEY_RFKILL, ++ .debounce_interval = WDR4300_KEYS_DEBOUNCE_INTERVAL, ++ .gpio = WDR4300_GPIO_BTN_RFKILL, ++ .active_low = 1, ++ }, ++}; ++ ++static const struct ar8327_led_info wdr4300_leds_ar8327[] __initconst = { ++ AR8327_LED_INFO(PHY0_0, HW, "tp-link:blue:wan"), ++ AR8327_LED_INFO(PHY1_0, HW, "tp-link:blue:lan1"), ++ AR8327_LED_INFO(PHY2_0, HW, "tp-link:blue:lan2"), ++ AR8327_LED_INFO(PHY3_0, HW, "tp-link:blue:lan3"), ++ AR8327_LED_INFO(PHY4_0, HW, "tp-link:blue:lan4"), ++}; ++ ++static struct ar8327_pad_cfg wdr4300_ar8327_pad0_cfg = { ++ .mode = AR8327_PAD_MAC_RGMII, ++ .txclk_delay_en = true, ++ .rxclk_delay_en = true, ++ .txclk_delay_sel = AR8327_CLK_DELAY_SEL1, ++ .rxclk_delay_sel = AR8327_CLK_DELAY_SEL2, ++}; ++ ++static struct ar8327_led_cfg wdr4300_ar8327_led_cfg = { ++ .led_ctrl0 = 0xc737c737, ++ .led_ctrl1 = 0x00000000, ++ .led_ctrl2 = 0x00000000, ++ .led_ctrl3 = 0x0030c300, ++ .open_drain = false, ++}; ++ ++static struct ar8327_platform_data wdr4300_ar8327_data = { ++ .pad0_cfg = &wdr4300_ar8327_pad0_cfg, ++ .port0_cfg = { ++ .force_link = 1, ++ .speed = AR8327_PORT_SPEED_1000, ++ .duplex = 1, ++ .txpause = 1, ++ .rxpause = 1, ++ }, ++ .led_cfg = &wdr4300_ar8327_led_cfg, ++ .num_leds = ARRAY_SIZE(wdr4300_leds_ar8327), ++ .leds = wdr4300_leds_ar8327, ++}; ++ ++static struct mdio_board_info wdr4300_mdio0_info[] = { ++ { ++ .bus_id = "ag71xx-mdio.0", ++ .phy_addr = 0, ++ .platform_data = &wdr4300_ar8327_data, ++ }, ++}; ++ ++static u8 *mac, *art; ++ ++ ++ ++static void notify_add(struct mtd_info *mtd) ++{ ++ size_t len; ++ u8 tmpmac[ETH_ALEN]; ++ ++ if (!strcmp(mtd->name, "u-boot") && !mac) { ++ mac = kmalloc(MAC_LEN, GFP_KERNEL); ++ if (!mac) return; ++ ++ mtd_read(mtd, CONFIG_OFFSET, MAC_LEN, &len, mac); ++ ++ ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0); ++ ++ mdiobus_register_board_info(wdr4300_mdio0_info, ++ ARRAY_SIZE(wdr4300_mdio0_info)); ++ ++ ath79_register_mdio(0, 0x0); ++ ++ ath79_init_mac(ath79_eth0_data.mac_addr, mac, -2); ++ ++ /* GMAC0 is connected to an AR8327N switch */ ++ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; ++ ath79_eth0_data.phy_mask = BIT(0); ++ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; ++ ath79_eth0_pll_data.pll_1000 = 0x06000000; ++ ath79_register_eth(0); ++ } ++ ++ if (!strcmp(mtd->name, "art") && !art) { ++ art = kmalloc(mtd->size, GFP_KERNEL); ++ if (!art) return; ++ ++ mtd_read(mtd, 0, mtd->size, &len, art); ++ } ++ ++ ++ if (mac && art) { ++ ath79_init_mac(tmpmac, mac, -1); ++ ath79_register_wmac(art + WDR4300_WMAC_CALDATA_OFFSET, tmpmac); ++ ++ ath79_init_mac(tmpmac, mac, 0); ++ ap9x_pci_setup_wmac_led_pin(0, 0); ++ ap91_pci_init_late(art + WDR4300_PCIE_CALDATA_OFFSET, tmpmac); ++ ++ kfree(art); ++ art = NULL; ++ ++ kfree(mac); ++ mac = NULL; ++ } ++} ++ ++static void notify_remove(struct mtd_info *mtd) ++{ ++} ++ ++static struct mtd_notifier spi_notifier = { ++ .add = notify_add, ++ .remove = notify_remove ++}; ++ ++static void __init wdr4300_setup(void) ++{ ++ ++ register_mtd_user(&spi_notifier); ++ ++ ath79_register_m25p80(&wdr4300_flash_data); ++ ath79_register_leds_gpio(-1, ARRAY_SIZE(wdr4300_leds_gpio), ++ wdr4300_leds_gpio); ++ ath79_register_gpio_keys_polled(-1, WDR4300_KEYS_POLL_INTERVAL, ++ ARRAY_SIZE(wdr4300_gpio_keys), ++ wdr4300_gpio_keys); ++ ++ ath79_wmac_set_ext_lna_gpio(0, WDR4300_GPIO_EXTERNAL_LNA0); ++ ath79_wmac_set_ext_lna_gpio(1, WDR4300_GPIO_EXTERNAL_LNA1); ++ ++ ap91_pci_init_simple(); ++ ++ ++ gpio_request_one(WDR4300_GPIO_USB1_POWER, ++ GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, ++ "USB1 power"); ++ gpio_request_one(WDR4300_GPIO_USB2_POWER, ++ GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, ++ "USB2 power"); ++ ath79_register_usb(); ++} ++ ++MIPS_MACHINE(ATH79_MACH_TL_WDR4300, "TL-WDR4300", ++ "TP-LINK TL-WDR3600/4300/4310", ++ wdr4300_setup); +diff --git a/bits/pci-ath9k-fixup.c b/bits/pci-ath9k-fixup.c +new file mode 100644 +index 0000000..2fc022f +--- /dev/null ++++ b/bits/pci-ath9k-fixup.c +@@ -0,0 +1,136 @@ ++/* ++ * Atheros AP94 reference board PCI initialization ++ * ++ * Copyright (C) 2009-2010 Gabor Juhos ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 as published ++ * by the Free Software Foundation. ++ */ ++ ++#include ++#include ++ ++#include ++#include ++ ++struct ath9k_fixup { ++ u16 *cal_data; ++ unsigned slot; ++}; ++ ++static int ath9k_num_fixups; ++static struct ath9k_fixup ath9k_fixups[2]; ++ ++static void ath9k_pci_fixup(struct pci_dev *dev) ++{ ++ void __iomem *mem; ++ u16 *cal_data = NULL; ++ u16 cmd; ++ u32 bar0; ++ u32 val; ++ unsigned i; ++ ++ for (i = 0; i < ath9k_num_fixups; i++) { ++ if (ath9k_fixups[i].cal_data == NULL) ++ continue; ++ ++ if (ath9k_fixups[i].slot != PCI_SLOT(dev->devfn)) ++ continue; ++ ++ cal_data = ath9k_fixups[i].cal_data; ++ break; ++ } ++ ++ printk(KERN_ERR "ath9k_pci_fixup devfn %x cal_data %p\n",dev->devfn,cal_data); ++ ++ if (cal_data == NULL) ++ return; ++ ++ if (*cal_data != 0xa55a) { ++ pr_err("pci %s: invalid calibration data\n", pci_name(dev)); ++ return; ++ } ++ ++ pr_info("pci %s: fixup device configuration\n", pci_name(dev)); ++ ++ mem = ioremap(AR71XX_PCI_MEM_BASE, 0x10000); ++ if (!mem) { ++ pr_err("pci %s: ioremap error\n", pci_name(dev)); ++ return; ++ } ++ ++ pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &bar0); ++ ++ switch (ath79_soc) { ++ case ATH79_SOC_AR7161: ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, ++ AR71XX_PCI_MEM_BASE); ++ break; ++ case ATH79_SOC_AR7240: ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 0xffff); ++ break; ++ ++ case ATH79_SOC_AR7241: ++ case ATH79_SOC_AR7242: ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 0x1000ffff); ++ break; ++ case ATH79_SOC_AR9344: ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 0x1000ffff); ++ break; ++ ++ default: ++ BUG(); ++ } ++ ++ pci_read_config_word(dev, PCI_COMMAND, &cmd); ++ cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY; ++ pci_write_config_word(dev, PCI_COMMAND, cmd); ++ ++ /* set pointer to first reg address */ ++ cal_data += 3; ++ while (*cal_data != 0xffff) { ++ u32 reg; ++ reg = *cal_data++; ++ val = *cal_data++; ++ val |= (*cal_data++) << 16; ++ ++ __raw_writel(val, mem + reg); ++ udelay(100); ++ } ++ ++ pci_read_config_dword(dev, PCI_VENDOR_ID, &val); ++ dev->vendor = val & 0xffff; ++ dev->device = (val >> 16) & 0xffff; ++ ++ pci_read_config_dword(dev, PCI_CLASS_REVISION, &val); ++ dev->revision = val & 0xff; ++ dev->class = val >> 8; /* upper 3 bytes */ ++ ++ pci_read_config_word(dev, PCI_COMMAND, &cmd); ++ cmd &= ~(PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); ++ pci_write_config_word(dev, PCI_COMMAND, cmd); ++ ++ pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, bar0); ++ ++ iounmap(mem); ++} ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath9k_pci_fixup); ++ ++void __init pci_enable_ath9k_fixup(unsigned slot, u16 *cal_data) ++{ ++ if (ath9k_num_fixups >= ARRAY_SIZE(ath9k_fixups)) ++ return; ++ ++ ath9k_fixups[ath9k_num_fixups].slot = slot; ++ ath9k_fixups[ath9k_num_fixups].cal_data = cal_data; ++ ath9k_num_fixups++; ++} ++ ++void __init pci_late_ath9k_fixup(void) ++{ ++ struct pci_dev *dev = NULL; ++ ++ for_each_pci_dev(dev) ++ pci_fixup_device(pci_fixup_early, dev); ++} +diff --git a/bits/pci-ath9k-fixup.h b/bits/pci-ath9k-fixup.h +new file mode 100644 +index 0000000..28ecb2d +--- /dev/null ++++ b/bits/pci-ath9k-fixup.h +@@ -0,0 +1,7 @@ ++#ifndef _PCI_ATH9K_FIXUP ++#define _PCI_ATH9K_FIXUP ++ ++void pci_enable_ath9k_fixup(unsigned slot, u16 *cal_data) __init; ++void pci_late_ath9k_fixup(void) __init; ++ ++#endif /* _PCI_ATH9K_FIXUP */ +diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile +index 7bf2f27..55d141c 100644 +--- a/target/linux/ar71xx/image/Makefile ++++ b/target/linux/ar71xx/image/Makefile +@@ -295,27 +295,86 @@ endef + define Device/tplink-16mlzma + $(Device/tplink) + TPLINK_FLASHLAYOUT := 16Mlzma +- IMAGE_SIZE := 15872k ++ IMAGE_SIZE := 16128k ++endef ++ ++define Device/tplink-32mlzma ++$(Device/tplink) ++ TPLINK_FLASHLAYOUT := 32Mlzma ++ IMAGE_SIZE := 32512k + endef + +-define Device/tl-wdr4300-v1 ++define Device/tplink-64mlzma ++$(Device/tplink) ++ TPLINK_FLASHLAYOUT := 64Mlzma ++ IMAGE_SIZE := 65024k ++ BLOCKSIZE := 256k ++endef ++ ++define Device/tl-wdr4300-v1-8m + $(Device/tplink-8mlzma) + BOARDNAME = TL-WDR4300 + DEVICE_PROFILE = TLWDR4300 + TPLINK_HWID := 0x43000001 + endef + ++define Device/tl-wdr4300-v1-16m ++$(Device/tplink-16mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x43000001 ++endef ++ ++define Device/tl-wdr4300-v1-32m ++$(Device/tplink-32mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x43000001 ++endef ++ ++define Device/tl-wdr4300-v1-64m ++$(Device/tplink-64mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x43000001 ++endef ++ + define Device/tl-wdr3500-v1 + $(Device/tl-wdr4300-v1) + BOARDNAME = TL-WDR3500 + TPLINK_HWID := 0x35000001 + endef + +-define Device/tl-wdr3600-v1 +-$(Device/tl-wdr4300-v1) ++define Device/tl-wdr3600-v1-8m ++$(Device/tplink-8mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 + TPLINK_HWID := 0x36000001 + endef + ++define Device/tl-wdr3600-v1-16m ++$(Device/tplink-16mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x36000001 ++endef ++ ++define Device/tl-wdr3600-v1-32m ++$(Device/tplink-32mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x36000001 ++endef ++ ++ ++define Device/tl-wdr3600-v1-64m ++$(Device/tplink-64mlzma) ++ BOARDNAME = TL-WDR4300 ++ DEVICE_PROFILE = TLWDR4300 ++ TPLINK_HWID := 0x36000001 ++endef ++ ++ + define Device/tl-wdr4300-v1-il + $(Device/tl-wdr4300-v1) + TPLINK_HWID := 0x43008001 +@@ -330,7 +389,7 @@ define Device/mw4530r-v1 + $(Device/tl-wdr4300-v1) + TPLINK_HWID := 0x45300001 + endef +-TARGET_DEVICES += tl-wdr3500-v1 tl-wdr3600-v1 tl-wdr4300-v1 tl-wdr4300-v1-il tl-wdr4310-v1 mw4530r-v1 ++TARGET_DEVICES += tl-wdr3500-v1 tl-wdr3600-v1-8m tl-wdr3600-v1-16m tl-wdr3600-v1-32m tl-wdr3600-v1-64m tl-wdr4300-v1-8m tl-wdr4300-v1-16m tl-wdr4300-v1-32m tl-wdr4300-v1-64m tl-wdr4300-v1-il tl-wdr4310-v1 mw4530r-v1 + + define Device/tl-wdr6500-v2 + $(Device/tplink-8mlzma) +diff --git a/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch b/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch +index 1030c31..e9ebded 100644 +--- a/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch ++++ b/target/linux/ar71xx/patches-4.1/999-always-bitbang-spi.patch +@@ -76,24 +76,164 @@ Index: linux-4.1.11/drivers/mtd/tplinkpart.c + =================================================================== + --- linux-4.1.11.orig/drivers/mtd/tplinkpart.c + +++ linux-4.1.11/drivers/mtd/tplinkpart.c +-@@ -149,7 +149,7 @@ static int tplink_parse_partitions_offse +- parts[0].name = "u-boot"; +- parts[0].offset = 0; +- parts[0].size = offset; +-- parts[0].mask_flags = MTD_WRITEABLE; +-+ //parts[0].mask_flags = MTD_WRITEABLE; ++@@ -24,9 +24,10 @@ ++ #define TPLINK_HEADER_V2 0x02000000 ++ #define MD5SUM_LEN 16 ++ ++-#define TPLINK_ART_LEN 0x10000 +++#define TPLINK_ART_LEN 0x20000 ++ #define TPLINK_KERNEL_OFFS 0x20000 ++ #define TPLINK_64K_KERNEL_OFFS 0x10000 +++#define TPLINK_256K_KERNEL_OFFS 0x40000 ++ ++ struct tplink_fw_header { ++ uint32_t version; /* header version */ ++@@ -111,12 +112,12 @@ static int tplink_check_rootfs_magic(str ++ static int tplink_parse_partitions_offset(struct mtd_info *master, ++ struct mtd_partition **pparts, ++ struct mtd_part_parser_data *data, ++- size_t offset) +++ size_t offset,size_t art_offset) ++ { ++ struct mtd_partition *parts; ++ struct tplink_fw_header *header; ++ int nr_parts; ++- size_t art_offset; +++ size_t art_len; ++ size_t rootfs_offset; ++ size_t squashfs_offset; ++ int ret; ++@@ -130,7 +131,7 @@ static int tplink_parse_partitions_offse ++ ++ header = tplink_read_header(master, offset); ++ if (!header) { ++- pr_notice("%s: no TP-Link header found\n", master->name); +++ pr_notice("%s: no TP-Link header found at 0x%x\n", master->name, offset); ++ ret = -ENODEV; ++ goto err_free_parts; ++ } ++@@ -144,29 +145,62 @@ static int tplink_parse_partitions_offse ++ else ++ rootfs_offset = offset + be32_to_cpu(header->rootfs_ofs); + +- parts[1].name = "kernel"; +- parts[1].offset = offset; +-@@ -162,7 +162,7 @@ static int tplink_parse_partitions_offse +- parts[3].name = "art"; +- parts[3].offset = art_offset; +- parts[3].size = TPLINK_ART_LEN; ++- art_offset = master->size - TPLINK_ART_LEN; ++ ++- parts[0].name = "u-boot"; ++- parts[0].offset = 0; ++- parts[0].size = offset; ++- parts[0].mask_flags = MTD_WRITEABLE; ++- ++- parts[1].name = "kernel"; ++- parts[1].offset = offset; ++- parts[1].size = rootfs_offset - offset; ++- ++- parts[2].name = "rootfs"; ++- parts[2].offset = rootfs_offset; ++- parts[2].size = art_offset - rootfs_offset; ++- ++- parts[3].name = "art"; ++- parts[3].offset = art_offset; ++- parts[3].size = TPLINK_ART_LEN; + - parts[3].mask_flags = MTD_WRITEABLE; +-+ //parts[3].mask_flags = MTD_WRITEABLE; ++- ++- parts[4].name = "firmware"; ++- parts[4].offset = offset; ++- parts[4].size = art_offset - offset; +++ if (!art_offset) { +++ art_offset = master->size - TPLINK_ART_LEN; +++ +++ parts[0].name = "u-boot"; +++ parts[0].offset = 0; +++ parts[0].size = offset; +++ //parts[0].mask_flags = MTD_WRITEABLE; +++ +++ parts[1].name = "kernel"; +++ parts[1].offset = offset; +++ parts[1].size = rootfs_offset - offset; +++ +++ parts[2].name = "rootfs"; +++ parts[2].offset = rootfs_offset; +++ parts[2].size = art_offset - rootfs_offset; +++ +++ +++ parts[3].name = "art"; +++ parts[3].offset = art_offset; +++ parts[3].size = TPLINK_ART_LEN; +++ //parts[3].mask_flags = MTD_WRITEABLE; +++ +++ parts[4].name = "firmware"; +++ parts[4].offset = offset; +++ parts[4].size = art_offset - offset; +++ } else { +++ nr_parts++; +++ +++ parts[0].name = "u-boot"; +++ parts[0].offset = 0; +++ parts[0].size = art_offset; +++ //parts[0].mask_flags = MTD_WRITEABLE; +++ +++ parts[1].name = "kernel"; +++ parts[1].offset = offset; +++ parts[1].size = rootfs_offset - offset; +++ +++ parts[2].name = "rootfs"; +++ parts[2].offset = rootfs_offset; +++ parts[2].size = master->size - rootfs_offset; +++ +++ +++ parts[3].name = "art"; +++ parts[3].offset = art_offset; +++ parts[3].size = TPLINK_ART_LEN; +++ //parts[3].mask_flags = MTD_WRITEABLE; +++ +++ parts[4].name = "firmware"; +++ parts[4].offset = offset; +++ parts[4].size = master-> size - offset; +++ +++ parts[5].name = "bootloader"; +++ parts[5].offset = 0; +++ parts[5].size = offset; +++ } ++ ++ vfree(header); ++ ++@@ -184,8 +218,17 @@ static int tplink_parse_partitions(struc ++ struct mtd_partition **pparts, ++ struct mtd_part_parser_data *data) ++ { ++- return tplink_parse_partitions_offset(master, pparts, data, ++- TPLINK_KERNEL_OFFS); +++ int ret; +++ +++ ret = tplink_parse_partitions_offset(master, pparts, data, +++ TPLINK_KERNEL_OFFS, 0); +++ +++ if (ret > 0) return ret; +++ +++ ret = tplink_parse_partitions_offset(master, pparts, data, +++ TPLINK_256K_KERNEL_OFFS, TPLINK_KERNEL_OFFS); +++ +++ return ret; ++ } + +- parts[4].name = "firmware"; +- parts[4].offset = offset; ++ static int tplink_parse_64k_partitions(struct mtd_info *master, ++@@ -193,7 +236,7 @@ static int tplink_parse_64k_partitions(s ++ struct mtd_part_parser_data *data) ++ { ++ return tplink_parse_partitions_offset(master, pparts, data, ++- TPLINK_64K_KERNEL_OFFS); +++ TPLINK_64K_KERNEL_OFFS, 0); ++ } ++ ++ static struct mtd_part_parser tplink_parser = { ++@@ -208,6 +251,7 @@ static struct mtd_part_parser tplink_64k ++ .name = "tp-link-64k", ++ }; ++ +++ ++ static int __init tplink_parser_init(void) ++ { ++ register_mtd_parser(&tplink_parser); + Index: linux-4.1.11/include/linux/mtd/spi-nor.h + =================================================================== + --- linux-4.1.11.orig/include/linux/mtd/spi-nor.h +@@ -105,127 +245,21 @@ Index: linux-4.1.11/include/linux/mtd/spi-nor.h + +void spi_nor_reboot_hook(struct spi_nor *nor, const char *name); + + + #endif +-Index: linux-4.1.11/arch/mips/ath79/mach-tl-mr3x20.c ++Index: linux-4.1.11/arch/mips/ath79/mach-tl-wdr4300.c + =================================================================== +---- linux-4.1.11.orig/arch/mips/ath79/mach-tl-mr3x20.c +-+++ linux-4.1.11/arch/mips/ath79/mach-tl-mr3x20.c +-@@ -11,6 +11,11 @@ +- #include +- +- #include +-+#include +-+#include +-+#include +-+ +-+ +- +- #include "dev-eth.h" +- #include "dev-ap9x-pci.h" +-@@ -75,28 +80,76 @@ static struct gpio_keys_button tl_mr3x20 +- } +- }; +- +-+ +-+#define MAC_LEN 6 +-+#define ART_LEN (ATH9K_PLAT_EEP_MAX_WORDS << 1) +-+ +-+#define CONFIG_OFFSET 0x1fc00 +-+#define ART_OFFSET 0x1000 +-+ +-+static u8 *mac, *art; +-+ +-+static void notify_add(struct mtd_info *mtd) +-+{ +-+ size_t len; +-+ +-+ if (!strcmp(mtd->name, "u-boot") && !mac) { +-+ mac = kmalloc(MAC_LEN, GFP_KERNEL); +-+ if (!mac) return; +-+ +-+ mtd_read(mtd, CONFIG_OFFSET, MAC_LEN, &len, mac); +-+ +-+ ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); +-+ ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1); +-+ +-+ ath79_register_mdio(0, 0x0); +-+ +-+ /* LAN ports */ +-+ ath79_register_eth(1); +-+ /* WAN port */ +-+ ath79_register_eth(0); +-+ } +-+ +-+ if (!strcmp(mtd->name, "art") && !art) { +-+ art = kmalloc(ART_LEN, GFP_KERNEL); +-+ if (!art) return; +-+ +-+ mtd_read(mtd, ART_OFFSET, ART_LEN, &len, art); +-+ } +-+ +-+ +-+ if (mac && art) { +-+ ap91_pci_init(art, mac); +-+ +-+ pci_fixup_irqs(pci_common_swizzle, pcibios_map_irq); +-+ +-+ kfree(art); +-+ art = NULL; +-+ +-+ kfree(mac); +-+ mac = NULL; +-+ } +-+} +-+ +-+static void notify_remove(struct mtd_info *mtd) +-+{ +-+} +-+ +-+static struct mtd_notifier spi_notifier = { +-+ .add = notify_add, +-+ .remove = notify_remove +-+}; +-+ +-+ +- static void __init tl_ap99_setup(void) ++--- linux-4.1.11.orig/arch/mips/ath79/mach-tl-wdr4300.c +++++ linux-4.1.11/arch/mips/ath79/mach-tl-wdr4300.c ++@@ -156,9 +156,12 @@ static struct mdio_board_info wdr4300_md ++ static void __init wdr4300_setup(void) + { +-- u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); +-- u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); +-+ register_mtd_user(&spi_notifier); +- +- ath79_register_m25p80(&tl_mr3x20_flash_data); ++ u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); ++- u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); +++ u8 *art = (u8 *) KSEG1ADDR(0x1f020000); ++ u8 tmpmac[ETH_ALEN]; + +- ath79_register_gpio_keys_polled(-1, TL_MR3X20_KEYS_POLL_INTERVAL, +- ARRAY_SIZE(tl_mr3x20_gpio_keys), +- tl_mr3x20_gpio_keys); +-- +-- ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); +-- ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1); +-- +-- ath79_register_mdio(0, 0x0); +-- +-- /* LAN ports */ +-- ath79_register_eth(1); +-- /* WAN port */ +-- ath79_register_eth(0); +-- +-- ap91_pci_init(ee, mac); +- } +- +- static void __init tl_mr3x20_usb_setup(void) +-Index: linux-4.1.11/arch/mips/ath79/dev-ap9x-pci.c +-=================================================================== +---- linux-4.1.11.orig/arch/mips/ath79/dev-ap9x-pci.c +-+++ linux-4.1.11/arch/mips/ath79/dev-ap9x-pci.c +-@@ -103,10 +103,10 @@ __init void ap91_pci_init(u8 *cal_data, +- ap9x_wmac0_data.macaddr = ap9x_wmac0_mac; +- } +- +-+ pci_enable_ath9k_fixup(0, ap9x_wmac0_data.eeprom_data); +++ if ((art[0]==1) && !art[1] && !art[2] && !art[3]) +++ art = (u8 *) KSEG1ADDR(0x1fff0000); + + +- ath79_pci_set_plat_dev_init(ap91_pci_plat_dev_init); +- ath79_register_pci(); +-- +-- pci_enable_ath9k_fixup(0, ap9x_wmac0_data.eeprom_data); +- } +- +- __init void ap91_pci_init_simple(void) ++ ath79_register_m25p80(&wdr4300_flash_data); ++ ath79_register_leds_gpio(-1, ARRAY_SIZE(wdr4300_leds_gpio), ++ wdr4300_leds_gpio); +diff --git a/tools/firmware-utils/src/mktplinkfw.c b/tools/firmware-utils/src/mktplinkfw.c +index 4922afb..b0d4410 100644 +--- a/tools/firmware-utils/src/mktplinkfw.c ++++ b/tools/firmware-utils/src/mktplinkfw.c +@@ -212,6 +212,24 @@ static struct flash_layout layouts[] = { + .kernel_ep = 0x80060000, + .rootfs_ofs = 0x100000, + }, { ++ .id = "16Mlzma", ++ .fw_max_len = 0xfc0000, ++ .kernel_la = 0x80060000, ++ .kernel_ep = 0x80060000, ++ .rootfs_ofs = 0x100000, ++ }, { ++ .id = "32Mlzma", ++ .fw_max_len = 0x1fc0000, ++ .kernel_la = 0x80060000, ++ .kernel_ep = 0x80060000, ++ .rootfs_ofs = 0x100000, ++ }, { ++ .id = "64Mlzma", ++ .fw_max_len = 0x3f80000, ++ .kernel_la = 0x80060000, ++ .kernel_ep = 0x80060000, ++ .rootfs_ofs = 0x100000, ++ }, { + .id = "16Mppc", + .fw_max_len = 0xf80000, + .kernel_la = 0x00000000, diff --git a/master/nfsv4 b/master/nfsv4 new file mode 100644 index 0000000..0600a56 --- /dev/null +++ b/master/nfsv4 @@ -0,0 +1,18 @@ +diff --git a/tools/flock/src/flock.c b/tools/flock/src/flock.c +index 13baec4..02f7f60 100644 +--- a/tools/flock/src/flock.c ++++ b/tools/flock/src/flock.c +@@ -205,11 +205,11 @@ int main(int argc, char *argv[]) + } + + filename = argv[optind]; +- fd = open(filename, O_RDONLY|O_NOCTTY|O_CREAT, 0666); ++ fd = open(filename, O_RDWR|O_NOCTTY|O_CREAT, 0666); + /* Linux doesn't like O_CREAT on a directory, even though it should be a + no-op */ + if (fd < 0 && errno == EISDIR) +- fd = open(filename, O_RDONLY|O_NOCTTY); ++ fd = open(filename, O_RDWR|O_NOCTTY); + + if ( fd < 0 ) { + err = errno; diff --git a/master/series b/master/series index e39cc84..bf3d9c3 100644 --- a/master/series +++ b/master/series @@ -1,8 +1,10 @@ -16m-rom -always-bitbang-spi +nfsv4 feeds feeds-installed +always-bitbang-spi #fix-mjpg-streamer-stack-smashing perl-modules +ath-use-regdomain config +more-rom endstop diff --git a/master/status b/master/status index e69de29..301d0e0 100644 --- a/master/status +++ b/master/status @@ -0,0 +1,9 @@ +nfsv4 +feeds +feeds-installed +always-bitbang-spi +perl-modules +ath-use-regdomain +config +more-rom +endstop -- cgit v1.2.3