summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@lamia.panaceas.james.local>2016-11-10 10:20:42 +0000
committerroot <root@lamia.panaceas.james.local>2016-11-10 10:20:42 +0000
commita0e9b4c2ecdc394b21ffa77aa0c578818edad4f1 (patch)
tree201144b9b4ee9483a634c2aa9624ee664ba97622
parentf84bb1e6f499eccbf06605884b0b2cbb7adfb46e (diff)
downloadtrunk-47381-pq-master.tar.gz
trunk-47381-pq-master.tar.bz2
trunk-47381-pq-master.zip
larger romsHEADmaster
-rw-r--r--master/32m-rom0
-rw-r--r--master/8m-rom13
-rw-r--r--master/always-bitbang-spi13
-rw-r--r--master/ath-use-regdomain2383
-rw-r--r--master/big-roms46
-rw-r--r--master/config6
-rw-r--r--master/endstop13
-rw-r--r--master/fix-mjpg-streamer-stack-smashing19
-rw-r--r--master/more-rom1330
-rw-r--r--master/nfsv418
-rw-r--r--master/series6
-rw-r--r--master/status9
12 files changed, 3849 insertions, 7 deletions
diff --git a/master/32m-rom b/master/32m-rom
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/master/32m-rom
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 <juhosg@openwrt.org>
++ *
++ * 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 <linux/pci.h>
++#include <linux/ath9k_platform.h>
++#include <linux/delay.h>
++
++#include <asm/mach-ath79/ath79.h>
++
++#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 <juhosg@openwrt.org>
++ *
++ * 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 <juhosg@openwrt.org>
++ *
++ * 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 <linux/pci.h>
++#include <linux/phy.h>
++#include <linux/gpio.h>
++#include <linux/platform_device.h>
++#include <linux/ath9k_platform.h>
++#include <linux/ar8216_platform.h>
++
++#include <asm/mach-ath79/ar71xx_regs.h>
++
++#include <linux/mtd/mtd.h>
++#include <linux/ath9k_platform.h>
++#include <linux/pci.h>
++
++
++#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 <juhosg@openwrt.org>
++ *
++ * 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 <linux/pci.h>
++#include <linux/delay.h>
++
++#include <asm/mach-ath79/ar71xx_regs.h>
++#include <asm/mach-ath79/ath79.h>
++
++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 <linux/gpio.h>
+-
+- #include <asm/mach-ath79/ath79.h>
+-+#include <linux/mtd/mtd.h>
+-+#include <linux/ath9k_platform.h>
+-+#include <linux/pci.h>
+-+
+-+
+-
+- #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