We're on Chaos Calmer now
This commit is contained in:
parent
63165e80a7
commit
ab10be9f50
15
Makefile
15
Makefile
@ -212,7 +212,7 @@ config: FORCE
|
||||
echo 'CONFIG_BUILD_SUFFIX="gluon-$(GLUON_TARGET)"'; \
|
||||
echo '$(patsubst %,CONFIG_PACKAGE_%=m,$(sort $(filter-out -%,$(GLUON_DEFAULT_PACKAGES) $(GLUON_SITE_PACKAGES) $(PROFILE_PACKAGES))))' \
|
||||
| sed -e 's/ /\n/g'; \
|
||||
echo '$(patsubst %,CONFIG_GLUON_LANG_%=y,$(GLUON_LANGS))' \
|
||||
echo '$(patsubst %,CONFIG_LUCI_LANG_%=y,$(GLUON_LANGS))' \
|
||||
| sed -e 's/ /\n/g'; \
|
||||
) > $(BOARD_BUILDDIR)/config.tmp
|
||||
scripts/config/conf --defconfig=$(BOARD_BUILDDIR)/config.tmp Config.in
|
||||
@ -281,8 +281,11 @@ packages: $(package/stamp-compile)
|
||||
prepare-image: FORCE
|
||||
rm -rf $(BOARD_KDIR)
|
||||
mkdir -p $(BOARD_KDIR)
|
||||
cp $(KERNEL_BUILD_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.elf $(BOARD_KDIR)/
|
||||
+$(SUBMAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image -f $(GLUONDIR)/include/Makefile.image prepare KDIR="$(BOARD_KDIR)"
|
||||
$(foreach k, vmlinux vmlinux.elf \
|
||||
$(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out dtbs,$(KERNELNAME))), \
|
||||
$(CP) $(KERNEL_BUILD_DIR)/$(k) $(BOARD_KDIR)/$(k); \
|
||||
)
|
||||
+$(SUBMAKE) -C $(TOPDIR)/target/linux/$(BOARD)/image image_prepare KDIR="$(BOARD_KDIR)"
|
||||
|
||||
prepare: FORCE
|
||||
@$(STAGING_DIR_HOST)/bin/lua $(GLUONDIR)/package/gluon-core/files/usr/lib/lua/gluon/site_config.lua \
|
||||
@ -346,7 +349,7 @@ $(eval $(call merge-lists,INSTALL_PACKAGES,DEFAULT_PACKAGES GLUON_DEFAULT_PACKAG
|
||||
|
||||
package_install: FORCE
|
||||
$(OPKG) update
|
||||
$(OPKG) install $(PACKAGE_DIR)/libc_*.ipk
|
||||
$(OPKG) install $(PACKAGE_DIR)/base-files_*.ipk $(PACKAGE_DIR)/libc_*.ipk
|
||||
$(OPKG) install $(PACKAGE_DIR)/kernel_*.ipk
|
||||
|
||||
$(OPKG) install $(INSTALL_PACKAGES)
|
||||
@ -354,6 +357,10 @@ package_install: FORCE
|
||||
|
||||
rm -f $(TARGET_DIR)/usr/lib/opkg/lists/* $(TARGET_DIR)/tmp/opkg.lock
|
||||
|
||||
# Remove opkg database when opkg is not intalled
|
||||
if [ ! -x $(TARGET_DIR)/bin/opkg ]; then rm -rf $(TARGET_DIR)/usr/lib/opkg; fi
|
||||
|
||||
|
||||
ifeq ($(GLUON_OPKG_CONFIG),1)
|
||||
include $(INCLUDE_DIR)/version.mk
|
||||
endif
|
||||
|
@ -80,9 +80,9 @@ instead).
|
||||
Adding support for new languages
|
||||
--------------------------------
|
||||
|
||||
A list of all languages supported by LuCI can be found in the ``include/package.mk`` file of
|
||||
the Gluon repository. Adding translations for these languages is straightforward using the ``msginit``
|
||||
command.
|
||||
A list of all languages supported by LuCI can be found in the ``packages/luci/luci.mk`` file after
|
||||
Gluon's dependencies have been downloaded using ``make update``. Adding translations for these
|
||||
languages is straightforward using the ``msginit`` command.
|
||||
|
||||
For other languages, support must be added tu LuCI first, which constitutes completely translating
|
||||
the ``base.pot``. Please contact the upstream LuCI maintainers if you'd like to do this.
|
||||
|
@ -1,7 +0,0 @@
|
||||
override define BuildImage
|
||||
prepare: FORCE
|
||||
$(call Image/Prepare)
|
||||
endef
|
||||
|
||||
# The Makefile included here is $(TOPDIR)/target/linux/$(BOARD)/image/Makefile
|
||||
include Makefile
|
@ -7,8 +7,7 @@ override define Kernel/Configure
|
||||
echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> $(LINUX_DIR)/.config.target
|
||||
echo "# CONFIG_KALLSYMS_ALL is not set" >> $(LINUX_DIR)/.config.target
|
||||
echo "# CONFIG_KALLSYMS_UNCOMPRESSED is not set" >> $(LINUX_DIR)/.config.target
|
||||
echo "# CONFIG_KPROBES is not set" >> $(LINUX_DIR)/.config.target
|
||||
$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(BOARD_BUILDDIR)/config-allmods > $(LINUX_DIR)/.config.override
|
||||
$(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo $(BOARD_BUILDDIR)/config-allmods $(KERNEL_PATCHVER) > $(LINUX_DIR)/.config.override
|
||||
$(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target /dev/null $(LINUX_DIR)/.config.override > $(LINUX_DIR)/.config
|
||||
$(call Kernel/SetNoInitramfs)
|
||||
rm -rf $(KERNEL_BUILD_DIR)/modules
|
||||
|
@ -19,4 +19,4 @@ CONFIG_ATH_USER_REGD=y
|
||||
CONFIG_PACKAGE_ATH_DEBUG=y
|
||||
CONFIG_ATH10K_CT_COMMUNITY_FW=y
|
||||
|
||||
CONFIG_PACKAGE_luci-base_srcdiet=y
|
||||
CONFIG_LUCI_SRCDIET=y
|
||||
|
@ -35,7 +35,7 @@ export GLUON_LANGS
|
||||
ifeq ($(OPENWRT_BUILD),1)
|
||||
ifeq ($(GLUON_TOOLS),1)
|
||||
|
||||
CONFIG_VERSION_REPO := $(shell $(GLUONDIR)/scripts/site.sh opkg_repo || echo http://downloads.openwrt.org/barrier_breaker/14.07/%S/packages)
|
||||
CONFIG_VERSION_REPO := $(shell $(GLUONDIR)/scripts/site.sh opkg_repo || echo http://downloads.openwrt.org/chaos_calmer/15.05-rc1/%S/packages)
|
||||
export CONFIG_VERSION_REPO
|
||||
|
||||
GLUON_SITE_CODE := $(shell $(GLUONDIR)/scripts/site.sh site_code)
|
||||
@ -65,7 +65,7 @@ GLUON_TARGET_$$(gluon_target)_BOARD := $(1)
|
||||
GLUON_TARGET_$$(gluon_target)_SUBTARGET := $(2)
|
||||
endef
|
||||
|
||||
GLUON_DEFAULT_PACKAGES := gluon-core kmod-ipv6 firewall ip6tables -uboot-envtools
|
||||
GLUON_DEFAULT_PACKAGES := gluon-core kmod-ipv6 firewall ip6tables -uboot-envtools -wpad-mini hostapd-mini
|
||||
|
||||
override DEFAULT_PACKAGES.router :=
|
||||
|
||||
|
@ -7,45 +7,20 @@ $(shell cat $(1) | sed -ne '1h; 1!H; $$ {g; s/@/+@/g; s/\n/-@/g; p}')
|
||||
END__GLUON__CHECK__SITE
|
||||
endef
|
||||
|
||||
|
||||
# Languages supported by LuCi
|
||||
GLUON_SUPPORTED_LANGS := ca zh_cn en fr de el he hu it ja ms no pl pt_br pt ro ru es sv uk vi
|
||||
|
||||
GLUON_LANG_ca := catalan
|
||||
GLUON_LANG_zh_cn := chinese
|
||||
GLUON_LANG_en := english
|
||||
GLUON_LANG_fr := french
|
||||
GLUON_LANG_de := german
|
||||
GLUON_LANG_el := greek
|
||||
GLUON_LANG_he := hebrew
|
||||
GLUON_LANG_hu := hungarian
|
||||
GLUON_LANG_it := italian
|
||||
GLUON_LANG_ja := japanese
|
||||
GLUON_LANG_ms := malay
|
||||
GLUON_LANG_no := norwegian
|
||||
GLUON_LANG_pl := polish
|
||||
GLUON_LANG_pt_br := portuguese-brazilian
|
||||
GLUON_LANG_pt := portuguese
|
||||
GLUON_LANG_ro := romanian
|
||||
GLUON_LANG_ru := russian
|
||||
GLUON_LANG_es := spanish
|
||||
GLUON_LANG_sv := swedish
|
||||
GLUON_LANG_uk := ukrainian
|
||||
GLUON_LANG_vi := vietnamese
|
||||
GLUON_I18N_PACKAGES := $(foreach lang,$(GLUON_SUPPORTED_LANGS),+LUCI_LANG_$(lang):luci-i18n-base-$(lang))
|
||||
GLUON_I18N_CONFIG := $(foreach lang,$(GLUON_SUPPORTED_LANGS),CONFIG_LUCI_LANG_$(lang))
|
||||
GLUON_ENABLED_LANGS := $(foreach lang,$(GLUON_SUPPORTED_LANGS),$(if $(CONFIG_LUCI_LANG_$(lang)),$(lang)))
|
||||
|
||||
GLUON_I18N_PACKAGES := $(foreach lang,$(GLUON_SUPPORTED_LANGS),+GLUON_LANG_$(lang):luci-i18n-$(GLUON_LANG_$(lang)))
|
||||
GLUON_I18N_CONFIG := $(foreach lang,$(GLUON_SUPPORTED_LANGS),CONFIG_GLUON_LANG_$(lang))
|
||||
GLUON_ENABLED_LANGS := $(foreach lang,$(GLUON_SUPPORTED_LANGS),$(if $(CONFIG_GLUON_LANG_$(lang)),$(lang)))
|
||||
|
||||
|
||||
GLUON_PO2LMO := $(BUILD_DIR)/luci/build/po2lmo
|
||||
|
||||
define GluonBuildI18N
|
||||
mkdir -p $$(PKG_BUILD_DIR)/i18n
|
||||
for lang in $$(GLUON_ENABLED_LANGS); do \
|
||||
if [ -e $(2)/$$$$lang.po ]; then \
|
||||
rm -f $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
|
||||
$(GLUON_PO2LMO) $(2)/$$$$lang.po $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
|
||||
po2lmo $(2)/$$$$lang.po $$(PKG_BUILD_DIR)/i18n/$(1).$$$$lang.lmo; \
|
||||
fi; \
|
||||
done
|
||||
endef
|
||||
|
15
modules
15
modules
@ -1,18 +1,19 @@
|
||||
GLUON_FEEDS='openwrt gluon routing luci'
|
||||
|
||||
OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git
|
||||
OPENWRT_COMMIT=179bab8b1700d74b28cc6cd25322f9a1ad670107
|
||||
OPENWRT_REPO=git://git.openwrt.org/openwrt.git
|
||||
OPENWRT_COMMIT=53a178af743eb1a463c806ee79d1e622969ad6ef
|
||||
|
||||
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
|
||||
PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f
|
||||
PACKAGES_OPENWRT_BRANCH=for-14.07
|
||||
PACKAGES_OPENWRT_COMMIT=914beae80e848c161214464fba7a9826c66bbf26
|
||||
PACKAGES_OPENWRT_BRANCH=for-15.05
|
||||
|
||||
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
|
||||
PACKAGES_GLUON_COMMIT=e8ee21d116a0abc2e328b0ee181d79845654582e
|
||||
|
||||
PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
|
||||
PACKAGES_ROUTING_COMMIT=5d4ad63897b435d5df0f39a49bd58962c22c33b8
|
||||
PACKAGES_ROUTING_BRANCH=for-14.07
|
||||
PACKAGES_ROUTING_COMMIT=b1c3bdfbf47003088198bf8ef699a94cc29e3eca
|
||||
PACKAGES_ROUTING_BRANCH=for-15.05
|
||||
|
||||
PACKAGES_LUCI_REPO=git://github.com/openwrt/luci.git
|
||||
PACKAGES_LUCI_COMMIT=f81be49ae756dab82e1758a6c9de145f0d36960e
|
||||
PACKAGES_LUCI_COMMIT=7a54785ea616df1e72f20b9cad2f1a6b3097f7b5
|
||||
PACKAGES_LUCI_BRANCH=for-15.05
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
module('gluon.announce', package.seeall)
|
||||
|
||||
fs = require 'luci.fs'
|
||||
fs = require 'nixio.fs'
|
||||
uci = require('luci.model.uci').cursor()
|
||||
util = require 'luci.util'
|
||||
|
||||
local function collect_entry(entry)
|
||||
if fs.isdirectory(entry) then
|
||||
if fs.stat(entry, 'type') == 'dir' then
|
||||
return collect_dir(entry)
|
||||
else
|
||||
return setfenv(loadfile(entry), _M)()
|
||||
@ -17,7 +17,7 @@ end
|
||||
function collect_dir(dir)
|
||||
local ret = {}
|
||||
|
||||
for _, entry in ipairs(fs.dir(dir)) do
|
||||
for entry in fs.dir(dir) do
|
||||
if entry:sub(1, 1) ~= '.' then
|
||||
local ok, val = pcall(collect_entry, dir .. '/' .. entry)
|
||||
if ok then
|
||||
|
@ -49,10 +49,11 @@ function action_reboot()
|
||||
uci:commit("gluon-setup-mode")
|
||||
|
||||
if nixio.fork() ~= 0 then
|
||||
local fs = require "luci.fs"
|
||||
local fs = require "nixio.fs"
|
||||
local util = require "nixio.util"
|
||||
|
||||
local parts_dir = "/lib/gluon/config-mode/reboot/"
|
||||
local files = fs.dir(parts_dir)
|
||||
local files = util.consume(fs.dir(parts_dir))
|
||||
|
||||
table.sort(files)
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
local wizard_dir = "/lib/gluon/config-mode/wizard/"
|
||||
local i18n = luci.i18n
|
||||
local uci = luci.model.uci.cursor()
|
||||
local fs = require "luci.fs"
|
||||
local fs = require "nixio.fs"
|
||||
local util = require "nixio.util"
|
||||
local f, s
|
||||
|
||||
local wizard = {}
|
||||
local files = fs.dir(wizard_dir)
|
||||
local files = util.consume(fs.dir(wizard_dir))
|
||||
|
||||
table.sort(files)
|
||||
|
||||
|
@ -12,21 +12,7 @@ define Package/gluon-core
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Base files of Gluon
|
||||
DEPENDS:=+gluon-site +lua-platform-info +luci-lib-nixio +odhcp6c +firewall
|
||||
endef
|
||||
|
||||
|
||||
define LangConfig
|
||||
config GLUON_LANG_$(1)
|
||||
bool "$(GLUON_LANG_$(1)) language support"
|
||||
depends on PACKAGE_gluon-core
|
||||
default n
|
||||
|
||||
endef
|
||||
|
||||
|
||||
define Package/gluon-core/config
|
||||
$(foreach lang,$(GLUON_SUPPORTED_LANGS),$(call LangConfig,$(lang)))
|
||||
DEPENDS:=+gluon-site +lua-platform-info +luci-base +odhcp6c +firewall
|
||||
endef
|
||||
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#!/usr/bin/lua
|
||||
|
||||
local fs = require 'luci.fs'
|
||||
local fs = require 'nixio.fs'
|
||||
local sysconfig = require 'gluon.sysconfig'
|
||||
|
||||
|
||||
if fs.isfile('/lib/gluon/version/core') and not sysconfig.gluon_version then
|
||||
if fs.stat('/lib/gluon/version/core') and not sysconfig.gluon_version then
|
||||
-- This isn't an initial upgrade, so set gluon_version
|
||||
sysconfig.gluon_version = ''
|
||||
end
|
||||
|
@ -10,7 +10,7 @@ end
|
||||
|
||||
local platform = require 'gluon.platform'
|
||||
|
||||
local fs = require 'luci.fs'
|
||||
local fs = require 'nixio.fs'
|
||||
local util = require 'luci.util'
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
local sysconfig = require 'gluon.sysconfig'
|
||||
|
||||
local fs = require 'luci.fs'
|
||||
local fs = require 'nixio.fs'
|
||||
local util = require 'luci.util'
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<%-
|
||||
local fs = require 'luci.fs'
|
||||
local fs = require 'nixio.fs'
|
||||
local uci = require('luci.model.uci').cursor()
|
||||
local util = require 'luci.util'
|
||||
local i18n = require 'luci.i18n'
|
||||
|
@ -20,7 +20,6 @@ $Id$
|
||||
|
||||
local hostname = sys.hostname()
|
||||
local release = fs.readfile("/lib/gluon/release")
|
||||
local load1, load5, load15 = sys.loadavg()
|
||||
|
||||
local request = disp.context.path
|
||||
local request2 = disp.context.request
|
||||
|
@ -11,7 +11,7 @@ define Package/gluon-mesh-batman-adv-core
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Support for batman-adv meshing (core)
|
||||
DEPENDS:=+gluon-core +firewall +kmod-ipt-nathelper +libiwinfo-lua
|
||||
DEPENDS:=+gluon-core +firewall +libiwinfo-lua
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
|
@ -5,7 +5,7 @@ PKG_VERSION:=$(if $(GLUON_SITE_CODE),$(GLUON_SITE_CODE),1)
|
||||
PKG_RELEASE:=$(GLUON_RELEASE)
|
||||
|
||||
PKG_FILE_DEPENDS := $(GLUON_SITEDIR)/
|
||||
PKG_BUILD_DEPENDS := luci
|
||||
PKG_BUILD_DEPENDS := luci-base/host
|
||||
|
||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/lua
|
||||
|
||||
local util = require("luci.util")
|
||||
local fs = require("luci.fs")
|
||||
local fs = require("nixio.fs")
|
||||
local ltn12 = require 'luci.ltn12'
|
||||
local sys = require("luci.sys")
|
||||
local json = require("luci.json")
|
||||
|
@ -3,10 +3,10 @@ Date: Sat, 26 Jul 2014 06:10:23 +0200
|
||||
Subject: tools/Makefile: fix host tools build dependencies
|
||||
|
||||
diff --git a/tools/Makefile b/tools/Makefile
|
||||
index 13bb028..137ad61 100644
|
||||
index 2f516d2..9416069 100644
|
||||
--- a/tools/Makefile
|
||||
+++ b/tools/Makefile
|
||||
@@ -97,10 +97,16 @@ define PrepareStaging
|
||||
@@ -95,10 +95,16 @@ define PrepareStaging
|
||||
endef
|
||||
|
||||
# preparatory work
|
||||
@ -23,32 +23,14 @@ index 13bb028..137ad61 100644
|
||||
|
||||
$(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
|
||||
$(call PrepareStaging,$(STAGING_DIR_HOST))
|
||||
@@ -112,7 +118,7 @@ $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
|
||||
@@ -110,8 +116,8 @@ $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
|
||||
|
||||
|
||||
define PrepareCommand
|
||||
-$(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR)/.prepared
|
||||
+$(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR_HOST)/.prepared
|
||||
@mkdir -p "$$(dir $$@)"; rm -f "$$@"
|
||||
@export FILE="$$$$(which $(2) 2>/dev/null | grep -v 'not found' | head -n1)"; [ -n "$$$$FILE" ] || { \
|
||||
echo "Command $(1) not found."; false; \
|
||||
@@ -121,7 +127,7 @@ $(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR)/.prepared
|
||||
endef
|
||||
endif
|
||||
|
||||
-$(STAGING_DIR_HOST)/bin/stat: $(STAGING_DIR)/.prepared
|
||||
+$(STAGING_DIR_HOST)/bin/stat: $(STAGING_DIR_HOST)/.prepared
|
||||
@rm -f $@
|
||||
@if stat --version > /dev/null 2>&1; then \
|
||||
ln -s `which stat` $@; \
|
||||
@@ -145,8 +151,8 @@ $(eval $(call PrepareCommand,tar,gtar tar))
|
||||
$(eval $(call PrepareCommand,diff,gdiff diff))
|
||||
|
||||
$(curdir)/cmddeps = $(patsubst %,$(STAGING_DIR_HOST)/bin/%,md5sum cp stat seq python awk getopt grep tar diff)
|
||||
-$(curdir)//prepare = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
|
||||
-$(curdir)//compile = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
|
||||
+$(curdir)//prepare = $(staging_prepared) $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
|
||||
+$(curdir)//compile = $(staging_prepared) $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)
|
||||
-$(curdir)//prepare = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared
|
||||
-$(curdir)//compile = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared
|
||||
+$(curdir)//prepare = $(staging_prepared) $(STAGING_DIR_HOST)/.prepared
|
||||
+$(curdir)//compile = $(staging_prepared) $(STAGING_DIR_HOST)/.prepared
|
||||
|
||||
# prerequisites for the individual targets
|
||||
$(curdir)/ := .config prereq
|
||||
|
@ -1,31 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sat, 16 Aug 2014 17:52:34 +0200
|
||||
Subject: ar71xx: correctly detect hardware revision on TP-Link Archer C5 and C7
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 18da356..1709356 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -214,6 +214,13 @@ tplink_board_detect() {
|
||||
"934100"*)
|
||||
model="NC-LINK SMART-300"
|
||||
;;
|
||||
+ "c50000"*)
|
||||
+ model="TP-Link Archer C5"
|
||||
+ ;;
|
||||
+ "750000"*|\
|
||||
+ "c70000"*)
|
||||
+ model="TP-Link Archer C7"
|
||||
+ ;;
|
||||
*)
|
||||
hwver=""
|
||||
;;
|
||||
@@ -748,7 +755,7 @@ ar71xx_board_detect() {
|
||||
esac
|
||||
|
||||
case "$machine" in
|
||||
- *TL-WR* | *TL-WA* | *TL-MR* | *TL-WD*)
|
||||
+ *TL-WR* | *TL-WA* | *TL-MR* | *TL-WD* | *Archer*)
|
||||
tplink_board_detect "$machine"
|
||||
;;
|
||||
esac
|
@ -0,0 +1,31 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 13 Nov 2014 01:17:24 +0100
|
||||
Subject: odhcp6c: always accept RDNSS, independent of the default router lifetime
|
||||
|
||||
diff --git a/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
|
||||
new file mode 100644
|
||||
index 0000000..cb694ca
|
||||
--- /dev/null
|
||||
+++ b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
|
||||
@@ -0,0 +1,21 @@
|
||||
+--- a/src/ra.c
|
||||
++++ b/src/ra.c
|
||||
+@@ -438,18 +438,6 @@ bool ra_process(void)
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+-
|
||||
+- int states[2] = {STATE_RA_DNS, STATE_RA_SEARCH};
|
||||
+- for (size_t i = 0; i < 2; ++i) {
|
||||
+- size_t ra_dns_len;
|
||||
+- uint8_t *start = odhcp6c_get_state(states[i], &ra_dns_len);
|
||||
+- for (struct odhcp6c_entry *c = (struct odhcp6c_entry*)start;
|
||||
+- (uint8_t*)c < &start[ra_dns_len] && &c->auxtarget[c->auxlen] <= &start[ra_dns_len];
|
||||
+- c = (struct odhcp6c_entry*)(&c->auxtarget[c->auxlen]))
|
||||
+- if (IN6_ARE_ADDR_EQUAL(&c->router, &from.sin6_addr) &&
|
||||
+- c->valid > router_valid)
|
||||
+- c->valid = router_valid;
|
||||
+- }
|
||||
+ }
|
||||
+
|
||||
+ if (found)
|
@ -1,26 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 13 Nov 2014 01:17:24 +0100
|
||||
Subject: odhcp6c: always accept RDNSS, independent of the default router lifetime
|
||||
|
||||
diff --git a/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
|
||||
new file mode 100644
|
||||
index 0000000..ae4e18d
|
||||
--- /dev/null
|
||||
+++ b/package/network/ipv6/odhcp6c/patches/001-always_accept_rdnss.patch
|
||||
@@ -0,0 +1,16 @@
|
||||
+--- a/src/ra.c
|
||||
++++ b/src/ra.c
|
||||
+@@ -409,13 +409,6 @@ bool ra_process(void)
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+-
|
||||
+- size_t ra_dns_len;
|
||||
+- struct odhcp6c_entry *entry = odhcp6c_get_state(STATE_RA_DNS, &ra_dns_len);
|
||||
+- for (size_t i = 0; i < ra_dns_len / sizeof(*entry); ++i)
|
||||
+- if (IN6_ARE_ADDR_EQUAL(&entry[i].router, &from.sin6_addr) &&
|
||||
+- entry[i].valid > router_valid)
|
||||
+- entry[i].valid = router_valid;
|
||||
+ }
|
||||
+
|
||||
+ if (found)
|
@ -3,10 +3,10 @@ Date: Tue, 10 Mar 2015 13:17:14 +0100
|
||||
Subject: ath10k: add Candelatech community firmware as an additional choice
|
||||
|
||||
diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
|
||||
index 629692d..d77842a 100644
|
||||
index 2a40bb1..17dbe03 100644
|
||||
--- a/package/kernel/mac80211/Makefile
|
||||
+++ b/package/kernel/mac80211/Makefile
|
||||
@@ -605,6 +605,14 @@ This module adds support for wireless adapters based on
|
||||
@@ -604,6 +604,14 @@ This module adds support for wireless adapters based on
|
||||
Atheros USB AR9271 and AR7010 family of chipsets.
|
||||
endef
|
||||
|
||||
@ -21,7 +21,7 @@ index 629692d..d77842a 100644
|
||||
define KernelPackage/ath10k
|
||||
$(call KernelPackage/mac80211/Default)
|
||||
TITLE:=Atheros 802.11ac wireless cards support
|
||||
@@ -625,13 +633,31 @@ endef
|
||||
@@ -624,13 +632,31 @@ endef
|
||||
define KernelPackage/ath10k/config
|
||||
if PACKAGE_kmod-ath10k
|
||||
|
||||
@ -55,14 +55,14 @@ index 629692d..d77842a 100644
|
||||
endif
|
||||
endef
|
||||
|
||||
@@ -1824,14 +1850,20 @@ define KernelPackage/ath10k/install
|
||||
@@ -1858,14 +1884,20 @@ define KernelPackage/ath10k/install
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/ath10k/QCA988X/hw2.0/board.bin \
|
||||
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
|
||||
+ifeq ($(CONFIG_ATH10K_AP_FW),y)
|
||||
+ $(INSTALL_DATA) \
|
||||
+ $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2/firmware-3.bin_10.2-00082-4-2 \
|
||||
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin
|
||||
+ $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2.4/firmware-4.bin_10.2.4.45 \
|
||||
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-4.bin
|
||||
+endif
|
||||
ifeq ($(CONFIG_ATH10K_STA_FW),y)
|
||||
$(INSTALL_DATA) \
|
||||
@ -72,8 +72,8 @@ index 629692d..d77842a 100644
|
||||
+endif
|
||||
+ifeq ($(CONFIG_ATH10K_CT_COMMUNITY_FW),y)
|
||||
$(INSTALL_DATA) \
|
||||
- $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2/firmware-3.bin_10.2-00082-4-2 \
|
||||
- $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin
|
||||
- $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2.4/firmware-4.bin_10.2.4.45 \
|
||||
- $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-4.bin
|
||||
+ $(DL_DIR)/$(ATH10K_CT_COMMUNITY_FW) \
|
||||
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
|
||||
endif
|
@ -1,570 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 26 Nov 2014 19:57:39 +0100
|
||||
Subject: firmware-utils: add new tool tplink-safeloader for the new TP-LINK Pharos devices (CPE210/220/510/520)
|
||||
|
||||
The new TP-LINK Pharos series uses a new bootloader, the "TP-LINK Safeloader".
|
||||
It uses an advanced firmware image format, containing an image partition table
|
||||
and a flash partition table (and image partitions are mapped to the
|
||||
corresponding flash partitions). The exact image format is documented in the
|
||||
source code.
|
||||
|
||||
Furthermore, the bootloader expects the kernel image as an ELF executable.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
|
||||
index 4bb53cb..3f9eb56 100644
|
||||
--- a/tools/firmware-utils/Makefile
|
||||
+++ b/tools/firmware-utils/Makefile
|
||||
@@ -41,6 +41,7 @@ define Host/Compile
|
||||
$(call cc,mkplanexfw sha1)
|
||||
$(call cc,mktplinkfw md5)
|
||||
$(call cc,mktplinkfw2 md5)
|
||||
+ $(call cc,tplink-safeloader md5, -Wall)
|
||||
$(call cc,pc1crypt)
|
||||
$(call cc,osbridge-crc)
|
||||
$(call cc,wrt400n cyg_crc32)
|
||||
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
|
||||
new file mode 100644
|
||||
index 0000000..23d703f
|
||||
--- /dev/null
|
||||
+++ b/tools/firmware-utils/src/tplink-safeloader.c
|
||||
@@ -0,0 +1,538 @@
|
||||
+/*
|
||||
+ Copyright (c) 2014, Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
+ All rights reserved.
|
||||
+
|
||||
+ Redistribution and use in source and binary forms, with or without
|
||||
+ modification, are permitted provided that the following conditions are met:
|
||||
+
|
||||
+ 1. Redistributions of source code must retain the above copyright notice,
|
||||
+ this list of conditions and the following disclaimer.
|
||||
+ 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
+ this list of conditions and the following disclaimer in the documentation
|
||||
+ and/or other materials provided with the distribution.
|
||||
+
|
||||
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+/*
|
||||
+ tplink-safeloader
|
||||
+
|
||||
+ Image generation tool for the TP-LINK SafeLoader as seen on
|
||||
+ TP-LINK Pharos devices (CPE210/220/510/520)
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+#include <assert.h>
|
||||
+#include <errno.h>
|
||||
+#include <error.h>
|
||||
+#include <stdbool.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdint.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
+#include <time.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include <arpa/inet.h>
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+
|
||||
+#include "md5.h"
|
||||
+
|
||||
+
|
||||
+#define ALIGN(x,a) ({ typeof(a) __a = (a); (((x) + __a - 1) & ~(__a - 1)); })
|
||||
+
|
||||
+
|
||||
+/** An image partition table entry */
|
||||
+struct image_partition_entry {
|
||||
+ const char *name;
|
||||
+ size_t size;
|
||||
+ uint8_t *data;
|
||||
+};
|
||||
+
|
||||
+/** A flash partition table entry */
|
||||
+struct flash_partition_entry {
|
||||
+ const char *name;
|
||||
+ uint32_t base;
|
||||
+ uint32_t size;
|
||||
+};
|
||||
+
|
||||
+
|
||||
+/** The content of the soft-version structure */
|
||||
+struct __attribute__((__packed__)) soft_version {
|
||||
+ uint32_t magic;
|
||||
+ uint32_t zero;
|
||||
+ uint8_t pad1;
|
||||
+ uint8_t version_major;
|
||||
+ uint8_t version_minor;
|
||||
+ uint8_t version_patch;
|
||||
+ uint8_t year_hi;
|
||||
+ uint8_t year_lo;
|
||||
+ uint8_t month;
|
||||
+ uint8_t day;
|
||||
+ uint32_t rev;
|
||||
+ uint8_t pad2;
|
||||
+};
|
||||
+
|
||||
+
|
||||
+static const uint8_t jffs2_eof_mark[4] = {0xde, 0xad, 0xc0, 0xde};
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ Salt for the MD5 hash
|
||||
+
|
||||
+ Fortunately, TP-LINK seems to use the same salt for most devices which use
|
||||
+ the new image format.
|
||||
+*/
|
||||
+static const uint8_t md5_salt[16] = {
|
||||
+ 0x7a, 0x2b, 0x15, 0xed,
|
||||
+ 0x9b, 0x98, 0x59, 0x6d,
|
||||
+ 0xe5, 0x04, 0xab, 0x44,
|
||||
+ 0xac, 0x2a, 0x9f, 0x4e,
|
||||
+};
|
||||
+
|
||||
+
|
||||
+/** Vendor information for CPE210/220/510/520 */
|
||||
+static const unsigned char cpe510_vendor[] = "\x00\x00\x00\x1f""CPE510(TP-LINK|UN|N300-5):1.0\r\n";
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ The flash partition table for CPE210/220/510/520;
|
||||
+ it is the same as the one used by the stock images.
|
||||
+*/
|
||||
+static const struct flash_partition_entry cpe510_partitions[] = {
|
||||
+ {"fs-uboot", 0x00000, 0x20000},
|
||||
+ {"partition-table", 0x20000, 0x02000},
|
||||
+ {"default-mac", 0x30000, 0x00020},
|
||||
+ {"product-info", 0x31100, 0x00100},
|
||||
+ {"signature", 0x32000, 0x00400},
|
||||
+ {"os-image", 0x40000, 0x170000},
|
||||
+ {"soft-version", 0x1b0000, 0x00100},
|
||||
+ {"support-list", 0x1b1000, 0x00400},
|
||||
+ {"file-system", 0x1c0000, 0x600000},
|
||||
+ {"user-config", 0x7c0000, 0x10000},
|
||||
+ {"default-config", 0x7d0000, 0x10000},
|
||||
+ {"log", 0x7e0000, 0x10000},
|
||||
+ {"radio", 0x7f0000, 0x10000},
|
||||
+ {NULL, 0, 0}
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ The support list for CPE210/220/510/520
|
||||
+
|
||||
+ The stock images also contain strings for two more devices: BS510 and BS210.
|
||||
+ At the moment, there exists no public information about these devices.
|
||||
+*/
|
||||
+static const unsigned char cpe510_support_list[] =
|
||||
+ "\x00\x00\x00\xc8\x00\x00\x00\x00"
|
||||
+ "SupportList:\r\n"
|
||||
+ "CPE510(TP-LINK|UN|N300-5):1.0\r\n"
|
||||
+ "CPE520(TP-LINK|UN|N300-5):1.0\r\n"
|
||||
+ "CPE210(TP-LINK|UN|N300-2):1.0\r\n"
|
||||
+ "CPE220(TP-LINK|UN|N300-2):1.0\r\n"
|
||||
+ "\r\n\xff";
|
||||
+
|
||||
+
|
||||
+/** Allocates a new image partition */
|
||||
+struct image_partition_entry alloc_image_partition(const char *name, size_t len) {
|
||||
+ struct image_partition_entry entry = {name, len, malloc(len)};
|
||||
+ if (!entry.data)
|
||||
+ error(1, errno, "malloc");
|
||||
+
|
||||
+ return entry;
|
||||
+}
|
||||
+
|
||||
+/** Frees an image partition */
|
||||
+void free_image_partition(struct image_partition_entry entry) {
|
||||
+ free(entry.data);
|
||||
+}
|
||||
+
|
||||
+/** Generates the partition-table partition */
|
||||
+struct image_partition_entry make_partition_table(const struct flash_partition_entry *p) {
|
||||
+ struct image_partition_entry entry = alloc_image_partition("partition-table", 0x800);
|
||||
+
|
||||
+ char *s = (char *)entry.data, *end = (char *)(s+entry.size);
|
||||
+
|
||||
+ *(s++) = 0x00;
|
||||
+ *(s++) = 0x04;
|
||||
+ *(s++) = 0x00;
|
||||
+ *(s++) = 0x00;
|
||||
+
|
||||
+ size_t i;
|
||||
+ for (i = 0; p[i].name; i++) {
|
||||
+ size_t len = end-s;
|
||||
+ size_t w = snprintf(s, len, "partition %s base 0x%05x size 0x%05x\n", p[i].name, p[i].base, p[i].size);
|
||||
+
|
||||
+ if (w > len-1)
|
||||
+ error(1, 0, "flash partition table overflow?");
|
||||
+
|
||||
+ s += w;
|
||||
+ }
|
||||
+
|
||||
+ s++;
|
||||
+
|
||||
+ memset(s, 0xff, end-s);
|
||||
+
|
||||
+ return entry;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/** Generates a binary-coded decimal representation of an integer in the range [0, 99] */
|
||||
+static inline uint8_t bcd(uint8_t v) {
|
||||
+ return 0x10 * (v/10) + v%10;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/** Generates the soft-version partition */
|
||||
+struct image_partition_entry make_soft_version(uint32_t rev) {
|
||||
+ struct image_partition_entry entry = alloc_image_partition("soft-version", sizeof(struct soft_version));
|
||||
+ struct soft_version *s = (struct soft_version *)entry.data;
|
||||
+
|
||||
+ time_t t;
|
||||
+ if (time(&t) == (time_t)(-1))
|
||||
+ error(1, errno, "time");
|
||||
+
|
||||
+ struct tm *tm = localtime(&t);
|
||||
+
|
||||
+ s->magic = htonl(0x0000000c);
|
||||
+ s->zero = 0;
|
||||
+ s->pad1 = 0xff;
|
||||
+
|
||||
+ s->version_major = 0;
|
||||
+ s->version_minor = 0;
|
||||
+ s->version_patch = 0;
|
||||
+
|
||||
+ s->year_hi = bcd((1900+tm->tm_year)/100);
|
||||
+ s->year_lo = bcd(tm->tm_year%100);
|
||||
+ s->month = bcd(tm->tm_mon+1);
|
||||
+ s->day = bcd(tm->tm_mday);
|
||||
+ s->rev = htonl(rev);
|
||||
+
|
||||
+ s->pad2 = 0xff;
|
||||
+
|
||||
+ return entry;
|
||||
+}
|
||||
+
|
||||
+/** Generates the support-list partition */
|
||||
+struct image_partition_entry make_support_list(const unsigned char *support_list, size_t len) {
|
||||
+ struct image_partition_entry entry = alloc_image_partition("support-list", len);
|
||||
+ memcpy(entry.data, support_list, len);
|
||||
+ return entry;
|
||||
+}
|
||||
+
|
||||
+/** Creates a new image partition with an arbitrary name from a file */
|
||||
+struct image_partition_entry read_file(const char *part_name, const char *filename, bool add_jffs2_eof) {
|
||||
+ struct stat statbuf;
|
||||
+
|
||||
+ if (stat(filename, &statbuf) < 0)
|
||||
+ error(1, errno, "unable to stat file `%s'", filename);
|
||||
+
|
||||
+ size_t len = statbuf.st_size;
|
||||
+
|
||||
+ if (add_jffs2_eof)
|
||||
+ len = ALIGN(len, 0x10000) + sizeof(jffs2_eof_mark);
|
||||
+
|
||||
+ struct image_partition_entry entry = alloc_image_partition(part_name, len);
|
||||
+
|
||||
+ FILE *file = fopen(filename, "rb");
|
||||
+ if (!file)
|
||||
+ error(1, errno, "unable to open file `%s'", filename);
|
||||
+
|
||||
+ if (fread(entry.data, statbuf.st_size, 1, file) != 1)
|
||||
+ error(1, errno, "unable to read file `%s'", filename);
|
||||
+
|
||||
+ if (add_jffs2_eof) {
|
||||
+ uint8_t *eof = entry.data + statbuf.st_size, *end = entry.data+entry.size;
|
||||
+
|
||||
+ memset(eof, 0xff, end - eof - sizeof(jffs2_eof_mark));
|
||||
+ memcpy(end - sizeof(jffs2_eof_mark), jffs2_eof_mark, sizeof(jffs2_eof_mark));
|
||||
+ }
|
||||
+
|
||||
+ fclose(file);
|
||||
+
|
||||
+ return entry;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ Copies a list of image partitions into an image buffer and generates the image partition table while doing so
|
||||
+
|
||||
+ Example image partition table:
|
||||
+
|
||||
+ fwup-ptn partition-table base 0x00800 size 0x00800
|
||||
+ fwup-ptn os-image base 0x01000 size 0x113b45
|
||||
+ fwup-ptn file-system base 0x114b45 size 0x1d0004
|
||||
+ fwup-ptn support-list base 0x2e4b49 size 0x000d1
|
||||
+
|
||||
+ Each line of the partition table is terminated with the bytes 09 0d 0a ("\t\r\n"),
|
||||
+ the end of the partition table is marked with a zero byte.
|
||||
+
|
||||
+ The firmware image must contain at least the partition-table and support-list partitions
|
||||
+ to be accepted. There aren't any alignment constraints for the image partitions.
|
||||
+
|
||||
+ The partition-table partition contains the actual flash layout; partitions
|
||||
+ from the image partition table are mapped to the corresponding flash partitions during
|
||||
+ the firmware upgrade. The support-list partition contains a list of devices supported by
|
||||
+ the firmware image.
|
||||
+
|
||||
+ The base offsets in the firmware partition table are relative to the end
|
||||
+ of the vendor information block, so the partition-table partition will
|
||||
+ actually start at offset 0x1814 of the image.
|
||||
+
|
||||
+ I think partition-table must be the first partition in the firmware image.
|
||||
+*/
|
||||
+void put_partitions(uint8_t *buffer, const struct image_partition_entry *parts) {
|
||||
+ size_t i;
|
||||
+ char *image_pt = (char *)buffer, *end = image_pt + 0x800;
|
||||
+
|
||||
+ size_t base = 0x800;
|
||||
+ for (i = 0; parts[i].name; i++) {
|
||||
+ memcpy(buffer + base, parts[i].data, parts[i].size);
|
||||
+
|
||||
+ size_t len = end-image_pt;
|
||||
+ size_t w = snprintf(image_pt, len, "fwup-ptn %s base 0x%05x size 0x%05x\t\r\n", parts[i].name, (unsigned)base, (unsigned)parts[i].size);
|
||||
+
|
||||
+ if (w > len-1)
|
||||
+ error(1, 0, "image partition table overflow?");
|
||||
+
|
||||
+ image_pt += w;
|
||||
+
|
||||
+ base += parts[i].size;
|
||||
+ }
|
||||
+
|
||||
+ image_pt++;
|
||||
+
|
||||
+ memset(image_pt, 0xff, end-image_pt);
|
||||
+}
|
||||
+
|
||||
+/** Generates and writes the image MD5 checksum */
|
||||
+void put_md5(uint8_t *md5, uint8_t *buffer, unsigned int len) {
|
||||
+ MD5_CTX ctx;
|
||||
+
|
||||
+ MD5_Init(&ctx);
|
||||
+ MD5_Update(&ctx, md5_salt, (unsigned int)sizeof(md5_salt));
|
||||
+ MD5_Update(&ctx, buffer, len);
|
||||
+ MD5_Final(md5, &ctx);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ Generates the firmware image in factory format
|
||||
+
|
||||
+ Image format:
|
||||
+
|
||||
+ Bytes (hex) Usage
|
||||
+ ----------- -----
|
||||
+ 0000-0003 Image size (4 bytes, big endian)
|
||||
+ 0004-0013 MD5 hash (hash of a 16 byte salt and the image data starting with byte 0x14)
|
||||
+ 0014-1013 Vendor information (4096 bytes, padded with 0xff; there seem to be older
|
||||
+ (VxWorks-based) TP-LINK devices which use a smaller vendor information block)
|
||||
+ 1014-1813 Image partition table (2048 bytes, padded with 0xff)
|
||||
+ 1814-xxxx Firmware partitions
|
||||
+*/
|
||||
+void * generate_factory_image(const unsigned char *vendor, size_t vendor_len, const struct image_partition_entry *parts, size_t *len) {
|
||||
+ *len = 0x1814;
|
||||
+
|
||||
+ size_t i;
|
||||
+ for (i = 0; parts[i].name; i++)
|
||||
+ *len += parts[i].size;
|
||||
+
|
||||
+ uint8_t *image = malloc(*len);
|
||||
+ if (!image)
|
||||
+ error(1, errno, "malloc");
|
||||
+
|
||||
+ image[0] = *len >> 24;
|
||||
+ image[1] = *len >> 16;
|
||||
+ image[2] = *len >> 8;
|
||||
+ image[3] = *len;
|
||||
+
|
||||
+ memcpy(image+0x14, vendor, vendor_len);
|
||||
+ memset(image+0x14+vendor_len, 0xff, 4096-vendor_len);
|
||||
+
|
||||
+ put_partitions(image + 0x1014, parts);
|
||||
+ put_md5(image+0x04, image+0x14, *len-0x14);
|
||||
+
|
||||
+ return image;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ Generates the firmware image in sysupgrade format
|
||||
+
|
||||
+ This makes some assumptions about the provided flash and image partition tables and
|
||||
+ should be generalized when TP-LINK starts building its safeloader into hardware with
|
||||
+ different flash layouts.
|
||||
+*/
|
||||
+void * generate_sysupgrade_image(const struct flash_partition_entry *flash_parts, const struct image_partition_entry *image_parts, size_t *len) {
|
||||
+ const struct flash_partition_entry *flash_os_image = &flash_parts[5];
|
||||
+ const struct flash_partition_entry *flash_soft_version = &flash_parts[6];
|
||||
+ const struct flash_partition_entry *flash_support_list = &flash_parts[7];
|
||||
+ const struct flash_partition_entry *flash_file_system = &flash_parts[8];
|
||||
+
|
||||
+ const struct image_partition_entry *image_os_image = &image_parts[3];
|
||||
+ const struct image_partition_entry *image_soft_version = &image_parts[1];
|
||||
+ const struct image_partition_entry *image_support_list = &image_parts[2];
|
||||
+ const struct image_partition_entry *image_file_system = &image_parts[4];
|
||||
+
|
||||
+ assert(strcmp(flash_os_image->name, "os-image") == 0);
|
||||
+ assert(strcmp(flash_soft_version->name, "soft-version") == 0);
|
||||
+ assert(strcmp(flash_support_list->name, "support-list") == 0);
|
||||
+ assert(strcmp(flash_file_system->name, "file-system") == 0);
|
||||
+
|
||||
+ assert(strcmp(image_os_image->name, "os-image") == 0);
|
||||
+ assert(strcmp(image_soft_version->name, "soft-version") == 0);
|
||||
+ assert(strcmp(image_support_list->name, "support-list") == 0);
|
||||
+ assert(strcmp(image_file_system->name, "file-system") == 0);
|
||||
+
|
||||
+ if (image_os_image->size > flash_os_image->size)
|
||||
+ error(1, 0, "kernel image too big (more than %u bytes)", (unsigned)flash_os_image->size);
|
||||
+ if (image_file_system->size > flash_file_system->size)
|
||||
+ error(1, 0, "rootfs image too big (more than %u bytes)", (unsigned)flash_file_system->size);
|
||||
+
|
||||
+ *len = flash_file_system->base - flash_os_image->base + image_file_system->size;
|
||||
+
|
||||
+ uint8_t *image = malloc(*len);
|
||||
+ if (!image)
|
||||
+ error(1, errno, "malloc");
|
||||
+
|
||||
+ memset(image, 0xff, *len);
|
||||
+
|
||||
+ memcpy(image, image_os_image->data, image_os_image->size);
|
||||
+ memcpy(image + flash_soft_version->base - flash_os_image->base, image_soft_version->data, image_soft_version->size);
|
||||
+ memcpy(image + flash_support_list->base - flash_os_image->base, image_support_list->data, image_support_list->size);
|
||||
+ memcpy(image + flash_file_system->base - flash_os_image->base, image_file_system->data, image_file_system->size);
|
||||
+
|
||||
+ return image;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/** Generates an image for CPE210/220/510/520 and writes it to a file */
|
||||
+static void do_cpe510(const char *output, const char *kernel_image, const char *rootfs_image, uint32_t rev, bool add_jffs2_eof, bool sysupgrade) {
|
||||
+ struct image_partition_entry parts[6] = {};
|
||||
+
|
||||
+ parts[0] = make_partition_table(cpe510_partitions);
|
||||
+ parts[1] = make_soft_version(rev);
|
||||
+ parts[2] = make_support_list(cpe510_support_list, sizeof(cpe510_support_list)-1);
|
||||
+ parts[3] = read_file("os-image", kernel_image, false);
|
||||
+ parts[4] = read_file("file-system", rootfs_image, add_jffs2_eof);
|
||||
+
|
||||
+ size_t len;
|
||||
+ void *image;
|
||||
+ if (sysupgrade)
|
||||
+ image = generate_sysupgrade_image(cpe510_partitions, parts, &len);
|
||||
+ else
|
||||
+ image = generate_factory_image(cpe510_vendor, sizeof(cpe510_vendor)-1, parts, &len);
|
||||
+
|
||||
+ FILE *file = fopen(output, "wb");
|
||||
+ if (!file)
|
||||
+ error(1, errno, "unable to open output file");
|
||||
+
|
||||
+ if (fwrite(image, len, 1, file) != 1)
|
||||
+ error(1, 0, "unable to write output file");
|
||||
+
|
||||
+ fclose(file);
|
||||
+
|
||||
+ free(image);
|
||||
+
|
||||
+ size_t i;
|
||||
+ for (i = 0; parts[i].name; i++)
|
||||
+ free_image_partition(parts[i]);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/** Usage output */
|
||||
+void usage(const char *argv0) {
|
||||
+ fprintf(stderr,
|
||||
+ "Usage: %s [OPTIONS...]\n"
|
||||
+ "\n"
|
||||
+ "Options:\n"
|
||||
+ " -B <board> create image for the board specified with <board>\n"
|
||||
+ " -k <file> read kernel image from the file <file>\n"
|
||||
+ " -r <file> read rootfs image from the file <file>\n"
|
||||
+ " -o <file> write output to the file <file>\n"
|
||||
+ " -V <rev> sets the revision number to <rev>\n"
|
||||
+ " -j add jffs2 end-of-filesystem markers\n"
|
||||
+ " -S create sysupgrade instead of factory image\n"
|
||||
+ " -h show this help\n",
|
||||
+ argv0
|
||||
+ );
|
||||
+};
|
||||
+
|
||||
+
|
||||
+int main(int argc, char *argv[]) {
|
||||
+ const char *board = NULL, *kernel_image = NULL, *rootfs_image = NULL, *output = NULL;
|
||||
+ bool add_jffs2_eof = false, sysupgrade = false;
|
||||
+ unsigned rev = 0;
|
||||
+
|
||||
+ while (true) {
|
||||
+ int c;
|
||||
+
|
||||
+ c = getopt(argc, argv, "B:k:r:o:V:jSh");
|
||||
+ if (c == -1)
|
||||
+ break;
|
||||
+
|
||||
+ switch (c) {
|
||||
+ case 'B':
|
||||
+ board = optarg;
|
||||
+ break;
|
||||
+
|
||||
+ case 'k':
|
||||
+ kernel_image = optarg;
|
||||
+ break;
|
||||
+
|
||||
+ case 'r':
|
||||
+ rootfs_image = optarg;
|
||||
+ break;
|
||||
+
|
||||
+ case 'o':
|
||||
+ output = optarg;
|
||||
+ break;
|
||||
+
|
||||
+ case 'V':
|
||||
+ sscanf(optarg, "r%u", &rev);
|
||||
+ break;
|
||||
+
|
||||
+ case 'j':
|
||||
+ add_jffs2_eof = true;
|
||||
+ break;
|
||||
+
|
||||
+ case 'S':
|
||||
+ sysupgrade = true;
|
||||
+ break;
|
||||
+
|
||||
+ case 'h':
|
||||
+ usage(argv[0]);
|
||||
+ return 0;
|
||||
+
|
||||
+ default:
|
||||
+ usage(argv[0]);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!board)
|
||||
+ error(1, 0, "no board has been specified");
|
||||
+ if (!kernel_image)
|
||||
+ error(1, 0, "no kernel image has been specified");
|
||||
+ if (!rootfs_image)
|
||||
+ error(1, 0, "no rootfs image has been specified");
|
||||
+ if (!output)
|
||||
+ error(1, 0, "no output filename has been specified");
|
||||
+
|
||||
+ if (strcmp(board, "CPE510") == 0)
|
||||
+ do_cpe510(output, kernel_image, rootfs_image, rev, add_jffs2_eof, sysupgrade);
|
||||
+ else
|
||||
+ error(1, 0, "unsupported board %s", board);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
@ -1,471 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 26 Nov 2014 19:57:50 +0100
|
||||
Subject: ar71xx: add support for TP-LINK CPE210/220/510/520
|
||||
|
||||
This adds support for the TP-LINK CPE210/220/510/520 (Pharos series). These
|
||||
devices are very similar to the Ubiquiti NanoStations, but with better specs:
|
||||
faster CPU, more RAM, 2x2 MIMO.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index eb96338..d9c7328 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -43,6 +43,9 @@ get_status_led() {
|
||||
cap4200ag)
|
||||
status_led="senao:green:pwr"
|
||||
;;
|
||||
+ cpe510)
|
||||
+ status_led="tp-link:green:link4"
|
||||
+ ;;
|
||||
db120)
|
||||
status_led="db120:green:status"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index 0d085be..a6e6721 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -61,6 +61,16 @@ carambola2)
|
||||
ucidef_set_led_wlan "wlan" "WLAN" "carambola2:green:wlan" "phy0tpt"
|
||||
;;
|
||||
|
||||
+cpe510)
|
||||
+ ucidef_set_led_switch "lan0" "LAN0" "tp-link:green:lan0" "switch0" "0x20"
|
||||
+ ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
|
||||
+ ucidef_set_rssimon "wlan0" "40000" "1"
|
||||
+ ucidef_set_led_rssi "rssilow" "RSSILOW" "tp-link:green:link1" "wlan0" "1" "100" "0" "13"
|
||||
+ ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "tp-link:green:link2" "wlan0" "26" "100" "-25" "13"
|
||||
+ ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "tp-link:green:link3" "wlan0" "51" "100" "-50" "13"
|
||||
+ ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "tp-link:green:link4" "wlan0" "76" "100" "-75" "13"
|
||||
+ ;;
|
||||
+
|
||||
db120)
|
||||
ucidef_set_led_usbdev "usb" "USB" "db120:green:usb" "1-1"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 4be30b8..78f4992 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -62,6 +62,13 @@ tl-wdr4900-v2)
|
||||
ucidef_add_switch_vlan "switch0" "2" "1 6"
|
||||
;;
|
||||
|
||||
+cpe510)
|
||||
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
||||
+ ucidef_add_switch "switch0" "1" "1"
|
||||
+ ucidef_add_switch_vlan "switch0" "1" "0t 5"
|
||||
+ ucidef_add_switch_vlan "switch0" "2" "0t 4"
|
||||
+ ;;
|
||||
+
|
||||
db120 |\
|
||||
rb-2011l | \
|
||||
rb-2011uas |\
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 1709356..9fb4102 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -229,6 +229,39 @@ tplink_board_detect() {
|
||||
AR71XX_MODEL="$model $hwver"
|
||||
}
|
||||
|
||||
+tplink_pharos_get_model_string() {
|
||||
+ local part
|
||||
+ part=$(find_mtd_part 'product-info')
|
||||
+ [ -z "$part" ] && return 1
|
||||
+
|
||||
+ # The returned string will end with \r\n, but we don't remove it here
|
||||
+ # to simplify matching against it in the sysupgrade image check
|
||||
+ dd if=$part bs=1 skip=4360 2>/dev/null | head -n 1
|
||||
+}
|
||||
+
|
||||
+tplink_pharos_board_detect() {
|
||||
+ local model_string="$(tplink_pharos_get_model_string | tr -d '\r')"
|
||||
+ local oIFS="$IFS"; IFS=":"; set -- $model_string; IFS="$oIFS"
|
||||
+ local model
|
||||
+
|
||||
+ case "$1" in
|
||||
+ 'CPE210(TP-LINK|UN|N300-2)')
|
||||
+ model='TP-Link CPE210'
|
||||
+ ;;
|
||||
+ 'CPE220(TP-LINK|UN|N300-2)')
|
||||
+ model='TP-Link CPE220'
|
||||
+ ;;
|
||||
+ 'CPE510(TP-LINK|UN|N300-5)')
|
||||
+ model='TP-Link CPE510'
|
||||
+ ;;
|
||||
+ 'CPE520(TP-LINK|UN|N300-5)')
|
||||
+ model='TP-Link CPE520'
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
+ [ -n "$model" ] && AR71XX_MODEL="$model v$2"
|
||||
+}
|
||||
+
|
||||
ar71xx_board_detect() {
|
||||
local machine
|
||||
local name
|
||||
@@ -302,6 +335,10 @@ ar71xx_board_detect() {
|
||||
*CAP4200AG)
|
||||
name="cap4200ag"
|
||||
;;
|
||||
+ *"CPE210/220/510/520")
|
||||
+ name="cpe510"
|
||||
+ tplink_pharos_board_detect
|
||||
+ ;;
|
||||
*"DB120 reference board")
|
||||
name="db120"
|
||||
;;
|
||||
@@ -754,11 +791,8 @@ ar71xx_board_detect() {
|
||||
;;
|
||||
esac
|
||||
|
||||
- case "$machine" in
|
||||
- *TL-WR* | *TL-WA* | *TL-MR* | *TL-WD* | *Archer*)
|
||||
+ [ -z "$AR71XX_MODEL" ] && [ "${machine:0:8}" = 'TP-LINK ' ] && \
|
||||
tplink_board_detect "$machine"
|
||||
- ;;
|
||||
- esac
|
||||
|
||||
[ -z "$name" ] && name="unknown"
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index eeaac6a..c583215 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -70,6 +70,33 @@ tplink_get_image_boot_size() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
+tplink_pharos_check_image() {
|
||||
+ local magic_long="$(get_magic_long "$1")"
|
||||
+ [ "$magic_long" != "7f454c46" ] && {
|
||||
+ echo "Invalid image magic '$magic_long'"
|
||||
+ return 1
|
||||
+ }
|
||||
+
|
||||
+ local model_string="$(tplink_pharos_get_model_string)"
|
||||
+ local line
|
||||
+
|
||||
+ # Here $1 is given to dd directly instead of get_image as otherwise the skip
|
||||
+ # will take almost a second (as dd can't seek then)
|
||||
+ #
|
||||
+ # This will fail if the image isn't local, but that's fine: as the
|
||||
+ # read loop won't be executed at all, it will return true, so the image
|
||||
+ # is accepted (loading the first 1.5M of a remote image for this check seems
|
||||
+ # a bit extreme)
|
||||
+ dd if="$1" bs=1 skip=1511432 count=1024 2>/dev/null | while read line; do
|
||||
+ [ "$line" == "$model_string" ] && break
|
||||
+ done || {
|
||||
+ echo "Unsupported image (model not in support-list)"
|
||||
+ return 1
|
||||
+ }
|
||||
+
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
seama_get_type_magic() {
|
||||
get_image "$@" | dd bs=1 count=4 skip=53 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
@@ -214,6 +241,11 @@ platform_check_image() {
|
||||
return 0
|
||||
;;
|
||||
|
||||
+ cpe510)
|
||||
+ tplink_pharos_check_image "$1" && return 0
|
||||
+ return 1
|
||||
+ ;;
|
||||
+
|
||||
dir-825-b1 | \
|
||||
tew-673gru)
|
||||
dir825b_check_image "$1" && return 0
|
||||
diff --git a/target/linux/ar71xx/config-3.10 b/target/linux/ar71xx/config-3.10
|
||||
index 482914a..14b59f7 100644
|
||||
--- a/target/linux/ar71xx/config-3.10
|
||||
+++ b/target/linux/ar71xx/config-3.10
|
||||
@@ -39,6 +39,7 @@ CONFIG_ATH79_MACH_AW_NR580=y
|
||||
CONFIG_ATH79_MACH_BHU_BXU2000N2_A=y
|
||||
CONFIG_ATH79_MACH_CAP4200AG=y
|
||||
CONFIG_ATH79_MACH_CARAMBOLA2=y
|
||||
+CONFIG_ATH79_MACH_CPE510=y
|
||||
CONFIG_ATH79_MACH_DB120=y
|
||||
CONFIG_ATH79_MACH_DIR_505_A1=y
|
||||
CONFIG_ATH79_MACH_DIR_600_A1=y
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
|
||||
new file mode 100644
|
||||
index 0000000..8bf5c0f
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-cpe510.c
|
||||
@@ -0,0 +1,107 @@
|
||||
+/*
|
||||
+ * TP-LINK CPE210/220/510/520 board support
|
||||
+ *
|
||||
+ * Copyright (C) 2014 Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
+ *
|
||||
+ * 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/gpio.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
||||
+#include <asm/mach-ath79/ath79.h>
|
||||
+#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+
|
||||
+#include "common.h"
|
||||
+#include "dev-eth.h"
|
||||
+#include "dev-gpio-buttons.h"
|
||||
+#include "dev-leds-gpio.h"
|
||||
+#include "dev-m25p80.h"
|
||||
+#include "dev-wmac.h"
|
||||
+#include "machtypes.h"
|
||||
+
|
||||
+
|
||||
+#define CPE510_GPIO_LED_LAN0 11
|
||||
+#define CPE510_GPIO_LED_LAN1 12
|
||||
+#define CPE510_GPIO_LED_L1 13
|
||||
+#define CPE510_GPIO_LED_L2 14
|
||||
+#define CPE510_GPIO_LED_L3 15
|
||||
+#define CPE510_GPIO_LED_L4 16
|
||||
+
|
||||
+#define CPE510_GPIO_BTN_RESET 4
|
||||
+
|
||||
+#define CPE510_KEYS_POLL_INTERVAL 20 /* msecs */
|
||||
+#define CPE510_KEYS_DEBOUNCE_INTERVAL (3 * CPE510_KEYS_POLL_INTERVAL)
|
||||
+
|
||||
+
|
||||
+static struct gpio_led cpe510_leds_gpio[] __initdata = {
|
||||
+ {
|
||||
+ .name = "tp-link:green:lan0",
|
||||
+ .gpio = CPE510_GPIO_LED_LAN0,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:lan1",
|
||||
+ .gpio = CPE510_GPIO_LED_LAN1,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:link1",
|
||||
+ .gpio = CPE510_GPIO_LED_L1,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:link2",
|
||||
+ .gpio = CPE510_GPIO_LED_L2,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:link3",
|
||||
+ .gpio = CPE510_GPIO_LED_L3,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:link4",
|
||||
+ .gpio = CPE510_GPIO_LED_L4,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct gpio_keys_button cpe510_gpio_keys[] __initdata = {
|
||||
+ {
|
||||
+ .desc = "Reset button",
|
||||
+ .type = EV_KEY,
|
||||
+ .code = KEY_RESTART,
|
||||
+ .debounce_interval = CPE510_KEYS_DEBOUNCE_INTERVAL,
|
||||
+ .gpio = CPE510_GPIO_BTN_RESET,
|
||||
+ .active_low = 1,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+
|
||||
+static void __init cpe510_setup(void)
|
||||
+{
|
||||
+ u8 *mac = (u8 *) KSEG1ADDR(0x1f830008);
|
||||
+ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
|
||||
+
|
||||
+ /* Disable JTAG, enabling GPIOs 0-3 */
|
||||
+ /* Configure OBS4 line, for GPIO 4*/
|
||||
+ ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE,
|
||||
+ AR934X_GPIO_FUNC_CLK_OBS4_EN);
|
||||
+
|
||||
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(cpe510_leds_gpio),
|
||||
+ cpe510_leds_gpio);
|
||||
+
|
||||
+ ath79_register_gpio_keys_polled(1, CPE510_KEYS_POLL_INTERVAL,
|
||||
+ ARRAY_SIZE(cpe510_gpio_keys),
|
||||
+ cpe510_gpio_keys);
|
||||
+
|
||||
+ ath79_register_m25p80(NULL);
|
||||
+
|
||||
+ ath79_register_mdio(1, 0);
|
||||
+ ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
|
||||
+ ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
|
||||
+ ath79_register_eth(1);
|
||||
+
|
||||
+ ath79_register_wmac(ee, mac);
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_CPE510, "CPE510", "TP-LINK CPE210/220/510/520",
|
||||
+ cpe510_setup);
|
||||
diff --git a/target/linux/ar71xx/generic/profiles/tp-link.mk b/target/linux/ar71xx/generic/profiles/tp-link.mk
|
||||
index 78333be..a9d170c 100644
|
||||
--- a/target/linux/ar71xx/generic/profiles/tp-link.mk
|
||||
+++ b/target/linux/ar71xx/generic/profiles/tp-link.mk
|
||||
@@ -16,6 +16,17 @@ endef
|
||||
$(eval $(call Profile,ARCHERC7))
|
||||
|
||||
|
||||
+define Profile/CPE510
|
||||
+ NAME:=TP-LINK CPE210/220/510/520
|
||||
+ PACKAGES:=rssileds
|
||||
+endef
|
||||
+
|
||||
+define Profile/CPE510/Description
|
||||
+ Package set optimized for the TP-LINK CPE210/220/510/520.
|
||||
+endef
|
||||
+$(eval $(call Profile,CPE510))
|
||||
+
|
||||
+
|
||||
define Profile/TLMR10U
|
||||
NAME:=TP-LINK TL-MR10U
|
||||
PACKAGES:=kmod-usb-core kmod-usb2
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 425fcc5..55f11dc 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -261,6 +261,7 @@ cameo_ap121_mtdlayout_8M=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,64k(mac)ro,64k
|
||||
cameo_db120_mtdlayout=mtdparts=spi0.0:64k(uboot)ro,64k(nvram)ro,15936k(firmware),192k(lang)ro,64k(mac)ro,64k(art)ro
|
||||
cameo_db120_mtdlayout_8M=mtdparts=spi0.0:64k(uboot)ro,64k(nvram)ro,7872k(firmware),128k(lang)ro,64k(art)ro
|
||||
cap4200ag_mtdlayout=mtdparts=spi0.0:256k(u-boot),64k(u-boot-env),320k(custom)ro,1536k(kernel),12096k(rootfs),2048k(failsafe),64k(art),13632k@0xa0000(firmware)
|
||||
+cpe510_mtdlayout=mtdparts=spi0.0:128k(u-boot)ro,64k(pation-table)ro,64k(product-info)ro,1536k(kernel),6144k(rootfs),192k(config)ro,64k(ART)ro,7680k@0x40000(firmware)
|
||||
eap300v2_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),320k(custom),13632k(firmware),2048k(failsafe),64k(art)ro
|
||||
db120_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
|
||||
cameo_ap94_mtdlayout=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,6208k(firmware),64k(caldata)ro,1600k(unknown)ro,64k@0x7f0000(caldata_copy)
|
||||
@@ -811,6 +812,32 @@ define Image/Build/TPLINK-LZMA/initramfs
|
||||
endef
|
||||
|
||||
|
||||
+Image/Build/TPLINK-SAFELOADER/buildkernel=$(call PatchKernelLzma,$(2),$(3) $(4))
|
||||
+
|
||||
+define Image/Build/TPLINK-SAFELOADER
|
||||
+ -rm -rf $(KDIR)/lzma-loader
|
||||
+ $(LOADER_MAKE) LOADER=loader-$(2).elf\
|
||||
+ LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \
|
||||
+ LOADER_DATA="$(KDIR_TMP)/vmlinux-$(2).bin.lzma" BOARD="$(2)" \
|
||||
+ compile loader.elf
|
||||
+
|
||||
+ -$(STAGING_DIR_HOST)/bin/tplink-safeloader \
|
||||
+ -B $(5) \
|
||||
+ -k $(KDIR)/loader-$(2).elf \
|
||||
+ -r $(KDIR)/root.$(1) \
|
||||
+ -V $(REVISION) \
|
||||
+ -j \
|
||||
+ -o $(call factoryname,$(1),$(2))
|
||||
+ -$(STAGING_DIR_HOST)/bin/tplink-safeloader \
|
||||
+ -B $(5) \
|
||||
+ -k $(KDIR)/loader-$(2).elf \
|
||||
+ -r $(KDIR)/root.$(1) \
|
||||
+ -V $(REVISION) \
|
||||
+ -j -S \
|
||||
+ -o $(call sysupname,$(1),$(2))
|
||||
+endef
|
||||
+
|
||||
+
|
||||
define Image/Build/CyberTAN
|
||||
echo -n '' > $(KDIR_TMP)/empty.bin
|
||||
$(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/image.tmp \
|
||||
@@ -1227,6 +1254,8 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWDR4310V1,tl-wdr4310-v1,TL-WDR4
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWDR4900V2,tl-wdr4900-v2,TL-WDR4900-v2,ttyS0,115200,0x49000002,1,8Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,MW4530RV1,mw4530r-v1,TL-WDR4300,ttyS0,115200,0x45300001,1,8Mlzma))
|
||||
|
||||
+$(eval $(call SingleProfile,TPLINK-SAFELOADER,64kraw,CPE510,cpe210-220-510-520,CPE510,ttyS0,115200,$$(cpe510_mtdlayout),CPE510))
|
||||
+
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,SMART-300,smart-300,SMART-300,ttyS0,115200,0x93410001,1,8Mlzma))
|
||||
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma))
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
index 3669f26..516d52d 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -16,22 +16,144 @@
|
||||
+@@ -16,22 +16,145 @@
|
||||
|
||||
enum ath79_mach_type {
|
||||
ATH79_MACH_GENERIC = 0,
|
||||
@@ -24,6 +24,7 @@
|
||||
+ ATH79_MACH_BHU_BXU2000N2_A1, /* BHU BXU2000n-2 A1 */
|
||||
+ ATH79_MACH_CAP4200AG, /* Senao CAP4200AG */
|
||||
+ ATH79_MACH_CARAMBOLA2, /* 8devices Carambola2 */
|
||||
++ ATH79_MACH_CPE510, /* TP-LINK CPE510 */
|
||||
ATH79_MACH_DB120, /* Atheros DB120 reference board */
|
||||
ATH79_MACH_PB44, /* Atheros PB44 reference board */
|
||||
+ ATH79_MACH_DIR_505_A1, /* D-Link DIR-505 rev. A1 */
|
||||
@@ -209,7 +210,7 @@
|
||||
config ATH79_MACH_AP121
|
||||
bool "Atheros AP121 reference board"
|
||||
select SOC_AR933X
|
||||
-@@ -9,64 +64,736 @@ config ATH79_MACH_AP121
|
||||
+@@ -9,64 +64,745 @@ config ATH79_MACH_AP121
|
||||
select ATH79_DEV_GPIO_BUTTONS
|
||||
select ATH79_DEV_LEDS_GPIO
|
||||
select ATH79_DEV_M25P80
|
||||
@@ -709,6 +710,15 @@
|
||||
|
||||
-config ATH79_MACH_AP81
|
||||
- bool "Atheros AP81 reference board"
|
||||
++config ATH79_MACH_CPE510
|
||||
++ bool "TP-LINK CPE510 support"
|
||||
++ select SOC_AR934X
|
||||
++ select ATH79_DEV_ETH
|
||||
++ select ATH79_DEV_GPIO_BUTTONS
|
||||
++ select ATH79_DEV_LEDS_GPIO
|
||||
++ select ATH79_DEV_M25P80
|
||||
++ select ATH79_DEV_WMAC
|
||||
++
|
||||
+config ATH79_MACH_TL_MR11U
|
||||
+ bool "TP-LINK TL-MR11U/TL-MR3040 support"
|
||||
+ select SOC_AR933X
|
||||
@@ -972,7 +982,7 @@
|
||||
|
||||
config ATH79_MACH_UBNT_XM
|
||||
bool "Ubiquiti Networks XM/UniFi boards"
|
||||
-@@ -83,6 +810,65 @@ config ATH79_MACH_UBNT_XM
|
||||
+@@ -83,6 +819,65 @@ config ATH79_MACH_UBNT_XM
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Ubiquiti Networks XM (rev 1.0) board.
|
||||
|
||||
@@ -1038,7 +1048,7 @@
|
||||
endmenu
|
||||
|
||||
config SOC_AR71XX
|
||||
-@@ -132,7 +918,10 @@ config ATH79_DEV_DSA
|
||||
+@@ -132,7 +927,10 @@ config ATH79_DEV_DSA
|
||||
config ATH79_DEV_ETH
|
||||
def_bool n
|
||||
|
||||
@@ -1050,7 +1060,7 @@
|
||||
def_bool n
|
||||
|
||||
config ATH79_DEV_GPIO_BUTTONS
|
||||
-@@ -164,4 +953,7 @@ config ATH79_PCI_ATH9K_FIXUP
|
||||
+@@ -164,4 +962,7 @@ config ATH79_PCI_ATH9K_FIXUP
|
||||
config ATH79_ROUTERBOOT
|
||||
def_bool n
|
||||
|
||||
@@ -1060,7 +1070,7 @@
|
||||
endif
|
||||
--- a/arch/mips/ath79/Makefile
|
||||
+++ b/arch/mips/ath79/Makefile
|
||||
-@@ -38,9 +38,90 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
|
||||
+@@ -38,9 +38,91 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
|
||||
#
|
||||
# Machines
|
||||
#
|
||||
@@ -1079,6 +1089,7 @@
|
||||
+obj-$(CONFIG_ATH79_MACH_AW_NR580) += mach-aw-nr580.o
|
||||
+obj-$(CONFIG_ATH79_MACH_BHU_BXU2000N2_A)+= mach-bhu-bxu2000n2-a.o
|
||||
+obj-$(CONFIG_ATH79_MACH_CAP4200AG) += mach-cap4200ag.o
|
||||
++obj-$(CONFIG_ATH79_MACH_CPE510) += mach-cpe510.o
|
||||
obj-$(CONFIG_ATH79_MACH_DB120) += mach-db120.o
|
||||
+obj-$(CONFIG_ATH79_MACH_DIR_505_A1) += mach-dir-505-a1.o
|
||||
+obj-$(CONFIG_ATH79_MACH_DIR_600_A1) += mach-dir-600-a1.o
|
@ -1,72 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 26 Nov 2014 23:20:33 +0100
|
||||
Subject: ar71xx: refactor ubnt xw board setup
|
||||
|
||||
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
|
||||
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
index ed2fd24..9413bd8 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
@@ -1,6 +1,8 @@
|
||||
---- a/arch/mips/ath79/mach-ubnt-xm.c
|
||||
-+++ b/arch/mips/ath79/mach-ubnt-xm.c
|
||||
-@@ -332,3 +332,60 @@ static void __init ubnt_uap_pro_setup(vo
|
||||
+Index: linux-3.10.49/arch/mips/ath79/mach-ubnt-xm.c
|
||||
+===================================================================
|
||||
+--- linux-3.10.49.orig/arch/mips/ath79/mach-ubnt-xm.c 2014-08-15 22:55:37.890080659 +0200
|
||||
++++ linux-3.10.49/arch/mips/ath79/mach-ubnt-xm.c 2014-08-15 22:58:31.061570912 +0200
|
||||
+@@ -332,3 +332,67 @@
|
||||
MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti UniFi AP Pro",
|
||||
ubnt_uap_pro_setup);
|
||||
|
||||
@@ -29,7 +31,7 @@
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
-+static void __init ubnt_nano_m_xw_setup(void)
|
||||
++static void __init ubnt_xw_init(void)
|
||||
+{
|
||||
+ u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000);
|
||||
+
|
||||
@@ -44,26 +46,36 @@
|
||||
+ ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL);
|
||||
+ ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL);
|
||||
+
|
||||
-+ ath79_register_mdio(0, ~(BIT(0) | BIT(1) | BIT(5)));
|
||||
+
|
||||
+ ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_MII_GMAC0 | AR934X_ETH_CFG_MII_GMAC0_SLAVE);
|
||||
+ ath79_init_mac(ath79_eth0_data.mac_addr,
|
||||
+ eeprom + UAP_PRO_MAC0_OFFSET, 0);
|
||||
+
|
||||
-+ /* GMAC0 is connected to an AR8326 switch */
|
||||
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
|
||||
++ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
++}
|
||||
++
|
||||
++static void __init ubnt_nano_m_xw_setup(void)
|
||||
++{
|
||||
++ ubnt_xw_init();
|
||||
++
|
||||
++ /* GMAC0 is connected to an AR8326 switch */
|
||||
++ ath79_register_mdio(0, ~(BIT(0) | BIT(1) | BIT(5)));
|
||||
+ ath79_eth0_data.phy_mask = (BIT(0) | BIT(1) | BIT(5));
|
||||
+ ath79_eth0_data.speed = SPEED_100;
|
||||
+ ath79_eth0_data.duplex = DUPLEX_FULL;
|
||||
-+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
+ ath79_register_eth(0);
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW",
|
||||
+ ubnt_nano_m_xw_setup);
|
||||
++
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -124,6 +124,7 @@ enum ath79_mach_type {
|
||||
+@@ -121,9 +121,10 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
|
||||
+ ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
+ ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
|
||||
ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */
|
||||
ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
|
@ -0,0 +1,21 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 20 May 2015 21:56:14 +0200
|
||||
Subject: ncurses: fix host build with GCC 5.1
|
||||
|
||||
diff --git a/package/libs/ncurses/Makefile b/package/libs/ncurses/Makefile
|
||||
index 13c7962..39851a6 100644
|
||||
--- a/package/libs/ncurses/Makefile
|
||||
+++ b/package/libs/ncurses/Makefile
|
||||
@@ -82,6 +82,12 @@ HOST_CONFIGURE_ARGS += \
|
||||
--without-tests \
|
||||
--without-curses-h
|
||||
|
||||
+HOST_CONFIGURE_VARS = \
|
||||
+ CC="$(HOSTCC)" \
|
||||
+ CFLAGS="$(HOST_CFLAGS)" \
|
||||
+ CPPFLAGS="$(HOST_CPPFLAGS) -P" \
|
||||
+ LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
+ SHELL="$(SHELL)"
|
||||
|
||||
ifeq ($(HOST_OS),FreeBSD)
|
||||
CONFIGURE_ARGS +=
|
@ -1,161 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 26 Nov 2014 23:20:46 +0100
|
||||
Subject: ar71xx: add board support for ubnt loco m xw
|
||||
|
||||
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index d9c7328..924766d 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -34,7 +34,7 @@ get_status_led() {
|
||||
aw-nr580)
|
||||
status_led="aw-nr580:green:ready"
|
||||
;;
|
||||
- bullet-m | rocket-m | nano-m | nanostation-m | nanostation-m-xw)
|
||||
+ bullet-m | rocket-m | nano-m | nanostation-m | nanostation-m-xw | loco-m-xw)
|
||||
status_led="ubnt:green:link4"
|
||||
;;
|
||||
bxu2000n-2-a1)
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index a6e6721..2676b48 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -38,7 +38,8 @@ ap113)
|
||||
bullet-m | \
|
||||
nanostation-m | \
|
||||
rocket-m | \
|
||||
-nanostation-m-xw)
|
||||
+nanostation-m-xw | \
|
||||
+loco-m-xw)
|
||||
ucidef_set_led_rssi "rssilow" "RSSILOW" "ubnt:red:link1" "wlan0" "1" "100" "0" "13"
|
||||
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "ubnt:orange:link2" "wlan0" "26" "100" "-25" "13"
|
||||
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "ubnt:green:link3" "wlan0" "51" "100" "-50" "13"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 78f4992..c494310 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -293,6 +293,7 @@ bullet-m |\
|
||||
cap4200ag |\
|
||||
eap300v2 |\
|
||||
eap7660d |\
|
||||
+loco-m-xw |\
|
||||
mr600 |\
|
||||
mr600v2 |\
|
||||
rb-411 |\
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 9fb4102..79b6073 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -396,6 +396,9 @@ ar71xx_board_detect() {
|
||||
*"Bullet M")
|
||||
name="bullet-m"
|
||||
;;
|
||||
+ *"Loco M XW")
|
||||
+ name="loco-m-xw"
|
||||
+ ;;
|
||||
*"Nanostation M")
|
||||
name="nanostation-m"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index c583215..a566b62 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -217,6 +217,7 @@ platform_check_image() {
|
||||
airgateway | \
|
||||
airrouter | \
|
||||
bullet-m | \
|
||||
+ loco-m-xw | \
|
||||
nanostation-m | \
|
||||
rocket-m | \
|
||||
nanostation-m-xw | \
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 55f11dc..3fdaf47 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -1276,6 +1276,7 @@ $(eval $(call SingleProfile,UBNTXM,64kraw,UBNTNANOM,ubnt-nano-m,UBNT-NM,ttyS0,11
|
||||
$(eval $(call SingleProfile,UBNTXM,64kraw,UBNTUNIFI,ubnt-unifi,UBNT-UF,ttyS0,115200,XM,BZ,ar7240))
|
||||
$(eval $(call SingleProfile,UBNTXM,64kraw,UBNTUNIFIOUTDOOR,ubnt-unifi-outdoor,UBNT-U20,ttyS0,115200,XM,BZ,ar7240))
|
||||
$(eval $(call SingleProfile,UBNTXM,64kraw,UBNTNANOMXW,ubnt-nano-m-xw,UBNT-NM-XW,ttyS0,115200,XM,XW,ar934x))
|
||||
+$(eval $(call SingleProfile,UBNTXM,64kraw,UBNTLOCOXW,ubnt-loco-m-xw,UBNT-LOCO-XW,ttyS0,115200,XM,XW,ar934x))
|
||||
$(eval $(call SingleProfile,UBNTXM,64kraw,UBNTAIRGW,ubnt-air-gateway,UBNT-AGW,ttyATH0,115200,XM,AirGW,ar933x))
|
||||
|
||||
$(eval $(call SingleProfile,WHRHPG300N,64kraw,WHRG301N,whr-g301n,WHR-G301N,ttyS0,115200,$$(whrhpg300n_mtdlayout),WHR-G301N))
|
||||
@@ -1322,7 +1323,7 @@ $(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4 TLWR941NV6))
|
||||
$(eval $(call MultiProfile,TLWR1043,TLWR1043V1 TLWR1043V2))
|
||||
$(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1 TLWDR4300V1 TLWDR4300V1IL TLWDR4310V1 MW4530RV1))
|
||||
$(eval $(call MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M))
|
||||
-$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTUNIFI UBNTUNIFIOUTDOOR UAPPRO UBNTAIRGW))
|
||||
+$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW UBNTUNIFI UBNTUNIFIOUTDOOR UAPPRO UBNTAIRGW))
|
||||
$(eval $(call MultiProfile,WNDR3700,WNDR3700V1 WNDR3700V2 WNDR3800 WNDR3800CH WNDRMAC WNDRMACV2))
|
||||
$(eval $(call MultiProfile,WNR612V2,REALWNR612V2 N150R))
|
||||
$(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
index 9413bd8..5e3d4d4 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
@@ -1,8 +1,6 @@
|
||||
-Index: linux-3.10.49/arch/mips/ath79/mach-ubnt-xm.c
|
||||
-===================================================================
|
||||
---- linux-3.10.49.orig/arch/mips/ath79/mach-ubnt-xm.c 2014-08-15 22:55:37.890080659 +0200
|
||||
-+++ linux-3.10.49/arch/mips/ath79/mach-ubnt-xm.c 2014-08-15 22:58:31.061570912 +0200
|
||||
-@@ -332,3 +332,67 @@
|
||||
+--- a/arch/mips/ath79/mach-ubnt-xm.c
|
||||
++++ b/arch/mips/ath79/mach-ubnt-xm.c
|
||||
+@@ -332,3 +332,78 @@ static void __init ubnt_uap_pro_setup(vo
|
||||
MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti UniFi AP Pro",
|
||||
ubnt_uap_pro_setup);
|
||||
|
||||
@@ -67,15 +65,27 @@ Index: linux-3.10.49/arch/mips/ath79/mach-ubnt-xm.c
|
||||
+ ath79_register_eth(0);
|
||||
+}
|
||||
+
|
||||
++static void __init ubnt_loco_m_xw_setup(void)
|
||||
++{
|
||||
++ ubnt_xw_init();
|
||||
++
|
||||
++ ath79_register_mdio(0, ~BIT(1));
|
||||
++ ath79_eth0_data.phy_mask = BIT(1);
|
||||
++ ath79_register_eth(0);
|
||||
++}
|
||||
++
|
||||
+MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW",
|
||||
+ ubnt_nano_m_xw_setup);
|
||||
+
|
||||
++MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW",
|
||||
++ ubnt_loco_m_xw_setup);
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -121,9 +121,10 @@ enum ath79_mach_type {
|
||||
+@@ -121,9 +121,11 @@ enum ath79_mach_type {
|
||||
ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
|
||||
ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
++ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */
|
||||
ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
|
||||
ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */
|
||||
ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/722-MIPS-ath79-add-airGateway-support.patch b/target/linux/ar71xx/patches-3.10/722-MIPS-ath79-add-airGateway-support.patch
|
||||
index 0fe62d9..c9d1e1e 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/722-MIPS-ath79-add-airGateway-support.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/722-MIPS-ath79-add-airGateway-support.patch
|
||||
@@ -12,10 +12,10 @@
|
||||
#include "dev-ap9x-pci.h"
|
||||
#include "dev-eth.h"
|
||||
#include "dev-gpio-buttons.h"
|
||||
-@@ -389,3 +391,65 @@ static void __init ubnt_nano_m_xw_setup(
|
||||
+@@ -406,3 +408,65 @@ MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW,
|
||||
|
||||
- MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW",
|
||||
- ubnt_nano_m_xw_setup);
|
||||
+ MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW",
|
||||
+ ubnt_loco_m_xw_setup);
|
||||
+
|
||||
+static struct gpio_led ubnt_airgateway_gpio_leds[] __initdata = {
|
||||
+ {
|
||||
@@ -87,4 +87,4 @@
|
||||
+ ATH79_MACH_UBNT_AIRGW, /* Ubiquiti AirGateway */
|
||||
ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
- ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
|
||||
+ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */
|
@ -0,0 +1,42 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 20 May 2015 23:10:36 +0200
|
||||
Subject: mac80211: ath10k: allow simultaneous AP+IBSS
|
||||
|
||||
diff --git a/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch b/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch
|
||||
new file mode 100644
|
||||
index 0000000..33b3110
|
||||
--- /dev/null
|
||||
+++ b/package/kernel/mac80211/patches/950-ath10k_AP_IBSS.patch
|
||||
@@ -0,0 +1,32 @@
|
||||
+--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||
++++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||
+@@ -5264,6 +5264,10 @@ static const struct ieee80211_iface_limi
|
||||
+ .max = 7,
|
||||
+ .types = BIT(NL80211_IFTYPE_AP)
|
||||
+ },
|
||||
++ {
|
||||
++ .max = 1,
|
||||
++ .types = BIT(NL80211_IFTYPE_ADHOC)
|
||||
++ },
|
||||
+ };
|
||||
+
|
||||
+ static const struct ieee80211_iface_limit ath10k_10x_if_limits[] = {
|
||||
+@@ -5271,6 +5275,10 @@ static const struct ieee80211_iface_limi
|
||||
+ .max = 8,
|
||||
+ .types = BIT(NL80211_IFTYPE_AP)
|
||||
+ },
|
||||
++ {
|
||||
++ .max = 1,
|
||||
++ .types = BIT(NL80211_IFTYPE_ADHOC)
|
||||
++ },
|
||||
+ };
|
||||
+
|
||||
+ static const struct ieee80211_iface_combination ath10k_if_comb[] = {
|
||||
+@@ -5575,6 +5583,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||
+ ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb;
|
||||
+ ar->hw->wiphy->n_iface_combinations =
|
||||
+ ARRAY_SIZE(ath10k_10x_if_comb);
|
||||
++ ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC);
|
||||
+ break;
|
||||
+ case ATH10K_FW_WMI_OP_VERSION_UNSET:
|
||||
+ case ATH10K_FW_WMI_OP_VERSION_MAX:
|
@ -0,0 +1,24 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 20 May 2015 23:15:20 +0200
|
||||
Subject: iwinfo: update NanoStation (Loco) txpower offsets
|
||||
|
||||
diff --git a/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch b/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch
|
||||
new file mode 100644
|
||||
index 0000000..1e13570
|
||||
--- /dev/null
|
||||
+++ b/package/network/utils/iwinfo/patches/001-update_nanostation_offsets.patch
|
||||
@@ -0,0 +1,14 @@
|
||||
+--- a/hardware.txt
|
||||
++++ b/hardware.txt
|
||||
+@@ -42,8 +42,9 @@
|
||||
+ 0x168c 0x0027 0x0777 0x4082 7 0 "Ubiquiti" "SR71"
|
||||
+ 0x168c 0x0029 0x0777 0x4005 7 0 "Ubiquiti" "SR71-15"
|
||||
+ 0x168c 0x002a 0x0777 0xe302 12 0 "Ubiquiti" "PicoStation M2" /* ToDo: confirm offset */
|
||||
+-0x168c 0x002a 0x0777 0xe012 12 0 "Ubiquiti" "NanoStation M2" /* ToDo: confirm offset */
|
||||
+-0x168c 0x002a 0x0777 0xe005 5 0 "Ubiquiti" "NanoStation M5" /* ToDo: confirm offset */
|
||||
++0x168c 0x002a 0x0777 0xe012 11 0 "Ubiquiti" "NanoStation M2"
|
||||
++0x168c 0x002e 0x0777 0xe0a2 8 0 "Ubiquiti" "NanoStation Loco M2"
|
||||
++0x168c 0x002a 0x0777 0xe005 16 0 "Ubiquiti" "NanoStation M5"
|
||||
+ 0x168c 0x002a 0x0777 0xe202 12 0 "Ubiquiti" "Bullet M2"
|
||||
+ 0x168c 0x002a 0x0777 0xe805 5 0 "Ubiquiti" "Bullet M5"
|
||||
+ 0x168c 0x002a 0x0777 0xe345 0 0 "Ubiquiti" "WispStation M5" /* ToDo: confirm offset */
|
@ -1,43 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 11 Jan 2015 09:14:34 +0100
|
||||
Subject: firmware-utils: remove dependency on error.h in tplink-safeloader
|
||||
|
||||
Fixes build on Mac OS X
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
|
||||
index 23d703f..9c5bb54 100644
|
||||
--- a/tools/firmware-utils/src/tplink-safeloader.c
|
||||
+++ b/tools/firmware-utils/src/tplink-safeloader.c
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
@@ -143,6 +142,14 @@ static const unsigned char cpe510_support_list[] =
|
||||
"CPE220(TP-LINK|UN|N300-2):1.0\r\n"
|
||||
"\r\n\xff";
|
||||
|
||||
+#define error(_ret, _errno, _str, ...) \
|
||||
+ do { \
|
||||
+ fprintf(stderr, _str ": %s\n", ## __VA_ARGS__, \
|
||||
+ strerror(_errno)); \
|
||||
+ if (_ret) \
|
||||
+ exit(_ret); \
|
||||
+ } while (0)
|
||||
+
|
||||
|
||||
/** Allocates a new image partition */
|
||||
struct image_partition_entry alloc_image_partition(const char *name, size_t len) {
|
||||
@@ -200,6 +207,7 @@ struct image_partition_entry make_soft_version(uint32_t rev) {
|
||||
struct soft_version *s = (struct soft_version *)entry.data;
|
||||
|
||||
time_t t;
|
||||
+
|
||||
if (time(&t) == (time_t)(-1))
|
||||
error(1, errno, "time");
|
||||
|
@ -1,28 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Fri, 16 Jan 2015 03:49:40 +0100
|
||||
Subject: build: explicitly unexport CONFIG_SITE
|
||||
|
||||
On systems with CONFIG_SITE in the environment (e.g. OpenSUSE) make will export
|
||||
the CONFIG_SITE set in include/package.mk by default. This will cause host
|
||||
builds to get the target site configuration, leading to all kinds of weirdness
|
||||
(wrong pointer size, wrong endianess).
|
||||
|
||||
Fix this by explicitly unexporting CONFIG_SITE. The explicit export for the
|
||||
target builds overrides the unexport, so the target builds will still correctly
|
||||
get the site config.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/include/package.mk b/include/package.mk
|
||||
index 88ec3ef..53ca6de 100644
|
||||
--- a/include/package.mk
|
||||
+++ b/include/package.mk
|
||||
@@ -93,7 +93,7 @@ CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME)
|
||||
CUR_MAKEFILE:=$(filter-out Makefile,$(firstword $(MAKEFILE_LIST)))
|
||||
SUBMAKE:=$(NO_TRACE_MAKE) $(if $(CUR_MAKEFILE),-f $(CUR_MAKEFILE))
|
||||
PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig:$(STAGING_DIR)/usr/share/pkgconfig
|
||||
-unexport QUIET
|
||||
+unexport QUIET CONFIG_SITE
|
||||
|
||||
ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),)
|
||||
ifneq ($(if $(QUILT),,$(CONFIG_AUTOREBUILD)),)
|
@ -1,20 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Fri, 16 Jan 2015 19:56:39 +0100
|
||||
Subject: ar71xx: fix board detection for TP-LINK TL-WA860RE
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 79b6073..13c5bf2 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -630,6 +630,9 @@ ar71xx_board_detect() {
|
||||
*TL-WA850RE)
|
||||
name="tl-wa850re"
|
||||
;;
|
||||
+ *TL-WA860RE)
|
||||
+ name="tl-wa860re"
|
||||
+ ;;
|
||||
*"TL-WA830RE v2")
|
||||
name="tl-wa830re-v2"
|
||||
;;
|
@ -1,25 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 28 Jan 2015 15:02:54 +0100
|
||||
Subject: ar71xx: add default LED configuration for D-Link DIR-615 rev. C1
|
||||
|
||||
This patch adds an entry in the uci-defaults' led-file to configure the
|
||||
WAN and WLAN LEDs by default.
|
||||
|
||||
Signed-off-by: Vincent Wiemann <me@bibbl.com>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index 2676b48..ee90c52 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -122,6 +122,11 @@ dir-615-e4)
|
||||
ucidef_set_led_switch "lan4" "LAN4" "d-link:green:lan4" "switch0" "0x10"
|
||||
;;
|
||||
|
||||
+dir-615-c1)
|
||||
+ ucidef_set_led_netdev "wan" "WAN" "d-link:green:wan" "eth1"
|
||||
+ ucidef_set_led_wlan "wlan" "WLAN" "d-link:green:wlan" "phy0tpt"
|
||||
+ ;;
|
||||
+
|
||||
dir-825-b1)
|
||||
ucidef_set_led_usbdev "usb" "USB" "d-link:blue:usb" "1-1"
|
||||
;;
|
@ -1,42 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 28 Jan 2015 14:56:03 +0100
|
||||
Subject: ar71xx: fix D-Link DIR-615 rev. C1 WLAN MAC address
|
||||
|
||||
Fix the WLAN MAC address to match the one printed on the label by using the
|
||||
correct address from the ART instead of the address of the LAN interface.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-dir-615-c1.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-dir-615-c1.c
|
||||
index 425be30..e55a43f 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-dir-615-c1.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-dir-615-c1.c
|
||||
@@ -38,6 +38,8 @@
|
||||
#define DIR_615C1_CONFIG_ADDR 0x1f020000
|
||||
#define DIR_615C1_CONFIG_SIZE 0x10000
|
||||
|
||||
+#define DIR_615C1_WLAN_MAC_ADDR 0x1f3fffb4
|
||||
+
|
||||
static struct gpio_led dir_615c1_leds_gpio[] __initdata = {
|
||||
{
|
||||
.name = "d-link:orange:status",
|
||||
@@ -96,16 +98,16 @@ static void __init dir_615c1_setup(void)
|
||||
{
|
||||
const char *config = (char *) KSEG1ADDR(DIR_615C1_CONFIG_ADDR);
|
||||
u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
|
||||
- u8 mac[6];
|
||||
- u8 *wlan_mac = NULL;
|
||||
+ u8 mac[ETH_ALEN], wlan_mac[ETH_ALEN];
|
||||
|
||||
if (ath79_nvram_parse_mac_addr(config, DIR_615C1_CONFIG_SIZE,
|
||||
"lan_mac=", mac) == 0) {
|
||||
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
|
||||
ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
|
||||
- wlan_mac = mac;
|
||||
}
|
||||
|
||||
+ ath79_parse_ascii_mac((char *) KSEG1ADDR(DIR_615C1_WLAN_MAC_ADDR), wlan_mac);
|
||||
+
|
||||
ath79_register_mdio(0, DIR_615C1_MDIO_MASK);
|
||||
|
||||
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
|
@ -1,229 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Tue, 3 Feb 2015 16:54:22 +0100
|
||||
Subject: Add support for the TP-LINK TL-WR941ND v5
|
||||
|
||||
This device is very similar to the TL-WR841N v8, only two LED GPIOs are
|
||||
different.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 924766d..f0d5d70 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -214,7 +214,8 @@ get_status_led() {
|
||||
tl-wr841n-v8 | \
|
||||
tl-wa830re-v2 | \
|
||||
tl-wr842n-v2 | \
|
||||
- tl-wr941nd)
|
||||
+ tl-wr941nd | \
|
||||
+ tl-wr941nd-v5)
|
||||
status_led="tp-link:green:system"
|
||||
;;
|
||||
archer-c5 | \
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index ee90c52..a74b8f4 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -345,7 +345,8 @@ tl-wr741nd-v4)
|
||||
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
|
||||
;;
|
||||
|
||||
-tl-wr841n-v8)
|
||||
+tl-wr841n-v8 | \
|
||||
+tl-wr941nd-v5)
|
||||
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth0"
|
||||
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x04"
|
||||
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index c494310..3ccb917 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -211,6 +211,7 @@ smart-300 | \
|
||||
tl-mr3420-v2 |\
|
||||
tl-wr841n-v8 |\
|
||||
tl-wr842n-v2 |\
|
||||
+tl-wr941nd-v5 |\
|
||||
wnr2000-v3 |\
|
||||
wnr2200 |\
|
||||
wnr612-v2)
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 13c5bf2..5fbca92 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -681,6 +681,9 @@ ar71xx_board_detect() {
|
||||
*TL-WR941ND)
|
||||
name="tl-wr941nd"
|
||||
;;
|
||||
+ *"TL-WR941N/ND v5")
|
||||
+ name="tl-wr941nd-v5"
|
||||
+ ;;
|
||||
*"TL-WR703N v1")
|
||||
name="tl-wr703n"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index a566b62..e512f41 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -326,6 +326,7 @@ platform_check_image() {
|
||||
tl-wr841n-v9 | \
|
||||
tl-wr842n-v2 | \
|
||||
tl-wr941nd | \
|
||||
+ tl-wr941nd-v5 | \
|
||||
tl-wr1041n-v2 | \
|
||||
tl-wr1043nd | \
|
||||
tl-wr1043nd-v2 | \
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
|
||||
index 0099b15..73cfdd9 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c
|
||||
@@ -38,6 +38,15 @@
|
||||
#define TL_MR3420V2_GPIO_LED_3G 11
|
||||
#define TL_MR3420V2_GPIO_USB_POWER 4
|
||||
|
||||
+#define TL_WR941NDV5_GPIO_LED_WLAN 13
|
||||
+#define TL_WR941NDV5_GPIO_LED_QSS 15
|
||||
+#define TL_WR941NDV5_GPIO_LED_WAN 18
|
||||
+#define TL_WR941NDV5_GPIO_LED_LAN1 19
|
||||
+#define TL_WR941NDV5_GPIO_LED_LAN2 20
|
||||
+#define TL_WR941NDV5_GPIO_LED_LAN3 2
|
||||
+#define TL_WR941NDV5_GPIO_LED_LAN4 3
|
||||
+#define TL_WR941NDV5_GPIO_LED_SYSTEM 14
|
||||
+
|
||||
#define TL_WR841NV8_KEYS_POLL_INTERVAL 20 /* msecs */
|
||||
#define TL_WR841NV8_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR841NV8_KEYS_POLL_INTERVAL)
|
||||
|
||||
@@ -127,6 +136,42 @@ static struct gpio_keys_button tl_mr3420v2_gpio_keys[] __initdata = {
|
||||
}
|
||||
};
|
||||
|
||||
+static struct gpio_led tl_wr941nd_v5_leds_gpio[] __initdata = {
|
||||
+ {
|
||||
+ .name = "tp-link:green:lan1",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_LAN1,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:lan2",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_LAN2,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:lan3",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_LAN3,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:lan4",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_LAN4,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:qss",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_QSS,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:system",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_SYSTEM,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:wan",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_WAN,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "tp-link:green:wlan",
|
||||
+ .gpio = TL_WR941NDV5_GPIO_LED_WLAN,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static void __init tl_ap123_setup(void)
|
||||
{
|
||||
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
|
||||
@@ -223,3 +268,19 @@ static void __init tl_mr3420v2_setup(void)
|
||||
|
||||
MIPS_MACHINE(ATH79_MACH_TL_MR3420_V2, "TL-MR3420-v2", "TP-LINK TL-MR3420 v2",
|
||||
tl_mr3420v2_setup);
|
||||
+
|
||||
+
|
||||
+static void __init tl_wr941nd_v5_setup(void)
|
||||
+{
|
||||
+ tl_ap123_setup();
|
||||
+
|
||||
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_v5_leds_gpio),
|
||||
+ tl_wr941nd_v5_leds_gpio);
|
||||
+
|
||||
+ ath79_register_gpio_keys_polled(1, TL_WR841NV8_KEYS_POLL_INTERVAL,
|
||||
+ ARRAY_SIZE(tl_wr841n_v8_gpio_keys),
|
||||
+ tl_wr841n_v8_gpio_keys);
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_TL_WR941ND_V5, "TL-WR941ND-v5", "TP-LINK TL-WR941N/ND v5",
|
||||
+ tl_wr941nd_v5_setup);
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 3fdaf47..ba16c7b 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -1242,6 +1242,7 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWA801NV2,tl-wa801nd-v2,TL-WA801
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWA850,tl-wa850re-v1,TL-WA850RE,ttyS0,115200,0x08500001,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWA860,tl-wa860re-v1,TL-WA860RE,ttyS0,115200,0x08600001,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWA901NV3,tl-wa901nd-v3,TL-WA901ND-v3,ttyS0,115200,0x09010003,1,4Mlzma))
|
||||
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR941NV5,tl-wr941nd-v5,TL-WR941ND-v5,ttyS0,115200,0x09410005,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR941NV6,tl-wr941nd-v6,TL-WDR3500,ttyS0,115200,0x09410006,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR1041,tl-wr1041n-v2,TL-WR1041N-v2,ttyS0,115200,0x10410002,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR1043V2,tl-wr1043nd-v2,TL-WR1043ND-v2,ttyS0,115200,0x10430002,1,8M))
|
||||
@@ -1319,7 +1320,7 @@ $(eval $(call MultiProfile,TLWR741,TLWR741NV1 TLWR741NV2 TLWR741NV4))
|
||||
$(eval $(call MultiProfile,TLWR743,TLWR743NV1 TLWR743NV2))
|
||||
$(eval $(call MultiProfile,TLWR841,TLWR841NV15 TLWR841NV3 TLWR841NV5 TLWR841NV7 TLWR841NV8 TLWR841NV9))
|
||||
$(eval $(call MultiProfile,TLWR842,TLWR842V1 TLWR842V2))
|
||||
-$(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4 TLWR941NV6))
|
||||
+$(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4 TLWR941NV5 TLWR941NV6))
|
||||
$(eval $(call MultiProfile,TLWR1043,TLWR1043V1 TLWR1043V2))
|
||||
$(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1 TLWDR4300V1 TLWDR4300V1IL TLWDR4310V1 MW4530RV1))
|
||||
$(eval $(call MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M))
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
index 516d52d..3722519 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -16,22 +16,145 @@
|
||||
+@@ -16,22 +16,146 @@
|
||||
|
||||
enum ath79_mach_type {
|
||||
ATH79_MACH_GENERIC = 0,
|
||||
@@ -108,6 +108,7 @@
|
||||
+ ATH79_MACH_TL_WR841N_V8, /* TP-LINK TL-WR841N/ND v8 */
|
||||
+ ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */
|
||||
+ ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
|
||||
++ ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */
|
||||
ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
+ ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/720-MIPS-ath79-add-Tube2H-support.patch b/target/linux/ar71xx/patches-3.10/720-MIPS-ath79-add-Tube2H-support.patch
|
||||
index c4aa70c..7a3754b 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/720-MIPS-ath79-add-Tube2H-support.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/720-MIPS-ath79-add-Tube2H-support.patch
|
||||
@@ -1,13 +1,13 @@
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -141,6 +141,7 @@ enum ath79_mach_type {
|
||||
- ATH79_MACH_TL_WR841N_V9, /* TP-LINK TL-WR841N/ND v9 */
|
||||
+@@ -143,6 +143,7 @@ enum ath79_mach_type {
|
||||
ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */
|
||||
ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
|
||||
+ ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */
|
||||
+ ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */
|
||||
ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
- ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
|
||||
+ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */
|
||||
--- a/arch/mips/ath79/Kconfig
|
||||
+++ b/arch/mips/ath79/Kconfig
|
||||
@@ -29,6 +29,15 @@ config ATH79_MACH_ALFA_NX
|
||||
@@ -28,7 +28,7 @@
|
||||
select SOC_AR724X
|
||||
--- a/arch/mips/ath79/Makefile
|
||||
+++ b/arch/mips/ath79/Makefile
|
||||
-@@ -116,6 +116,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2)
|
||||
+@@ -117,6 +117,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2)
|
||||
obj-$(CONFIG_ATH79_MACH_TL_WR2543N) += mach-tl-wr2543n.o
|
||||
obj-$(CONFIG_ATH79_MACH_TL_WR703N) += mach-tl-wr703n.o
|
||||
obj-$(CONFIG_ATH79_MACH_TL_WR720N_V3) += mach-tl-wr720n-v3.o
|
@ -1,177 +0,0 @@
|
||||
From: blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
|
||||
Date: Thu, 22 Jan 2015 09:35:46 +0000
|
||||
Subject: ar71xx: add support for the UniFi AP Outdoor Plus
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index f0d5d70..6aac86a 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -244,6 +244,9 @@ get_status_led() {
|
||||
uap-pro)
|
||||
status_led="ubnt:white:dome"
|
||||
;;
|
||||
+ unifi-outdoor-plus)
|
||||
+ status_led="ubnt:white:front"
|
||||
+ ;;
|
||||
airgateway)
|
||||
status_led="ubnt:white:status"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 5fbca92..61a7936 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -723,6 +723,9 @@ ar71xx_board_detect() {
|
||||
*"UniFiAP Outdoor")
|
||||
name="unifi-outdoor"
|
||||
;;
|
||||
+ *"UniFiAP Outdoor+")
|
||||
+ name="unifi-outdoor-plus"
|
||||
+ ;;
|
||||
*WP543)
|
||||
name="wp543"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index e512f41..49746c4 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -363,6 +363,7 @@ platform_check_image() {
|
||||
return 1
|
||||
;;
|
||||
|
||||
+ unifi-outdoor-plus | \
|
||||
uap-pro)
|
||||
[ "$magic_long" != "19852003" ] && {
|
||||
echo "Invalid image type."
|
||||
@@ -467,6 +468,7 @@ platform_do_upgrade() {
|
||||
om5p)
|
||||
platform_do_upgrade_openmesh "$ARGV"
|
||||
;;
|
||||
+ unifi-outdoor-plus | \
|
||||
uap-pro)
|
||||
MTD_CONFIG_ARGS="-s 0x180000"
|
||||
default_do_upgrade "$ARGV"
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index ba16c7b..8505ac4 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -1262,6 +1262,7 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,SMART-300,smart-300,SMART-300,tty
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,OOLITE,oolite,GS-OOLITE,ttyATH0,115200,0x3C000101,1,16Mlzma))
|
||||
|
||||
$(eval $(call SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x))
|
||||
+$(eval $(call SingleProfile,UAPPRO,64k,UBNTUNIFIOUTDOORPLUS,ubnt-unifi-outdoor-plus,UBNT-UOP,ttyS0,115200,BZ,BZ,ar7240))
|
||||
|
||||
$(eval $(call SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240))
|
||||
|
||||
@@ -1324,7 +1325,7 @@ $(eval $(call MultiProfile,TLWR941,TLWR941NV2 TLWR941NV3 TLWR941NV4 TLWR941NV5 T
|
||||
$(eval $(call MultiProfile,TLWR1043,TLWR1043V1 TLWR1043V2))
|
||||
$(eval $(call MultiProfile,TLWDR4300,TLWDR3500V1 TLWDR3600V1 TLWDR4300V1 TLWDR4300V1IL TLWDR4310V1 MW4530RV1))
|
||||
$(eval $(call MultiProfile,TUBE2H,TUBE2H8M TUBE2H16M))
|
||||
-$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW UBNTUNIFI UBNTUNIFIOUTDOOR UAPPRO UBNTAIRGW))
|
||||
+$(eval $(call MultiProfile,UBNT,UBNTAIRROUTER UBNTRS UBNTRSPRO UBNTLSSR71 UBNTBULLETM UBNTROCKETM UBNTNANOM UBNTNANOMXW UBNTLOCOXW UBNTUNIFI UBNTUNIFIOUTDOOR UBNTUNIFIOUTDOORPLUS UAPPRO UBNTAIRGW))
|
||||
$(eval $(call MultiProfile,WNDR3700,WNDR3700V1 WNDR3700V2 WNDR3800 WNDR3800CH WNDRMAC WNDRMACV2))
|
||||
$(eval $(call MultiProfile,WNR612V2,REALWNR612V2 N150R))
|
||||
$(eval $(call MultiProfile,WP543,WP543_2M WP543_4M WP543_8M WP543_16M))
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
index 3722519..6bb8884 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -16,22 +16,146 @@
|
||||
+@@ -16,22 +16,147 @@
|
||||
|
||||
enum ath79_mach_type {
|
||||
ATH79_MACH_GENERIC = 0,
|
||||
@@ -120,6 +120,7 @@
|
||||
ATH79_MACH_UBNT_UAP_PRO, /* Ubiquiti UniFi AP Pro */
|
||||
ATH79_MACH_UBNT_UNIFI, /* Ubiquiti Unifi */
|
||||
ATH79_MACH_UBNT_UNIFI_OUTDOOR, /* Ubiquiti UnifiAP Outdoor */
|
||||
++ ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
|
||||
ATH79_MACH_UBNT_XM, /* Ubiquiti Networks XM board rev 1.0 */
|
||||
+ ATH79_MACH_WHR_G301N, /* Buffalo WHR-G301N */
|
||||
+ ATH79_MACH_WHR_HP_G300N, /* Buffalo WHR-HP-G300N */
|
||||
diff --git a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
index 5e3d4d4..3c3c273 100644
|
||||
--- a/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.10/616-MIPS-ath79-ubnt-xw.patch
|
||||
@@ -1,6 +1,65 @@
|
||||
--- a/arch/mips/ath79/mach-ubnt-xm.c
|
||||
+++ b/arch/mips/ath79/mach-ubnt-xm.c
|
||||
-@@ -332,3 +332,78 @@ static void __init ubnt_uap_pro_setup(vo
|
||||
+@@ -186,6 +186,19 @@ static struct gpio_led ubnt_unifi_outdoo
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
++static struct gpio_led ubnt_unifi_outdoor_plus_leds_gpio[] __initdata = {
|
||||
++ {
|
||||
++ .name = "ubnt:white:front",
|
||||
++ .gpio = 1,
|
||||
++ .active_low = 0,
|
||||
++ }, {
|
||||
++ .name = "ubnt:blue:front",
|
||||
++ .gpio = 0,
|
||||
++ .active_low = 0,
|
||||
++ }
|
||||
++};
|
||||
++
|
||||
++
|
||||
+ static void __init ubnt_unifi_setup(void)
|
||||
+ {
|
||||
+ u8 *mac = (u8 *) KSEG1ADDR(0x1fff0000);
|
||||
+@@ -245,6 +258,38 @@ MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDO
|
||||
+ "Ubiquiti UniFiAP Outdoor",
|
||||
+ ubnt_unifi_outdoor_setup);
|
||||
+
|
||||
++
|
||||
++static void __init ubnt_unifi_outdoor_plus_setup(void)
|
||||
++{
|
||||
++ u8 *mac1 = (u8 *) KSEG1ADDR(0x1fff0000);
|
||||
++ u8 *mac2 = (u8 *) KSEG1ADDR(0x1fff0000 + ETH_ALEN);
|
||||
++ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
|
||||
++
|
||||
++ ath79_register_m25p80(NULL);
|
||||
++
|
||||
++ ath79_register_mdio(0, ~(UBNT_UNIFIOD_PRI_PHYMASK |
|
||||
++ UBNT_UNIFIOD_2ND_PHYMASK));
|
||||
++
|
||||
++ ath79_init_mac(ath79_eth0_data.mac_addr, mac1, 0);
|
||||
++ ath79_init_mac(ath79_eth1_data.mac_addr, mac2, 0);
|
||||
++ ath79_register_eth(0);
|
||||
++ ath79_register_eth(1);
|
||||
++
|
||||
++ ap91_pci_init(ee, NULL);
|
||||
++
|
||||
++ ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_unifi_outdoor_plus_leds_gpio),
|
||||
++ ubnt_unifi_outdoor_plus_leds_gpio);
|
||||
++
|
||||
++ ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL,
|
||||
++ ARRAY_SIZE(ubnt_xm_gpio_keys),
|
||||
++ ubnt_xm_gpio_keys);
|
||||
++}
|
||||
++
|
||||
++MIPS_MACHINE(ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, "UBNT-UOP",
|
||||
++ "Ubiquiti UniFiAP Outdoor+",
|
||||
++ ubnt_unifi_outdoor_plus_setup);
|
||||
++
|
||||
++
|
||||
+ static struct gpio_led ubnt_uap_pro_gpio_leds[] __initdata = {
|
||||
+ {
|
||||
+ .name = "ubnt:white:dome",
|
||||
+@@ -332,3 +377,78 @@ static void __init ubnt_uap_pro_setup(vo
|
||||
MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti UniFi AP Pro",
|
||||
ubnt_uap_pro_setup);
|
||||
|
||||
@@ -81,8 +140,8 @@
|
||||
+ ubnt_loco_m_xw_setup);
|
||||
--- a/arch/mips/ath79/machtypes.h
|
||||
+++ b/arch/mips/ath79/machtypes.h
|
||||
-@@ -121,9 +121,11 @@ enum ath79_mach_type {
|
||||
- ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
|
||||
+@@ -123,9 +123,11 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */
|
||||
ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */
|
||||
ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
|
||||
+ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */
|
File diff suppressed because it is too large
Load Diff
@ -1,41 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Tue, 10 Mar 2015 13:17:06 +0100
|
||||
Subject: ath10k: update firmware to the latest version
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
|
||||
index b96e782..629692d 100644
|
||||
--- a/package/kernel/mac80211/Makefile
|
||||
+++ b/package/kernel/mac80211/Makefile
|
||||
@@ -129,7 +129,7 @@ endef
|
||||
$(eval $(call Download,linux-firmware))
|
||||
|
||||
PKG_ATH10K_LINUX_FIRMWARE_NAME:=ath10k-firmware
|
||||
-PKG_ATH10K_LINUX_FIRMWARE_VERSION:=38eeda3ae6f90fde5546bdd48ee4ff3090f238c0
|
||||
+PKG_ATH10K_LINUX_FIRMWARE_VERSION:=232b419e71dab27b52b96e80ea7649ed67bdac77
|
||||
PKG_ATH10K_LINUX_FIRMWARE_SOURCE:=$(PKG_ATH10K_LINUX_FIRMWARE_NAME)-$(PKG_ATH10K_LINUX_FIRMWARE_VERSION).tar.bz2
|
||||
PKG_ATH10K_LINUX_FIRMWARE_PROTO:=git
|
||||
PKG_ATH10K_LINUX_FIRMWARE_SOURCE_URL:=https://github.com/kvalo/ath10k-firmware.git
|
||||
@@ -1821,18 +1821,17 @@ endef
|
||||
|
||||
define KernelPackage/ath10k/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
|
||||
-ifeq ($(CONFIG_ATH10K_STA_FW),y)
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/ath10k/QCA988X/hw2.0/board.bin \
|
||||
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
|
||||
+ifeq ($(CONFIG_ATH10K_STA_FW),y)
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/main/firmware-2.bin_999.999.0.636 \
|
||||
$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
|
||||
else
|
||||
$(INSTALL_DATA) \
|
||||
- $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/ath10k/QCA988X/hw2.0/board.bin \
|
||||
- $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/ath10k/QCA988X/hw2.0/firmware-2.bin \
|
||||
- $(1)/lib/firmware/ath10k/QCA988X/hw2.0/
|
||||
+ $(PKG_BUILD_DIR)/$(PKG_ATH10K_LINUX_FIRMWARE_SUBDIR)/10.2/firmware-3.bin_10.2-00082-4-2 \
|
||||
+ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-3.bin
|
||||
endif
|
||||
endef
|
||||
|
@ -1,20 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Tue, 10 Mar 2015 13:17:23 +0100
|
||||
Subject: at71xx: TP-LINK Archer: add 5GHz led entry
|
||||
|
||||
Add 5GHz led entry after r44033.
|
||||
|
||||
Signed-off-by: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index a74b8f4..36fe028 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -326,6 +326,7 @@ tl-wdr4900-v2)
|
||||
ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1"
|
||||
ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "2-1"
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy0tpt"
|
||||
+ ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy1tpt"
|
||||
;;
|
||||
|
||||
tl-wr741nd)
|
@ -1,34 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Tue, 10 Mar 2015 14:06:01 +0100
|
||||
Subject: ar71xx: fix switched WLAN LEDs on TP-LINK Archer C5/C7
|
||||
|
||||
ath10k is loaded before ath9k, so the 5GHz adapter becomes phy0.
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index 36fe028..315a9fd 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -320,8 +320,6 @@ tl-wdr4300)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy0tpt"
|
||||
;;
|
||||
|
||||
-archer-c5|\
|
||||
-archer-c7|\
|
||||
tl-wdr4900-v2)
|
||||
ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1"
|
||||
ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "2-1"
|
||||
@@ -329,6 +327,14 @@ tl-wdr4900-v2)
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy1tpt"
|
||||
;;
|
||||
|
||||
+archer-c5|\
|
||||
+archer-c7)
|
||||
+ ucidef_set_led_usbdev "usb1" "USB1" "tp-link:green:usb1" "1-1"
|
||||
+ ucidef_set_led_usbdev "usb2" "USB2" "tp-link:green:usb2" "2-1"
|
||||
+ ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:blue:wlan2g" "phy1tpt"
|
||||
+ ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy0tpt"
|
||||
+ ;;
|
||||
+
|
||||
tl-wr741nd)
|
||||
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
|
||||
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02"
|
@ -1,24 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 11 Mar 2015 18:30:54 +0100
|
||||
Subject: uClibc: fix syscall() for syscalls with 6 arguments on PowerPC
|
||||
|
||||
Patch from the uClibc master.
|
||||
|
||||
Fixes the package fastd on PowerPC.
|
||||
|
||||
diff --git a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
|
||||
new file mode 100644
|
||||
index 0000000..9511dcc
|
||||
--- /dev/null
|
||||
+++ b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
|
||||
@@ -0,0 +1,10 @@
|
||||
+--- a/libc/sysdeps/linux/powerpc/syscall.S
|
||||
++++ b/libc/sysdeps/linux/powerpc/syscall.S
|
||||
+@@ -30,6 +30,7 @@ syscall:
|
||||
+ mr 5,6
|
||||
+ mr 6,7
|
||||
+ mr 7,8
|
||||
++ mr 8,9
|
||||
+ sc
|
||||
+ bnslr;
|
||||
+
|
@ -1,35 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 12 Mar 2015 16:57:32 +0100
|
||||
Subject: ar71xx: Add build profile for the gl-inet 6416A and 6408A
|
||||
|
||||
Patch to add the buildprofile for the GL-Init-6408A-v1 and the GL-Inet-6416A-v1
|
||||
Both devices are identical, only difference is one comes with 8MB flash and
|
||||
the other with 16MB flash
|
||||
|
||||
Official website: http://www.gl-inet.com/w/?page_id=241&lang=en
|
||||
Comprehensive list of specs: https://revspace.nl/GL-Inet
|
||||
|
||||
Signed-off-by: Martijn Zilverschoon <martijn@friedzombie.com>
|
||||
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 8505ac4..fc59c33 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -1216,7 +1216,8 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V1,archer-c7-v1,ARCHER-C7
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V2,archer-c7-v2,ARCHER-C7,ttyS0,115200,0xc7000002,1,16Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ELM150,el-m150,EL-M150,ttyATH0,115200,0x01500101,1,8Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ELMINI,el-mini,EL-MINI,ttyATH0,115200,0x01530001,1,8Mlzma))
|
||||
-$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET,gl-inet-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
|
||||
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET6408A,gl-inet-6408A-v1,GL-INET,ttyATH0,115200,0x08000001,1,8Mlzma))
|
||||
+$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,GLINET6416A,gl-inet-6416A-v1,GL-INET,ttyATH0,115200,0x08000001,1,16Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))
|
||||
$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma))
|
||||
@@ -1304,6 +1305,7 @@ $(eval $(call MultiProfile,AP136,AP136_010 AP136_020))
|
||||
$(eval $(call MultiProfile,ARCHERC7, ARCHERC5 ARCHERC7V1 ARCHERC7V2))
|
||||
$(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT EWDORIN16M))
|
||||
$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600))
|
||||
+$(eval $(call MultiProfile,GLINET,GLINET6408A GLINET6416A))
|
||||
$(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
|
||||
$(eval $(call MultiProfile,TLMR11U,TLMR11UV1 TLMR11UV2))
|
||||
$(eval $(call MultiProfile,TLMR3040,TLMR3040V1 TLMR3040V2))
|
@ -1,39 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Fri, 13 Mar 2015 11:59:58 +0100
|
||||
Subject: ar71xx: detect GL.iNet model
|
||||
|
||||
There are two versions of the GL.iNet, the 6408A and the 6416A. The only
|
||||
difference is the flash size.
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 61a7936..a698ce5 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -262,6 +262,19 @@ tplink_pharos_board_detect() {
|
||||
[ -n "$model" ] && AR71XX_MODEL="$model v$2"
|
||||
}
|
||||
|
||||
+gl_inet_board_detect() {
|
||||
+ local size="$(mtd_get_part_size 'firmware')"
|
||||
+
|
||||
+ case "$size" in
|
||||
+ 8192000)
|
||||
+ AR71XX_MODEL='GL-iNet 6408A v1'
|
||||
+ ;;
|
||||
+ 16580608)
|
||||
+ AR71XX_MODEL='GL-iNet 6416A v1'
|
||||
+ ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
ar71xx_board_detect() {
|
||||
local machine
|
||||
local name
|
||||
@@ -380,6 +393,7 @@ ar71xx_board_detect() {
|
||||
;;
|
||||
*"GL-CONNECT INET v1")
|
||||
name="gl-inet"
|
||||
+ gl_inet_board_detect
|
||||
;;
|
||||
*"EnGenius ESR1750")
|
||||
name="esr1750"
|
@ -1,70 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 15 Mar 2015 18:06:49 +0100
|
||||
Subject: firmware-utils: allow passing a specific MBR signature to ptgen
|
||||
|
||||
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
|
||||
|
||||
diff --git a/tools/firmware-utils/src/ptgen.c b/tools/firmware-utils/src/ptgen.c
|
||||
index 0247fd0..6379ed7 100644
|
||||
--- a/tools/firmware-utils/src/ptgen.c
|
||||
+++ b/tools/firmware-utils/src/ptgen.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
+#include <stdint.h>
|
||||
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
#define cpu_to_le16(x) bswap_16(x)
|
||||
@@ -124,7 +125,7 @@ static inline unsigned long round_to_kb(long sect) {
|
||||
}
|
||||
|
||||
/* check the partition sizes and write the partition table */
|
||||
-static int gen_ptable(int nr)
|
||||
+static int gen_ptable(uint32_t signature, int nr)
|
||||
{
|
||||
struct pte pte[4];
|
||||
unsigned long sect = 0;
|
||||
@@ -159,6 +160,12 @@ static int gen_ptable(int nr)
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ lseek(fd, 440, SEEK_SET);
|
||||
+ if (write(fd, &signature, sizeof(signature)) != sizeof(signature)) {
|
||||
+ fprintf(stderr, "write failed.\n");
|
||||
+ goto fail;
|
||||
+ }
|
||||
+
|
||||
lseek(fd, 446, SEEK_SET);
|
||||
if (write(fd, pte, sizeof(struct pte) * 4) != sizeof(struct pte) * 4) {
|
||||
fprintf(stderr, "write failed.\n");
|
||||
@@ -187,8 +194,9 @@ int main (int argc, char **argv)
|
||||
char type = 0x83;
|
||||
int ch;
|
||||
int part = 0;
|
||||
+ uint32_t signature = 0x5452574F; /* 'OWRT' */
|
||||
|
||||
- while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vl:")) != -1) {
|
||||
+ while ((ch = getopt(argc, argv, "h:s:p:a:t:o:vl:S:")) != -1) {
|
||||
switch (ch) {
|
||||
case 'o':
|
||||
filename = optarg;
|
||||
@@ -221,6 +229,9 @@ int main (int argc, char **argv)
|
||||
case 'l':
|
||||
kb_align = (int) strtoul(optarg, NULL, 0) * 2;
|
||||
break;
|
||||
+ case 'S':
|
||||
+ signature = strtoul(optarg, NULL, 0);
|
||||
+ break;
|
||||
case '?':
|
||||
default:
|
||||
usage(argv[0]);
|
||||
@@ -229,6 +240,6 @@ int main (int argc, char **argv)
|
||||
argc -= optind;
|
||||
if (argc || (heads <= 0) || (sectors <= 0) || !filename)
|
||||
usage(argv[0]);
|
||||
-
|
||||
- return gen_ptable(part);
|
||||
+
|
||||
+ return gen_ptable(signature, part);
|
||||
}
|
@ -1,180 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Mon, 23 Mar 2015 21:11:41 +0100
|
||||
Subject: x86: use PARTUUID instead explicitly specifying the device by default
|
||||
|
||||
This changes the x86 image generation to match x86_64, using the PARTUUID for
|
||||
the rootfs instead of explicitly configuring the device.
|
||||
|
||||
It unbreaks KVM with VirtIO, which uses /dev/vda2 instead of /dev/sda2.
|
||||
|
||||
Tested in QEMU/KVM with VirtIO, VirtualBox and VMware.
|
||||
|
||||
diff --git a/config/Config-images.in b/config/Config-images.in
|
||||
index 39e51e4..f44ec73 100644
|
||||
--- a/config/Config-images.in
|
||||
+++ b/config/Config-images.in
|
||||
@@ -267,8 +267,6 @@ menu "Target Images"
|
||||
config TARGET_ROOTFS_PARTNAME
|
||||
string "Root partition on target device"
|
||||
depends on OLPC_BOOTSCRIPT_IMAGES || GRUB_IMAGES
|
||||
- default "/dev/xvda2" if TARGET_x86_xen_domu
|
||||
- default "/dev/sda2" if ! TARGET_x86_xen_domu
|
||||
help
|
||||
The root partition on the final device. If you don't know,
|
||||
you probably want the default (/dev/sda2).
|
||||
diff --git a/target/linux/x86/base-files/lib/preinit/79_move_config b/target/linux/x86/base-files/lib/preinit/79_move_config
|
||||
index 0bffbab..1d4873d 100644
|
||||
--- a/target/linux/x86/base-files/lib/preinit/79_move_config
|
||||
+++ b/target/linux/x86/base-files/lib/preinit/79_move_config
|
||||
@@ -1,21 +1,14 @@
|
||||
#!/bin/sh
|
||||
-# Copyright (C) 2012 OpenWrt.org
|
||||
+# Copyright (C) 2012-2015 OpenWrt.org
|
||||
|
||||
move_config() {
|
||||
- local rootfsdev
|
||||
- local rootfstype
|
||||
-
|
||||
- rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { print $2 }' < /proc/cmdline)"
|
||||
- case "$rootfstype" in
|
||||
- squashfs|jffs2)
|
||||
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < /proc/cmdline)";;
|
||||
- ext4)
|
||||
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "root") { print $2 }' < /proc/cmdline)";;
|
||||
- esac
|
||||
+ . /lib/upgrade/platform.sh
|
||||
|
||||
- mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
|
||||
- mv -f /mnt/sysupgrade.tgz /
|
||||
- umount /mnt
|
||||
+ if platform_export_bootpart; then
|
||||
+ mount -t ext4 -o rw,noatime "$BOOTPART" /mnt
|
||||
+ mv -f /mnt/sysupgrade.tgz /
|
||||
+ umount /mnt
|
||||
+ fi
|
||||
}
|
||||
|
||||
boot_hook_add preinit_mount_root move_config
|
||||
diff --git a/target/linux/x86/base-files/lib/upgrade/platform.sh b/target/linux/x86/base-files/lib/upgrade/platform.sh
|
||||
index a2dd20a..73ab5ef 100644
|
||||
--- a/target/linux/x86/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/x86/base-files/lib/upgrade/platform.sh
|
||||
@@ -1,16 +1,38 @@
|
||||
-x86_get_rootfs() {
|
||||
- local rootfsdev
|
||||
- local rootfstype
|
||||
-
|
||||
- rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { print $2 }' < /proc/cmdline)"
|
||||
- case "$rootfstype" in
|
||||
- squashfs|jffs2)
|
||||
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < /proc/cmdline)";;
|
||||
- ext4)
|
||||
- rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "root") { print $2 }' < /proc/cmdline)";;
|
||||
- esac
|
||||
-
|
||||
- echo "$rootfstype:$rootfsdev"
|
||||
+platform_export_bootpart() {
|
||||
+ local cmdline uuid disk
|
||||
+
|
||||
+ if read cmdline < /proc/cmdline; then
|
||||
+ case "$cmdline" in
|
||||
+ *block2mtd=*)
|
||||
+ disk="${cmdline##*block2mtd=}"
|
||||
+ disk="${disk%%,*}"
|
||||
+ ;;
|
||||
+ *root=*)
|
||||
+ disk="${cmdline##*root=}"
|
||||
+ disk="${disk%% *}"
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
+ case "$disk" in
|
||||
+ PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
|
||||
+ uuid="${disk#PARTUUID=}"
|
||||
+ uuid="${uuid%-02}"
|
||||
+ for disk in /dev/[hsv]d[a-z]; do
|
||||
+ set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
|
||||
+ if [ "$4$3$2$1" = "$uuid" ]; then
|
||||
+ export BOOTPART="${disk}1"
|
||||
+ return 0
|
||||
+ fi
|
||||
+ done
|
||||
+ ;;
|
||||
+ /dev/*)
|
||||
+ export BOOTPART="${disk%[0-9]}1"
|
||||
+ return 0
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+
|
||||
+ return 1
|
||||
}
|
||||
|
||||
platform_check_image() {
|
||||
@@ -26,19 +48,19 @@ platform_check_image() {
|
||||
}
|
||||
|
||||
platform_copy_config() {
|
||||
- local rootfs="$(x86_get_rootfs)"
|
||||
- local rootfsdev="${rootfs##*:}"
|
||||
-
|
||||
- mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
|
||||
- cp -af "$CONF_TAR" /mnt/
|
||||
- umount /mnt
|
||||
+ if [ -b "$BOOTPART" ]; then
|
||||
+ mount -t ext4 -o rw,noatime "$BOOTPART" /mnt
|
||||
+ cp -af "$CONF_TAR" /mnt/
|
||||
+ umount /mnt
|
||||
+ fi
|
||||
}
|
||||
|
||||
platform_do_upgrade() {
|
||||
- local rootfs="$(x86_get_rootfs)"
|
||||
- local rootfsdev="${rootfs##*:}"
|
||||
+ platform_export_bootpart
|
||||
|
||||
- sync
|
||||
- [ -b ${rootfsdev%[0-9]} ] && get_image "$@" | dd of=${rootfsdev%[0-9]} bs=4096 conv=fsync
|
||||
- sleep 1
|
||||
+ if [ -b "${BOOTPART%[0-9]}" ]; then
|
||||
+ sync
|
||||
+ get_image "$@" | dd of="${BOOTPART%[0-9]}" bs=4096 conv=fsync
|
||||
+ sleep 1
|
||||
+ fi
|
||||
}
|
||||
diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
|
||||
index 5983718..1f91b9f 100644
|
||||
--- a/target/linux/x86/image/Makefile
|
||||
+++ b/target/linux/x86/image/Makefile
|
||||
@@ -40,7 +40,9 @@ ifneq ($(GRUB_TERMINALS),)
|
||||
GRUB_TERMINAL_CONFIG := terminal_input $(GRUB_TERMINALS); terminal_output $(GRUB_TERMINALS)
|
||||
endif
|
||||
|
||||
+SIGNATURE:=$(shell dd if=/dev/urandom bs=4 count=1 2>/dev/null | hexdump -v -e '"%08x"')
|
||||
ROOTPART:=$(call qstrip,$(CONFIG_TARGET_ROOTFS_PARTNAME))
|
||||
+ROOTPART:=$(if $(ROOTPART),$(ROOTPART),PARTUUID=$(SIGNATURE)-02)
|
||||
|
||||
GRUB_TIMEOUT:=$(call qstrip,$(CONFIG_GRUB_TIMEOUT))
|
||||
|
||||
@@ -82,7 +84,7 @@ ifneq ($(CONFIG_GRUB_IMAGES),)
|
||||
-e 's#@CMDLINE@#$(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
|
||||
-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
|
||||
./grub.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
|
||||
- PADDING="$(CONFIG_TARGET_IMAGES_PAD)" PATH="$(TARGET_PATH)" ./gen_image_generic.sh \
|
||||
+ PADDING="$(CONFIG_TARGET_IMAGES_PAD)" SIGNATURE="$(SIGNATURE)" PATH="$(TARGET_PATH)" ./gen_image_generic.sh \
|
||||
$(BIN_DIR)/$(IMG_PREFIX)-combined-$(1).img \
|
||||
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(KDIR)/root.grub \
|
||||
$(CONFIG_TARGET_ROOTFS_PARTSIZE) $(KDIR)/root.$(1) \
|
||||
diff --git a/target/linux/x86/image/gen_image_generic.sh b/target/linux/x86/image/gen_image_generic.sh
|
||||
index 9d11efb..3fb31f6 100755
|
||||
--- a/target/linux/x86/image/gen_image_generic.sh
|
||||
+++ b/target/linux/x86/image/gen_image_generic.sh
|
||||
@@ -20,7 +20,7 @@ sect=63
|
||||
cyl=$(( ($KERNELSIZE + $ROOTFSSIZE) * 1024 * 1024 / ($head * $sect * 512)))
|
||||
|
||||
# create partition table
|
||||
-set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m ${ALIGN:+-l $ALIGN}`
|
||||
+set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m ${ALIGN:+-l $ALIGN} ${SIGNATURE:+-S 0x$SIGNATURE}`
|
||||
|
||||
KERNELOFFSET="$(($1 / 512))"
|
||||
KERNELSIZE="$(($2 / 512))"
|
@ -1,65 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 29 Mar 2015 13:23:26 +0200
|
||||
Subject: ar71xx: fix model string detection on NETGEAR WNDR3700/3800/WNDRMAC
|
||||
|
||||
There were a few issues with the existing code to detect the model string:
|
||||
* Always using the string starting with byte 56 would cut off the W of WNDR when
|
||||
the ID starts with 29763654+16+64 instead of 29763654+16+128
|
||||
* The string contained garbage after the zero byte instead of cutting it off
|
||||
after the zero (which wasn't always visible using busybox tools, but could
|
||||
confuse other scripts)
|
||||
|
||||
Tested on a WNDR3700v1 and a WNDR3700v2 using the new 29763654+16+64 ID in the
|
||||
ART. Furthermore, tested against ART dumps of a WNDR3700v2 using the old
|
||||
$'\xff...' value and a WNDR3800.
|
||||
|
||||
The [ -z "$model" ] check was dropped as there is no way to actually hit this
|
||||
unless no ART partition is found at all.
|
||||
|
||||
The awk command was carefully crafted to work both with gawk and the (horribly
|
||||
broken) busybox awk.
|
||||
|
||||
Fixes #18992.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index a698ce5..1838cb4 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -37,16 +37,26 @@ wndr3700_board_detect() {
|
||||
machine="NETGEAR WNDR3700"
|
||||
;;
|
||||
"33373031")
|
||||
- local model
|
||||
- model=$(ar71xx_get_mtd_offset_size_format art 56 10 %c)
|
||||
- if [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' ]; then
|
||||
- machine="NETGEAR WNDR3700v2"
|
||||
- elif [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xffN' ]; then
|
||||
- machine="NETGEAR WNDRMAC"
|
||||
- else
|
||||
+ # Use awk to remove everything after the first zero byte
|
||||
+ model="$(ar71xx_get_mtd_offset_size_format art 41 32 %c | awk 'BEGIN{FS="[[:cntrl:]]"} {print $1; exit}')"
|
||||
+ case $model in
|
||||
+ $'\xff'*)
|
||||
+ if [ "${model:24:1}" = 'N' ]; then
|
||||
+ machine="NETGEAR WNDRMAC"
|
||||
+ else
|
||||
+ machine="NETGEAR WNDR3700v2"
|
||||
+ fi
|
||||
+ ;;
|
||||
+ '29763654+16+64'*)
|
||||
+ machine="NETGEAR ${model:14}"
|
||||
+ ;;
|
||||
+ '29763654+16+128'*)
|
||||
+ machine="NETGEAR ${model:15}"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ # Unknown ID
|
||||
machine="NETGEAR $model"
|
||||
- fi
|
||||
- ;;
|
||||
+ esac
|
||||
esac
|
||||
|
||||
AR71XX_BOARD_NAME="$name"
|
@ -1,22 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 15 Mar 2015 21:03:25 +0100
|
||||
Subject: ar71xx: fix TP-LINK TL-WDR3600/4300 RFKILL switch positions
|
||||
|
||||
While the switch positions aren't explicitly labeled as on and off, we've heard
|
||||
complaints about them being wrong. This patch changes the handling to match the
|
||||
stock firmware.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
|
||||
index 99ae80d..3afc714 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wdr4300.c
|
||||
@@ -103,6 +103,7 @@ static struct gpio_keys_button wdr4300_gpio_keys[] __initdata = {
|
||||
.code = KEY_RFKILL,
|
||||
.debounce_interval = WDR4300_KEYS_DEBOUNCE_INTERVAL,
|
||||
.gpio = WDR4300_GPIO_BTN_RFKILL,
|
||||
+ .active_low = 1,
|
||||
},
|
||||
};
|
||||
|
@ -1,57 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Mon, 16 Mar 2015 13:23:34 +0100
|
||||
Subject: buildroot: make it easier to build all kmods
|
||||
|
||||
Split out kmods from ALL to make it easier to create local builds that
|
||||
are compatible kmod-wise with releases.
|
||||
|
||||
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
diff --git a/config/Config-build.in b/config/Config-build.in
|
||||
index 371ae76..8b0ebbf 100644
|
||||
--- a/config/Config-build.in
|
||||
+++ b/config/Config-build.in
|
||||
@@ -6,8 +6,12 @@
|
||||
|
||||
menu "Global build settings"
|
||||
|
||||
+ config ALL_KMODS
|
||||
+ bool "Select all kernel module packages by default"
|
||||
+ default ALL
|
||||
+
|
||||
config ALL
|
||||
- bool "Select all packages by default"
|
||||
+ bool "Select all userspace packages by default"
|
||||
default n
|
||||
|
||||
comment "General build options"
|
||||
diff --git a/include/version.mk b/include/version.mk
|
||||
index 2fd605f..f6c0fe2 100644
|
||||
--- a/include/version.mk
|
||||
+++ b/include/version.mk
|
||||
@@ -50,7 +50,7 @@ $(lastword $(subst :, ,$(1)))
|
||||
endef
|
||||
|
||||
VERSION_TAINT_SPECS := \
|
||||
- -ALL:no-all \
|
||||
+ -ALL_KMODS:no-all \
|
||||
-IPV6:no-ipv6 \
|
||||
+USE_EGLIBC:eglibc \
|
||||
+USE_MKLIBS:mklibs \
|
||||
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
|
||||
index 79f930c..4eecb0c 100755
|
||||
--- a/scripts/metadata.pl
|
||||
+++ b/scripts/metadata.pl
|
||||
@@ -574,7 +574,11 @@ sub print_package_config_category($) {
|
||||
print "\t\t".($pkg->{tristate} ? 'tristate' : 'bool')." $title\n";
|
||||
print "\t\tdefault y if DEFAULT_".$pkg->{name}."\n";
|
||||
unless ($pkg->{hidden}) {
|
||||
- $pkg->{default} ||= "m if ALL";
|
||||
+ if ($pkg->{name} =~ /^kmod-/) {
|
||||
+ $pkg->{default} ||= "m if ALL_KMODS";
|
||||
+ } else {
|
||||
+ $pkg->{default} ||= "m if ALL";
|
||||
+ }
|
||||
}
|
||||
if ($pkg->{default}) {
|
||||
foreach my $default (split /\s*,\s*/, $pkg->{default}) {
|
@ -1,26 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 18 Mar 2015 20:07:22 +0100
|
||||
Subject: build: define STAMP_CONFIGURED recursively
|
||||
|
||||
Defining STAMP_CONFIGURED statically caused it not to reflect changes to
|
||||
PKG_CONFIG_DEPENDS made after including package.mk, like the additional options
|
||||
added by feeds.mk for all packages.
|
||||
|
||||
Furthermore, as STAMP_CONFIGURED_WILDCARD was already defined recursively, the
|
||||
patsubst in its definition would never match, and in consequence, the stamps
|
||||
were never removed. This caused packages not to be rebuilt when they should have
|
||||
been.
|
||||
|
||||
diff --git a/include/package.mk b/include/package.mk
|
||||
index 53ca6de..402fb1a 100644
|
||||
--- a/include/package.mk
|
||||
+++ b/include/package.mk
|
||||
@@ -60,7 +60,7 @@ ifneq ($(PREV_STAMP_PREPARED),)
|
||||
else
|
||||
STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),))$(call confvar,$(PKG_PREPARED_DEPENDS)))
|
||||
endif
|
||||
-STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS)))
|
||||
+STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS)))
|
||||
STAMP_CONFIGURED_WILDCARD=$(patsubst %_$(call confvar,$(PKG_CONFIG_DEPENDS)),%_*,$(STAMP_CONFIGURED))
|
||||
STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
|
||||
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)_installed
|
File diff suppressed because it is too large
Load Diff
@ -1,168 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 30 Apr 2015 02:10:54 +0200
|
||||
Subject: mpc85xx: gianfar: add add mtd-mac-address support
|
||||
|
||||
diff --git a/target/linux/mpc85xx/patches-3.10/101-NET-add-of_get_mac_address_mtd.patch b/target/linux/mpc85xx/patches-3.10/101-NET-add-of_get_mac_address_mtd.patch
|
||||
new file mode 100644
|
||||
index 0000000..cd88d2b
|
||||
--- /dev/null
|
||||
+++ b/target/linux/mpc85xx/patches-3.10/101-NET-add-of_get_mac_address_mtd.patch
|
||||
@@ -0,0 +1,76 @@
|
||||
+From 92f38460229a8816404408f036f0a374f1013d0e Mon Sep 17 00:00:00 2001
|
||||
+From: John Crispin <blogic@openwrt.org>
|
||||
+Date: Sun, 27 Jul 2014 09:40:01 +0100
|
||||
+Subject: NET: add of_get_mac_address_mtd()
|
||||
+
|
||||
+Many embedded devices have information such as mac addresses stored inside mtd
|
||||
+devices. This patch allows us to add a property inside a node describing a
|
||||
+network interface. The new property points at a mtd partition with an offset
|
||||
+where the mac address can be found.
|
||||
+
|
||||
+Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+---
|
||||
+ drivers/of/of_net.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||
+ include/linux/of_net.h | 1 +
|
||||
+ 2 files changed, 38 insertions(+)
|
||||
+
|
||||
+--- a/drivers/of/of_net.c
|
||||
++++ b/drivers/of/of_net.c
|
||||
+@@ -10,6 +10,7 @@
|
||||
+ #include <linux/of_net.h>
|
||||
+ #include <linux/phy.h>
|
||||
+ #include <linux/export.h>
|
||||
++#include <linux/mtd/mtd.h>
|
||||
+
|
||||
+ /**
|
||||
+ * It maps 'enum phy_interface_t' found in include/linux/phy.h
|
||||
+@@ -92,3 +93,39 @@ const void *of_get_mac_address(struct de
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ EXPORT_SYMBOL(of_get_mac_address);
|
||||
++
|
||||
++int of_get_mac_address_mtd(struct device_node *np, void *mac)
|
||||
++{
|
||||
++ struct device_node *mtd_np = NULL;
|
||||
++ size_t retlen;
|
||||
++ int size, ret;
|
||||
++ struct mtd_info *mtd;
|
||||
++ const char *part;
|
||||
++ const __be32 *list;
|
||||
++ phandle phandle;
|
||||
++
|
||||
++ list = of_get_property(np, "mtd-mac-address", &size);
|
||||
++ if (!list || (size != (2 * sizeof(*list))))
|
||||
++ return -ENOENT;
|
||||
++
|
||||
++ phandle = be32_to_cpup(list++);
|
||||
++ if (phandle)
|
||||
++ mtd_np = of_find_node_by_phandle(phandle);
|
||||
++
|
||||
++ if (!mtd_np)
|
||||
++ return -ENOENT;
|
||||
++
|
||||
++ part = of_get_property(mtd_np, "label", NULL);
|
||||
++ if (!part)
|
||||
++ part = mtd_np->name;
|
||||
++
|
||||
++ mtd = get_mtd_device_nm(part);
|
||||
++ if (IS_ERR(mtd))
|
||||
++ return PTR_ERR(mtd);
|
||||
++
|
||||
++ ret = mtd_read(mtd, be32_to_cpup(list), 6, &retlen, (u_char *) mac);
|
||||
++ put_mtd_device(mtd);
|
||||
++
|
||||
++ return ret;
|
||||
++}
|
||||
++EXPORT_SYMBOL_GPL(of_get_mac_address_mtd);
|
||||
+--- a/include/linux/of_net.h
|
||||
++++ b/include/linux/of_net.h
|
||||
+@@ -11,6 +11,7 @@
|
||||
+ #include <linux/of.h>
|
||||
+ extern const int of_get_phy_mode(struct device_node *np);
|
||||
+ extern const void *of_get_mac_address(struct device_node *np);
|
||||
++extern int of_get_mac_address_mtd(struct device_node *np, void *mac);
|
||||
+ #else
|
||||
+ static inline const int of_get_phy_mode(struct device_node *np)
|
||||
+ {
|
||||
diff --git a/target/linux/mpc85xx/patches-3.10/201-net-gianfar-use-mtd-mac-address.patch b/target/linux/mpc85xx/patches-3.10/201-net-gianfar-use-mtd-mac-address.patch
|
||||
new file mode 100644
|
||||
index 0000000..1de4418
|
||||
--- /dev/null
|
||||
+++ b/target/linux/mpc85xx/patches-3.10/201-net-gianfar-use-mtd-mac-address.patch
|
||||
@@ -0,0 +1,19 @@
|
||||
+--- a/drivers/net/ethernet/freescale/gianfar.c
|
||||
++++ b/drivers/net/ethernet/freescale/gianfar.c
|
||||
+@@ -741,10 +741,13 @@ static int gfar_of_init(struct platform_
|
||||
+ if (stash_len || stash_idx)
|
||||
+ priv->device_flags |= FSL_GIANFAR_DEV_HAS_BUF_STASHING;
|
||||
+
|
||||
+- mac_addr = of_get_mac_address(np);
|
||||
++ err = of_get_mac_address_mtd(np, dev->dev_addr);
|
||||
++ if (err) {
|
||||
++ mac_addr = of_get_mac_address(np);
|
||||
+
|
||||
+- if (mac_addr)
|
||||
+- memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
|
||||
++ if (mac_addr)
|
||||
++ memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
|
||||
++ }
|
||||
+
|
||||
+ if (model && !strcasecmp(model, "TSEC"))
|
||||
+ priv->device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
|
||||
diff --git a/target/linux/mpc85xx/patches-3.10/220-fix_gianfar_reported_number_of_sent_bytes_to_BQL.patch b/target/linux/mpc85xx/patches-3.10/220-fix_gianfar_reported_number_of_sent_bytes_to_BQL.patch
|
||||
index d0380ff..0d510bc 100644
|
||||
--- a/target/linux/mpc85xx/patches-3.10/220-fix_gianfar_reported_number_of_sent_bytes_to_BQL.patch
|
||||
+++ b/target/linux/mpc85xx/patches-3.10/220-fix_gianfar_reported_number_of_sent_bytes_to_BQL.patch
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/ethernet/freescale/gianfar.c
|
||||
+++ b/drivers/net/ethernet/freescale/gianfar.c
|
||||
-@@ -2064,7 +2064,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
+@@ -2067,7 +2067,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
int i, rq = 0, do_tstamp = 0;
|
||||
u32 bufaddr;
|
||||
unsigned long flags;
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
/* TOE=1 frames larger than 2500 bytes may see excess delays
|
||||
* before start of transmission.
|
||||
-@@ -2130,7 +2130,10 @@ static int gfar_start_xmit(struct sk_buf
|
||||
+@@ -2133,7 +2133,10 @@ static int gfar_start_xmit(struct sk_buf
|
||||
}
|
||||
|
||||
/* Update transmit stats */
|
||||
@@ -21,7 +21,7 @@
|
||||
tx_queue->stats.tx_packets++;
|
||||
|
||||
txbdp = txbdp_start = tx_queue->cur_tx;
|
||||
-@@ -2150,12 +2153,13 @@ static int gfar_start_xmit(struct sk_buf
|
||||
+@@ -2153,12 +2156,13 @@ static int gfar_start_xmit(struct sk_buf
|
||||
} else {
|
||||
/* Place the fragment addresses and lengths into the TxBDs */
|
||||
for (i = 0; i < nr_frags; i++) {
|
||||
@@ -37,7 +37,7 @@
|
||||
BD_LFLAG(TXBD_READY);
|
||||
|
||||
/* Handle the last BD specially */
|
||||
-@@ -2165,7 +2169,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
+@@ -2168,7 +2172,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
bufaddr = skb_frag_dma_map(priv->dev,
|
||||
&skb_shinfo(skb)->frags[i],
|
||||
0,
|
||||
@@ -46,7 +46,7 @@
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
/* set the TxBD length and buffer pointer */
|
||||
-@@ -2231,7 +2235,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
+@@ -2234,7 +2238,7 @@ static int gfar_start_xmit(struct sk_buf
|
||||
lstatus |= BD_LFLAG(TXBD_CRC | TXBD_READY) | skb_headlen(skb);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
/* We can work in parallel with gfar_clean_tx_ring(), except
|
||||
* when modifying num_txbdfree. Note that we didn't grab the lock
|
||||
-@@ -2551,7 +2555,7 @@ static void gfar_clean_tx_ring(struct gf
|
||||
+@@ -2554,7 +2558,7 @@ static void gfar_clean_tx_ring(struct gf
|
||||
bdp = next_txbd(bdp, base, tx_ring_size);
|
||||
}
|
||||
|
@ -1,41 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 30 Apr 2015 02:12:18 +0200
|
||||
Subject: mpc85xx: replace WDR4900 uci-defaults ethernet MAC address hack with DTS entry
|
||||
|
||||
This also changes the MAC address to one of the adresses actually used by the
|
||||
stock firmware on one of the ethernet interfaces.
|
||||
|
||||
diff --git a/target/linux/mpc85xx/base-files/etc/uci-defaults/02_network b/target/linux/mpc85xx/base-files/etc/uci-defaults/02_network
|
||||
index e4e3566..525a552 100755
|
||||
--- a/target/linux/mpc85xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/mpc85xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -20,8 +20,6 @@ tl-wdr4900-v1)
|
||||
ucidef_add_switch "switch0" "1" "1"
|
||||
ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5"
|
||||
ucidef_add_switch_vlan "switch0" "2" "0t 1"
|
||||
- ucidef_set_interface_macaddr lan "$(mtd_get_mac_binary config 338)"
|
||||
- ucidef_set_interface_macaddr wan "$(mtd_get_mac_binary config 344)"
|
||||
;;
|
||||
*)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
diff --git a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
|
||||
index 49e516c..7e48e23 100644
|
||||
--- a/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
|
||||
+++ b/target/linux/mpc85xx/files/arch/powerpc/boot/dts/tl-wdr4900-v1.dts
|
||||
@@ -63,7 +63,7 @@
|
||||
label = "rootfs";
|
||||
};
|
||||
|
||||
- config@fe0000 {
|
||||
+ config: config@fe0000 {
|
||||
reg = <0x00fe0000 0x00010000>;
|
||||
label = "config";
|
||||
read-only;
|
||||
@@ -118,6 +118,7 @@
|
||||
enet0: ethernet@b0000 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
+ mtd-mac-address = <&config 0x14c>;
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
@ -1,20 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Mon, 4 May 2015 20:38:37 +0200
|
||||
Subject: iwinfo: update NanoStation (Loco) txpower offsets
|
||||
|
||||
diff --git a/package/network/utils/iwinfo/src/hardware.txt b/package/network/utils/iwinfo/src/hardware.txt
|
||||
index 153ffeb..b8dfc51 100644
|
||||
--- a/package/network/utils/iwinfo/src/hardware.txt
|
||||
+++ b/package/network/utils/iwinfo/src/hardware.txt
|
||||
@@ -42,8 +42,9 @@
|
||||
0x168c 0x0027 0x0777 0x4082 7 0 "Ubiquiti" "SR71"
|
||||
0x168c 0x0029 0x0777 0x4005 7 0 "Ubiquiti" "SR71-15"
|
||||
0x168c 0x002a 0x0777 0xe302 12 0 "Ubiquiti" "PicoStation M2" /* ToDo: confirm offset */
|
||||
-0x168c 0x002a 0x0777 0xe012 12 0 "Ubiquiti" "NanoStation M2" /* ToDo: confirm offset */
|
||||
-0x168c 0x002a 0x0777 0xe005 5 0 "Ubiquiti" "NanoStation M5" /* ToDo: confirm offset */
|
||||
+0x168c 0x002a 0x0777 0xe012 11 0 "Ubiquiti" "NanoStation M2"
|
||||
+0x168c 0x002e 0x0777 0xe0a2 8 0 "Ubiquiti" "NanoStation Loco M2"
|
||||
+0x168c 0x002a 0x0777 0xe005 16 0 "Ubiquiti" "NanoStation M5"
|
||||
0x168c 0x002a 0x0777 0xe202 12 0 "Ubiquiti" "Bullet M2"
|
||||
0x168c 0x002a 0x0777 0xe805 5 0 "Ubiquiti" "Bullet M5"
|
||||
0x168c 0x002a 0x0777 0xe345 0 0 "Ubiquiti" "WispStation M5" /* ToDo: confirm offset */
|
@ -2,10 +2,10 @@ From: Nils Schneider <nils@nilsschneider.net>
|
||||
Date: Sat, 9 Aug 2014 09:33:21 +0200
|
||||
Subject: fvalue.html: add label that can be styled
|
||||
|
||||
diff --git a/modules/base/luasrc/view/cbi/fvalue.htm b/modules/base/luasrc/view/cbi/fvalue.htm
|
||||
diff --git a/modules/luci-base/luasrc/view/cbi/fvalue.htm b/modules/luci-base/luasrc/view/cbi/fvalue.htm
|
||||
index a1e0808..a324ab2 100644
|
||||
--- a/modules/base/luasrc/view/cbi/fvalue.htm
|
||||
+++ b/modules/base/luasrc/view/cbi/fvalue.htm
|
||||
--- a/modules/luci-base/luasrc/view/cbi/fvalue.htm
|
||||
+++ b/modules/luci-base/luasrc/view/cbi/fvalue.htm
|
||||
@@ -6,4 +6,5 @@
|
||||
attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) ..
|
||||
ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked")
|
||||
|
@ -2,11 +2,11 @@ From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 19 Mar 2015 18:44:52 +0100
|
||||
Subject: modules/base: dispatcher: set default language if none provided by the browser matches
|
||||
|
||||
diff --git a/modules/base/luasrc/dispatcher.lua b/modules/base/luasrc/dispatcher.lua
|
||||
index f7e16e7..479ac54 100644
|
||||
--- a/modules/base/luasrc/dispatcher.lua
|
||||
+++ b/modules/base/luasrc/dispatcher.lua
|
||||
@@ -211,6 +211,7 @@ function dispatch(request)
|
||||
diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua
|
||||
index 8b8d1fa..27f9a15 100644
|
||||
--- a/modules/luci-base/luasrc/dispatcher.lua
|
||||
+++ b/modules/luci-base/luasrc/dispatcher.lua
|
||||
@@ -182,6 +182,7 @@ function dispatch(request)
|
||||
assert(conf.main,
|
||||
"/etc/config/luci seems to be corrupt, unable to find section 'main'")
|
||||
|
||||
@ -14,7 +14,7 @@ index f7e16e7..479ac54 100644
|
||||
local lang = conf.main.lang or "auto"
|
||||
if lang == "auto" then
|
||||
local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
|
||||
@@ -222,7 +223,10 @@ function dispatch(request)
|
||||
@@ -193,7 +194,10 @@ function dispatch(request)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -0,0 +1,17 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 21 May 2015 02:34:01 +0200
|
||||
Subject: luci-base: depend on libubus-lua
|
||||
|
||||
diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile
|
||||
index 80bbda1..55c21eb 100644
|
||||
--- a/modules/luci-base/Makefile
|
||||
+++ b/modules/luci-base/Makefile
|
||||
@@ -12,7 +12,7 @@ LUCI_TYPE:=mod
|
||||
LUCI_BASENAME:=base
|
||||
|
||||
LUCI_TITLE:=LuCI core libraries
|
||||
-LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd
|
||||
+LUCI_DEPENDS:=+lua +libuci-lua +libubus-lua +luci-lib-nixio +luci-lib-ip +rpcd
|
||||
|
||||
PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
|
||||
PKG_SOURCE_URL:=https://luasrcdiet.googlecode.com/files
|
@ -1,33 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sat, 26 Jul 2014 18:06:07 +0200
|
||||
Subject: haveged: start directly after initial setup and disable tests
|
||||
|
||||
diff --git a/utils/haveged/Makefile b/utils/haveged/Makefile
|
||||
index aff998d..94c8c34 100644
|
||||
--- a/utils/haveged/Makefile
|
||||
+++ b/utils/haveged/Makefile
|
||||
@@ -42,8 +42,9 @@ define Package/libhavege
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS+= \
|
||||
- --enable-daemon=yes
|
||||
- --enable-threads=no
|
||||
+ --enable-daemon=yes \
|
||||
+ --enable-threads=no \
|
||||
+ --enable-olt=no
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
diff --git a/utils/haveged/files/haveged.init b/utils/haveged/files/haveged.init
|
||||
index ce28e61..113d64f 100644
|
||||
--- a/utils/haveged/files/haveged.init
|
||||
+++ b/utils/haveged/files/haveged.init
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
|
||||
-START=98
|
||||
+START=13
|
||||
|
||||
HAVEGED_THRESHOLD=1024
|
||||
HAVEGED_DCACHE=32
|
@ -1,35 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 29 Jan 2015 07:46:26 +0100
|
||||
Subject: libuecc: update to v5
|
||||
|
||||
diff --git a/libs/libuecc/Makefile b/libs/libuecc/Makefile
|
||||
index 0fe4833..63b6ebe 100644
|
||||
--- a/libs/libuecc/Makefile
|
||||
+++ b/libs/libuecc/Makefile
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# Copyright (C) 2012-2014 OpenWrt.org
|
||||
+# Copyright (C) 2012-2015 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
@@ -8,13 +8,16 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libuecc
|
||||
-PKG_VERSION:=4
|
||||
+PKG_VERSION:=5
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
-PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/71
|
||||
-PKG_MD5SUM:=7f44df5dc69cb8686947562e2a11eea9
|
||||
+PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/80
|
||||
+PKG_MD5SUM:=cd03c947931c2f4b0eea0bf45654bd34
|
||||
+
|
||||
+PKG_LICENSE:=BSD-2-Clause
|
||||
+PKG_LICENSE_FILES:=COPYRIGHT
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
@ -1,213 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 29 Jan 2015 07:48:03 +0100
|
||||
Subject: fastd: update to v17
|
||||
|
||||
diff --git a/net/fastd/Config.in b/net/fastd/Config.in
|
||||
index ca4045c..5820b97 100644
|
||||
--- a/net/fastd/Config.in
|
||||
+++ b/net/fastd/Config.in
|
||||
@@ -11,6 +11,11 @@ config FASTD_ENABLE_METHOD_COMPOSED_GMAC
|
||||
depends on PACKAGE_fastd
|
||||
default y
|
||||
|
||||
+config FASTD_ENABLE_METHOD_COMPOSED_UMAC
|
||||
+ bool "Enable composed-umac method provider"
|
||||
+ depends on PACKAGE_fastd
|
||||
+ default y
|
||||
+
|
||||
config FASTD_ENABLE_METHOD_GENERIC_GMAC
|
||||
bool "Enable generic-gmac method provider"
|
||||
depends on PACKAGE_fastd
|
||||
@@ -21,6 +26,11 @@ config FASTD_ENABLE_METHOD_GENERIC_POLY1305
|
||||
depends on PACKAGE_fastd
|
||||
default n
|
||||
|
||||
+config FASTD_ENABLE_METHOD_GENERIC_UMAC
|
||||
+ bool "Enable generic-umac method provider"
|
||||
+ depends on PACKAGE_fastd
|
||||
+ default y
|
||||
+
|
||||
config FASTD_ENABLE_METHOD_NULL
|
||||
bool "Enable null method"
|
||||
depends on PACKAGE_fastd
|
||||
@@ -58,6 +68,11 @@ config FASTD_ENABLE_MAC_GHASH
|
||||
depends on PACKAGE_fastd
|
||||
default y
|
||||
|
||||
+config FASTD_ENABLE_MAC_UHASH
|
||||
+ bool "Enable the UHASH message authentication code"
|
||||
+ depends on PACKAGE_fastd
|
||||
+ default y
|
||||
+
|
||||
|
||||
config FASTD_WITH_CMDLINE_USER
|
||||
bool "Include support for setting user/group related options on the command line"
|
||||
@@ -79,9 +94,15 @@ config FASTD_WITH_CMDLINE_COMMANDS
|
||||
depends on PACKAGE_fastd
|
||||
default n
|
||||
|
||||
-config FASTD_WITH_VERIFY
|
||||
- bool "Include support for on-verify handlers"
|
||||
- depends on PACKAGE_fastd
|
||||
- default n
|
||||
+config FASTD_WITH_DYNAMIC_PEERS
|
||||
+ bool "Include support for on-verify handlers"
|
||||
+ depends on PACKAGE_fastd
|
||||
+ default n
|
||||
+
|
||||
+config FASTD_WITH_STATUS_SOCKET
|
||||
+ bool "Include support for status sockets"
|
||||
+ depends on PACKAGE_fastd
|
||||
+ default y
|
||||
+
|
||||
|
||||
endmenu
|
||||
diff --git a/net/fastd/Makefile b/net/fastd/Makefile
|
||||
index 0629cd7..027f549 100644
|
||||
--- a/net/fastd/Makefile
|
||||
+++ b/net/fastd/Makefile
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
-# Copyright (C) 2012-2014 OpenWrt.org
|
||||
+# Copyright (C) 2012-2015 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
@@ -8,19 +8,24 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fastd
|
||||
-PKG_VERSION:=14
|
||||
+PKG_VERSION:=17
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
-PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/75
|
||||
-PKG_MD5SUM:=34f6bdebd0410a1fba7c8fd06fff7a05
|
||||
+PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/81
|
||||
+PKG_MD5SUM:=bad4f1948702f418b799578f83a0edb8
|
||||
+
|
||||
+PKG_LICENSE:=BSD-2-Clause
|
||||
+PKG_LICENSE_FILES:=COPYRIGHT
|
||||
|
||||
PKG_CONFIG_DEPENDS:=\
|
||||
CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST \
|
||||
CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC \
|
||||
+ CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC \
|
||||
CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC \
|
||||
CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305 \
|
||||
+ CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC \
|
||||
CONFIG_FASTD_ENABLE_METHOD_NULL \
|
||||
CONFIG_FASTD_ENABLE_METHOD_XSALSA20_POLY1305 \
|
||||
CONFIG_FASTD_ENABLE_CIPHER_AES128_CTR \
|
||||
@@ -28,11 +33,13 @@ PKG_CONFIG_DEPENDS:=\
|
||||
CONFIG_FASTD_ENABLE_CIPHER_SALSA20 \
|
||||
CONFIG_FASTD_ENABLE_CIPHER_SALSA2012 \
|
||||
CONFIG_FASTD_ENABLE_MAC_GHASH \
|
||||
+ CONFIG_FASTD_ENABLE_MAC_UHASH \
|
||||
CONFIG_FASTD_WITH_CMDLINE_USER \
|
||||
CONFIG_FASTD_WITH_CMDLINE_LOGGING \
|
||||
CONFIG_FASTD_WITH_CMDLINE_OPERATION \
|
||||
CONFIG_FASTD_WITH_CMDLINE_COMMANDS \
|
||||
- CONFIG_FASTD_WITH_VERIFY
|
||||
+ CONFIG_FASTD_WITH_DYNAMIC_PEERS \
|
||||
+ CONFIG_FASTD_WITH_STATUS_SOCKET
|
||||
|
||||
|
||||
PKG_BUILD_DEPENDS:=nacl libuecc
|
||||
@@ -43,7 +50,7 @@ include $(INCLUDE_DIR)/cmake.mk
|
||||
define Package/fastd
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
- DEPENDS:=+kmod-tun +librt +libpthread
|
||||
+ DEPENDS:=+kmod-tun +librt +libpthread +FASTD_WITH_STATUS_SOCKET:libjson-c
|
||||
TITLE:=Fast and Secure Tunneling Daemon
|
||||
URL:=https://projects.universe-factory.net/projects/fastd
|
||||
SUBMENU:=VPN
|
||||
@@ -60,8 +67,10 @@ CMAKE_OPTIONS += \
|
||||
-DCMAKE_BUILD_TYPE:STRING=MINSIZEREL \
|
||||
-DWITH_METHOD_CIPHER_TEST:BOOL=FALSE \
|
||||
-DWITH_METHOD_COMPOSED_GMAC:BOOL=FALSE \
|
||||
+ -DWITH_METHOD_COMPOSED_UMAC:BOOL=FALSE \
|
||||
-DWITH_METHOD_GENERIC_GMAC:BOOL=FALSE \
|
||||
-DWITH_METHOD_GENERIC_POLY1305:BOOL=FALSE \
|
||||
+ -DWITH_METHOD_GENERIC_UMAC:BOOL=FALSE \
|
||||
-DWITH_METHOD_NULL:BOOL=FALSE \
|
||||
-DWITH_METHOD_XSALSA20_POLY1305:BOOL=FALSE \
|
||||
-DWITH_CIPHER_AES128_CTR:BOOL=FALSE \
|
||||
@@ -69,11 +78,13 @@ CMAKE_OPTIONS += \
|
||||
-DWITH_CIPHER_SALSA20:BOOL=FALSE \
|
||||
-DWITH_CIPHER_SALSA2012:BOOL=FALSE \
|
||||
-DWITH_MAC_GHASH:BOOL=FALSE \
|
||||
+ -DWITH_MAC_UHASH:BOOL=FALSE \
|
||||
-DWITH_CMDLINE_USER:BOOL=FALSE \
|
||||
-DWITH_CMDLINE_LOGGING:BOOL=FALSE \
|
||||
-DWITH_CMDLINE_OPERATION:BOOL=FALSE \
|
||||
-DWITH_CMDLINE_COMMANDS:BOOL=FALSE \
|
||||
- -DWITH_VERIFY:BOOL=FALSE \
|
||||
+ -DWITH_DYNAMIC_PEERS:BOOL=FALSE \
|
||||
+ -DWITH_STATUS_SOCKET:BOOL=FALSE \
|
||||
-DWITH_CAPABILITIES:BOOL=FALSE \
|
||||
-DENABLE_SYSTEMD:BOOL=FALSE \
|
||||
-DENABLE_LIBSODIUM:BOOL=FALSE \
|
||||
@@ -88,6 +99,10 @@ ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC),y)
|
||||
CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_GMAC:BOOL=TRUE
|
||||
endif
|
||||
|
||||
+ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC),y)
|
||||
+CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_UMAC:BOOL=TRUE
|
||||
+endif
|
||||
+
|
||||
ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC),y)
|
||||
CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_GMAC:BOOL=TRUE
|
||||
endif
|
||||
@@ -96,6 +111,10 @@ ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305),y)
|
||||
CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_POLY1305:BOOL=TRUE
|
||||
endif
|
||||
|
||||
+ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC),y)
|
||||
+CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_UMAC:BOOL=TRUE
|
||||
+endif
|
||||
+
|
||||
ifeq ($(CONFIG_FASTD_ENABLE_METHOD_NULL),y)
|
||||
CMAKE_OPTIONS += -DWITH_METHOD_NULL:BOOL=TRUE
|
||||
endif
|
||||
@@ -126,6 +145,10 @@ ifeq ($(CONFIG_FASTD_ENABLE_MAC_GHASH),y)
|
||||
CMAKE_OPTIONS += -DWITH_MAC_GHASH:BOOL=TRUE
|
||||
endif
|
||||
|
||||
+ifeq ($(CONFIG_FASTD_ENABLE_MAC_UHASH),y)
|
||||
+CMAKE_OPTIONS += -DWITH_MAC_UHASH:BOOL=TRUE
|
||||
+endif
|
||||
+
|
||||
|
||||
ifeq ($(CONFIG_FASTD_WITH_CMDLINE_USER),y)
|
||||
CMAKE_OPTIONS += -DWITH_CMDLINE_USER:BOOL=TRUE
|
||||
@@ -143,8 +166,12 @@ ifeq ($(CONFIG_FASTD_WITH_CMDLINE_COMMANDS),y)
|
||||
CMAKE_OPTIONS += -DWITH_CMDLINE_COMMANDS:BOOL=TRUE
|
||||
endif
|
||||
|
||||
-ifeq ($(CONFIG_FASTD_WITH_VERIFY),y)
|
||||
-CMAKE_OPTIONS += -DWITH_VERIFY:BOOL=TRUE
|
||||
+ifeq ($(CONFIG_FASTD_WITH_DYNAMIC_PEERS),y)
|
||||
+CMAKE_OPTIONS += -DWITH_DYNAMIC_PEERS:BOOL=TRUE
|
||||
+endif
|
||||
+
|
||||
+ifeq ($(CONFIG_FASTD_WITH_STATUS_SOCKET),y)
|
||||
+CMAKE_OPTIONS += -DWITH_STATUS_SOCKET:BOOL=TRUE
|
||||
endif
|
||||
|
||||
|
||||
@@ -161,9 +188,9 @@ define Package/fastd/install
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fastd $(1)/usr/bin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d/
|
||||
- $(INSTALL_BIN) files/fastd.init $(1)/etc/init.d/fastd
|
||||
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.init $(1)/etc/init.d/fastd
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
- $(INSTALL_CONF) files/fastd.config $(1)/etc/config/fastd
|
||||
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.config $(1)/etc/config/fastd
|
||||
$(INSTALL_DIR) $(1)/etc/fastd
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
$(INSTALL_DATA) files/fastd.upgrade $(1)/lib/upgrade/keep.d/fastd
|
@ -1,52 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 7 Jan 2015 16:40:43 +0100
|
||||
Subject: Update batman-adv and alfred to v2014.4
|
||||
|
||||
diff --git a/alfred/Makefile b/alfred/Makefile
|
||||
index 648a5ef..0a5fcac 100644
|
||||
--- a/alfred/Makefile
|
||||
+++ b/alfred/Makefile
|
||||
@@ -11,9 +11,9 @@ include $(TOPDIR)/rules.mk
|
||||
# The latest alfred git hash in PKG_REV can be obtained from http://git.open-mesh.org/alfred.git
|
||||
#
|
||||
PKG_NAME:=alfred
|
||||
-PKG_VERSION:=2014.3.0
|
||||
+PKG_VERSION:=2014.4.0
|
||||
PKG_RELEASE:=0
|
||||
-PKG_MD5SUM:=b8ab5677ed73d817b02b0e4fae10357a
|
||||
+PKG_MD5SUM:=053cb5d9e7ca9384598e82944343dea2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
|
||||
diff --git a/batctl/Makefile b/batctl/Makefile
|
||||
index ae22286..1009b03 100644
|
||||
--- a/batctl/Makefile
|
||||
+++ b/batctl/Makefile
|
||||
@@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=batctl
|
||||
|
||||
-PKG_VERSION:=2014.2.0
|
||||
+PKG_VERSION:=2014.4.0
|
||||
PKG_RELEASE:=1
|
||||
-PKG_MD5SUM:=c196cf95b7324d9123b701a56b06b31d
|
||||
+PKG_MD5SUM:=f3a14565699313258ee6ba3de783eb0a
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
|
||||
diff --git a/batman-adv/Makefile b/batman-adv/Makefile
|
||||
index 889dea7..0d5ed33 100644
|
||||
--- a/batman-adv/Makefile
|
||||
+++ b/batman-adv/Makefile
|
||||
@@ -10,9 +10,9 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=batman-adv
|
||||
|
||||
-PKG_VERSION:=2014.2.0
|
||||
+PKG_VERSION:=2014.4.0
|
||||
PKG_RELEASE:=1
|
||||
-PKG_MD5SUM:=1243029b3a3e2f4fa721d1a59c2faaf5
|
||||
+PKG_MD5SUM:=b1518e84ce530883d224c6ca4c673ce8
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
|
@ -112,10 +112,13 @@ $(eval $(call GluonProfile,TLMR3040))
|
||||
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v1,tp-link-tl-mr3040-v1))
|
||||
$(eval $(call GluonModel,TLMR3040,tl-mr3040-v2,tp-link-tl-mr3040-v2))
|
||||
|
||||
# TL-MR3220 v1, v2
|
||||
$(eval $(call GluonProfile,TLMR3220))
|
||||
$(eval $(call GluonModel,TLMR3220,tl-mr3220-v1,tp-link-tl-mr3220-v1))
|
||||
$(eval $(call GluonModel,TLMR3220,tl-mr3220-v2,tp-link-tl-mr3220-v2))
|
||||
# TL-MR3220 v1
|
||||
$(eval $(call GluonProfile,TLMR3220V1))
|
||||
$(eval $(call GluonModel,TLMR3220V1,tl-mr3220-v1,tp-link-tl-mr3220-v1))
|
||||
|
||||
# TL-MR3220 v2
|
||||
$(eval $(call GluonProfile,TLMR3220V2))
|
||||
$(eval $(call GluonModel,TLMR3220V2,tl-mr3220-v2,tp-link-tl-mr3220-v2))
|
||||
|
||||
# TL-MR3420 v1, v2
|
||||
$(eval $(call GluonProfile,TLMR3420))
|
||||
|
@ -1 +1 @@
|
||||
0114c71ed85677c9c1e4911437af4743
|
||||
c9110281555cccc9dd13e092c2acaeaf
|
||||
|
@ -1 +1 @@
|
||||
41123e63bc43f61af09d064504300966
|
||||
689cae9c23d40bdba3f46c59a12ca179
|
||||
|
@ -1 +1 @@
|
||||
c1a44dd429e530bed2958b8e6cb54a52
|
||||
18b3b28a5f70d5040f741bd44916dc57
|
||||
|
@ -1 +1 @@
|
||||
194d0e9ee3ca8df976c737e78e8b2194
|
||||
4d806b94ed2b1e50df33a69891888e4a
|
||||
|
@ -1 +1 @@
|
||||
3051dee8f07064b727e9d57fbfeb05ec
|
||||
6581cdee9837e0761056ab3c80d05a2e
|
||||
|
@ -1 +1 @@
|
||||
5e81ad3c25d4a4f02e749f398f1868c5
|
||||
23b9575454f0084518a8c2f51423207c
|
||||
|
Loading…
Reference in New Issue
Block a user