Merge Official Source

This commit is contained in:
CN_SZTL 2020-08-13 22:33:30 +08:00
commit b70252d831
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
19 changed files with 629 additions and 286 deletions

View File

@ -0,0 +1,79 @@
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libselinux
PKG_VERSION:=3.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/20200710
PKG_HASH:=ea5dcbb4d859e3f999c26a13c630da2f16dff9462e3cc8cb7b458ac157d112e7
HOST_BUILD_DEPENDS:=libsepol/host pcre/host
PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
include $(INCLUDE_DIR)/package.mk
define Package/libselinux
SECTION:=libs
DEPENDS:=+libsepol +libpcre +musl-fts
CATEGORY:=Libraries
TITLE:=Runtime SELinux library
URL:=http://selinuxproject.org/page/Main_Page
endef
define Package/libselinux/description
libselinux is the runtime SELinux library that provides
interfaces (e.g. library functions for the SELinux kernel
APIs like getcon(), other support functions like
getseuserbyname()) to SELinux-aware applications. libselinux
may use the shared libsepol to manipulate the binary policy
if necessary (e.g. to downgrade the policy format to an
older version supported by the kernel) when loading policy.
endef
include $(INCLUDE_DIR)/host-build.mk
# Needed to link libselinux utilities, which link against
# libselinux.so, which indirectly depends on libpcre.so, installed in
# $(STAGING_DIR_HOSTPKG).
HOST_LDFLAGS += -Wl,-rpath="$(STAGING_DIR_HOSTPKG)/lib"
HOST_MAKE_FLAGS += \
PREFIX=$(STAGING_DIR_HOSTPKG) \
SHLIBDIR=$(STAGING_DIR_HOSTPKG)/lib
MAKE_FLAGS += \
FTS_LDLIBS=-lfts \
SHLIBDIR=/usr/lib \
define Build/Compile
$(call Build/Compile/Default,all)
endef
define Build/Install
$(call Build/Install/Default,install)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libselinux.pc $(1)/usr/lib/pkgconfig/
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libselinux.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libselinux.pc
endef
define Package/libselinux/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libselinux.so.* $(1)/usr/lib/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libselinux))

View File

@ -0,0 +1,66 @@
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libsepol
PKG_VERSION:=3.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/20200710
PKG_HASH:=ae6778d01443fdd38cd30eeee846494e19f4d407b09872580372f4aa4bf8a3cc
PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
include $(INCLUDE_DIR)/package.mk
define Package/libsepol
SECTION:=libs
CATEGORY:=Libraries
TITLE:=SELinux binary policy manipulation library
URL:=http://selinuxproject.org/page/Main_Page
endef
define Package/libsepol/description
Libsepol is the binary policy manipulation library. It doesn't
depend upon or use any of the other SELinux components.
endef #'
include $(INCLUDE_DIR)/host-build.mk
HOST_MAKE_FLAGS += \
PREFIX=$(STAGING_DIR_HOSTPKG) \
SHLIBDIR=$(STAGING_DIR_HOSTPKG)/lib
MAKE_FLAGS += \
SHLIBDIR=/usr/lib
define Build/Compile
$(call Build/Compile/Default,all)
endef
define Build/Install
$(call Build/Install/Default,install)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsepol.pc $(1)/usr/lib/pkgconfig/
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libsepol.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libsepol.pc
endef
define Package/libsepol/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsepol.so.* $(1)/usr/lib/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libsepol))

View File

@ -0,0 +1,60 @@
#
# Copyright (C) 2017 Lucian Cristian <lucian.cristian@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
# updated to work with latest source from abrasive
#
include $(TOPDIR)/rules.mk
PKG_NAME:=musl-fts
PKG_VERSION:=1.2.7
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/pullmoll/musl-fts.git
PKG_SOURCE_VERSION:=0bde52df588e8969879a2cae51c3a4774ec62472
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_MIRROR_HASH:=29c62a600128e9189b1b2e1aea568546178eedf739527f657873b3b773072ecb
PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=COPYING AUTHORS
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/musl-fts
SECTION:=libs
CATEGORY:=Libraries
TITLE:=fts implementation for musl libc
URL:=https://github.com/pullmoll/musl-fts
DEPENDS:= +libpthread
endef
define Package/musl-fts/description
The musl-fts package implements the fts(3) functions fts_open, fts_read, fts_children, fts_set and fts_close, which are missing in musl libc.
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/fts.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfts.so* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/musl-fts.pc $(1)/usr/lib/pkgconfig/
endef
define Package/musl-fts/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfts.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,musl-fts))

View File

@ -0,0 +1,11 @@
config PCRE_JIT_ENABLED
bool
depends on PACKAGE_libpcre && (arm || i386 || i686 || x86_64 || mips || mipsel || powerpc || sparc)
default y if (arm || i686 || x86_64)
prompt "Enable JIT compiler support"
help
Enable JIT (Just-In-Time) compiler support.
Enabling this option can give an about 10x performance increase on JIT operations. It can be desireable for e.g. high performance Apache mod_rewrite or HA-Proxy reqrep operations.
However, JIT should _only_ be enabled on architectures that are supported. Enabling JIT on unsupported platforms will result in a compilation failure. A list of supported architectures can be found here: https://pcre.org/original/doc/html/pcrejit.html#SEC3 .

119
package/libs/pcre/Makefile Normal file
View File

@ -0,0 +1,119 @@
#
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=pcre
PKG_VERSION:=8.44
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
PKG_HASH:=19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENCE
PKG_CPE_ID:=cpe:/a:pcre:pcre
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS:=\
CONFIG_PACKAGE_libpcrecpp \
CONFIG_PCRE_JIT_ENABLED
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
define Package/libpcre/default
SECTION:=libs
CATEGORY:=Libraries
URL:=https://www.pcre.org/
endef
define Package/libpcre/config
source "$(SOURCE)/Config.in"
endef
define Package/libpcre
$(call Package/libpcre/default)
TITLE:=A Perl Compatible Regular Expression library
endef
define Package/libpcre16
$(call Package/libpcre/default)
TITLE:=A Perl Compatible Regular Expression library (16bit support)
endef
define Package/libpcre32
$(call Package/libpcre/default)
TITLE:=A Perl Compatible Regular Expression library (32bit support)
endef
define Package/libpcrecpp
$(call Package/libpcre/default)
TITLE:=C++ wrapper for Perl Compatible Regular Expression library
DEPENDS:=+libpcre $(CXX_DEPENDS)
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--enable-utf8 \
--enable-unicode-properties \
--enable-pcre16 \
--enable-pcre32 \
$(if $(CONFIG_PCRE_JIT_ENABLED),--enable-jit,--disable-jit) \
--with-match-limit-recursion=16000 \
$(if $(CONFIG_PACKAGE_libpcrecpp),--enable,--disable)-cpp
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS)"
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pcre-config $(1)/usr/bin/
$(INSTALL_DIR) $(2)/bin
$(LN) $(STAGING_DIR)/usr/bin/pcre-config $(2)/bin
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/pcre*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre*.{a,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpcre*.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libpcre/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre{,posix}.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre.so $(1)/usr/lib/
endef
define Package/libpcre16/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre16.so* $(1)/usr/lib/
endef
define Package/libpcre32/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre32.so* $(1)/usr/lib/
endef
define Package/libpcrecpp/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcrecpp.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libpcre))
$(eval $(call BuildPackage,libpcre16))
$(eval $(call BuildPackage,libpcre32))
$(eval $(call BuildPackage,libpcrecpp))

View File

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -244,7 +244,7 @@ check_elf()
check_selinux()
# SELinux is a compile time option in the ss utility
{
- if ${PKG_CONFIG} libselinux --exists; then
+ if [ "${HAVE_SELINUX}" = "y" ] && ${PKG_CONFIG} libselinux --exists; then
echo "HAVE_SELINUX:=y" >>$CONFIG
echo "yes"

View File

@ -41,18 +41,34 @@ TARGET_LDFLAGS += $(if $(CONFIG_USE_GLIBC),-lrt)
TARGET_CFLAGS += -flto
TARGET_LDFLAGS += -flto
define Package/procd
define Package/procd/Default
SECTION:=base
CATEGORY:=Base system
DEPENDS:=+ubusd +ubus +libjson-script +ubox +USE_GLIBC:librt +libubox +libubus +libblobmsg-json +libjson-c +PACKAGE_libselinux:libselinux
DEPENDS:=+ubusd +ubus +libjson-script +ubox +USE_GLIBC:librt +libubox \
+libubus +libblobmsg-json +libjson-c
TITLE:=OpenWrt system process manager
USERID:=:dialout=20 :audio=29
endef
define Package/procd
$(call Package/procd/Default)
VARIANT:=default
CONFLICTS:=procd-selinux
endef
define Package/procd-selinux
$(call Package/procd/Default)
DEPENDS += +libselinux
TITLE += with SELinux support
PROVIDES:=procd
VARIANT:=selinux
endef
define Package/procd-ujail
SECTION:=base
CATEGORY:=Base system
DEPENDS:=@KERNEL_NAMESPACES +@KERNEL_UTS_NS +@KERNEL_IPC_NS +@KERNEL_PID_NS +libubox +libubus +libblobmsg-json
DEPENDS:=@KERNEL_NAMESPACES +@KERNEL_UTS_NS +@KERNEL_IPC_NS +@KERNEL_PID_NS \
+libubox +libubus +libblobmsg-json
TITLE:=OpenWrt process jail helper
endef
@ -66,7 +82,8 @@ endef
define Package/procd-seccomp
SECTION:=base
CATEGORY:=Base system
DEPENDS:=@(arm||armeb||mips||mipsel||i386||powerpc||x86_64) @!TARGET_uml @KERNEL_SECCOMP +libubox +libblobmsg-json
DEPENDS:=@(arm||armeb||mips||mipsel||i386||powerpc||x86_64) @!TARGET_uml \
@KERNEL_SECCOMP +libubox +libblobmsg-json
TITLE:=OpenWrt process seccomp helper + utrace
endef
@ -80,7 +97,7 @@ endef
define Package/procd/config
menu "Configuration"
depends on PACKAGE_procd
depends on PACKAGE_procd || PACKAGE_procd-selinux
config PROCD_SHOW_BOOT
bool
@ -94,6 +111,9 @@ config PROCD_ZRAM_TMPFS
endmenu
endef
ifeq ($(BUILD_VARIANT),selinux)
CMAKE_OPTIONS += -DSELINUX=1
endif
ifeq ($(CONFIG_PROCD_SHOW_BOOT),y)
CMAKE_OPTIONS += -DSHOW_BOOT_ON_CONSOLE=1
@ -108,8 +128,7 @@ ifdef CONFIG_PACKAGE_procd-ujail
endif
SECCOMP=$(if $(CONFIG_PACKAGE_procd-seccomp),1,0)
SELINUX=$(if $(CONFIG_PACKAGE_libselinux),1,0)
CMAKE_OPTIONS += -DSECCOMP_SUPPORT=$(SECCOMP) -DUTRACE_SUPPORT=$(SECCOMP) -DSELINUX=$(SELINUX)
CMAKE_OPTIONS += -DSECCOMP_SUPPORT=$(SECCOMP) -DUTRACE_SUPPORT=$(SECCOMP)
define Package/procd/install
$(INSTALL_DIR) $(1)/sbin $(1)/etc $(1)/lib/functions
@ -121,6 +140,8 @@ define Package/procd/install
$(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/
endef
Package/procd-selinux/install = $(Package/procd/install)
define Package/procd-ujail/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ujail $(1)/sbin/
@ -151,6 +172,7 @@ define Package/uxc/install
endef
$(eval $(call BuildPackage,procd))
$(eval $(call BuildPackage,procd-selinux))
$(eval $(call BuildPackage,procd-ujail))
$(eval $(call BuildPackage,procd-ujail-console))
$(eval $(call BuildPackage,procd-seccomp))

View File

@ -4,6 +4,17 @@
. /lib/functions/caldata.sh
caldata_mikrotik_ath9k() {
local offset=$(($1))
local count=$(($2))
local macaddr=$3
caldata_from_file $wlan_data $offset $count /tmp/$FIRMWARE
ath9k_patch_mac "$macaddr" /tmp/$FIRMWARE
caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 $count
rm -f /tmp/$FIRMWARE
}
wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
@ -14,16 +25,10 @@ case "$FIRMWARE" in
case $board in
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-sxt-5nd-r2)
caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
ath9k_patch_mac $(macaddr_add "$mac_base" +1) /tmp/$FIRMWARE
caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
rm -f /tmp/$FIRMWARE
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +1)
;;
mikrotik,routerboard-wap-g-5hact2hnd)
caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
ath9k_patch_mac $(macaddr_add "$mac_base" +2) /tmp/$FIRMWARE
caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
rm -f /tmp/$FIRMWARE
caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +2)
;;
*)
caldata_die "board $board is not supported yet"

View File

@ -0,0 +1,72 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
/ {
chosen {
bootargs = "console=ttyS0,115200";
};
keys: keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <33000000>;
partitions: partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "RouterBoot";
reg = <0x0 0x40000>;
read-only;
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader1";
reg = <0x0 0x0>;
read-only;
};
hard_config {
read-only;
};
partition@10000 {
label = "bootloader2";
reg = <0x10000 0xf000>;
read-only;
};
soft_config {
};
partition@30000 {
label = "bios";
reg = <0x30000 0x1000>;
read-only;
};
};
};
};
};

View File

@ -1,10 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7621.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "mt7621_mikrotik_routerboard-7xx.dtsi"
/ {
compatible = "mikrotik,routerboard-750gr3", "mediatek,mt7621-soc";
@ -17,10 +14,6 @@
led-upgrade = &led_usr;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
@ -35,135 +28,11 @@
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
mode {
label = "mode";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
};
reset {
label = "reset";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
gpio_export {
compatible = "gpio-export";
#size-cells = <0>;
buzzer {
/* Beeper requires PWM for frequency selection */
gpio-export,name = "buzzer";
gpio-export,output = <0>;
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
usb_power {
gpio-export,name = "usb_power";
gpio-export,output = <1>;
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <20000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "RouterBoot";
reg = <0x0 0x40000>;
read-only;
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader1";
reg = <0x0 0x0>;
read-only;
};
hard_config: hard_config {
read-only;
};
partition@10000 {
label = "bootloader2";
reg = <0x10000 0xf000>;
read-only;
};
soft_config {
};
partition@30000 {
label = "bios";
reg = <0x30000 0x1000>;
read-only;
};
};
partition@40000 {
compatible = "mikrotik,minor";
label = "firmware";
reg = <0x040000 0xfc0000>;
};
};
};
};
&switch0 {
ports {
port@0 {
status = "okay";
label = "wan";
};
port@1 {
status = "okay";
label = "lan2";
};
port@2 {
status = "okay";
label = "lan3";
};
port@3 {
status = "okay";
label = "lan4";
};
port@4 {
status = "okay";
label = "lan5";
};
};
};
&state_default {
gpio {
/* via gpio7 (uart3 group) the PoE status can be read */
groups = "uart2", "uart3", "jtag", "wdt";
groups = "uart2", "jtag", "wdt";
function = "gpio";
};
};
&sdhci {
status = "okay";
};

View File

@ -0,0 +1,69 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "mt7621_mikrotik_routerboard-7xx.dtsi"
/ {
compatible = "mikrotik,routerboard-760igs", "mediatek,mt7621-soc";
model = "MikroTik RouterBOARD 760iGS";
aliases {
led-boot = &led_pwr;
led-failsafe = &led_pwr;
led-running = &led_pwr;
led-upgrade = &led_pwr;
};
leds {
compatible = "gpio-leds";
led_pwr: pwr {
label = "routerboard-760igs:blue:pwr";
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
sfp {
label = "routerboard-760igs:blue:sfp";
gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
};
};
sfp1: sfp1 {
compatible = "sff,sfp";
i2c-bus = <&i2c>;
los-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
mod-def0-gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
tx-disable-gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1000>;
};
};
&mdio {
ephy7: ethernet-phy@7 {
reg = <7>;
sfp = <&sfp1>;
};
};
&gmac1 {
status = "okay";
label = "sfp";
phy-handle = <&ephy7>;
};
&i2c {
status = "okay";
};
&state_default {
gpio {
/* gpio7 (uart3 group) goes high when
* port5 (PoE out) is cabled to a
* Mikrotik PoE-in capable port,
* such as port1 on another rb760iGS */
groups = "uart2", "uart3", "jtag", "wdt";
function = "gpio";
};
};

View File

@ -0,0 +1,72 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_mikrotik.dtsi"
/ {
gpio_export {
compatible = "gpio-export";
#size-cells = <0>;
buzzer {
/* Beeper requires PWM for frequency selection */
gpio-export,name = "buzzer";
gpio-export,output = <0>;
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
usb_power {
gpio-export,name = "usb_power";
gpio-export,output = <1>;
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
};
};
};
&keys {
mode {
label = "mode";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
};
};
&partitions {
partition@40000 {
compatible = "mikrotik,minor";
label = "firmware";
reg = <0x040000 0xfc0000>;
};
};
&switch0 {
ports {
port@0 {
status = "okay";
label = "wan";
};
port@1 {
status = "okay";
label = "lan2";
};
port@2 {
status = "okay";
label = "lan3";
};
port@3 {
status = "okay";
label = "lan4";
};
port@4 {
status = "okay";
label = "lan5";
};
};
};
&sdhci {
status = "okay";
};

View File

@ -1,9 +1,6 @@
/dts-v1/;
#include "mt7621.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "mt7621_mikrotik.dtsi"
/ {
compatible = "mikrotik,routerboard-m11g", "mediatek,mt7621-soc";
@ -16,10 +13,6 @@
led-upgrade = &led_usr;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
@ -54,16 +47,6 @@
};
};
keys {
compatible = "gpio-keys";
res {
label = "reset";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
pcie0_vcc_reg {
compatible = "regulator-fixed";
regulator-name = "pcie0_vcc";
@ -77,59 +60,11 @@
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <33000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "RouterBoot";
reg = <0x0 0x40000>;
read-only;
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader1";
reg = <0x0 0x0>;
read-only;
};
hard_config: hard_config {
read-only;
};
partition@10000 {
label = "bootloader2";
reg = <0x10000 0xf000>;
read-only;
};
soft_config {
};
partition@30000 {
label = "bios";
reg = <0x30000 0x1000>;
read-only;
};
};
partition@40000 {
compatible = "mikrotik,minor";
label = "firmware";
reg = <0x040000 0xFC0000>;
};
};
&partitions {
partition@40000 {
compatible = "mikrotik,minor";
label = "firmware";
reg = <0x040000 0xfc0000>;
};
};

View File

@ -1,9 +1,6 @@
/dts-v1/;
#include "mt7621.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include "mt7621_mikrotik.dtsi"
/ {
compatible = "mikrotik,routerboard-m33g", "mediatek,mt7621-soc";
@ -16,10 +13,6 @@
led-upgrade = &led_usr;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
@ -29,16 +22,6 @@
};
};
keys {
compatible = "gpio-keys";
res {
label = "res";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
pcie0_vcc_reg {
compatible = "regulator-fixed";
regulator-name = "pcie0_vcc";
@ -88,54 +71,6 @@
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <33000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "RouterBoot";
reg = <0x0 0x40000>;
read-only;
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "bootloader1";
reg = <0x0 0x0>;
read-only;
};
hard_config: hard_config {
read-only;
};
partition@10000 {
label = "bootloader2";
reg = <0x10000 0xf000>;
read-only;
};
soft_config {
};
partition@30000 {
label = "bios";
reg = <0x30000 0x1000>;
read-only;
};
};
};
};
flash@1 {
compatible = "jedec,spi-nor";
reg = <1>;
@ -151,7 +86,7 @@
partition@40000 {
compatible = "mikrotik,minor";
label = "firmware";
reg = <0x040000 0xFC0000>;
reg = <0x040000 0xfc0000>;
};
};
};

View File

@ -708,6 +708,13 @@ define Device/mikrotik_routerboard-750gr3
endef
TARGET_DEVICES += mikrotik_routerboard-750gr3
define Device/mikrotik_routerboard-760igs
$(Device/MikroTik)
DEVICE_MODEL := RouterBOARD 760iGS
DEVICE_PACKAGES += kmod-sfp -wpad-basic
endef
TARGET_DEVICES += mikrotik_routerboard-760igs
define Device/mikrotik_routerboard-m11g
$(Device/MikroTik)
DEVICE_MODEL := RouterBOARD M11G

View File

@ -48,6 +48,9 @@ linksys,ea7500-v2)
ucidef_set_led_netdev "lan4" "lan4 link" "$boardname:green:lan4" "lan4" "link"
ucidef_set_led_netdev "wan" "wan link" "$boardname:green:wan" "wan" "link"
;;
mikrotik,routerboard-760igs)
ucidef_set_led_netdev "sfp" "SFP" "$boardname:blue:sfp" "sfp"
;;
mikrotik,routerboard-m11g)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssi0" "wlan0" "1" "100"

View File

@ -51,6 +51,9 @@ ramips_setup_interfaces()
mikrotik,routerboard-750gr3)
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan"
;;
mikrotik,routerboard-750igs)
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp"
;;
phicomm,k2p)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 ra0 rax0" "wan"
;;
@ -114,6 +117,7 @@ ramips_setup_macs()
label_mac=$lan_mac
;;
mikrotik,routerboard-750gr3|\
mikrotik,routerboard-760igs|\
mikrotik,routerboard-m11g|\
mikrotik,routerboard-m33g)
label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")

View File

@ -7,6 +7,9 @@ board_config_update
board=$(board_name)
case "$board" in
mikrotik,routerboard-760igs)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "497"
;;
telco-electronics,x1)
ucidef_add_gpio_switch "modem_reset" "Modem Reset" "16"
;;

View File

@ -28,6 +28,7 @@ platform_do_upgrade() {
}
;;
mikrotik,routerboard-750gr3|\
mikrotik,routerboard-760igs|\
mikrotik,routerboard-m11g|\
mikrotik,routerboard-m33g)
[ -z "$(rootfs_type)" ] && mtd erase firmware